はじめに
コミット
65d975b(最寄りタグv2.8.8) のflux bootstrap githubフローに基づく。コマンドは動作するkubectlコンテキストと GitHub アカウントを想定する。
前提
kubectlで到達できる Kubernetes クラスタ。- GitHub アカウントと repo スコープの personal access token。
fluxCLI (下でインストール)。
インストール
brew install fluxcd/tap/fluxMakefile は同じバイナリをソースから CGO_ENABLED=0 go build -ldflags="-s -w -X main.VERSION=..." -o ./bin/flux ./cmd/flux でビルドする (Makefile:57)。
最初の動く構成
最短経路は flux bootstrap github だ。必要ならリポジトリを作成し、flux-system にコントローラをインストールし、自己同期する Kustomization を commit する (cmd/flux/bootstrap_github.go:39)。
クラスタが Flux の前提を満たすか確認する。
bashflux check --preGitHub token を export する。Flux は
GITHUB_TOKEN環境変数から読む (cmd/flux/bootstrap_github.go:115)。bashexport GITHUB_TOKEN=<your-token>ブートストラップする。リポジトリ作成、コントローラのインストール、同期構成の commit を行う。デフォルトのリコンサイル間隔は 1 分だ。
bashflux bootstrap github \ --owner=<organization> \ --repository=<repository name> \ --path=clusters/my-cluster
動作確認
コントローラが健全で、同期オブジェクトがリコンサイルしているか確認する。
flux check
flux get kustomizationsflux-system Kustomization は最新の commit リビジョンとともに Ready 条件を報告するはずだ。内部的には、ブートストラップは期待リビジョンを status.lastAttemptedRevision と照合して同じシグナルを待つ (pkg/bootstrap/bootstrap.go:268)。
次に読むもの
ここから先は、クラスタパス配下に Kubernetes マニフェストを commit すれば自動でリコンサイルされる。HA、マルチテナンシ、image automation、SOPS による secret 復号など本番運用は fluxcd.io の公式ドキュメントを参照。