このページでは、RootSync、RepoSync、ResourceGroup オブジェクトのフィールドのリファレンスを提供します。これらのオブジェクトの仕組みについては、Config Sync のアーキテクチャをご覧ください。
RootSync フィールドと RepoSync フィールド
RootSync と RepoSync のリソース オブジェクトには同じフィールドがありますが、次の RootSync 専用フィールドを除きます。
spec.helm.namespacespec.helm.deployNamespacespec.override.roleRefs
ソース形式の構成
| キー | 説明 |
|---|---|
spec.sourceFormat |
信頼できる情報源の形式を指定します。省略可。 このフィールドの検証では大文字と小文字が区別されます。
|
ソースタイプの構成
| キー | 説明 |
|---|---|
spec.sourceType |
sourceType には、信頼できる情報源のタイプを指定します。git、oci、helm のいずれかにする必要があります。省略可。指定しない場合は git に設定します。このフィールドの検証では大文字と小文字が区別されます。 |
Git リポジトリの構成
| キー | 説明 |
|---|---|
spec.git.auth |
Git リポジトリへのアクセスのために構成された Secret のタイプ。ssh、cookiefile、gcenode、gcpserviceaccount、githubapp、token、または none にする必要があります。このフィールドの検証では大文字と小文字が区別されます。必須。 |
spec.git.gcpServiceAccountEmail |
RootSync または RepoSync コントローラの Kubernetes サービス アカウントにアノテーションを付けるために使用される Cloud de Confiance by S3NS サービス アカウント。このフィールドは、spec.git.auth が gcpserviceaccount の場合にのみ使用されます。 |
spec.git.branch |
同期元となるリポジトリのブランチ。このフィールドは省略可能で、デフォルト値は master です。spec.git.revision フィールドを使用してブランチ名を指定することをおすすめします。両方のフィールドが使用されている場合、spec.git.revision フィールドが spec.git.branch よりも優先されます。 |
spec.git.dir |
同期先の構成を含むルート ディレクトリへの Git リポジトリの絶対パス。デフォルトはリポジトリのルート ディレクトリ(/)です |
spec.git.period |
連続する同期の間隔。デフォルト: 15s |
spec.git.repo |
同期元の Git リポジトリの URL。必須。 |
spec.git.revision |
同期元となる Git リビジョン(ブランチ、タグ、commit)。このフィールドは省略可能で、デフォルト値は HEAD です。ハッシュを使用する場合は、省略形ではなく完全なハッシュにする必要があります。 |
spec.git.secretRef.name |
Git の信頼できるソースへの接続に使用される Secret の名前。 |
spec.git.noSSLVerify1 |
noSSLVerify は、SSL 証明書の検証を有効にするか無効にするかを指定します。デフォルト: false。 noSSLVerify が true に設定されている場合、Git は SSL 証明書の検証をスキップします。 |
spec.git.caCertSecretRef.name1 |
認証局(CA)証明書を含む Secret の名前。このフィールドを指定する場合、git サーバーはこの CA によって発行された証明書を使用する必要があります。CA 証明書は「cert」という名前の鍵で Secret に保存する必要があります。 |
Git リポジトリのプロキシ構成
組織のセキュリティ ポリシーでトラフィックを HTTP(S) プロキシ経由でルーティングする必要がある場合は、プロキシの URI を使用して Git ホストと通信するように Config Sync を構成できます。
| キー | 説明 |
|---|---|
spec.git.proxy |
プロキシを使用して Git リポジトリへのアクセスを構成するスキームを含むプロキシ URL。例: https://proxy.internal.business.co:443Git プロキシは、 https、http、省略形の URL を受け入れますが、セキュリティに関する懸念があるため http はおすすめしません。http または省略形の URL を使用する場合は、プロキシ サーバーと Git ホスト間の通信が安全であることを確認してください。このフィールドは、 spec.git.auth が cookiefile、none、または token の場合にのみ有効です。 |
OCI イメージの構成
Config Sync では、OCI レイヤが tar 形式または tar+gzip 形式で圧縮されている必要があります。
他の形式(tar+bz2 など)は Config Sync で認識されません。有効な REPO からサポートされていない形式の OCI イメージに切り替えると、マネージド リソースがエラーなしでプルーニングされます。
| キー | 説明 |
|---|---|
spec.oci.auth |
OCI イメージへのアクセスのために構成された認証のタイプ。gcenode、k8sserviceaccount、gcpserviceaccountまたは none にする必要があります。このフィールドの検証では大文字と小文字が区別されます。必須。 |
spec.oci.gcpServiceAccountEmail |
RootSync または RepoSync コントローラの Kubernetes サービス アカウントにアノテーションを付けるために使用される Cloud de Confiance by S3NS サービス アカウント。このフィールドは、spec.oci.auth が gcpserviceaccount の場合にのみ使用されます。 |
spec.oci.dir |
同期先の構成を含むルート ディレクトリへの OCI イメージの絶対パス。デフォルトはイメージのルート ディレクトリ(/)です。 |
spec.oci.period |
連続する同期の間隔。デフォルト: 15s |
spec.oci.image |
同期元の OCI イメージの URL。必須。 |
spec.oci.caCertSecretRef.name1 |
認証局(CA)証明書を含む Secret の名前。このフィールドを指定する場合、OCI サーバーはこの CA によって発行された証明書を使用する必要があります。CA 証明書は「cert」という名前の鍵で Secret に保存する必要があります。 |
Helm リポジトリの構成
| キー | 説明 |
|---|---|
spec.helm.auth |
Helm リポジトリへのアクセスのために構成された認証のタイプ。token は、gcenode、k8sserviceaccount、gcpserviceaccountまたは none にする必要がある。このフィールドの検証では大文字と小文字が区別されます。
必須。 |
spec.helm.gcpServiceAccountEmail |
RootSync または RepoSync コントローラの Kubernetes サービス アカウントにアノテーションを付けるために使用される Cloud de Confiance by S3NS サービス アカウント。このフィールドは、spec.helm.auth が gcpserviceaccount の場合にのみ使用されます。 |
spec.helm.secretRef.name |
Helm リポジトリへのアクセスに使用される Secret の名前。このフィールドは、spec.helm.auth が token の場合にのみ使用されます。 |
spec.helm.repo |
同期元の Helm リポジトリの URL。必須。 |
spec.helm.chart |
Helm チャートの名前。必須。 |
spec.helm.version |
Helm チャートのバージョン番号。デフォルト: 最新バージョン。 バージョン フィールドには、静的な値、Config Sync で最新版が pull されるバージョンの範囲を指定できます。また、空白のままにしておいて Config Sync が最新のグラフを pull するように指定することもできます。Config Sync は、セマンティック バージョニングに基づいて「最新」バージョンを決定します。範囲を指定するか、空白のままにしておくと、Config Sync ではデフォルトでグラフが 1 時間ごとに再 pull されます。再取得期間は バージョン範囲の構文は、Helm CLI でサポートされているバージョン範囲の構文と同じです。 範囲としてバージョンを指定するか、値を空のままにすると、多数のバージョンがある大規模なグラフでは CPU 使用率が高くなる可能性があります。次の例のように、 spec: override: resources: - containerName: helm-sync cpuRequest: "200m" |
spec.helm.period |
Config Sync がグラフを再 pull するまで待機する時間。 デフォルト値は 1 時間です。このフィールドには、「30s」(30 秒)や「5m」(5 分)などの文字列値を指定できます。詳細については、有効な入力に関する Go のドキュメントをご覧ください。 グラフのバージョンが範囲の場合は、リテラルタグ「latest」を使用するか、Config Sync が最新バージョンを pull する必要があることを示すために空のままにすると、 |
spec.helm.releaseName |
Helm リリースの名前。 |
spec.helm.namespace |
これは spec.helm.deployNamespace とは相互に排他的です。namespace は、リリースのターゲット名前空間を設定します。このフィールドは RootSync オブジェクトでのみ使用されます。テンプレートに namespace: {{ .Release.Namespace }} を含むリソースの Namespace のみが設定されます。spec.helm.namespace で指定された値は、Helm テンプレートで宣言された Release.Namespace の値としてのみ使用されます。テンプレートに namespace: {{ .Release.Namespace }} がないリソースには、Namespace default を使用します。デフォルトは default です。 |
spec.helm.deployNamespace |
これは spec.helm.namespace とは相互に排他的です。deployNamespace には、グラフをデプロイする名前空間を指定します。このフィールドの設定には、kpt set-namespace 関数が利用されます。これにより、Config Sync が、名前空間スコープのリソースの metadata.namespace、Namespace オブジェクトの metadata.name、一部の特別なリソースタイプでの名前空間参照など、グラフのリソースの namespace フィールドを置き換えます。deployNamespace が設定されていない場合、metadata.namespace が設定されていないリソースはデフォルトの名前空間にデプロイされます。 |
spec.helm.values |
チャートに付随するデフォルト値の代わりに使用する値。デフォルトの values.yaml と同じ形式で値を設定します。次に例を示します。 values: foo: bar: val1 quz: - val2 - val3
詳細については、Helm のマニフェストの例をご覧ください。 |
spec.helm.includeCRDs |
Helm テンプレートが CustomResourceDefinitions を生成するかどうかを指定します。デフォルト: false。 |
spec.helm.valuesFileRefs |
チャートに付随するデフォルト値の代わりに、使用する値を表すクラスタ内のオブジェクトへの参照のリスト。ConfigMap のみがサポートされています。ConfigMap は不変で、 ConfigMap は不変です。同期後に valuesFile を変更するには、別の名前で ConfigMap を作成して 複数の値ファイルを指定した場合、後のファイルの重複したキーで前のファイルの値がオーバーライドされます。これは、複数の値ファイルを Helm CLI に渡すことと同じです。 リストの各項目は、以下のように指定する必要があります。
値を変更する方法の例については、Helm チャートを同期するをご覧ください。 |
spec.helm.caCertSecretRef.name1 |
認証局(CA)証明書を含む Secret の名前。このフィールドを指定する場合、Helm サーバーはこの CA によって発行された証明書を使用する必要があります。CA 証明書は「cert」という名前の鍵で Secret に保存する必要があります。 |
ルートまたは名前空間リコンサイラのリソース リクエストと上限をオーバーライドするための構成
git-sync、oci-sync、helm-sync、hydration-controller、reconciler の各コンテナをオーバーライドできます。部分的なオーバーライドは可能です。リソース リクエストまたは上限のオーバーライド値が指定されていない場合は、リクエストまたは上限のデフォルトのリソース値が使用されます。
Autopilot クラスタの場合、Config Sync はリソース上限のオーバーライドを無視します。アノテーションで宣言された対応する調整済みの出力よりも高いリソース リクエストがある場合か、アノテーションで宣言された対応する入力よりも少ないリソース リクエストが存在している場合にのみ、リソース リクエストのオーバーライドが適用されます。詳細については、Config Sync のクラスタ要件をご覧ください。
| キー | 説明 |
|---|---|
spec.override.resources1 |
コンテナ リソースのリクエストと上限のオーバーライドのリスト。省略可。 リストの各項目には、次の 3 つのフィールドが含まれます。
リソースのリクエストまたは上限のオーバーライド値が指定されていない場合は、リクエストまたは上限のデフォルトのリソース値が使用されます。 |
ルートまたは Namespace Reconciler のコンテナのログレベルをオーバーライドするための構成
ログレベルのオーバーライド値が設定されていない場合、ログレベルはデフォルト値で構成されます。デフォルトが 5 である git-sync コンテナを除いて、RootSync または RepoSync の Reconciler にあるすべてのコンテナでデフォルトのログレベルは 0 です。許容されるログレベルのオーバーライド値は 0~10 です。
| キー | 説明 |
|---|---|
spec.override.logLevels |
コンテナ ログレベルのオーバーライド値のリスト。省略可。 リストの各項目には、次の 2 つのフィールドが含まれます。
コンテナのログレベルのオーバーライド値が指定されていない場合は、デフォルトのログレベル値が使用されます。 |
取得する Git commit 数の構成
| キー | 説明 |
|---|---|
spec.override.gitSyncDepth1 |
gitSyncDepth を使用すると、取得する Git commit の数をオーバーライドできます。 0 以上の値を指定してください。 このフィールドが 0 の場合、Config Sync はフルクローンを作成します。0 より大きい場合は、シャロー クローンを作成します。 このフィールドを指定しない場合は、Config Sync によって自動的に構成されます。 |
リソースレベルのステータスをキャプチャするための構成
| キー | 説明 |
|---|---|
spec.override.statusMode1 |
statusMode は、リソースレベルのステータスのキャプチャを有効または無効にできます。デフォルト値は enabled です。リソースレベルのステータスのキャプチャを無効にするには、このフィールドを disabled に設定します。 |
調整タイムアウトをオーバーライドするための構成
| キー | 説明 |
|---|---|
spec.override.reconcileTimeout1 |
reconcileTimeout を使用すると、適用グループ内のリソースが調整されるまでの待機時間のしきい値をオーバーライドできます。commit 内のリソースは、依存関係に基づいて複数の適用グループに属する場合があります。デフォルトのタイムアウトは 5m です。このフィールドの値を文字列で指定します(例: 30s、5m)。 |
API サーバーへのリクエストのタイムアウトをオーバーライドするための構成
| キー | 説明 |
|---|---|
spec.override.apiServerTimeout1 | apiServerTimeout を使用すると、API サーバーへのリクエストのタイムアウトをオーバーライドできます。デフォルトのタイムアウトは 15 秒で、15sとして指定されます。このフィールドの値を文字列で指定します(例: 30s、5m)。 |
レンダリング プロセスでのシェルアクセスの構成
| キー | 説明 |
|---|---|
spec.override.enableShellInRendering1 |
enableShellInRendering は、レンダリング プロセスでシェルアクセスを有効にするかどうかを指定します。Kustomize のリモートベースにはシェルアクセスが必要です。このフィールドを true に設定すると、レンダリング プロセスでのシェルアクセスが有効になり、公開リポジトリからリモートベースを pull できます。デフォルト値は false です。 |
名前空間に関する戦略の構成(RootSync のみ)
| キー | 説明 |
|---|---|
spec.override.namespaceStrategy1 |
namespaceStrategy は、ソースで宣言された Namespace スコープ オブジェクトの Namespace 構成がない場合に、Reconciler がどのように処理するかを制御します。unstructured sourceFormat を使用する場合にのみ適用されます。
デフォルト値は implicit です。 |
RBAC バインディングの構成(RootSync のみ)
| キー | 説明 |
|---|---|
spec.override.roleRefs1 |
roleRefs は、バインディングを作成する Role または ClusterRole のリストです。リストの各項目には、次のフィールドが含まれます。
設定しない場合は、 cluster-admin への ClusterRoleBinding が作成されます。 |
オブジェクトのステータス
| キー | 説明 |
|---|---|
status.observedGeneration |
Config Sync によって最後に監視されて操作された RootSync または RepoSync リソースの仕様の世代(metadata.generation)。この値は metadata.generation(API サーバーが仕様のミューテーションによって更新される整数)と比較できます。 |
status.reconciler |
同期リソースに対応する Reconciler プロセスの名前。 |
status.source.gitStatus.repo |
取得される Git リポジトリの URL。 |
status.source.gitStatus.revision |
取得される Git リビジョン(タグ、commit、またはハッシュ)。 |
status.source.gitStatus.branch |
取得されるリポジトリの Git ブランチ。 |
status.source.gitStatus.dir |
同期している構成を含むルート ディレクトリへの Git リポジトリ内の絶対パス。 |
status.source.ociStatus.image |
取得中の OCI イメージの URL。 |
status.source.ociStatus.dir |
同期している構成を含むルート ディレクトリへの OCI イメージ内の絶対パス。 |
status.source.helmStatus.repo |
取得される Helm リポジトリの URL。 |
status.source.helmStatus.version |
取得される Helm チャートのバージョン。 |
status.source.helmStatus.chart |
取得される Helm チャートの名前。 |
status.source.commit |
ソース URL から取得された、最新の commit またはダイジェストのハッシュ。 |
status.source.errors |
信頼できるソースの構成ファイルの読み取りと解析中に発生したエラー。過剰な数のエラーが存在する場合は、Config Sync によってエラーが切り詰められるため、発生したすべてのエラーが含まれない場合があります。 |
status.source.errorSummary.totalCount | 信頼できるソースから構成ファイルを読み取って解析する際に発生したエラーの合計数を追跡する整数。 |
status.source.errorSummary.truncated | status.source.errors フィールドに、信頼できるソースからの構成ファイルの読み取りと解析中に発生したすべてのエラーが含まれているかどうかを示すブール値。 |
status.source.errorSummary.errorCountAfterTruncation |
status.source.errors フィールドのエラー数を追跡する整数。 |
status.rendering.gitStatus.repo |
レンダリングされる Git リポジトリの URL。 |
status.rendering.gitStatus.revision |
レンダリングされる Git リビジョン(タグ、commit、またはハッシュ)。 |
status.rendering.gitStatus.branch |
レンダリングされるリポジトリの Git ブランチ。 |
status.rendering.gitStatus.dir |
レンダリングされている構成を含むルート ディレクトリへの Git リポジトリ内の絶対パス。 |
status.rendering.ociStatus.image |
レンダリングされる OCI イメージの URL。 |
status.rendering.ociStatus.dir |
レンダリングしている構成を含むルート ディレクトリへの OCI イメージ内の絶対パス。 |
status.rendering.helmStatus.repo |
レンダリングされる Helm リポジトリの URL。 |
status.rendering.helmStatus.version |
レンダリングされる Helm チャートのバージョン。 |
status.rendering.helmStatus.chart |
レンダリングされる Helm チャートの名前。 |
status.rendering.commit |
レンダリングされた最新の commit またはダイジェストのハッシュ。この値は、エラーによって commit またはダイジェストが部分的に同期されている場合でも更新されます。 |
status.rendering.errors |
status.rendering.commit で示される変更からのリソースのレンダリング プロセス中に発生したエラーのリスト。エラーが多すぎる場合、Config Sync によってエラーが切り詰められるため、発生したすべてのエラーが含まれない場合があります。
|
status.rendering.errorSummary.totalCount | 信頼できるソースからの構成ファイルのレンダリング プロセス中に発生したエラーの総数を追跡する整数。 |
status.rendering.errorSummary.truncated | status.rendering.errors フィールドに、信頼できるソースからの構成ファイルのレンダリング プロセス中に発生したすべてのエラーが含まれているかどうかを示すブール値。 |
status.rendering.errorSummary.errorCountAfterTruncation |
status.rendering.errors フィールドのエラー数を追跡する整数。 |
status.sync.gitStatus.repo |
同期される Git リポジトリの URL。 |
status.sync.gitStatus.revision |
同期される Git リビジョン(タグ、commit、またはハッシュ)。 |
status.sync.gitStatus.branch |
同期されるリポジトリの Git ブランチ。 |
status.sync.gitStatus.dir |
同期している構成を含むルート ディレクトリへの Git リポジトリ内の絶対パス。 |
status.sync.ociStatus.image |
同期される OCI イメージの URL。 |
status.sync.ociStatus.dir |
同期している構成を含むルート ディレクトリへの OCI イメージ内の絶対パス。 |
status.sync.helmStatus.repo |
同期される Helm リポジトリの URL。 |
status.sync.helmStatus.version |
同期される Helm チャートのバージョン。 |
status.sync.helmStatus.chart |
同期される Helm チャートの名前。 |
status.sync.commit |
クラスタに同期された最新の commit またはダイジェストのハッシュ。この値は、エラーによって commit またはダイジェストが部分的に同期されている場合でも更新されます。 |
status.sync.errors |
status.sync.commit で示される変更からリソースを適用する際に発生したエラーのリスト。エラーが多すぎる場合、Config Sync によってエラーが切り詰められるため、発生したすべてのエラーが含まれない場合があります。 |
status.sync.errorSummary.totalCount | 信頼できるソースからの構成ファイルを適用する際に発生したエラーの合計数を追跡する整数。 |
status.sync.errorSummary.truncated | status.sync.errors フィールドに、信頼できるソースから構成ファイルを適用する際に発生したすべてのエラーが含まれているかどうかを示すブール値。 |
status.sync.errorSummary.errorCountAfterTruncation |
status.sync.errors フィールドのエラー数を追跡する整数。 |
status.conditions |
RootSync オブジェクトまたは RepoSync オブジェクトの現在の状態を追跡するための条件のリスト。条件の type フィールドが Reconciling または Stalled の場合:
Syncing の場合:
|
1 Cloud de Confiance コンソールまたは Google Cloud CLI を使用してインストールした後に RootSync 構成ファイルを作成した場合は、このフィールドを上書きできます。
ResourceGroup フィールド
仕様とステータス フィールド
| キー | 説明 |
|---|---|
spec.resources |
RepoSync CR または RootSync CR で指定されている Git リポジトリからクラスタに適用されるリソースの識別子(グループ、種類、Namespace、名前)のリスト。省略可。リスト内の各項目は、 group、kind、namespace、name の 4 つのフィールドで構成されます。 |
ステータス フィールド
| キー | 説明 |
|---|---|
status.observedGeneration |
ResourceGroup コントローラによって最後に監視され、操作された RootSync または RepoSync リソースの仕様の世代(metadata.generation)。この値は metadata.generation(API サーバーが仕様のミューテーションによって更新される整数)と比較できます。 |
status.conditions |
現在の ResourceGroup で観測された最新の条件。条件には、Reconciling と Stalled の 2 種類があります。Reconciling タイプ条件が true の場合、現在の ResourceGroup は調整中であることを意味します。Stalled タイプ条件が true の場合、調整が停止していることを意味します。両方が false の場合は、現在の ResourceGroup が調整され、ステータスが最新であることを意味します。 |
status.resourceStatuses |
.spec.resources に含まれるリソースのステータスのリスト。各アイテムには、リソースの識別子(グループ、種類、Namespace、名前)とステータスが含まれます。ステータスは、InProgress、Current、Failed、
Terminating、NotFound、
Unknown のいずれかです。 |
非マネージド root-sync フィールド
RootSync という名前の root-sync の以下のフィールドは、Hub サービスによって管理されず、任意の Kubernetes クライアントで編集できます。
| キー | 説明 |
|---|---|
spec.helm |
Helm リポジトリ構成のすべてのフィールド。 |
spec.override |
デフォルト構成をオーバーライドするためのすべてのフィールド。 |
spec.git.noSSLVerify |
Git の SSL 証明書の検証を有効にするか無効にするかを指定します。デフォルトは false です。
|
spec.git.caCertSecretRef.name |
Git リポジトリの認証局(CA)証明書を含む Secret の名前。 |
spec.oci.caCertSecretRef.name |
OCI リポジトリの認証局(CA)証明書を含む Secret の名前。 |
RootSync オブジェクトの管理対象フィールドと管理対象外フィールドの詳細については、フリート サービスによる RootSync オブジェクトの管理方法をご覧ください。
CR の例
以降のセクションでは、RootSync CR と RepoSync CR の例を示します。
RootSync CR
次の例は、RootSync オブジェクトを示しています。
# root-sync.yaml
apiVersion: configsync.gke.io/v1beta1
kind: RootSync
metadata:
name: root-sync
namespace: config-management-system
spec:
sourceType: git
sourceFormat: unstructured
git:
repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
branch: main
dir: config-sync-quickstart/multirepo/root
auth: none
period: 30s
RepoSync CR
次の例は、RepoSync オブジェクトを示しています。
# repo-sync.yaml
apiVersion: configsync.gke.io/v1beta1
kind: RepoSync
metadata:
name: repo-sync
namespace: gamestore
spec:
sourceType: git
sourceFormat: unstructured
git:
repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
branch: main
dir: config-sync-quickstart/multirepo/root
auth: none
period: 30s