@@ -505,6 +505,15 @@ service ClusterManager {
505505 get : "/v1/{parent=projects/*}/aggregated/usableSubnetworks"
506506 };
507507 }
508+
509+ // Checks the cluster compatibility with Autopilot mode, and returns a list of
510+ // compatibility issues.
511+ rpc CheckAutopilotCompatibility (CheckAutopilotCompatibilityRequest )
512+ returns (CheckAutopilotCompatibilityResponse ) {
513+ option (google.api.http ) = {
514+ get : "/v1/{name=projects/*/locations/*/clusters/*}:checkAutopilotCompatibility"
515+ };
516+ }
508517}
509518
510519// Parameters that can be configured on Linux nodes.
@@ -1901,6 +1910,15 @@ message Cluster {
19011910
19021911 // Fleet information for the cluster.
19031912 Fleet fleet = 140 ;
1913+
1914+ // Beta APIs Config
1915+ K8sBetaAPIConfig enable_k8s_beta_apis = 143 ;
1916+ }
1917+
1918+ // K8sBetaAPIConfig , configuration for beta APIs
1919+ message K8sBetaAPIConfig {
1920+ // Enabled k8s beta APIs.
1921+ repeated string enabled_apis = 1 ;
19041922}
19051923
19061924// Node pool configs that apply to all auto-provisioned node pools
@@ -2123,6 +2141,15 @@ message ClusterUpdate {
21232141 // The pod ranges specified here must have been specified earlier in the
21242142 // 'additional_pod_ranges_config' argument.
21252143 AdditionalPodRangesConfig removed_additional_pod_ranges_config = 121 ;
2144+
2145+ // Kubernetes open source beta apis enabled on the cluster. Only beta apis
2146+ K8sBetaAPIConfig enable_k8s_beta_apis = 122 ;
2147+
2148+ // Enable/Disable FQDN Network Policy for the cluster.
2149+ optional bool desired_enable_fqdn_network_policy = 126 ;
2150+
2151+ // Desired Beta APIs to be enabled for cluster.
2152+ K8sBetaAPIConfig desired_k8s_beta_apis = 131 ;
21262153}
21272154
21282155// AdditionalPodRangesConfig is the configuration for additional pod secondary
@@ -3367,6 +3394,9 @@ message NodePool {
33673394 // fields, and may be sent on update requests to ensure the client has an
33683395 // up-to-date value before proceeding.
33693396 string etag = 110 ;
3397+
3398+ // Enable best effort provisioning for nodes
3399+ BestEffortProvisioning best_effort_provisioning = 113 ;
33703400}
33713401
33723402// NodeManagement defines the set of node management services turned on for the
@@ -3387,6 +3417,19 @@ message NodeManagement {
33873417 AutoUpgradeOptions upgrade_options = 10 ;
33883418}
33893419
3420+ // Best effort provisioning.
3421+ message BestEffortProvisioning {
3422+ // When this is enabled, cluster/node pool creations will ignore non-fatal
3423+ // errors like stockout to best provision as many nodes as possible right now
3424+ // and eventually bring up all target number of nodes
3425+ bool enabled = 1 ;
3426+
3427+ // Minimum number of nodes to be provisioned to be considered as succeeded,
3428+ // and the rest of nodes will be provisioned gradually and eventually when
3429+ // stockout issue has been resolved.
3430+ int32 min_provision_nodes = 2 ;
3431+ }
3432+
33903433// AutoUpgradeOptions defines the set of options for the user to control how
33913434// the Auto Upgrades will proceed.
33923435message AutoUpgradeOptions {
@@ -4096,6 +4139,9 @@ message NetworkConfig {
40964139 // GatewayAPIConfig contains the desired config of Gateway API on this
40974140 // cluster.
40984141 GatewayAPIConfig gateway_api_config = 16 ;
4142+
4143+ // Whether FQDN Network Policy is enabled on this cluster.
4144+ optional bool enable_fqdn_network_policy = 19 ;
40994145}
41004146
41014147// GatewayAPIConfig contains the desired config of Gateway API on this cluster.
@@ -4206,6 +4252,64 @@ message GetJSONWebKeysResponse {
42064252 repeated Jwk keys = 1 ;
42074253}
42084254
4255+ // CheckAutopilotCompatibilityRequest requests getting the blockers for the
4256+ // given operation in the cluster.
4257+ message CheckAutopilotCompatibilityRequest {
4258+ // The name (project, location, cluster) of the cluster to retrieve.
4259+ // Specified in the format `projects/*/locations/*/clusters/*`.
4260+ string name = 1 ;
4261+ }
4262+
4263+ // AutopilotCompatibilityIssue contains information about a specific
4264+ // compatibility issue with Autopilot mode.
4265+ message AutopilotCompatibilityIssue {
4266+ // The type of the reported issue.
4267+ enum IssueType {
4268+ // Default value, should not be used.
4269+ UNSPECIFIED = 0 ;
4270+
4271+ // Indicates that the issue is a known incompatibility between the
4272+ // cluster and Autopilot mode.
4273+ INCOMPATIBILITY = 1 ;
4274+
4275+ // Indicates the issue is an incompatibility if customers take no further
4276+ // action to resolve.
4277+ ADDITIONAL_CONFIG_REQUIRED = 2 ;
4278+
4279+ // Indicates the issue is not an incompatibility, but depending on the
4280+ // workloads business logic, there is a potential that they won't work on
4281+ // Autopilot.
4282+ PASSED_WITH_OPTIONAL_CONFIG = 3 ;
4283+ }
4284+
4285+ // The last time when this issue was observed.
4286+ google.protobuf.Timestamp last_observation = 1 ;
4287+
4288+ // The constraint type of the issue.
4289+ string constraint_type = 2 ;
4290+
4291+ // The incompatibility type of this issue.
4292+ IssueType incompatibility_type = 3 ;
4293+
4294+ // The name of the resources which are subject to this issue.
4295+ repeated string subjects = 4 ;
4296+
4297+ // A URL to a public documnetation, which addresses resolving this issue.
4298+ string documentation_url = 5 ;
4299+
4300+ // The description of the issue.
4301+ string description = 6 ;
4302+ }
4303+
4304+ // CheckAutopilotCompatibilityResponse has a list of compatibility issues.
4305+ message CheckAutopilotCompatibilityResponse {
4306+ // The list of issues for the given operation.
4307+ repeated AutopilotCompatibilityIssue issues = 1 ;
4308+
4309+ // The summary of the autopilot compatibility response.
4310+ string summary = 2 ;
4311+ }
4312+
42094313// ReleaseChannel indicates which release channel a cluster is
42104314// subscribed to. Release channels are arranged in order of risk.
42114315//
0 commit comments