mmv1/products/gkeonprem/BareMetalCluster.yaml (981 lines of code) (raw):
# Copyright 2024 Google Inc.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
name: 'BareMetalCluster'
description: "A Google Bare Metal User Cluster."
docs:
id_format: 'projects/{{project}}/locations/{{location}}/bareMetalClusters/{{name}}'
base_url: 'projects/{{project}}/locations/{{location}}/bareMetalClusters'
self_link: 'projects/{{project}}/locations/{{location}}/bareMetalClusters/{{name}}'
create_url: 'projects/{{project}}/locations/{{location}}/bareMetalClusters?bare_metal_cluster_id={{name}}'
update_url: 'projects/{{project}}/locations/{{location}}/bareMetalClusters/{{name}}'
update_verb: 'PATCH'
update_mask: true
delete_url: 'projects/{{project}}/locations/{{location}}/bareMetalClusters/{{name}}?force=true'
import_format:
- 'projects/{{project}}/locations/{{location}}/bareMetalClusters/{{name}}'
timeouts:
insert_minutes: 60
update_minutes: 60
delete_minutes: 60
async:
actions: ['create', 'delete', 'update']
type: 'OpAsync'
operation:
base_url: '{{op_id}}'
result:
resource_inside_response: true
custom_code:
taint_resource_on_failed_create: true
sweeper:
url_substitutions:
- region: "us-west1"
examples:
- name: 'gkeonprem_bare_metal_cluster_basic'
primary_resource_id: 'cluster-basic'
vars:
name: 'my-cluster'
test_env_vars:
project: 'fake-backend-360322'
- name: 'gkeonprem_bare_metal_cluster_manuallb'
primary_resource_id: 'cluster-manuallb'
vars:
name: 'cluster-manuallb'
test_env_vars:
project: 'fake-backend-360322'
- name: 'gkeonprem_bare_metal_cluster_bgplb'
primary_resource_id: 'cluster-bgplb'
vars:
name: 'cluster-bgplb'
test_env_vars:
project: 'fake-backend-360322'
parameters:
- name: 'name'
type: String
description: The bare metal cluster name.
url_param_only: true
required: true
immutable: true
- name: 'location'
type: String
description: The location of the resource.
url_param_only: true
required: true
immutable: true
properties:
- name: 'adminClusterMembership'
type: String
description: |
The Admin Cluster this Bare Metal User Cluster belongs to.
This is the full resource name of the Admin Cluster's hub membership.
required: true
immutable: true
diff_suppress_func: 'tpgresource.ProjectNumberDiffSuppress'
- name: 'description'
type: String
description: |
A human readable description of this Bare Metal User Cluster.
- name: 'bareMetalVersion'
type: String
description: |
A human readable description of this Bare Metal User Cluster.
required: true
- name: 'annotations'
type: KeyValueAnnotations
description: |
Annotations on the Bare Metal User Cluster.
This field has the same restrictions as Kubernetes annotations.
The total size of all keys and values combined is limited to 256k.
Key can have 2 segments: prefix (optional) and name (required),
separated by a slash (/).
Prefix must be a DNS subdomain.
Name must be 63 characters or less, begin and end with alphanumerics,
with dashes (-), underscores (_), dots (.), and alphanumerics between.
- name: 'networkConfig'
type: NestedObject
description: |
Network configuration.
required: true
properties:
- name: 'islandModeCidr'
type: NestedObject
exactly_one_of:
- 'network_config.0.island_mode_cidr'
properties:
- name: 'serviceAddressCidrBlocks'
type: Array
description: |
All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
required: true
item_type:
type: String
- name: 'podAddressCidrBlocks'
type: Array
description: |
All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
required: true
item_type:
type: String
- name: 'advancedNetworking'
type: Boolean
description: |
Enables the use of advanced Anthos networking features, such as Bundled
Load Balancing with BGP or the egress NAT gateway.
Setting configuration for advanced networking features will automatically
set this flag.
- name: 'multipleNetworkInterfacesConfig'
type: NestedObject
description: |
Configuration for multiple network interfaces.
properties:
- name: 'enabled'
type: Boolean
description: |
Whether to enable multiple network interfaces for your pods.
When set network_config.advanced_networking is automatically
set to true.
- name: 'srIovConfig'
type: NestedObject
description: |
Configuration for SR-IOV.
properties:
- name: 'enabled'
type: Boolean
description: |
Whether to install the SR-IOV operator.
- name: 'controlPlane'
type: NestedObject
description: |
Specifies the control plane configuration.
required: true
properties:
- name: 'controlPlaneNodePoolConfig'
type: NestedObject
description: |
Configures the node pool running the control plane. If specified the corresponding NodePool will be created for the cluster's control plane. The NodePool will have the same name and namespace as the cluster.
required: true
properties:
- name: 'nodePoolConfig'
type: NestedObject
description: |
The generic configuration for a node pool running the control plane.
required: true
properties:
- name: 'nodeConfigs'
type: Array
description: The list of machine addresses in the Bare Metal Node
Pool.
item_type:
type: NestedObject
properties:
- name: 'nodeIp'
type: String
description: |
The default IPv4 address for SSH access and Kubernetes node.
Example: 192.168.0.1
- name: 'labels'
type: KeyValuePairs
description: |
The map of Kubernetes labels (key/value pairs) to be applied to
each node. These will added in addition to any default label(s)
that Kubernetes may apply to the node. In case of conflict in
label keys, the applied set may differ depending on the Kubernetes
version -- it's best to assume the behavior is undefined and
conflicts should be avoided. For more information, including usage
and the valid values, see:
- http://kubernetes.io/v1.1/docs/user-guide/labels.html
An object containing a list of "key": value pairs.
Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
- name: 'operatingSystem'
type: String
description: |
Specifies the nodes operating system (default: LINUX).
default_value: "LINUX"
- name: 'taints'
type: Array
description: |
The initial taints assigned to nodes of this node pool.
default_from_api: true
item_type:
type: NestedObject
properties:
- name: 'key'
type: String
description: |
Key associated with the effect.
- name: 'value'
type: String
description: |
Value associated with the effect.
- name: 'effect'
type: Enum
description: |
Specifies the nodes operating system (default: LINUX).
enum_values:
- 'EFFECT_UNSPECIFIED'
- 'PREFER_NO_SCHEDULE'
- 'NO_EXECUTE'
- name: 'labels'
type: KeyValuePairs
description: |
The map of Kubernetes labels (key/value pairs) to be applied to
each node. These will added in addition to any default label(s)
that Kubernetes may apply to the node. In case of conflict in
label keys, the applied set may differ depending on the Kubernetes
version -- it's best to assume the behavior is undefined and
conflicts should be avoided. For more information, including usage
and the valid values, see:
- http://kubernetes.io/v1.1/docs/user-guide/labels.html
An object containing a list of "key": value pairs.
For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
default_from_api: true
- name: 'apiServerArgs'
type: Array
description: |
Customizes the default API server args. Only a subset of
customized flags are supported. Please refer to the API server
documentation below to know the exact format:
https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/
item_type:
type: NestedObject
properties:
- name: 'argument'
type: String
description: |
The argument name as it appears on the API Server command line please make sure to remove the leading dashes.
required: true
- name: 'value'
type: String
description: |
The value of the arg as it will be passed to the API Server command line.
required: true
- name: 'loadBalancer'
type: NestedObject
description: |
Specifies the load balancer configuration.
required: true
properties:
- name: 'vipConfig'
type: NestedObject
description: |
Specified the Bare Metal Load Balancer Config
required: true
properties:
- name: 'controlPlaneVip'
type: String
description: The VIP which you previously set aside for the Kubernetes
API of this Bare Metal User Cluster.
required: true
- name: 'ingressVip'
type: String
description: The VIP which you previously set aside for ingress traffic
into this Bare Metal User Cluster.
required: true
- name: 'portConfig'
type: NestedObject
description: |
Specifies the load balancer ports.
required: true
properties:
- name: 'controlPlaneLoadBalancerPort'
type: Integer
description: |
The port that control plane hosted load balancers will listen on.
required: true
- name: 'metalLbConfig'
type: NestedObject
exactly_one_of:
- 'load_balancer.0.metal_lb_config'
- 'load_balancer.0.manual_lb_config'
- 'load_balancer.0.bgp_lb_config'
properties:
- name: 'addressPools'
type: Array
description: |
AddressPools is a list of non-overlapping IP pools used by load balancer
typed services. All addresses must be routable to load balancer nodes.
IngressVIP must be included in the pools.
required: true
item_type:
type: NestedObject
properties:
- name: 'pool'
type: String
description: |
The name of the address pool.
required: true
- name: 'addresses'
type: Array
description: |
The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
required: true
item_type:
type: String
- name: 'avoidBuggyIps'
type: Boolean
description: |
If true, avoid using IPs ending in .0 or .255.
This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
- name: 'manualAssign'
type: Boolean
description: |
If true, prevent IP addresses from being automatically assigned.
- name: 'loadBalancerNodePoolConfig'
type: NestedObject
description: |
Specifies the load balancer's node pool configuration.
properties:
- name: 'nodePoolConfig'
type: NestedObject
description: |
The generic configuration for a node pool running a load balancer.
properties:
- name: 'nodeConfigs'
type: Array
description: The list of machine addresses in the Bare Metal Node
Pool.
item_type:
type: NestedObject
properties:
- name: 'nodeIp'
type: String
description: |
The default IPv4 address for SSH access and Kubernetes node.
Example: 192.168.0.1
- name: 'labels'
type: KeyValuePairs
description: |
The map of Kubernetes labels (key/value pairs) to be applied to
each node. These will added in addition to any default label(s)
that Kubernetes may apply to the node. In case of conflict in
label keys, the applied set may differ depending on the Kubernetes
version -- it's best to assume the behavior is undefined and
conflicts should be avoided. For more information, including usage
and the valid values, see:
- http://kubernetes.io/v1.1/docs/user-guide/labels.html
An object containing a list of "key": value pairs.
For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
- name: 'operatingSystem'
type: String
description: |
Specifies the nodes operating system (default: LINUX).
default_from_api: true
- name: 'taints'
type: Array
description: |
The initial taints assigned to nodes of this node pool.
default_from_api: true
item_type:
type: NestedObject
properties:
- name: 'key'
type: String
description: |
Key associated with the effect.
- name: 'value'
type: String
description: |
Value associated with the effect.
- name: 'effect'
type: Enum
description: |
Specifies the nodes operating system (default: LINUX).
enum_values:
- 'EFFECT_UNSPECIFIED'
- 'PREFER_NO_SCHEDULE'
- 'NO_EXECUTE'
- name: 'labels'
type: KeyValuePairs
description: |
The map of Kubernetes labels (key/value pairs) to be applied to
each node. These will added in addition to any default label(s)
that Kubernetes may apply to the node. In case of conflict in
label keys, the applied set may differ depending on the Kubernetes
version -- it's best to assume the behavior is undefined and
conflicts should be avoided. For more information, including usage
and the valid values, see:
- http://kubernetes.io/v1.1/docs/user-guide/labels.html
An object containing a list of "key": value pairs.
For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
default_from_api: true
- name: 'manualLbConfig'
type: NestedObject
exactly_one_of:
- 'load_balancer.0.metal_lb_config'
- 'load_balancer.0.manual_lb_config'
- 'load_balancer.0.bgp_lb_config'
properties:
- name: 'enabled'
type: Boolean
description: |
Whether manual load balancing is enabled.
required: true
- name: 'bgpLbConfig'
type: NestedObject
description: |
Configuration for BGP typed load balancers.
exactly_one_of:
- 'load_balancer.0.metal_lb_config'
- 'load_balancer.0.manual_lb_config'
- 'load_balancer.0.bgp_lb_config'
properties:
- name: 'asn'
type: Integer
description: |
BGP autonomous system number (ASN) of the cluster.
This field can be updated after cluster creation.
required: true
- name: 'bgpPeerConfigs'
type: Array
description: |
The list of BGP peers that the cluster will connect to.
At least one peer must be configured for each control plane node.
Control plane nodes will connect to these peers to advertise the control
plane VIP. The Services load balancer also uses these peers by default.
This field can be updated after cluster creation.
required: true
item_type:
type: NestedObject
properties:
- name: 'asn'
type: Integer
description: |
BGP autonomous system number (ASN) for the network that contains the
external peer device.
required: true
- name: 'ipAddress'
type: String
description: |
The IP address of the external peer device.
required: true
- name: 'controlPlaneNodes'
type: Array
description: |
The IP address of the control plane node that connects to the external
peer.
If you don't specify any control plane nodes, all control plane nodes
can connect to the external peer. If you specify one or more IP addresses,
only the nodes specified participate in peering sessions.
item_type:
type: String
- name: 'addressPools'
type: Array
description: |
AddressPools is a list of non-overlapping IP pools used by load balancer
typed services. All addresses must be routable to load balancer nodes.
IngressVIP must be included in the pools.
required: true
item_type:
type: NestedObject
properties:
- name: 'pool'
type: String
description: |
The name of the address pool.
required: true
- name: 'addresses'
type: Array
description: |
The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
required: true
item_type:
type: String
- name: 'avoidBuggyIps'
type: Boolean
description: |
If true, avoid using IPs ending in .0 or .255.
This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
- name: 'manualAssign'
type: String
description: |
If true, prevent IP addresses from being automatically assigned.
- name: 'loadBalancerNodePoolConfig'
type: NestedObject
description: |
Specifies the node pool running data plane load balancing. L2 connectivity
is required among nodes in this pool. If missing, the control plane node
pool is used for data plane load balancing.
properties:
- name: 'nodePoolConfig'
type: NestedObject
description: |
The generic configuration for a node pool running a load balancer.
properties:
- name: 'nodeConfigs'
type: Array
description: The list of machine addresses in the Bare Metal Node Pool.
item_type:
type: NestedObject
properties:
- name: 'nodeIp'
type: String
description: |
The default IPv4 address for SSH access and Kubernetes node.
Example: 192.168.0.1
- name: 'labels'
type: KeyValuePairs
description: |
The map of Kubernetes labels (key/value pairs) to be applied to
each node. These will added in addition to any default label(s)
that Kubernetes may apply to the node. In case of conflict in
label keys, the applied set may differ depending on the Kubernetes
version -- it's best to assume the behavior is undefined and
conflicts should be avoided. For more information, including usage
and the valid values, see:
- http://kubernetes.io/v1.1/docs/user-guide/labels.html
An object containing a list of "key": value pairs.
For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
- name: 'operatingSystem'
type: String
description: |
Specifies the nodes operating system (default: LINUX).
- name: 'taints'
type: Array
description: |
The initial taints assigned to nodes of this node pool.
item_type:
type: NestedObject
properties:
- name: 'key'
type: String
description: |
Key associated with the effect.
- name: 'value'
type: String
description: |
Value associated with the effect.
- name: 'effect'
type: Enum
description: |
Specifies the nodes operating system (default: LINUX).
enum_values:
- 'EFFECT_UNSPECIFIED'
- 'PREFER_NO_SCHEDULE'
- 'NO_EXECUTE'
- name: 'labels'
type: KeyValuePairs
description: |
The map of Kubernetes labels (key/value pairs) to be applied to
each node. These will added in addition to any default label(s)
that Kubernetes may apply to the node. In case of conflict in
label keys, the applied set may differ depending on the Kubernetes
version -- it's best to assume the behavior is undefined and
conflicts should be avoided. For more information, including usage
and the valid values, see:
- http://kubernetes.io/v1.1/docs/user-guide/labels.html
An object containing a list of "key": value pairs.
For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
- name: 'kubeletConfig'
type: NestedObject
description: |
The modifiable kubelet configurations for the baremetal machines.
properties:
- name: 'registryPullQps'
type: Integer
description: |
The limit of registry pulls per second.
Setting this value to 0 means no limit.
Updating this field may impact scalability by changing the amount of
traffic produced by image pulls.
Defaults to 5.
default_value: 5
- name: 'registryBurst'
type: Integer
description: |
The maximum size of bursty pulls, temporarily allows pulls to burst to this
number, while still not exceeding registry_pull_qps.
The value must not be a negative number.
Updating this field may impact scalability by changing the amount of
traffic produced by image pulls.
Defaults to 10.
default_value: 10
- name: 'serializeImagePullsDisabled'
type: Boolean
description: |
Prevents the Kubelet from pulling multiple images at a time.
We recommend *not* changing the default value on nodes that run docker
daemon with version < 1.9 or an Another Union File System (Aufs) storage
backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has
more details.
- name: 'storage'
type: NestedObject
description: |
Specifies the cluster storage configuration.
required: true
properties:
- name: 'lvpShareConfig'
type: NestedObject
description: |
Specifies the config for local PersistentVolumes backed by
subdirectories in a shared filesystem. These subdirectores are
automatically created during cluster creation.
required: true
properties:
- name: 'lvpConfig'
type: NestedObject
description: |
Defines the machine path and storage class for the LVP Share.
required: true
properties:
- name: 'path'
type: String
description: |
The host machine path.
required: true
- name: 'storageClass'
type: String
description: |
The StorageClass name that PVs will be created with.
required: true
- name: 'sharedPathPvCount'
type: Integer
description: |
The number of subdirectories to create under path.
- name: 'lvpNodeMountsConfig'
type: NestedObject
description: |
Specifies the config for local PersistentVolumes backed
by mounted node disks. These disks need to be formatted and mounted by the
user, which can be done before or after cluster creation.
required: true
properties:
- name: 'path'
type: String
description: |
The host machine path.
required: true
- name: 'storageClass'
type: String
description: |
The StorageClass name that PVs will be created with.
required: true
- name: 'proxy'
type: NestedObject
description: |
Specifies the cluster proxy configuration.
properties:
- name: 'uri'
type: String
description: |
Specifies the address of your proxy server.
For example: http://domain
WARNING: Do not provide credentials in the format
of http://(username:password@)domain these will be rejected by the server.
required: true
- name: 'noProxy'
type: Array
description: |
A list of IPs, hostnames, and domains that should skip the proxy.
For example ["127.0.0.1", "example.com", ".corp", "localhost"].
item_type:
type: String
- name: 'clusterOperations'
type: NestedObject
description: |
Specifies the User Cluster's observability infrastructure.
properties:
- name: 'enableApplicationLogs'
type: Boolean
description: |
Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).
- name: 'maintenanceConfig'
type: NestedObject
description: |
Specifies the workload node configurations.
properties:
- name: 'maintenanceAddressCidrBlocks'
type: Array
description: |
All IPv4 address from these ranges will be placed into maintenance mode.
Nodes in maintenance mode will be cordoned and drained. When both of these
are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set
on the node resource.
required: true
item_type:
type: String
- name: 'nodeConfig'
type: NestedObject
description: |
Specifies the workload node configurations.
properties:
- name: 'maxPodsPerNode'
type: Integer
description: |
The maximum number of pods a node can run. The size of the CIDR range
assigned to the node will be derived from this parameter.
default_from_api: true
- name: 'containerRuntime'
type: Enum
description: |
The available runtimes that can be used to run containers in a Bare Metal User Cluster.
default_from_api: true
enum_values:
- 'CONTAINER_RUNTIME_UNSPECIFIED'
- 'DOCKER'
- 'CONTAINERD'
- name: 'nodeAccessConfig'
type: NestedObject
description: |
Specifies the node access related settings for the bare metal user cluster.
properties:
- name: 'loginUser'
type: String
description: |
LoginUser is the user name used to access node machines.
It defaults to "root" if not set.
required: false
default_from_api: true
- name: 'osEnvironmentConfig'
type: NestedObject
description: |
OS environment related configurations.
properties:
- name: 'packageRepoExcluded'
type: Boolean
description: |
Whether the package repo should not be included when initializing
bare metal machines.
required: true
- name: 'securityConfig'
type: NestedObject
description: |
Specifies the security related settings for the Bare Metal User Cluster.
properties:
- name: 'authorization'
type: NestedObject
description: |
Configures user access to the Bare Metal User cluster.
properties:
- name: 'adminUsers'
type: Array
description: Users that will be granted the cluster-admin role on the
cluster, providing full access to the cluster.
required: true
item_type:
type: NestedObject
properties:
- name: 'username'
type: String
description: |
The name of the user, e.g. `my-gcp-id@gmail.com`.
required: true
- name: 'binaryAuthorization'
type: NestedObject
description: Binary Authorization related configurations.
properties:
- name: 'evaluationMode'
type: Enum
description: |
Mode of operation for binauthz policy evaluation. If unspecified,
defaults to DISABLED.
enum_values:
- 'DISABLED'
- 'PROJECT_SINGLETON_POLICY_ENFORCE'
- name: 'upgradePolicy'
type: NestedObject
description: The cluster upgrade policy.
properties:
- name: 'policy'
type: Enum
description: Specifies which upgrade policy to use.
enum_values:
- 'SERIAL'
- 'CONCURRENT'
- name: 'uid'
type: String
description: |
The unique identifier of the Bare Metal User Cluster.
output: true
- name: 'state'
type: Enum
description: The current state of this cluster.
output: true
enum_values:
- 'STATE_UNSPECIFIED'
- 'PROVISIONING'
- 'RUNNING'
- 'RECONCILING'
- 'STOPPING'
- 'ERROR'
- 'DEGRADED'
- name: 'endpoint'
type: String
description: |
The IP address name of Bare Metal User Cluster's API server.
output: true
- name: 'reconciling'
type: Boolean
description: |
If set, there are currently changes in flight to the Bare Metal User Cluster.
output: true
- name: 'createTime'
type: Time
description: |
The time the cluster was created, in RFC3339 text format.
output: true
- name: 'updateTime'
type: Time
description: |
The time the cluster was last updated, in RFC3339 text format.
output: true
- name: 'deleteTime'
type: Time
description: |
The time the cluster was deleted, in RFC3339 text format.
output: true
- name: 'localName'
type: String
description: |
The object name of the Bare Metal Cluster custom resource on the
associated admin cluster. This field is used to support conflicting
names when enrolling existing clusters to the API. When used as a part of
cluster enrollment, this field will differ from the ID in the resource
name. For new clusters, this field will match the user provided cluster ID
and be visible in the last component of the resource name. It is not
modifiable.
All users should use this name to access their cluster using gkectl or
kubectl and should expect to see the local name when viewing admin
cluster controller logs.
output: true
- name: 'etag'
type: String
description: |
This checksum is computed by the server based on the value of other
fields, and may be sent on update and delete requests to ensure the
client has an up-to-date value before proceeding.
Allows clients to perform consistent read-modify-writes
through optimistic concurrency control.
output: true
- name: 'fleet'
type: NestedObject
description: |
Fleet related configuration.
Fleets are a Google Cloud concept for logically organizing clusters,
letting you use and manage multi-cluster capabilities and apply
consistent policies across your systems.
See [Anthos Fleets](https://cloud.google.com/anthos/multicluster-management/fleets) for
more details on Anthos multi-cluster capabilities using Fleets.
output: true
properties:
- name: 'membership'
type: String
description: |
The name of the managed Hub Membership resource associated to this cluster.
Membership names are formatted as
`projects/<project-number>/locations/<location>/memberships/<cluster-id>`.
output: true
- name: 'status'
type: NestedObject
description: |
Specifies detailed cluster status.
output: true
properties:
- name: 'errorMessage'
type: String
description: |
Human-friendly representation of the error message from the user cluster
controller. The error message can be temporary as the user cluster
controller creates a cluster or node pool. If the error message persists
for a longer period of time, it can be used to surface error message to
indicate real problems requiring user intervention.
output: true
- name: 'conditions'
type: Array
description: |
ResourceConditions provide a standard mechanism for higher-level status reporting from user cluster controller.
output: true
item_type:
type: NestedObject
properties:
- name: 'type'
type: String
description: |
Type of the condition.
(e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)
- name: 'reason'
type: String
description: |
Machine-readable message indicating details about last transition.
- name: 'message'
type: String
description: |
Human-readable message indicating details about last transition.
- name: 'lastTransitionTime'
type: Time
description: |
Last time the condition transit from one status to another.
output: true
- name: 'state'
type: Enum
description: The lifecycle state of the condition.
output: true
enum_values:
- 'STATE_UNSPECIFIED'
- 'STATE_TRUE'
- 'STATE_FALSE'
- 'STATE_UNKNOWN'
- name: 'validationCheck'
type: NestedObject
description: |
Specifies the security related settings for the Bare Metal User Cluster.
output: true
properties:
- name: 'options'
type: Enum
description: Options used for the validation check.
output: true
enum_values:
- 'OPTIONS_UNSPECIFIED'
- 'SKIP_VALIDATION_CHECK_BLOCKING'
- 'SKIP_VALIDATION_ALL'
- name: 'status'
type: NestedObject
description: |
Specifies the detailed validation check status
output: true
properties:
- name: 'result'
type: Array
description: Individual checks which failed as part of the Preflight check
execution.
output: true
item_type:
type: NestedObject
properties:
- name: 'options'
type: Enum
description: Options used for the validation check.
output: true
enum_values:
- 'STATE_UNKNOWN'
- 'STATE_FAILURE'
- 'STATE_SKIPPED'
- 'STATE_UNKNOWN'
- 'STATE_FATAL'
- 'STATE_WARNING'
- name: 'description'
type: String
description: |
The description of the validation check.
output: true
- name: 'category'
type: String
description: |
The category of the validation.
output: true
- name: 'reason'
type: String
description: |
A human-readable message of the check failure.
output: true
- name: 'details'
type: String
description: |
Detailed failure information, which might be unformatted.
output: true
- name: 'scenario'
type: Enum
description: The scenario when the preflight checks were run..
output: true
enum_values:
- 'SCENARIO_UNSPECIFIED'
- 'CREATE'
- 'UPDATE'