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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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.



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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.



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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.



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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.



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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.



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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.



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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.



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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.



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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:



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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.



5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5078

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