1- // Copyright 2025 Google LLC
1+ // Copyright 2026 Google LLC
22//
33// Licensed under the Apache License, Version 2.0 (the "License");
44// you may not use this file except in compliance with the License.
@@ -75,6 +75,10 @@ message MembershipState {
7575 // Output only. Hierarchy Controller status
7676 HierarchyControllerState hierarchy_controller_state = 7
7777 [(google.api.field_behavior ) = OUTPUT_ONLY ];
78+
79+ // Output only. The Kubernetes API server version of the cluster.
80+ string kubernetes_api_server_version = 8
81+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
7882}
7983
8084// **Anthos Config Management**: Configuration for a single cluster.
@@ -101,8 +105,8 @@ message MembershipSpec {
101105 PolicyController policy_controller = 2
102106 [deprecated = true , (google.api.field_behavior ) = OPTIONAL ];
103107
104- // Optional. Binauthz conifguration for the cluster. Deprecated: This field
105- // will be ignored and should not be set.
108+ // Optional. Deprecated: Binauthz configuration will be ignored and should not
109+ // be set.
106110 BinauthzConfig binauthz = 3
107111 [deprecated = true , (google.api.field_behavior ) = OPTIONAL ];
108112
@@ -113,43 +117,53 @@ message MembershipSpec {
113117 HierarchyControllerConfig hierarchy_controller = 4
114118 [deprecated = true , (google.api.field_behavior ) = OPTIONAL ];
115119
116- // Optional. Version of ACM installed.
120+ // Optional. Version of Config Sync to install. Defaults to the latest
121+ // supported Config Sync version if the config_sync field is enabled. See
122+ // supported versions at
123+ // https://cloud.google.com/kubernetes-engine/config-sync/docs/get-support-config-sync#version_support_policy.
117124 string version = 10 [(google.api.field_behavior ) = OPTIONAL ];
118125
119- // Optional. The user-specified cluster name used by Config Sync
120- // cluster-name-selector annotation or ClusterSelector, for applying configs
121- // to only a subset of clusters. Omit this field if the cluster's fleet
122- // membership name is used by Config Sync cluster-name-selector annotation or
123- // ClusterSelector. Set this field if a name different from the cluster's
124- // fleet membership name is used by Config Sync cluster-name-selector
125- // annotation or ClusterSelector.
126+ // Optional. User-specified cluster name used by the Config Sync
127+ // cluster-name-selector annotation or ClusterSelector object, for applying
128+ // configs to only a subset of clusters. Read more about the
129+ // cluster-name-selector annotation and ClusterSelector object at
130+ // https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/how-to/cluster-scoped-objects#limiting-configs.
131+ // Only set this field if a name different from the cluster's fleet membership
132+ // name is used by the Config Sync cluster-name-selector annotation or
133+ // ClusterSelector.
126134 string cluster = 11 [(google.api.field_behavior ) = OPTIONAL ];
127135
128- // Optional. Enables automatic Feature management.
129- Management management = 12 [(google.api.field_behavior ) = OPTIONAL ];
136+ // Optional. Deprecated: From version 1.21.0, automatic Feature management is
137+ // unavailable, and Config Sync only supports manual upgrades.
138+ Management management = 12
139+ [deprecated = true , (google.api.field_behavior ) = OPTIONAL ];
130140}
131141
132142// Configuration for Config Sync
133143message ConfigSync {
134144 // Optional. Git repo configuration for the cluster.
135145 GitConfig git = 7 [(google.api.field_behavior ) = OPTIONAL ];
136146
137- // Optional. Specifies whether the Config Sync Repo is
138- // in "hierarchical" or "unstructured" mode.
147+ // Optional. Specifies whether the Config Sync repo is in `hierarchical` or
148+ // `unstructured` mode. Defaults to `hierarchical`. See
149+ // https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/concepts/configs#organize-configs
150+ // for an explanation.
139151 string source_format = 8 [(google.api.field_behavior ) = OPTIONAL ];
140152
141- // Optional. Enables the installation of ConfigSync .
142- // If set to true, ConfigSync resources will be created and the other
143- // ConfigSync fields will be applied if exist.
144- // If set to false, all other ConfigSync fields will be ignored, ConfigSync
145- // resources will be deleted .
146- // If omitted, ConfigSync resources will be managed depends on the presence
147- // of the git or oci field .
153+ // Optional. Enables the installation of Config Sync .
154+ // If set to true, the Feature will manage Config Sync resources,
155+ // and apply the other ConfigSync fields if they exist.
156+ // If set to false, the Feature will ignore all other ConfigSync fields and
157+ // delete the Config Sync resources .
158+ // If omitted, ConfigSync is considered enabled if the git or oci field is
159+ // present .
148160 optional bool enabled = 10 [(google.api.field_behavior ) = OPTIONAL ];
149161
150162 // Optional. Set to true to enable the Config Sync admission webhook to
151- // prevent drifts. If set to `false`, disables the Config Sync admission
152- // webhook and does not prevent drifts.
163+ // prevent drifts. If set to false, disables the Config Sync admission webhook
164+ // and does not prevent drifts. Defaults to false. See
165+ // https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/how-to/prevent-config-drift
166+ // for details.
153167 bool prevent_drift = 11 [(google.api.field_behavior ) = OPTIONAL ];
154168
155169 // Optional. OCI repo configuration for the cluster
@@ -158,6 +172,56 @@ message ConfigSync {
158172 // Optional. Set to true to stop syncing configs for a single cluster.
159173 // Default to false.
160174 bool stop_syncing = 16 [(google.api.field_behavior ) = OPTIONAL ];
175+
176+ // Optional. Configuration for deployment overrides.
177+ // Applies only to Config Sync deployments with containers that are not a root
178+ // or namespace reconciler: `reconciler-manager`, `otel-collector`,
179+ // `resource-group-controller-manager`, `admission-webhook`.
180+ // To override a root or namespace reconciler, use the rootsync or reposync
181+ // fields at
182+ // https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/reference/rootsync-reposync-fields#override-resources
183+ // instead.
184+ repeated DeploymentOverride deployment_overrides = 17
185+ [(google.api.field_behavior ) = OPTIONAL ];
186+ }
187+
188+ // Configuration for a deployment override.
189+ message DeploymentOverride {
190+ // Required. The name of the deployment resource to be overridden.
191+ string deployment_name = 1 [(google.api.field_behavior ) = REQUIRED ];
192+
193+ // Required. The namespace of the deployment resource to be overridden.
194+ string deployment_namespace = 2 [(google.api.field_behavior ) = REQUIRED ];
195+
196+ // Optional. The containers of the deployment resource to be overridden.
197+ repeated ContainerOverride containers = 3
198+ [(google.api.field_behavior ) = OPTIONAL ];
199+ }
200+
201+ // Configuration for a container override.
202+ message ContainerOverride {
203+ // Required. The name of the container.
204+ string container_name = 1 [(google.api.field_behavior ) = REQUIRED ];
205+
206+ // Optional. The cpu request of the container. Use the following CPU resource
207+ // units:
208+ // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu.
209+ string cpu_request = 2 [(google.api.field_behavior ) = OPTIONAL ];
210+
211+ // Optional. The cpu limit of the container. Use the following CPU resource
212+ // units:
213+ // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu.
214+ string cpu_limit = 3 [(google.api.field_behavior ) = OPTIONAL ];
215+
216+ // Optional. The memory request of the container. Use the following memory
217+ // resource units:
218+ // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory.
219+ string memory_request = 4 [(google.api.field_behavior ) = OPTIONAL ];
220+
221+ // Optional. The memory limit of the container. Use the following memory
222+ // resource units:
223+ // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory.
224+ string memory_limit = 5 [(google.api.field_behavior ) = OPTIONAL ];
161225}
162226
163227// Git repo configuration for a single cluster.
@@ -179,17 +243,18 @@ message GitConfig {
179243 string sync_rev = 5 [(google.api.field_behavior ) = OPTIONAL ];
180244
181245 // Required. Type of secret configured for access to the Git repo.
182- // Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount ,
183- // githubapp or none.
246+ // Must be one of ` ssh`, ` cookiefile`, ` gcenode`, ` token` ,
247+ // `gcpserviceaccount`, ` githubapp` or ` none` .
184248 // The validation of this is case-sensitive.
185249 string secret_type = 6 [(google.api.field_behavior ) = REQUIRED ];
186250
187251 // Optional. URL for the HTTPS proxy to be used when communicating with the
188- // Git repo.
252+ // Git repo. Only specify when secret_type is `cookiefile`, `token`, or
253+ // `none`.
189254 string https_proxy = 7 [(google.api.field_behavior ) = OPTIONAL ];
190255
191256 // Optional. The Google Cloud Service Account Email used for auth when
192- // secret_type is gcpServiceAccount .
257+ // secret_type is `gcpserviceaccount` .
193258 string gcp_service_account_email = 8 [(google.api.field_behavior ) = OPTIONAL ];
194259}
195260
@@ -207,12 +272,13 @@ message OciConfig {
207272 int64 sync_wait_secs = 3 [(google.api.field_behavior ) = OPTIONAL ];
208273
209274 // Required. Type of secret configured for access to the OCI repo.
210- // Must be one of gcenode, gcpserviceaccount, k8sserviceaccount or none.
275+ // Must be one of `gcenode`, `gcpserviceaccount`, `k8sserviceaccount` or
276+ // `none`.
211277 // The validation of this is case-sensitive.
212278 string secret_type = 4 [(google.api.field_behavior ) = REQUIRED ];
213279
214280 // Optional. The Google Cloud Service Account Email used for auth when
215- // secret_type is gcpServiceAccount .
281+ // secret_type is `gcpserviceaccount` .
216282 string gcp_service_account_email = 5 [(google.api.field_behavior ) = OPTIONAL ];
217283}
218284
0 commit comments