@@ -489,6 +489,15 @@ service ClusterManager {
489489 option (google.api.method_signature ) = "parent" ;
490490 }
491491
492+ // Checks the cluster compatibility with Autopilot mode, and returns a list of
493+ // compatibility issues.
494+ rpc CheckAutopilotCompatibility (CheckAutopilotCompatibilityRequest )
495+ returns (CheckAutopilotCompatibilityResponse ) {
496+ option (google.api.http ) = {
497+ get : "/v1beta1/{name=projects/*/locations/*/clusters/*}:checkAutopilotCompatibility"
498+ };
499+ }
500+
492501 // Fetches locations that offer Google Kubernetes Engine.
493502 rpc ListLocations (ListLocationsRequest ) returns (ListLocationsResponse ) {
494503 option (google.api.http ) = {
@@ -1843,6 +1852,9 @@ message Cluster {
18431852 // creation.
18441853 bool enable_kubernetes_alpha = 14 ;
18451854
1855+ // Kubernetes open source beta apis enabled on the cluster. Only beta apis.
1856+ K8sBetaAPIConfig enable_k8s_beta_apis = 143 ;
1857+
18461858 // The resource labels for the cluster to use to annotate any related
18471859 // Google Compute Engine resources.
18481860 map <string , string > resource_labels = 15 ;
@@ -2088,6 +2100,12 @@ message Cluster {
20882100 Fleet fleet = 140 ;
20892101}
20902102
2103+ // Kubernetes open source beta apis enabled on the cluster.
2104+ message K8sBetaAPIConfig {
2105+ // api name, e.g. storage.k8s.io/v1beta1/csistoragecapacities.
2106+ repeated string enabled_apis = 1 ;
2107+ }
2108+
20912109// WorkloadConfig defines the flags to enable or disable the
20922110// workload configurations for the cluster.
20932111message WorkloadConfig {
@@ -2383,6 +2401,15 @@ message ClusterUpdate {
23832401 // The pod ranges specified here must have been specified earlier in the
23842402 // 'additional_pod_ranges_config' argument.
23852403 AdditionalPodRangesConfig removed_additional_pod_ranges_config = 121 ;
2404+
2405+ // Kubernetes open source beta apis enabled on the cluster. Only beta apis
2406+ K8sBetaAPIConfig enable_k8s_beta_apis = 122 ;
2407+
2408+ // Enable/Disable FQDN Network Policy for the cluster.
2409+ optional bool desired_enable_fqdn_network_policy = 126 ;
2410+
2411+ // Beta APIs enabled for cluster.
2412+ K8sBetaAPIConfig desired_k8s_beta_apis = 131 ;
23862413}
23872414
23882415// AdditionalPodRangesConfig is the configuration for additional pod secondary
@@ -3291,6 +3318,19 @@ message ServerConfig {
32913318 map <string , WindowsVersions > windows_version_maps = 10 ;
32923319}
32933320
3321+ // Best effort provisioning.
3322+ message BestEffortProvisioning {
3323+ // When this is enabled, cluster/node pool creations will ignore non-fatal
3324+ // errors like stockout to best provision as many nodes as possible right now
3325+ // and eventually bring up all target number of nodes
3326+ bool enabled = 1 ;
3327+
3328+ // Minimum number of nodes to be provisioned to be considered as succeeded,
3329+ // and the rest of nodes will be provisioned gradually and eventually when
3330+ // stockout issue has been resolved.
3331+ int32 min_provision_nodes = 2 ;
3332+ }
3333+
32943334// Windows server versions.
32953335message WindowsVersions {
32963336 // Windows server version.
@@ -3706,6 +3746,9 @@ message NodePool {
37063746 // fields, and may be sent on update requests to ensure the client has an
37073747 // up-to-date value before proceeding.
37083748 string etag = 110 ;
3749+
3750+ // Enable best effort provisioning for nodes
3751+ BestEffortProvisioning best_effort_provisioning = 113 ;
37093752}
37103753
37113754// NodeManagement defines the set of node management services turned on for the
@@ -4556,6 +4599,9 @@ message NetworkConfig {
45564599 // GatewayAPIConfig contains the desired config of Gateway API on this
45574600 // cluster.
45584601 GatewayAPIConfig gateway_api_config = 16 ;
4602+
4603+ // Whether FQDN Network Policy is enabled on this cluster.
4604+ optional bool enable_fqdn_network_policy = 19 ;
45594605}
45604606
45614607// GatewayAPIConfig contains the desired config of Gateway API on this cluster.
@@ -4953,6 +4999,64 @@ message GetJSONWebKeysResponse {
49534999 repeated Jwk keys = 1 ;
49545000}
49555001
5002+ // CheckAutopilotCompatibilityRequest requests getting the blockers for the
5003+ // given operation in the cluster.
5004+ message CheckAutopilotCompatibilityRequest {
5005+ // The name (project, location, cluster) of the cluster to retrieve.
5006+ // Specified in the format `projects/*/locations/*/clusters/*`.
5007+ string name = 1 ;
5008+ }
5009+
5010+ // AutopilotCompatibilityIssue contains information about a specific
5011+ // compatibility issue with Autopilot mode.
5012+ message AutopilotCompatibilityIssue {
5013+ // The type of the reported issue.
5014+ enum IssueType {
5015+ // Default value, should not be used.
5016+ UNSPECIFIED = 0 ;
5017+
5018+ // Indicates that the issue is a known incompatibility between the
5019+ // cluster and Autopilot mode.
5020+ INCOMPATIBILITY = 1 ;
5021+
5022+ // Indicates the issue is an incompatibility if customers take no further
5023+ // action to resolve.
5024+ ADDITIONAL_CONFIG_REQUIRED = 2 ;
5025+
5026+ // Indicates the issue is not an incompatibility, but depending on the
5027+ // workloads business logic, there is a potential that they won't work on
5028+ // Autopilot.
5029+ PASSED_WITH_OPTIONAL_CONFIG = 3 ;
5030+ }
5031+
5032+ // The last time when this issue was observed.
5033+ google.protobuf.Timestamp last_observation = 1 ;
5034+
5035+ // The constraint type of the issue.
5036+ string constraint_type = 2 ;
5037+
5038+ // The incompatibility type of this issue.
5039+ IssueType incompatibility_type = 3 ;
5040+
5041+ // The name of the resources which are subject to this issue.
5042+ repeated string subjects = 4 ;
5043+
5044+ // A URL to a public documnetation, which addresses resolving this issue.
5045+ string documentation_url = 5 ;
5046+
5047+ // The description of the issue.
5048+ string description = 6 ;
5049+ }
5050+
5051+ // CheckAutopilotCompatibilityResponse has a list of compatibility issues.
5052+ message CheckAutopilotCompatibilityResponse {
5053+ // The list of issues for the given operation.
5054+ repeated AutopilotCompatibilityIssue issues = 1 ;
5055+
5056+ // The summary of the autopilot compatibility response.
5057+ string summary = 2 ;
5058+ }
5059+
49565060// ReleaseChannel indicates which release channel a cluster is
49575061// subscribed to. Release channels are arranged in order of risk.
49585062//
0 commit comments