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

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

Overview

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

Defined Under Namespace

Modules: Status Classes: ExclusionUntilEndOfSupport, NodeDrainConfig, NodePoolMaintenancePolicy, PlacementPolicy, QueuedProvisioning, UpdateInfo, UpgradeSettings

Instance Attribute Summary collapse

Instance Attribute Details

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

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

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

Returns Enable best effort provisioning for nodes.

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

Returns Which conditions caused the current node pool state.

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

Returns The node configuration of the pool.

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

#etag::String

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

Returns:

  • (::String)

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



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

#initial_node_count::Integer

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

Returns:

  • (::Integer)

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



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

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

Returns:

  • (::Array<::String>)

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



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

#locations::Array<::String>

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

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

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

Returns:

  • (::Array<::String>)

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

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

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



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

#maintenance_policy::Google::Cloud::Container::V1beta1::NodePool::NodePoolMaintenancePolicy

Returns Optional. Specifies the maintenance policy for the node pool.

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

Returns NodeManagement configuration for this NodePool.

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

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

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

#name::String

Returns The name of the node pool.

Returns:

  • (::String)

    The name of the node pool.



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

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

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

#node_drain_config::Google::Cloud::Container::V1beta1::NodePool::NodeDrainConfig

Returns Specifies the node drain configuration for this node pool.

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

Returns Specifies the node placement policy.

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

#pod_ipv4_cidr_size::Integer (readonly)

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

Returns:

  • (::Integer)

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



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

Returns Specifies the configuration of queued provisioning.

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

Returns:

  • (::String)

    Output only. Server-defined URL for the resource.



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

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

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

#status_message::String (readonly)

Deprecated.

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

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

Returns:

  • (::String)

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



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

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

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

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

Returns Upgrade settings control disruption and speed of the upgrade.

Returns:



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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

#version::String

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

Returns:

  • (::String)

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



5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
# File 'proto_docs/google/container/v1beta1/cluster_service.rb', line 5614

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

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

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

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

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

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

        # Start creating green pool nodes.
        CREATING_GREEN_POOL = 2

        # Start cordoning blue pool nodes.
        CORDONING_BLUE_POOL = 3

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

        # Start draining blue pool nodes.
        DRAINING_BLUE_POOL = 4

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

        # Start deleting blue nodes.
        DELETING_BLUE_POOL = 6

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

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

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

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

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

  # NodeDrainConfig contains the node drain related configurations for this
  # node pool.
  # @!attribute [rw] pdb_timeout_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the PDB timeout period for node drain.
  # @!attribute [rw] grace_termination_duration
  #   @return [::Google::Protobuf::Duration]
  #     The duration of the grace termination period for node drain.
  # @!attribute [rw] respect_pdb_during_node_pool_deletion
  #   @return [::Boolean]
  #     Whether to respect PDB during node pool deletion.
  class NodeDrainConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance exclusion for the node pool.
  # @!attribute [rw] enabled
  #   @return [::Boolean]
  #     Optional. Indicates whether the exclusion is enabled.
  # @!attribute [r] start_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The start time of the maintenance exclusion. It is output
  #     only. It is the exclusion creation time.
  # @!attribute [r] end_time
  #   @return [::Google::Protobuf::Timestamp]
  #     Output only. The end time of the maintenance exclusion. It is output
  #     only. It is the cluster control plane version's end of support time, or
  #     end of extended support time when the cluster is on extended support
  #     channel.
  class ExclusionUntilEndOfSupport
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Defines the maintenance policy for the node pool.
  # @!attribute [rw] exclusion_until_end_of_support
  #   @return [::Google::Cloud::Container::V1beta1::NodePool::ExclusionUntilEndOfSupport]
  #     Optional. The exclusion until end of support for the node pool.
  class NodePoolMaintenancePolicy
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

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

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

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

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

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

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

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