Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2025 Google LLC
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -75,6 +75,10 @@ message MembershipState {
// Output only. Hierarchy Controller status
HierarchyControllerState hierarchy_controller_state = 7
[(google.api.field_behavior) = OUTPUT_ONLY];

// Output only. The Kubernetes API server version of the cluster.
string kubernetes_api_server_version = 8
[(google.api.field_behavior) = OUTPUT_ONLY];
}

// **Anthos Config Management**: Configuration for a single cluster.
Expand All @@ -101,8 +105,8 @@ message MembershipSpec {
PolicyController policy_controller = 2
[deprecated = true, (google.api.field_behavior) = OPTIONAL];

// Optional. Binauthz conifguration for the cluster. Deprecated: This field
// will be ignored and should not be set.
// Optional. Deprecated: Binauthz configuration will be ignored and should not
// be set.
BinauthzConfig binauthz = 3
[deprecated = true, (google.api.field_behavior) = OPTIONAL];

Expand All @@ -113,43 +117,53 @@ message MembershipSpec {
HierarchyControllerConfig hierarchy_controller = 4
[deprecated = true, (google.api.field_behavior) = OPTIONAL];

// Optional. Version of ACM installed.
// Optional. Version of Config Sync to install. Defaults to the latest
// supported Config Sync version if the config_sync field is enabled. See
// supported versions at
// https://cloud.google.com/kubernetes-engine/config-sync/docs/get-support-config-sync#version_support_policy.
string version = 10 [(google.api.field_behavior) = OPTIONAL];

// Optional. The user-specified cluster name used by Config Sync
// cluster-name-selector annotation or ClusterSelector, for applying configs
// to only a subset of clusters. Omit this field if the cluster's fleet
// membership name is used by Config Sync cluster-name-selector annotation or
// ClusterSelector. Set this field if a name different from the cluster's
// fleet membership name is used by Config Sync cluster-name-selector
// annotation or ClusterSelector.
// Optional. User-specified cluster name used by the Config Sync
// cluster-name-selector annotation or ClusterSelector object, for applying
// configs to only a subset of clusters. Read more about the
// cluster-name-selector annotation and ClusterSelector object at
// https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/how-to/cluster-scoped-objects#limiting-configs.
// Only set this field if a name different from the cluster's fleet membership
// name is used by the Config Sync cluster-name-selector annotation or
// ClusterSelector.
string cluster = 11 [(google.api.field_behavior) = OPTIONAL];

// Optional. Enables automatic Feature management.
Management management = 12 [(google.api.field_behavior) = OPTIONAL];
// Optional. Deprecated: From version 1.21.0, automatic Feature management is
// unavailable, and Config Sync only supports manual upgrades.
Management management = 12
[deprecated = true, (google.api.field_behavior) = OPTIONAL];
}

// Configuration for Config Sync
message ConfigSync {
// Optional. Git repo configuration for the cluster.
GitConfig git = 7 [(google.api.field_behavior) = OPTIONAL];

// Optional. Specifies whether the Config Sync Repo is
// in "hierarchical" or "unstructured" mode.
// Optional. Specifies whether the Config Sync repo is in `hierarchical` or
// `unstructured` mode. Defaults to `hierarchical`. See
// https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/concepts/configs#organize-configs
// for an explanation.
string source_format = 8 [(google.api.field_behavior) = OPTIONAL];

// Optional. Enables the installation of ConfigSync.
// If set to true, ConfigSync resources will be created and the other
// ConfigSync fields will be applied if exist.
// If set to false, all other ConfigSync fields will be ignored, ConfigSync
// resources will be deleted.
// If omitted, ConfigSync resources will be managed depends on the presence
// of the git or oci field.
// Optional. Enables the installation of Config Sync.
// If set to true, the Feature will manage Config Sync resources,
// and apply the other ConfigSync fields if they exist.
// If set to false, the Feature will ignore all other ConfigSync fields and
// delete the Config Sync resources.
// If omitted, ConfigSync is considered enabled if the git or oci field is
// present.
optional bool enabled = 10 [(google.api.field_behavior) = OPTIONAL];

// Optional. Set to true to enable the Config Sync admission webhook to
// prevent drifts. If set to `false`, disables the Config Sync admission
// webhook and does not prevent drifts.
// prevent drifts. If set to false, disables the Config Sync admission webhook
// and does not prevent drifts. Defaults to false. See
// https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/how-to/prevent-config-drift
// for details.
bool prevent_drift = 11 [(google.api.field_behavior) = OPTIONAL];

// Optional. OCI repo configuration for the cluster
Expand All @@ -158,6 +172,56 @@ message ConfigSync {
// Optional. Set to true to stop syncing configs for a single cluster.
// Default to false.
bool stop_syncing = 16 [(google.api.field_behavior) = OPTIONAL];

// Optional. Configuration for deployment overrides.
// Applies only to Config Sync deployments with containers that are not a root
// or namespace reconciler: `reconciler-manager`, `otel-collector`,
// `resource-group-controller-manager`, `admission-webhook`.
// To override a root or namespace reconciler, use the rootsync or reposync
// fields at
// https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/reference/rootsync-reposync-fields#override-resources
// instead.
repeated DeploymentOverride deployment_overrides = 17
[(google.api.field_behavior) = OPTIONAL];
}

// Configuration for a deployment override.
message DeploymentOverride {
// Required. The name of the deployment resource to be overridden.
string deployment_name = 1 [(google.api.field_behavior) = REQUIRED];

// Required. The namespace of the deployment resource to be overridden.
string deployment_namespace = 2 [(google.api.field_behavior) = REQUIRED];

// Optional. The containers of the deployment resource to be overridden.
repeated ContainerOverride containers = 3
[(google.api.field_behavior) = OPTIONAL];
}

// Configuration for a container override.
message ContainerOverride {
// Required. The name of the container.
string container_name = 1 [(google.api.field_behavior) = REQUIRED];

// Optional. The cpu request of the container. Use the following CPU resource
// units:
// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu.
string cpu_request = 2 [(google.api.field_behavior) = OPTIONAL];

// Optional. The cpu limit of the container. Use the following CPU resource
// units:
// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu.
string cpu_limit = 3 [(google.api.field_behavior) = OPTIONAL];

// Optional. The memory request of the container. Use the following memory
// resource units:
// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory.
string memory_request = 4 [(google.api.field_behavior) = OPTIONAL];

// Optional. The memory limit of the container. Use the following memory
// resource units:
// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory.
string memory_limit = 5 [(google.api.field_behavior) = OPTIONAL];
}

// Git repo configuration for a single cluster.
Expand All @@ -179,17 +243,18 @@ message GitConfig {
string sync_rev = 5 [(google.api.field_behavior) = OPTIONAL];

// Required. Type of secret configured for access to the Git repo.
// Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount,
// githubapp or none.
// Must be one of `ssh`, `cookiefile`, `gcenode`, `token`,
// `gcpserviceaccount`, `githubapp` or `none`.
// The validation of this is case-sensitive.
string secret_type = 6 [(google.api.field_behavior) = REQUIRED];

// Optional. URL for the HTTPS proxy to be used when communicating with the
// Git repo.
// Git repo. Only specify when secret_type is `cookiefile`, `token`, or
// `none`.
string https_proxy = 7 [(google.api.field_behavior) = OPTIONAL];

// Optional. The Google Cloud Service Account Email used for auth when
// secret_type is gcpServiceAccount.
// secret_type is `gcpserviceaccount`.
string gcp_service_account_email = 8 [(google.api.field_behavior) = OPTIONAL];
}

Expand All @@ -207,12 +272,13 @@ message OciConfig {
int64 sync_wait_secs = 3 [(google.api.field_behavior) = OPTIONAL];

// Required. Type of secret configured for access to the OCI repo.
// Must be one of gcenode, gcpserviceaccount, k8sserviceaccount or none.
// Must be one of `gcenode`, `gcpserviceaccount`, `k8sserviceaccount` or
// `none`.
// The validation of this is case-sensitive.
string secret_type = 4 [(google.api.field_behavior) = REQUIRED];

// Optional. The Google Cloud Service Account Email used for auth when
// secret_type is gcpServiceAccount.
// secret_type is `gcpserviceaccount`.
string gcp_service_account_email = 5 [(google.api.field_behavior) = OPTIONAL];
}

Expand Down
Loading
Loading