gcloud apply spec フィールド

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

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

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

Config Sync の構成

キー 説明
spec.upgrades プレビュー)Config Sync のアップグレード設定。auto に設定すると、Config Sync のバージョンが自動アップグレードされます。自動アップグレードの仕組みについては、Config Sync をアップグレードするをご覧ください。Config Sync のバージョンを手動でアップグレードするには、manual に設定します。デフォルト値は manual です。このフラグは、Google Cloud 上の GKE クラスタでのみサポートされています。
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