REST Resource: projects.locations.bareMetalAdminClusters

Resource: BareMetalAdminCluster

Resource that represents a bare metal admin cluster.

JSON representation
{
  "name": string,
  "description": string,
  "uid": string,
  "bareMetalVersion": string,
  "state": enum (State),
  "endpoint": string,
  "reconciling": boolean,
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "localName": string,
  "etag": string,
  "annotations": {
    string: string,
    ...
  },
  "networkConfig": {
    object (BareMetalAdminNetworkConfig)
  },
  "controlPlane": {
    object (BareMetalAdminControlPlaneConfig)
  },
  "loadBalancer": {
    object (BareMetalAdminLoadBalancerConfig)
  },
  "storage": {
    object (BareMetalAdminStorageConfig)
  },
  "fleet": {
    object (Fleet)
  },
  "clusterOperations": {
    object (BareMetalAdminClusterOperationsConfig)
  },
  "status": {
    object (ResourceStatus)
  },
  "maintenanceConfig": {
    object (BareMetalAdminMaintenanceConfig)
  },
  "maintenanceStatus": {
    object (BareMetalAdminMaintenanceStatus)
  },
  "validationCheck": {
    object (ValidationCheck)
  },
  "nodeConfig": {
    object (BareMetalAdminWorkloadNodeConfig)
  },
  "proxy": {
    object (BareMetalAdminProxyConfig)
  },
  "securityConfig": {
    object (BareMetalAdminSecurityConfig)
  },
  "nodeAccessConfig": {
    object (BareMetalAdminNodeAccessConfig)
  },
  "osEnvironmentConfig": {
    object (BareMetalAdminOsEnvironmentConfig)
  },
  "binaryAuthorization": {
    object (BinaryAuthorization)
  }
}
Fields
name

string

Immutable. The bare metal admin cluster resource name.

description

string

A human readable description of this bare metal admin cluster.

uid

string

Output only. The unique identifier of the bare metal admin cluster.

bareMetalVersion

string

The Anthos clusters on bare metal version for the bare metal admin cluster.

state

enum (State)

Output only. The current state of the bare metal admin cluster.

endpoint

string

Output only. The IP address name of bare metal admin cluster's API server.

reconciling

boolean

Output only. If set, there are currently changes in flight to the bare metal Admin Cluster.

createTime

string (Timestamp format)

Output only. The time at which this bare metal admin cluster was created.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Output only. The time at which this bare metal admin cluster was last updated.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

deleteTime

string (Timestamp format)

Output only. The time at which this bare metal admin cluster was deleted. If the resource is not deleted, this must be empty

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

localName

string

Output only. The object name of the bare metal cluster custom resource. 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 name 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.

etag

string

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.

annotations

map (key: string, value: string)

Annotations on the bare metal admin 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.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

networkConfig

object (BareMetalAdminNetworkConfig)

Network configuration.

controlPlane

object (BareMetalAdminControlPlaneConfig)

Control plane configuration.

loadBalancer

object (BareMetalAdminLoadBalancerConfig)

Load balancer configuration.

storage

object (BareMetalAdminStorageConfig)

Storage configuration.

fleet

object (Fleet)

Output only. Fleet configuration for the cluster.

clusterOperations

object (BareMetalAdminClusterOperationsConfig)

Cluster operations configuration.

status

object (ResourceStatus)

Output only. ResourceStatus representing detailed cluster status.

maintenanceConfig

object (BareMetalAdminMaintenanceConfig)

Maintenance configuration.

maintenanceStatus

object (BareMetalAdminMaintenanceStatus)

Output only. MaintenanceStatus representing state of maintenance.

validationCheck

object (ValidationCheck)

Output only. ValidationCheck representing the result of the preflight check.

nodeConfig

object (BareMetalAdminWorkloadNodeConfig)

Workload node configuration.

proxy

object (BareMetalAdminProxyConfig)

Proxy configuration.

securityConfig

object (BareMetalAdminSecurityConfig)

Security related configuration.

nodeAccessConfig

object (BareMetalAdminNodeAccessConfig)

Node access related configurations.

osEnvironmentConfig

object (BareMetalAdminOsEnvironmentConfig)

OS environment related configurations.

binaryAuthorization

object (BinaryAuthorization)

Binary Authorization related configurations.

State

The lifecycle state of the bare metal admin cluster.

Enums
STATE_UNSPECIFIED Not set.
PROVISIONING The PROVISIONING state indicates the cluster is being created.
RUNNING The RUNNING state indicates the cluster has been created and is fully usable.
RECONCILING The RECONCILING state indicates that the cluster is being updated. It remains available, but potentially with degraded performance.
STOPPING The STOPPING state indicates the cluster is being deleted.
ERROR The ERROR state indicates the cluster is in a broken unrecoverable state.
DEGRADED The DEGRADED state indicates the cluster requires user action to restore full functionality.

