@@ -828,6 +828,10 @@ message NodeConfig {
828828
829829 // Parameters for node pools to be backed by shared sole tenant node groups.
830830 SoleTenantConfig sole_tenant_config = 42 ;
831+
832+ // HostMaintenancePolicy contains the desired maintenance policy for the
833+ // Google Compute Engine hosts.
834+ HostMaintenancePolicy host_maintenance_policy = 44 ;
831835}
832836
833837// Specifies options for controlling advanced machine features.
@@ -922,13 +926,45 @@ message NodeNetworkConfig {
922926 // overprovisioning is disabled.
923927 PodCIDROverprovisionConfig pod_cidr_overprovision_config = 13 ;
924928
929+ // We specify the additional node networks for this node pool using this list.
930+ // Each node network corresponds to an additional interface
931+ repeated AdditionalNodeNetworkConfig additional_node_network_configs = 14 ;
932+
933+ // We specify the additional pod networks for this node pool using this list.
934+ // Each pod network corresponds to an additional alias IP range for the node
935+ repeated AdditionalPodNetworkConfig additional_pod_network_configs = 15 ;
936+
925937 // Output only. [Output only] The utilization of the IPv4 range for the pod.
926938 // The ratio is Usage/[Total number of IPs in the secondary range],
927939 // Usage=numNodes*numZones*podIPsPerNode.
928940 double pod_ipv4_range_utilization = 16
929941 [(google.api.field_behavior ) = OUTPUT_ONLY ];
930942}
931943
944+ // AdditionalNodeNetworkConfig is the configuration for additional node networks
945+ // within the NodeNetworkConfig message
946+ message AdditionalNodeNetworkConfig {
947+ // Name of the VPC where the additional interface belongs
948+ string network = 1 ;
949+
950+ // Name of the subnetwork where the additional interface belongs
951+ string subnetwork = 2 ;
952+ }
953+
954+ // AdditionalPodNetworkConfig is the configuration for additional pod networks
955+ // within the NodeNetworkConfig message
956+ message AdditionalPodNetworkConfig {
957+ // Name of the subnetwork where the additional pod network belongs
958+ string subnetwork = 1 ;
959+
960+ // The name of the secondary range on the subnet which provides IP address for
961+ // this pod range
962+ string secondary_pod_range = 2 ;
963+
964+ // The maximum number of pods per node which use this pod network
965+ optional MaxPodsConstraint max_pods_per_node = 3 ;
966+ }
967+
932968// A set of Shielded Instance options.
933969message ShieldedInstanceConfig {
934970 // Defines whether the instance has Secure Boot enabled.
@@ -1073,6 +1109,33 @@ message SoleTenantConfig {
10731109 repeated NodeAffinity node_affinities = 1 ;
10741110}
10751111
1112+ // HostMaintenancePolicy contains the maintenance policy for the hosts on which
1113+ // the GKE VMs run on.
1114+ message HostMaintenancePolicy {
1115+ // Allows selecting how infrastructure upgrades should be applied to the
1116+ // cluster or node pool.
1117+ enum MaintenanceInterval {
1118+ // The maintenance interval is not explicitly specified.
1119+ MAINTENANCE_INTERVAL_UNSPECIFIED = 0 ;
1120+
1121+ // Nodes are eligible to receive infrastructure and hypervisor updates as
1122+ // they become available. This may result in more maintenance operations
1123+ // (live migrations or terminations) for the node than the PERIODIC option.
1124+ AS_NEEDED = 1 ;
1125+
1126+ // Nodes receive infrastructure and hypervisor updates on a periodic basis,
1127+ // minimizing the number of maintenance operations (live migrations or
1128+ // terminations) on an individual VM. This may mean underlying VMs will
1129+ // take longer to receive an update than if it was configured for
1130+ // AS_NEEDED. Security updates will still be applied as soon
1131+ // as they are available.
1132+ PERIODIC = 2 ;
1133+ }
1134+
1135+ // Specifies the frequency of planned maintenance events.
1136+ optional MaintenanceInterval maintenance_interval = 1 ;
1137+ }
1138+
10761139// Kubernetes taint is composed of three fields: key, value, and effect. Effect
10771140// can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.
10781141//
@@ -2222,6 +2285,10 @@ message NodeConfigDefaults {
22222285
22232286 // Logging configuration for node pools.
22242287 NodePoolLoggingConfig logging_config = 3 ;
2288+
2289+ // HostMaintenancePolicy contains the desired maintenance policy for the
2290+ // Google Compute Engine hosts.
2291+ HostMaintenancePolicy host_maintenance_policy = 5 ;
22252292}
22262293
22272294// node pool configs that apply to all auto-provisioned node pools
@@ -2472,6 +2539,10 @@ message ClusterUpdate {
24722539
24732540 // Beta APIs enabled for cluster.
24742541 K8sBetaAPIConfig desired_k8s_beta_apis = 131 ;
2542+
2543+ // HostMaintenancePolicy contains the desired maintenance policy for the
2544+ // Google Compute Engine hosts.
2545+ HostMaintenancePolicy desired_host_maintenance_policy = 132 ;
24752546}
24762547
24772548// AdditionalPodRangesConfig is the configuration for additional pod secondary
@@ -3741,6 +3812,11 @@ message NodePool {
37413812 // TPU placement topology for pod slice node pool.
37423813 // https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
37433814 string tpu_topology = 2 ;
3815+
3816+ // If set, refers to the name of a custom resource policy supplied by the
3817+ // user. The resource policy must be in the same project and region as the
3818+ // node pool. If not found, InvalidArgument error is returned.
3819+ string policy_name = 3 ;
37443820 }
37453821
37463822 // The name of the node pool.
@@ -4722,6 +4798,9 @@ message NetworkConfig {
47224798 // cluster.
47234799 GatewayAPIConfig gateway_api_config = 16 ;
47244800
4801+ // Whether multi-networking is enabled for this cluster.
4802+ bool enable_multi_networking = 17 ;
4803+
47254804 // Network bandwidth tier configuration.
47264805 ClusterNetworkPerformanceConfig network_performance_config = 18 ;
47274806
0 commit comments