flux-operator について
flux-operator は CNCF Flux CD のライフサイクルを管理する Kubernetes CRD コントローラーで、多数のクラスターで GitOps を運用するプラットフォームチーム向けです。Flux のインストール、設定、アップグレードを自動化し、ResourceSet によるセルフサービス環境と Flux Web UI を提供します。Flux MCP Server により AI アシスタントからクラスターを照会できます。
主な機能
- 01Flux コントローラーの自動インストールとアップグレード
- 02再利用可能なアプリケーション定義のための ResourceSet API
- 03プルリクエストから作成するエフェメラル環境
- 04FluxReport と Prometheus メトリクスによる監視
- 05パイプラインをリアルタイムに確認できる Flux Web UI
活用シーン
- 01複数クラスターにまたがる Flux の導入とアップグレードを管理する
- 02開発チームにセルフサービスのデプロイ環境を提供する
- 03自然言語で GitOps のデプロイ問題を調査する
MCP 対応
Flux MCP Server は、このオペレーターが稼働する Kubernetes クラスターに AI アシスタントを接続し、会話形式でデプロイの分析、問題調査、操作を行えるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
flux-operator
Flux Operator は、CNCF Flux CD および ControlPlane のエンタープライズディストリビューションのライフサイクルを管理する Kubernetes CRD コントローラーです。 このオペレーターは、セルフサービス機能、デプロイウィンドウ、GitHub、GitLab、Gitea、Azure DevOps のプルリクエストをテストするためのプレビュー環境によって Flux を拡張します。
Flux のオートパイロット - このオペレーターは Flux Bootstrap 手順に代わる方法を提供します。宣言型 API に基づいて Flux コントローラーのインストール、設定、アップグレードを完全に自動化することで、クラスター群全体にわたる Flux の管理に伴う運用負荷を軽減します。
高度な設定 - このオペレーターは、Flux のマルチテナンシーのロックダウン、シャーディング、水平・垂直スケーリング、永続ストレージの設定を簡素化し、Kustomize パッチを使用した Flux コントローラーの詳細な調整を可能にします。また、クラスターの望ましい状態を Git で管理する方式から、OCI アーティファクトや S3 互換ストレージへ移行するプロセスを効率化します。
深い洞察 - このオペレーターは、Flux が管理するデリバリーパイプラインについて、Flux コントローラーの準備状況、リコンサイラーの統計、クラスター状態の同期に関する詳細なレポートや Prometheus メトリクスなど、深い洞察を提供します。 Flux Web UI では GitOps パイプラインをリアルタイムで確認でき、デプロイの監視、調整状況の追跡、問題のトラブルシューティングを行えます。
セルフサービス環境 - このオペレーターの ResourceSet API を使うと、プラットフォームチームは Flux と Kubernetes のリソースをグループ化し、独自のアプリケーション標準として定義できます。これらのリソースはテンプレート化、パラメーター化でき、セルフサービス環境に単一のユニットとしてデプロイできます。 ResourceSet API は Git のプルリクエストと連携し、テストと検証のための一時的な環境を作成します。
AI 支援型 GitOps - Flux MCP Server は、オペレーターを実行する Kubernetes クラスターに AI アシスタントを接続し、自然言語によるシームレスな操作を可能にします。AI ツールと GitOps パイプラインをつなぐ橋渡しとして機能し、環境をまたいだデプロイの分析、問題のトラブルシューティング、会話形式のプロンプトによる操作を行えます。
エンタープライズサポート - このオペレーターは ControlPlane のエンタープライズプランの主要コンポーネントであり、本番環境への新しい Flux バージョン、CVE パッチ、ホットフィックスのロールアウトを安全かつ確実に自動化するよう設計されています。 ControlPlane Flux ディストリビューションとともに、Red Hat OpenShift、Amazon EKS、Azure AKS、Google GKE でエンドツーエンドのテストを実施しています。
クイックスタートガイド
Flux Operator をインストールする
たとえば Helm を使用して、flux-system 名前空間に Flux Operator をインストールします。
helm install flux-operator oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator \
--namespace flux-system
メモ
Flux Operator は、Helm、Terraform、OperatorHub、kubectl などの方法でインストールできます。 詳細については、 インストールガイドを参照してください。
Flux コントローラーをインストールする
最新の Flux 安定版をインストールするには、flux-system 名前空間に
flux という名前の FluxInstance リソースを作成します。
apiVersion: fluxcd.controlplane.io/v1
kind: FluxInstance
metadata:
name: flux
namespace: flux-system
annotations:
fluxcd.controlplane.io/reconcileEvery: "1h"
fluxcd.controlplane.io/reconcileArtifactEvery: "10m"
fluxcd.controlplane.io/reconcileTimeout: "5m"
spec:
distribution:
version: "2.x"
registry: "ghcr.io/fluxcd"
artifact: "oci://ghcr.io/controlplaneio-fluxcd/flux-operator-manifests"
components:
- source-controller
- kustomize-controller
- helm-controller
- notification-controller
- image-reflector-controller
- image-automation-controller
cluster:
type: kubernetes
size: medium
multitenant: false
networkPolicy: true
domain: "cluster.local"
kustomize:
patches:
- target:
kind: Deployment
patch: |
- op: replace
path: /spec/template/spec/nodeSelector
value:
kubernetes.io/os: linux
- op: add
path: /spec/template/spec/tolerations
value:
- key: "CriticalAddonsOnly"
operator: "Exists"
メモ
Flux インスタンスはさまざまな方法でカスタマイズできます。 詳細については、 設定ガイドを参照してください。
Git リポジトリから同期する
Git リポジトリからクラスターの状態を同期するには、次の設定を FluxInstance に追加します。
apiVersion: fluxcd.controlplane.io/v1
kind: FluxInstance
metadata:
name: flux
namespace: flux-system
spec:
sync:
kind: GitRepository
url: "https://github.com/my-org/my-fleet.git"
ref: "refs/heads/main"
path: "clusters/my-cluster"
pullSecret: "flux-system"
# distribution omitted for brevity
ソースリポジトリがプライベートの場合は、Kubernetes シークレットを flux-system 名前空間に作成し、
リポジトリをクローンするための認証情報を含める必要があります。
flux create secret git flux-system \
--url=https://github.com/my-org/my-fleet.git \
--username=git \
--password=$GITHUB_TOKEN
メモ
Git リポジトリ、コンテナーレジストリ、S3 互換ストレージからの同期を設定する方法の詳細については、 クラスター同期ガイドを参照してください。
Flux のインストールを監視する
Flux のデプロイ状態を監視するには、flux-system 名前空間の
FluxReport
リソースを確認します。
kubectl get fluxreport/flux -n flux-system -o yaml
レポートは定期的に更新され、デプロイの準備状況、ディストリビューションの詳細、リコンサイラーの統計情報、Flux CRD のバージョン、 クラスターの同期状態などの情報が含まれています。
Flux Web UI にアクセスする
Flux Web UIにアクセスするには、 オペレーターサービスにポートフォワードできます。
kubectl -n flux-system port-forward svc/flux-operator 9080:9080
Flux Web UI では、安全な外部アクセスのために Ingress とシングルサインオンを設定できます。
ResourceSet API
Flux Operator の ResourceSet APIは、 Flux リソースおよび関連する Kubernetes オブジェクトを単一の単位として定義・管理するための 高レベルな抽象化を提供します。 ResourceSet API は、GitOps ワークフローの複雑さを軽減し、開発者やプラットフォームチームによる セルフサービスを可能にするよう設計されています。
ガイド:
- アプリケーション定義に ResourceSet を使用する
- 時間ベースのデリバリーに ResourceSet を使用する
- GitHub のプルリクエスト向け一時環境
- GitLab のマージリクエスト向け一時環境
ドキュメント
- インストール
- Flux の設定
- CRD リファレンス
貢献
Flux Operator プロジェクトへの GitHub プルリクエストによる貢献を歓迎します。 開発環境のセットアップ方法やプロジェクトへの貢献を始める方法については、 CONTRIBUTING ガイドをご覧ください。
ライセンス
Flux Operator は、AGPL-3.0 license のもとでライセンスされているオープンソースプロジェクトです。
このプロジェクトは、ControlPlane チームに所属する CNCF Flux のコアメンテナーによって開発されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。