AgroCD GitOps для Kubernets

Все більше людей хоче використовувати GitOps і ArgoCD для Kubernetes так як за

допомогою даної тули і її функціоналу apps of apps ми можемо один раз налаштувати

ArgoCD для усіх деплойментів, бенефіти очевидні так як ArgoCD може відслідковувати

стан наших деплойментів і якщо він не співпадає редеплоїти його з тим що є у git

тим самим надає можливість контролю за нашими деплойментами і не дозволяє

вносити зміни мимо git’a тим самим ми маємо автоматичний контроль за тими хто

має адміністративний доступ до kubernets, так як будь який kubectl edit автоматично

буде перестворений з того що є у гіті і відповідно ми можемо спати спокійно.

Для реалізації apps of apps достатньо задеплоїти argocd згідно з офіційним манулом

через хельм для прикладу і підготувати сам файл для apps of apps просто і швидко

далі все одно залишаться моменти з безпекою та додатковими налаштуваннями

так як для великих проектів важко без певних змін добитись найкращих результатів

Gitlab і terraform

Друзі дуже часто люди користуються terraform не думаючи про наслідки та ситуації що призводить до повністю розваленої інфраструктури … чому так відбувається тому що не розуміють як правильно будувати IaaC підхід… по факту при хорошому підході усіх цих проблем можна уникнути і запобігти їх появі.

Уявимо ситуацію де команда користується терраформ кодом напряму тобто вносить будь які правки в код при цьому інша людина чи команда у цей ж момент використовує той же модуль чи той же стейт файл по результатах наслідки будуть не прогнозовані так як все залежить від типу змін які були внесені, але існує величезна ймовірність розваленої інфраструктури.

Для запобіганню проблем найкраще скористатись CI/CD підходом для terraform і тим самим запобігти появі таких проблем по максимуму так як на рівні пайплайну дуже просто можна перевірити практично усе та й сам терраформ код у окремому репозиторії і білдиться і релізиться окремо впевнений що не вікриваю Америку, але досить багато людей цей підхід ігнорує і у результаті отримують розвалений прод чи будь яке інше оточення.

Реалізація підготована ось тут :

https://docs.gitlab.com/ee/user/infrastructure/iac/

Звісно вона не є ідеальною з точки зору процесів і потребує модифікації, але основне це те що релізи завжди контрольовані і те що відбувається з інфраструктую просто відслідкувати за допомогою того ж git і ще одне по хорошому потрібно мати окремий репозиторій для модулів терраформа і окремий для коду інфраструктури так як у цьому випадку простіше відслідковувати зміни і сам процес виглядає набагато краще.