gcloud apply spec フィールド

このページでは、Config Sync の構成ファイルで設定できるさまざまなフィールドについて説明します。このファイルは、Google Cloud CLI で Config Sync コンポーネントを構成するときに使用します。構成ファイルの適用に使用する gcloud CLI コマンドには、リファレンス ドキュメントもあります。

これらのコマンドで Policy Controller を構成することもできますが、代わりに Policy Controller gcloud コマンドを使用することをおすすめします。

gcloud CLI で使用されるファイル形式は、ConfigManagement オブジェクトの形式に似ています。ただし、この 2 つの形式は異なり、互換性はありません。

Config Sync の構成

キー 説明
spec.configSync.enabled true の場合、Config Sync を有効にします。false の場合、Config Sync を無効にします。gcloud CLI バージョン 429.0.0 以前の場合は必須です。gcloud CLI バージョン 430.0.0 以降の場合は任意です。デフォルト: true
spec.configSync.sourceType Config Sync の同期元となるソースの種類。git または oci を指定します。デフォルト: git
spec.configSync.syncRepo 信頼できる情報源として使用する Git リポジトリ、OCI イメージ、または Helm チャートの URL。リポジトリを準備していない場合は、このフィールドを省略できます。
spec.configSync.syncBranch 同期元となる Git リポジトリのブランチ。.spec.configSync.sourceTypeoci に設定されている場合、このフィールドは無視されます。このフィールドは省略可能です。デフォルト値は master です。Config Sync バージョン 1.17.0 以降では、spec.configSync.syncRev フィールドを使用してブランチ名を指定することをおすすめします。spec.configSync.syncRev フィールドと spec.configSync.syncBranch フィールドの両方が指定されている場合、spec.configSync.syncRevspec.configSync.syncBranch よりも優先されます。
spec.configSync.policyDir 同期する構成を含むルート ディレクトリへの Git リポジトリまたは OCI イメージのパス。デフォルト: リポジトリのルート ディレクトリ。
spec.configSync.syncWait 連続する同期の間隔(秒)。デフォルトは 15 です。
spec.configSync.syncRev 同期元の Git リビジョン(タグまたはハッシュ)。.spec.configSync.sourceTypeoci に設定されている場合、このフィールドは無視されます。このフィールドは省略可能で、デフォルト値は HEAD です。Config Sync バージョン 1.17.0 以降では、spec.configSync.syncRev フィールドにブランチ名を指定することもできます。バージョン 1.17.0 以降のハッシュを使用する場合、省略形ではなく、完全なハッシュにする必要があります。
spec.configSync.preventDrift true の場合、Config Sync アドミッション Webhook を有効にして、競合変更がライブクラスタに push されないように拒否することによってブレを防止します。デフォルト: falseConfig Sync は、このフィールドの値に関係なく、常にブレを修正します。
spec.configSync.secretType .spec.configSync.syncRepo へのアクセスのために構成された Secret のタイプ。ソースタイプとして git を選択した場合、値は sshcookiefilegcenodegcpserviceaccounttoken、または none である必要があります。ソースタイプとして oci を選択した場合、値は gcenodegcpserviceaccount、または none である必要があります。このフィールドの検証では大文字と小文字が区別されます。必須。
spec.configSync.gcpServiceAccountEmail RootSync または RepoSync コントローラの Kubernetes サービス アカウントにアノテーションを付けるために使用される Google Cloud サービス アカウント。このフィールドは、spec.configSync.secretTypegcpserviceaccount の場合にのみ使用されます。
spec.configSync.metricsGcpServiceAccountEmail Config Sync の指標を Cloud Monitoring にエクスポートする際に使用される Google Cloud サービス アカウント(GSA)のメールアドレス。GSA には、モニタリング指標の書き込み(roles/monitoring.metricWriter)IAM ロールが必要です。Namespace config-management-monitoring の Kubernetes ServiceAccount default は、GSA にバインドされている必要があります。
spec.configSync.sourceFormat unstructured に設定すると、非階層リポジトリが構成されます。デフォルト: hierarchy

Git リポジトリのプロキシ構成

組織のセキュリティ ポリシーでトラフィックを HTTPS プロキシ経由でルーティングする必要がある場合は、プロキシの URI を使用して Git ホストと通信するように Config Sync を構成できます。プロキシは、cookiefilenone、または token の承認タイプを使用する場合にのみサポートされます。

キー 説明
spec.configSync.httpsProxy Git リポジトリへのアクセスに使用される HTTPS_PROXY 環境変数を定義します。例: https://proxy.internal.business.co:443
HTTPS プロキシは、https または省略形の URL のみを受け入れます。http:// を含む URL は拒否されます。
省略形の URL を使用する場合は、プロキシ サーバーと Git ホスト間の通信が安全であることを確認してください。

Policy Controller の構成

キー 説明
spec.policyController.enabled true の場合、Policy Controller を有効にします。デフォルトは false です。
spec.policyController.templateLibraryInstalled true の場合、一般的なポリシータイプの制約テンプレートのライブラリをインストールします。デフォルトは true です。
spec.policyController.referentialRulesEnabled true の場合、参照制約のサポートを有効にします。結果整合性に関する注意事項を必ず確認してください。デフォルトは false です。
spec.policyController.auditIntervalSeconds 制約違反の連続する監査の間隔(秒)。0 に設定すると監査は無効になります。デフォルト: 60。
spec.policyController.logDeniesEnabled true の場合、すべての拒否とドライランの失敗がロギングされます。デフォルトは false です。
spec.policyController.mutationEnabled true の場合、ミューテーションのサポートを有効にします。デフォルトは false です。
spec.policyController.exemptableNamespaces Policy Controller アドミッション Webhook の適用から削除する名前空間のリスト。違反があれば今後も監査で報告されます。デフォルトは空のリストです。
spec.policyController.monitoring.backends 指標のエクスポート先である Policy Controller のモニタリング バックエンドのリスト。デフォルト: [cloudmonitoring, prometheus]

Hierarchy Controller の構成

キー 説明
spec.hierarchyController.enabled true の場合、Hierarchy Controller を有効にします。デフォルトは false です。
spec.hierarchyController.enableHierarchicalResourceQuota true の場合、階層リソース割り当てを有効にします。デフォルトは false です。
spec.hierarchyController.enablePodTreeLabels true の場合、ワークロードの階層型モニタリングを有効にします。デフォルトは false です。

gcloud apply spec の例

applySpecVersion: 1
spec:
  configSync:
    enabled: true
    sourceFormat: unstructured
    syncRepo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
    syncBranch: main
    secretType: none
    policyDir: config-sync-quickstart/multirepo/root
  hierarchyController:
    enabled: false