BareMetalAdminNetworkConfig

BareMetalAdminNetworkConfig specifies the cluster network configuration.

JSON representation
{

  // Union field cluster_cidr_configuration can be only one of the following:
  "islandModeCidr": {
    object (BareMetalAdminIslandModeCidrConfig)
  }
  // End of list of possible types for union field cluster_cidr_configuration.
}
Fields
Union field cluster_cidr_configuration. The CIDR configuration to be used in the admin cluster. cluster_cidr_configuration can be only one of the following:
islandModeCidr

object (BareMetalAdminIslandModeCidrConfig)

Configuration for Island mode CIDR.

BareMetalAdminIslandModeCidrConfig

BareMetalAdminIslandModeCidrConfig specifies the cluster CIDR configuration while running in island mode.

JSON representation
{
  "serviceAddressCidrBlocks": [
    string
  ],
  "podAddressCidrBlocks": [
    string
  ]
}
Fields
serviceAddressCidrBlocks[]

string

Required. All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.

podAddressCidrBlocks[]

string

Required. All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.

BareMetalAdminControlPlaneConfig

BareMetalAdminControlPlaneConfig specifies the control plane configuration.

JSON representation
{
  "controlPlaneNodePoolConfig": {
    object (BareMetalAdminControlPlaneNodePoolConfig)
  },
  "apiServerArgs": [
    {
      object (BareMetalAdminApiServerArgument)
    }
  ]
}
Fields
controlPlaneNodePoolConfig

object (BareMetalAdminControlPlaneNodePoolConfig)

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

apiServerArgs[]

object (BareMetalAdminApiServerArgument)

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/

BareMetalAdminControlPlaneNodePoolConfig

BareMetalAdminControlPlaneNodePoolConfig specifies the control plane node pool configuration. We have a control plane specific node pool config so that we can flexible about supporting control plane specific fields in the future.

JSON representation
{
  "nodePoolConfig": {
    object (BareMetalNodePoolConfig)
  }
}
Fields
nodePoolConfig

object (BareMetalNodePoolConfig)

Required. The generic configuration for a node pool running the control plane.

BareMetalAdminApiServerArgument

BareMetalAdminApiServerArgument represents an arg name->value pair. 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/

JSON representation
{
  "argument": string,
  "value": string
}
Fields
argument

string

Required. The argument name as it appears on the API Server command line please make sure to remove the leading dashes.

value

string

Required. The value of the arg as it will be passed to the API Server command line.

BareMetalAdminLoadBalancerConfig

BareMetalAdminLoadBalancerConfig specifies the load balancer configuration.

JSON representation
{
  "vipConfig": {
    object (BareMetalAdminVipConfig)
  },
  "portConfig": {
    object (BareMetalAdminPortConfig)
  },

  // Union field load_balancer_configuration can be only one of the following:
  "manualLbConfig": {
    object (BareMetalAdminManualLbConfig)
  }
  // End of list of possible types for union field load_balancer_configuration.
}
Fields
vipConfig

object (BareMetalAdminVipConfig)

The VIPs used by the load balancer.

portConfig

object (BareMetalAdminPortConfig)

Configures the ports that the load balancer will listen on.

Union field load_balancer_configuration. The load balancer configuration to be used in the admin cluster. load_balancer_configuration can be only one of the following:
manualLbConfig

object (BareMetalAdminManualLbConfig)

Manually configured load balancers.

BareMetalAdminVipConfig

BareMetalAdminVipConfig for bare metal load balancer configurations.

JSON representation
{
  "controlPlaneVip": string
}
Fields
controlPlaneVip

string

The VIP which you previously set aside for the Kubernetes API of this bare metal admin cluster.

BareMetalAdminPortConfig

BareMetalAdminPortConfig is the specification of load balancer ports.

JSON representation
{
  "controlPlaneLoadBalancerPort": integer
}
Fields
controlPlaneLoadBalancerPort

integer

The port that control plane hosted load balancers will listen on.

BareMetalAdminManualLbConfig

BareMetalAdminManualLbConfig represents configuration parameters for a manual load balancer.

JSON representation
{
  "enabled": boolean
}
Fields
enabled

boolean

Whether manual load balancing is enabled.

BareMetalAdminStorageConfig

BareMetalAdminStorageConfig specifies the cluster storage configuration.

