./flux get sources all --kubeconfig ./kubeconf - Cтатус гит репозиториев
./flux get kustomizations --kubeconfig ./kubeconf - Статус исходников приложений
./flux reconcile kustomization apps --kubeconfig ./kubeconf - Согласовать новые файлы деплоя
Для того чтобы задеплоить fluxcd в кластер нам необходим git репозиторий (к примеру в гитлабе). В моей случае адресом гита будет выступать gitlab.taxonein.ru.
Для начала нужно создать персональный токен (или deploy token) в гитлабе. Если персональный- он создается на год. Для моих задач подходит, буду использовать именно его.
Скачиваем бинарник флюкса https://github.com/fluxcd/flux2/releases
Выполняем следующую команду, в соответствии с докой:
https://fluxcd.io/flux/installation/bootstrap/gitlab/
flux bootstrap gitlab \
--deploy-token-auth \
--owner=home-infra \
--hostname=gitlab.taxonein.ru \
--repository=fluxcd_k8s \
--branch=master \
--path=clusters/k8s-nl \
--components-extra=image-reflector-controller,image-automation-controller \
--kubeconfig ./kubeconf
После выполнения flux установится в папочку clusters/k8s-nl. Параметры описывать не буду, все описано в оф.документации.
Дополнительно после установки в папке (гита) clusters/k8s-nl создаем файл apps.yaml
В данном файле описываются параметры папки откуда будут браться файлы для деплоя, таймауты, время чекаута и тд.
Приводим конфиг к следующему виду:
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: apps
namespace: flux-system
spec:
interval: 3m0s
sourceRef:
kind: GitRepository
name: flux-system
path: ./apps/k8s-nl
prune: true
wait: true
timeout: 3m0s
Тут указана папка (от корня репы) ./apps/k8s-nl (именно из этой папки будут браться файлы для деплоя).
Дополнительно почитать можно тут: https://fluxcd.io/flux/components/kustomize/kustomizations/