Class: Google::Cloud::Container::V1beta1::NodePool

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/container/v1beta1/cluster_service.rb

Overview

NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.

Defined Under Namespace

Modules: Status Classes: PlacementPolicy, QueuedProvisioning, UpdateInfo, UpgradeSettings

Instance Attribute Summary collapse

Instance Attribute Details

#autoscaling::Google::Cloud::Container::V1beta1::NodePoolAutoscaling

Returns Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#best_effort_provisioning::Google::Cloud::Container::V1beta1::BestEffortProvisioning

Returns Enable best effort provisioning for nodes.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#conditions::Array<::Google::Cloud::Container::V1beta1::StatusCondition>

Returns Which conditions caused the current node pool state.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#config::Google::Cloud::Container::V1beta1::NodeConfig

Returns The node configuration of the pool.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#etag::String

Returns This checksum is computed by the server based on the value of node pool fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.

Returns:

  • (::String)

    This checksum is computed by the server based on the value of node pool fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#initial_node_count::Integer

Returns The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.

Returns:

  • (::Integer)

    The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#instance_group_urls::Array<::String> (readonly)

Returns Output only. The resource URLs of the managed instance groups associated with this node pool. During the node pool blue-green upgrade operation, the URLs contain both blue and green resources.

Returns:

  • (::Array<::String>)

    Output only. The resource URLs of the managed instance groups associated with this node pool. During the node pool blue-green upgrade operation, the URLs contain both blue and green resources.



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#locations::Array<::String>

Returns The list of Google Compute Engine zones in which the NodePool's nodes should be located.

If this value is unspecified during node pool creation, the Cluster.Locations value will be used, instead.

Warning: changing node pool locations will result in nodes being added and/or removed.

Returns:

  • (::Array<::String>)

    The list of Google Compute Engine zones in which the NodePool's nodes should be located.

    If this value is unspecified during node pool creation, the Cluster.Locations value will be used, instead.

    Warning: changing node pool locations will result in nodes being added and/or removed.



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#management::Google::Cloud::Container::V1beta1::NodeManagement

Returns NodeManagement configuration for this NodePool.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#max_pods_constraint::Google::Cloud::Container::V1beta1::MaxPodsConstraint

Returns The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#name::String

Returns The name of the node pool.

Returns:

  • (::String)

    The name of the node pool.



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#network_config::Google::Cloud::Container::V1beta1::NodeNetworkConfig

Returns Networking configuration for this NodePool. If specified, it overrides the cluster-level defaults.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#placement_policy::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy

Returns Specifies the node placement policy.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#pod_ipv4_cidr_size::Integer (readonly)

Returns Output only. The pod CIDR block size per node in this node pool.

Returns:

  • (::Integer)

    Output only. The pod CIDR block size per node in this node pool.



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#queued_provisioning::Google::Cloud::Container::V1beta1::NodePool::QueuedProvisioning

Returns Specifies the configuration of queued provisioning.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

Returns Output only. Server-defined URL for the resource.

Returns:

  • (::String)

    Output only. Server-defined URL for the resource.



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#status::Google::Cloud::Container::V1beta1::NodePool::Status (readonly)

Returns Output only. The status of the nodes in this pool instance.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#status_message::String (readonly)

Deprecated.

This field is deprecated and may be removed in the next major version update.

Returns Output only. Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available.

Returns:

  • (::String)

    Output only. Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available.



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#update_info::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo (readonly)

Returns Output only. Update info contains relevant information during a node pool update.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#upgrade_settings::Google::Cloud::Container::V1beta1::NodePool::UpgradeSettings

Returns Upgrade settings control disruption and speed of the upgrade.

Returns:



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end

#version::String

Returns The version of Kubernetes running on this NodePool's nodes. If unspecified, it defaults as described here.

Returns:

  • (::String)

    The version of Kubernetes running on this NodePool's nodes. If unspecified, it defaults as described here.



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 4002