JSON representation
{
  "lvpShareConfig": {
    object (BareMetalLvpShareConfig)
  },
  "lvpNodeMountsConfig": {
    object (BareMetalLvpConfig)
  }
}
Fields
lvpShareConfig

object (BareMetalLvpShareConfig)

Required. Specifies the config for local PersistentVolumes backed by subdirectories in a shared filesystem. These subdirectores are automatically created during cluster creation.

lvpNodeMountsConfig

object (BareMetalLvpConfig)

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

BareMetalAdminClusterOperationsConfig

BareMetalAdminClusterOperationsConfig specifies the admin cluster's observability infrastructure.

JSON representation
{
  "enableApplicationLogs": boolean
}
Fields
enableApplicationLogs

boolean

Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).

BareMetalAdminMaintenanceConfig

BareMetalAdminMaintenanceConfig specifies configurations to put bare metal Admin cluster CRs nodes in and out of maintenance.

JSON representation
{
  "maintenanceAddressCidrBlocks": [
    string
  ]
}
Fields
maintenanceAddressCidrBlocks[]

string

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

BareMetalAdminMaintenanceStatus

BareMetalAdminMaintenanceStatus represents the maintenance status for bare metal Admin cluster CR's nodes.

JSON representation
{
  "machineDrainStatus": {
    object (BareMetalAdminMachineDrainStatus)
  }
}
Fields
machineDrainStatus

object (BareMetalAdminMachineDrainStatus)

Represents the status of draining and drained machine nodes. This is used to show the progress of cluster upgrade.

BareMetalAdminMachineDrainStatus

BareMetalAdminMachineDrainStatus represents the status of bare metal node machines that are undergoing drain operations.

JSON representation
{
  "drainingMachines": [
    {
      object (BareMetalAdminDrainingMachine)
    }
  ],
  "drainedMachines": [
    {
      object (BareMetalAdminDrainedMachine)
    }
  ]
}
Fields
drainingMachines[]

object (BareMetalAdminDrainingMachine)

The list of draning machines.

drainedMachines[]

object (BareMetalAdminDrainedMachine)

The list of drained machines.

BareMetalAdminDrainingMachine

BareMetalAdminDrainingMachine represents the machines that are currently draining.

JSON representation
{
  "nodeIp": string,
  "podCount": integer
}
Fields
nodeIp

string

Draining machine IP address.

podCount

integer

The count of pods yet to drain.

BareMetalAdminDrainedMachine

BareMetalAdminDrainedMachine represents the machines that are drained.

JSON representation
{
  "nodeIp": string
}
Fields
nodeIp

string

Drained machine IP address.

BareMetalAdminWorkloadNodeConfig

BareMetalAdminWorkloadNodeConfig specifies the workload node configurations.

JSON representation
{
  "maxPodsPerNode": string
}
Fields
maxPodsPerNode

string (int64 format)

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. By default 110 Pods are created per Node. Upper bound is 250 for both HA and non-HA admin cluster. Lower bound is 64 for non-HA admin cluster and 32 for HA admin cluster.

BareMetalAdminProxyConfig

BareMetalAdminProxyConfig specifies the cluster proxy configuration.

JSON representation
{
  "uri": string,
  "noProxy": [
    string
  ]
}
Fields
uri

string

Required. Specifies the address of your proxy server. Examples: http://domain

WARNING: Do not provide credentials in the format http://(username:password@)domain these will be rejected by the server.

noProxy[]

string

A list of IPs, hostnames, and domains that should skip the proxy. Examples: ["127.0.0.1", "example.com", ".corp", "localhost"].

BareMetalAdminSecurityConfig

Specifies the security related settings for the bare metal admin cluster.

JSON representation
{
  "authorization": {
    object (Authorization)
  }
}
Fields
authorization

object (Authorization)

Configures user access to the admin cluster.

BareMetalAdminNodeAccessConfig

Specifies the node access related settings for the bare metal admin cluster.

JSON representation
{
  "loginUser": string
}
Fields
loginUser

string

Required. LoginUser is the user name used to access node machines. It defaults to "root" if not set.

BareMetalAdminOsEnvironmentConfig

Specifies operating system operation settings for cluster provisioning.

JSON representation
{
  "packageRepoExcluded": boolean
}
Fields
packageRepoExcluded

boolean

Whether the package repo should be added when initializing bare metal machines.

Methods

create

Creates a new bare metal admin cluster in a given project and location.

enroll

Enrolls an existing bare metal admin cluster to the Anthos On-Prem API within a given project and location.

get

Gets details of a single bare metal admin cluster.

list

Lists bare metal admin clusters in a given project and location.

patch

Updates the parameters of a single bare metal admin cluster.

queryVersionConfig

Queries the bare metal admin cluster version config.