Class: Google::Cloud::Container::V1::NodePool

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/container/v1/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, UpdateInfo, UpgradeSettings

Instance Attribute Summary collapse

Instance Attribute Details

#autoscaling::Google::Cloud::Container::V1::NodePoolAutoscaling

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

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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::V1::BestEffortProvisioning

Returns Enable best effort provisioning for nodes.

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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::V1::StatusCondition>

Returns Which conditions caused the current node pool state.

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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::V1::NodeConfig

Returns The node configuration of the pool.

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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.



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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.



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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>

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.



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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.



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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::V1::NodeManagement

Returns NodeManagement configuration for this NodePool.

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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::V1::MaxPodsConstraint

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

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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.



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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::V1::NodeNetworkConfig

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

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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::V1::NodePool::PlacementPolicy

Returns Specifies the node placement policy.

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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

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.



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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.



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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::V1::NodePool::Status

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

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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

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.



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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::V1::NodePool::UpdateInfo (readonly)

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

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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::V1::NodePool::UpgradeSettings

Returns Upgrade settings control disruption and speed of the upgrade.

Returns:



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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.



3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
# File 'proto_docs/google/container/v1/cluster_service.rb', line 3165

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 ROLLING, 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::V1::NodePoolUpdateStrategy]
  #     Update strategy of the node pool.
  # @!attribute [rw] blue_green_settings
  #   @return [::Google::Cloud::Container::V1::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::V1::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::V1::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 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::V1::NodePool::PlacementPolicy::Type]
  #     The type of placement.
  # @!attribute [rw] tpu_topology
  #   @return [::String]
  #     Optional. 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

  # 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