class NodePool
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # These upgrade settings control the level of parallelism and the level of
  # disruption caused by an upgrade.
  #
  # maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  #
  # maxSurge controls the number of additional nodes that can be added to the
  # node pool temporarily for the time of the upgrade to increase the number of
  # available nodes.
  #
  # (maxUnavailable + maxSurge) determines the level of parallelism (how many
  # nodes are being upgraded at the same time).
  #
  # Note: upgrades inevitably introduce some disruption since workloads need to
  # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  # this holds true. (Disruption stays within the limits of
  # PodDisruptionBudget, if it is configured.)
  #
  # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
  # there are always at least 4 nodes available.
  #
  # These upgrade settings configure the upgrade strategy for the node pool.
  # Use strategy to switch between the strategies applied to the node pool.
  #
  # If the strategy is SURGE, use max_surge and max_unavailable to control
  # the level of parallelism and the level of disruption caused by upgrade.
  # 1. maxSurge controls the number of additional nodes that can be added to
  # the node pool temporarily for the time of the upgrade to increase the
  # number of available nodes.
  # 2. maxUnavailable controls the number of nodes that can be simultaneously
  # unavailable.
  # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
  # many nodes are being upgraded at the same time).
  #
  # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
  # blue-green upgrade related settings.
  # 1. standard_rollout_policy is the default policy. The policy is used to
  # control the way blue pool gets drained. The draining is executed in the
  # batch mode. The batch size could be specified as either percentage of the
  # node pool size or the number of nodes. batch_soak_duration is the soak
  # time after each batch gets drained.
  # 2. node_pool_soak_duration is the soak time after all blue nodes are
  # drained. After this period, the blue pool nodes will be deleted.
  # @!attribute [rw] max_surge
  #   @return [::Integer]
  #     The maximum number of nodes that can be created beyond the current size
  #     of the node pool during the upgrade process.
  # @!attribute [rw] max_unavailable
  #   @return [::Integer]
  #     The maximum number of nodes that can be simultaneously unavailable during
  #     the upgrade process. A node is considered available if its status is
  #     Ready.
  # @!attribute [rw] strategy
  #   @return [::Google::Cloud::Container::V1beta1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1beta1::BlueGreenSettings]
  #     Settings for blue-green upgrade strategy.
  class UpgradeSettings
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # UpdateInfo contains resource (instance groups, etc), status and other
  # intermediate information relevant to a node pool upgrade.
  # @!attribute [rw] blue_green_info
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo]
  #     Information of a blue-green upgrade.
  class UpdateInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information relevant to blue-green upgrade.
    # @!attribute [rw] phase
    #   @return [::Google::Cloud::Container::V1beta1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
    #     Current blue-green upgrade phase.
    # @!attribute [rw] blue_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with blue pool.
    # @!attribute [rw] green_instance_group_urls
    #   @return [::Array<::String>]
    #     The resource URLs of the [managed instance groups]
    #     (/compute/docs/instance-groups/creating-groups-of-managed-instances)
    #     associated with green pool.
    # @!attribute [rw] blue_pool_deletion_start_time
    #   @return [::String]
    #     Time to start deleting blue pool to complete blue-green upgrade,
    #     in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    # @!attribute [rw] green_pool_version
    #   @return [::String]
    #     Version of green pool.
    class BlueGreenInfo
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods

      # Phase represents the different stages blue-green upgrade is running in.
      module Phase
        # Unspecified phase.
        PHASE_UNSPECIFIED = 0

        # blue-green upgrade has been initiated.
        UPDATE_STARTED = 1

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

        # Start waiting after cordoning the blue pool and before draining it.
        WAITING_TO_DRAIN_BLUE_POOL = 8

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

        # Start soaking time after draining entire blue pool.
        NODE_POOL_SOAKING = 5

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

        # Rollback has been initiated.
        ROLLBACK_STARTED = 7
      end
    end
  end

  # PlacementPolicy defines the placement policy used by the node pool.
  # @!attribute [rw] type
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     TPU placement topology for pod slice node pool.
  #     https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  # @!attribute [rw] policy_name
  #   @return [::String]
  #     If set, refers to the name of a custom resource policy supplied by the
  #     user. The resource policy must be in the same project and region as the
  #     node pool. If not found, InvalidArgument error is returned.
  class PlacementPolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Type defines the type of placement policy.
    module Type
      # TYPE_UNSPECIFIED specifies no requirements on nodes
      # placement.
      TYPE_UNSPECIFIED = 0

      # COMPACT specifies node placement in the same availability domain to
      # ensure low communication latency.
      COMPACT = 1
    end
  end

  # QueuedProvisioning defines the queued provisioning used by the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Denotes that this nodepool is QRM specific, meaning nodes can be only
  #     obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  #     API.
  class QueuedProvisioning
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The current status of the node pool instance.
  module Status
    # Not set.
    STATUS_UNSPECIFIED = 0

    # The PROVISIONING state indicates the node pool is being created.
    PROVISIONING = 1

    # The RUNNING state indicates the node pool has been created
    # and is fully usable.
    RUNNING = 2

    # The RUNNING_WITH_ERROR state indicates the node pool has been created
    # and is partially usable. Some error state has occurred and some
    # functionality may be impaired. Customer may need to reissue a request
    # or trigger a new update.
    RUNNING_WITH_ERROR = 3

    # The RECONCILING state indicates that some work is actively being done on
    # the node pool, such as upgrading node software. Details can
    # be found in the `statusMessage` field.
    RECONCILING = 4

    # The STOPPING state indicates the node pool is being deleted.
    STOPPING = 5

    # The ERROR state indicates the node pool may be unusable. Details
    # can be found in the `statusMessage` field.
    ERROR = 6
  end
end