class Google::Apis::ContainerV1::Cluster
A Google
Kubernetes Engine cluster.
Attributes
Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. Corresponds to the JSON property `addonsConfig` @return [Google::Apis::ContainerV1::AddonsConfig]
Configuration for returning group information from authenticators. Corresponds to the JSON property `authenticatorGroupsConfig` @return [Google::Apis::ContainerV1::AuthenticatorGroupsConfig]
ClusterAutoscaling
contains global, per-cluster information required by Cluster
Autoscaler to automatically adjust the size of the cluster and create/ delete node pools based on the current needs. Corresponds to the JSON property `autoscaling` @return [Google::Apis::ContainerV1::ClusterAutoscaling]
The IP address range of the container pods in this cluster, in [CIDR](http:// en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0. 0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`. Corresponds to the JSON property `clusterIpv4Cidr` @return [String]
Which conditions caused the current cluster state. Corresponds to the JSON property `conditions` @return [Array<Google::Apis::ContainerV1::StatusCondition>]
ConfidentialNodes
is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Corresponds to the JSON property `confidentialNodes` @return [Google::Apis::ContainerV1::ConfidentialNodes]
- Output only
-
The time the cluster was created, in [RFC3339](www.ietf.
org/rfc/rfc3339.txt) text format. Corresponds to the JSON property `createTime` @return [String]
- Output only
-
The current software version of the master endpoint.
Corresponds to the JSON property `currentMasterVersion` @return [String]
- Output only
-
The number of nodes currently in the cluster. Deprecated. Call
Kubernetes API directly to retrieve node information. Corresponds to the JSON property `currentNodeCount` @return [Fixnum]
- Output only
-
Deprecated, use [NodePools.version](cloud.google.com/
kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools) instead. The current version of the node software components. If they are currently at multiple versions because they're in the process of being upgraded, this reflects the minimum version of all nodes. Corresponds to the JSON property `currentNodeVersion` @return [String]
Configuration of etcd encryption. Corresponds to the JSON property `databaseEncryption` @return [Google::Apis::ContainerV1::DatabaseEncryption]
Constraints applied to pods. Corresponds to the JSON property `defaultMaxPodsConstraint` @return [Google::Apis::ContainerV1::MaxPodsConstraint]
An optional description of this cluster. Corresponds to the JSON property `description` @return [String]
Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation. Corresponds to the JSON property `enableKubernetesAlpha` @return [Boolean]
Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation. Corresponds to the JSON property `enableKubernetesAlpha` @return [Boolean]
Enable the ability to use Cloud TPUs in this cluster. Corresponds to the JSON property `enableTpu` @return [Boolean]
Enable the ability to use Cloud TPUs in this cluster. Corresponds to the JSON property `enableTpu` @return [Boolean]
- Output only
-
The IP address of this cluster's master endpoint. The endpoint
can be accessed from the internet at `username:password@endpoint/`. See the `masterAuth` property of this resource for username and password information. Corresponds to the JSON property `endpoint` @return [String]
- Output only
-
The time the cluster will be automatically deleted in [RFC3339](
www.ietf.org/rfc/rfc3339.txt) text format. Corresponds to the JSON property `expireTime` @return [String]
Output only. Unique id for the cluster. Corresponds to the JSON property `id` @return [String]
The initial Kubernetes version for this cluster. Valid versions are those found in validMasterVersions returned by getServerConfig. The version can be upgraded over time; such upgrades are reflected in currentMasterVersion and currentNodeVersion. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - “ latest”: picks the highest valid Kubernetes version - “1.X”: picks the highest valid patch+gke.N patch in the 1.X version - “1.X.Y”: picks the highest valid gke.N patch in the 1.X.Y version - “1.X.Y-gke.N”: picks an explicit Kubernetes version - “”,“-”: picks the default Kubernetes version Corresponds to the JSON property `initialClusterVersion` @return [String]
The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource quota](cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a “ node_pool” object, since this configuration (along with the “node_config”) will be used to create a “NodePool” object with an auto-generated name. Do not use this and a node_pool at the same time. This field is deprecated, use node_pool.initial_node_count instead. Corresponds to the JSON property `initialNodeCount` @return [Fixnum]
Deprecated. Use node_pools.instance_group_urls. Corresponds to the JSON property `instanceGroupUrls` @return [Array<String>]
Configuration for controlling how IPs are allocated in the cluster. Corresponds to the JSON property `ipAllocationPolicy` @return [Google::Apis::ContainerV1::IpAllocationPolicy]
The fingerprint of the set of labels for this cluster. Corresponds to the JSON property `labelFingerprint` @return [String]
Configuration for the legacy Attribute Based Access Control authorization mode. Corresponds to the JSON property `legacyAbac` @return [Google::Apis::ContainerV1::LegacyAbac]
google.com/compute/docs/regions-zones/regions-zones#available) or [region]( cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides. Corresponds to the JSON property `location` @return [String]
The list of Google
Compute Engine [zones](cloud.google.com/compute/ docs/zones#available) in which the cluster's nodes should be located. This field provides a default value if [NodePool.Locations](cloud.google. com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters. nodePools#NodePool.FIELDS.locations) are not specified during node pool creation. Warning: changing cluster locations will update the [NodePool. Locations](cloud.google.com/kubernetes-engine/docs/reference/rest/v1/ projects.locations.clusters.nodePools#NodePool.FIELDS.locations) of all node pools and will result in nodes being added and/or removed. Corresponds to the JSON property `locations` @return [Array<String>]
LoggingConfig
is cluster logging configuration. Corresponds to the JSON property `loggingConfig` @return [Google::Apis::ContainerV1::LoggingConfig]
The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging. googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis. com` for earlier versions. Corresponds to the JSON property `loggingService` @return [String]
MaintenancePolicy
defines the maintenance policy to be used for the cluster. Corresponds to the JSON property `maintenancePolicy` @return [Google::Apis::ContainerV1::MaintenancePolicy]
The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates. Corresponds to the JSON property `masterAuth` @return [Google::Apis::ContainerV1::MasterAuth]
MonitoringConfig
is cluster monitoring configuration. Corresponds to the JSON property `monitoringConfig` @return [Google::Apis::ContainerV1::MonitoringConfig]
The monitoring service the cluster should use to write metrics. Currently available options: * “monitoring.googleapis.com/kubernetes” - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring. googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions. Corresponds to the JSON property `monitoringService` @return [String]
The name of this cluster. The name must be unique within this project and location (e.g. zone or region), and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter. Corresponds to the JSON property `name` @return [String]
The name of the Google
Compute Engine [network](cloud.google.com/ compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used. Corresponds to the JSON property `network` @return [String]
NetworkConfig
reports the relative names of network & subnetwork. Corresponds to the JSON property `networkConfig` @return [Google::Apis::ContainerV1::NetworkConfig]
Configuration options for the NetworkPolicy
feature. kubernetes.io/ docs/concepts/services-networking/networkpolicies/ Corresponds to the JSON property `networkPolicy` @return [Google::Apis::ContainerV1::NetworkPolicy]
Parameters that describe the nodes in a cluster. Corresponds to the JSON property `nodeConfig` @return [Google::Apis::ContainerV1::NodeConfig]
- Output only
-
The size of the address space on each node for hosting
containers. This is provisioned from within the `container_ipv4_cidr` range. This field will only be set when cluster is in route-based network mode. Corresponds to the JSON property `nodeIpv4CidrSize` @return [Fixnum]
The node pools associated with this cluster. This field should not be set if “ node_config
” or “initial_node_count” are specified. Corresponds to the JSON property `nodePools` @return [Array<Google::Apis::ContainerV1::NodePool>]
NotificationConfig
is the configuration of notifications. Corresponds to the JSON property `notificationConfig` @return [Google::Apis::ContainerV1::NotificationConfig]
Configuration options for private clusters. Corresponds to the JSON property `privateClusterConfig` @return [Google::Apis::ContainerV1::PrivateClusterConfig]
ReleaseChannel
indicates which release channel a cluster is subscribed to. Release channels are arranged in order of risk. When a cluster is subscribed to a release channel, Google
maintains both the master version and the node version. Node auto-upgrade defaults to true and cannot be disabled. Corresponds to the JSON property `releaseChannel` @return [Google::Apis::ContainerV1::ReleaseChannel]
The resource labels for the cluster to use to annotate any related Google
Compute Engine resources. Corresponds to the JSON property `resourceLabels` @return [Hash<String,String>]
Configuration for exporting cluster resource usages. Corresponds to the JSON property `resourceUsageExportConfig` @return [Google::Apis::ContainerV1::ResourceUsageExportConfig]
- Output only
-
Server-defined URL for the resource.
Corresponds to the JSON property `selfLink` @return [String]
- Output only
-
The IP address range of the Kubernetes services in this cluster,
in [CIDR](en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last ` /16` from the container CIDR. Corresponds to the JSON property `servicesIpv4Cidr` @return [String]
Configuration of Shielded Nodes feature. Corresponds to the JSON property `shieldedNodes` @return [Google::Apis::ContainerV1::ShieldedNodes]
- Output only
-
The current status of this cluster.
Corresponds to the JSON property `status` @return [String]
- Output only
-
Deprecated. Use conditions instead. Additional information about
the current status of this cluster, if available. Corresponds to the JSON property `statusMessage` @return [String]
The name of the Google
Compute Engine [subnetwork](cloud.google.com/ compute/docs/subnetworks) to which the cluster is connected. Corresponds to the JSON property `subnetwork` @return [String]
- Output only
-
The IP address range of the Cloud TPUs in this cluster, in [CIDR]
(en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. ` 1.2.3.4/29`). Corresponds to the JSON property `tpuIpv4CidrBlock` @return [String]
VerticalPodAutoscaling
contains global, per-cluster information required by Vertical Pod Autoscaler to automatically adjust the resources of pods controlled by it. Corresponds to the JSON property `verticalPodAutoscaling` @return [Google::Apis::ContainerV1::VerticalPodAutoscaling]
Configuration for the use of Kubernetes Service Accounts in GCP IAM policies. Corresponds to the JSON property `workloadIdentityConfig` @return [Google::Apis::ContainerV1::WorkloadIdentityConfig]
Public Class Methods
# File lib/google/apis/container_v1/classes.rb, line 841 def initialize(**args) update!(**args) end
Public Instance Methods
Update properties of this object
# File lib/google/apis/container_v1/classes.rb, line 846 def update!(**args) @addons_config = args[:addons_config] if args.key?(:addons_config) @authenticator_groups_config = args[:authenticator_groups_config] if args.key?(:authenticator_groups_config) @autopilot = args[:autopilot] if args.key?(:autopilot) @autoscaling = args[:autoscaling] if args.key?(:autoscaling) @binary_authorization = args[:binary_authorization] if args.key?(:binary_authorization) @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr) @conditions = args[:conditions] if args.key?(:conditions) @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes) @create_time = args[:create_time] if args.key?(:create_time) @current_master_version = args[:current_master_version] if args.key?(:current_master_version) @current_node_count = args[:current_node_count] if args.key?(:current_node_count) @current_node_version = args[:current_node_version] if args.key?(:current_node_version) @database_encryption = args[:database_encryption] if args.key?(:database_encryption) @default_max_pods_constraint = args[:default_max_pods_constraint] if args.key?(:default_max_pods_constraint) @description = args[:description] if args.key?(:description) @enable_kubernetes_alpha = args[:enable_kubernetes_alpha] if args.key?(:enable_kubernetes_alpha) @enable_tpu = args[:enable_tpu] if args.key?(:enable_tpu) @endpoint = args[:endpoint] if args.key?(:endpoint) @expire_time = args[:expire_time] if args.key?(:expire_time) @id = args[:id] if args.key?(:id) @initial_cluster_version = args[:initial_cluster_version] if args.key?(:initial_cluster_version) @initial_node_count = args[:initial_node_count] if args.key?(:initial_node_count) @instance_group_urls = args[:instance_group_urls] if args.key?(:instance_group_urls) @ip_allocation_policy = args[:ip_allocation_policy] if args.key?(:ip_allocation_policy) @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint) @legacy_abac = args[:legacy_abac] if args.key?(:legacy_abac) @location = args[:location] if args.key?(:location) @locations = args[:locations] if args.key?(:locations) @logging_config = args[:logging_config] if args.key?(:logging_config) @logging_service = args[:logging_service] if args.key?(:logging_service) @maintenance_policy = args[:maintenance_policy] if args.key?(:maintenance_policy) @master_auth = args[:master_auth] if args.key?(:master_auth) @master_authorized_networks_config = args[:master_authorized_networks_config] if args.key?(:master_authorized_networks_config) @monitoring_config = args[:monitoring_config] if args.key?(:monitoring_config) @monitoring_service = args[:monitoring_service] if args.key?(:monitoring_service) @name = args[:name] if args.key?(:name) @network = args[:network] if args.key?(:network) @network_config = args[:network_config] if args.key?(:network_config) @network_policy = args[:network_policy] if args.key?(:network_policy) @node_config = args[:node_config] if args.key?(:node_config) @node_ipv4_cidr_size = args[:node_ipv4_cidr_size] if args.key?(:node_ipv4_cidr_size) @node_pools = args[:node_pools] if args.key?(:node_pools) @notification_config = args[:notification_config] if args.key?(:notification_config) @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config) @release_channel = args[:release_channel] if args.key?(:release_channel) @resource_labels = args[:resource_labels] if args.key?(:resource_labels) @resource_usage_export_config = args[:resource_usage_export_config] if args.key?(:resource_usage_export_config) @self_link = args[:self_link] if args.key?(:self_link) @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr) @shielded_nodes = args[:shielded_nodes] if args.key?(:shielded_nodes) @status = args[:status] if args.key?(:status) @status_message = args[:status_message] if args.key?(:status_message) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block) @vertical_pod_autoscaling = args[:vertical_pod_autoscaling] if args.key?(:vertical_pod_autoscaling) @workload_identity_config = args[:workload_identity_config] if args.key?(:workload_identity_config) @zone = args[:zone] if args.key?(:zone) end