---
title: "POST /v1/{+parent}/vmwareAdminClusters"
method: POST
path: "/v1/{+parent}/vmwareAdminClusters"
tags: ["projects"]
---

# POST /v1/{+parent}/vmwareAdminClusters

`POST /v1/{+parent}/vmwareAdminClusters`

Creates a new VMware admin cluster in a given project and location. The API needs to be combined with creating a bootstrap cluster to work.

## Path parameters

- `parent` string, required

## Query parameters

- `allowPreflightFailure` boolean
- `skipValidations` string[]
- `validateOnly` boolean
- `vmwareAdminClusterId` string

## Request body

- VmwareAdminCluster — Resource that represents a VMware admin cluster.
  - `enableAdvancedCluster` boolean — Enable advanced cluster.
  - `fleet` Fleet — 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. ##
    - `membership` string — Output only. The name of the managed fleet Membership resource associated to this cluster. Membership names are formatted as `projects//locations//memberships/`.
  - `imageType` string — The OS image type for the VMware admin cluster.
  - `antiAffinityGroups` VmwareAAGConfig — Specifies anti affinity group config for the VMware user cluster.
    - `aagConfigDisabled` boolean — Spread nodes across at least three physical hosts (requires at least three hosts). Enabled by default.
  - `autoRepairConfig` VmwareAutoRepairConfig — Specifies config to enable/disable auto repair. The cluster-health-controller is deployed only if Enabled is true.
    - `enabled` boolean — Whether auto repair is enabled.
  - `reconciling` boolean — Output only. If set, there are currently changes in flight to the VMware admin cluster.
  - `description` string — A human readable description of this VMware admin cluster.
  - `onPremVersion` string — The Anthos clusters on the VMware version for the admin cluster.
  - `privateRegistryConfig` VmwareAdminPrivateRegistryConfig — VmwareAdminPrivateRegistryConfig represents configuration for admin cluster registry.
    - `caCert` string — When the container runtime pulls an image from private registry, the registry must prove its identity by presenting a certificate. The registry's certificate is signed by a certificate authority (CA). The container runtime uses the CA's certificate to validate the registry's certificate.
    - `address` string — The registry address.
  - `uid` string — Output only. The unique identifier of the VMware admin cluster.
  - `addonNode` VmwareAdminAddonNodeConfig — VmwareAdminAddonNodeConfig contains add-on node configurations for VMware admin cluster.
    - `autoResizeConfig` VmwareAutoResizeConfig — Represents auto resizing configurations for the VMware user cluster.
      - `enabled` boolean — Whether to enable controle plane node auto resizing.
  - `preparedSecrets` VmwareAdminPreparedSecretsConfig — VmwareAdminPreparedSecretsConfig represents configuration for admin cluster prepared secrets.
    - `enabled` boolean — Whether prepared secrets is enabled.
  - `validationCheck` ValidationCheck — ValidationCheck represents the result of preflight check.
    - `status` ValidationCheckStatus — ValidationCheckStatus defines the detailed validation check status.
      - `result` ValidationCheckResult[] — Individual checks which failed as part of the Preflight check execution.
        - `details` string — Detailed failure information, which might be unformatted.
        - `category` string — The category of the validation.
        - `reason` string — A human-readable message of the check failure.
        - `description` string — The description of the validation check.
        - `state` 'STATE_UNKNOWN' | 'STATE_FAILURE' | 'STATE_SKIPPED' | 'STATE_FATAL' | 'STATE_WARNING' — The validation check state.
    - `option` 'OPTIONS_UNSPECIFIED' | 'SKIP_VALIDATION_CHECK_BLOCKING' | 'SKIP_VALIDATION_ALL' — Options used for the validation check
    - `scenario` 'SCENARIO_UNSPECIFIED' | 'CREATE' | 'UPDATE' — Output only. The scenario when the preflight checks were run.
  - `loadBalancer` VmwareAdminLoadBalancerConfig — VmwareAdminLoadBalancerConfig contains load balancer configuration for VMware admin cluster.
    - `vipConfig` VmwareAdminVipConfig — VmwareAdminVipConfig for VMware load balancer configurations.
      - `addonsVip` string — The VIP to configure the load balancer for add-ons.
      - `controlPlaneVip` string — The VIP which you previously set aside for the Kubernetes API of the admin cluster.
    - `metalLbConfig` VmwareAdminMetalLbConfig — VmwareAdminMetalLbConfig represents configuration parameters for a MetalLB load balancer. For admin clusters, currently no configurations is needed.
      - `enabled` boolean — Whether MetalLB is enabled.
    - `f5Config` VmwareAdminF5BigIpConfig — VmwareAdminF5BigIpConfig represents configuration parameters for an F5 BIG-IP load balancer.
      - `snatPool` string — The pool name. Only necessary, if using SNAT.
      - `partition` string — The preexisting partition to be used by the load balancer. This partition is usually created for the admin cluster for example: 'my-f5-admin-partition'.
      - `address` string — The load balancer's IP address.
    - `seesawConfig` VmwareAdminSeesawConfig — VmwareSeesawConfig represents configuration parameters for an already existing Seesaw load balancer. IMPORTANT: Please note that the Anthos On-Prem API will not generate or update Seesaw configurations it can only bind a pre-existing configuration to a new user cluster. IMPORTANT: When attempting to create a user cluster with a pre-existing Seesaw load balancer you will need to follow some preparation steps before calling the 'CreateVmwareCluster' API method. First you will need to create the user cluster's namespace via kubectl. The namespace will need to use the following naming convention : -gke-onprem-mgmt or -gke-onprem-mgmt depending on whether you used the 'VmwareCluster.local_name' to disambiguate collisions; for more context see the documentation of 'VmwareCluster.local_name'. Once the namespace is created you will need to create a secret resource via kubectl. This secret will contain copies of your Seesaw credentials. The Secret must be called 'user-cluster-creds' and contain Seesaw's SSH and Cert credentials. The credentials must be keyed with the following names: 'seesaw-ssh-private-key', 'seesaw-ssh-public-key', 'seesaw-ssh-ca-key', 'seesaw-ssh-ca-cert'.
      - `group` string — In general the following format should be used for the Seesaw group name: seesaw-for-[cluster_name].
      - `stackdriverName` string — Name to be used by Stackdriver.
      - `vms` string[] — Names of the VMs created for this Seesaw group.
      - `masterIp` string — MasterIP is the IP announced by the master of Seesaw group.
      - `enableHa` boolean — Enable two load balancer VMs to achieve a highly-available Seesaw load balancer.
      - `ipBlocks` VmwareIpBlock[] — The IP Blocks to be used by the Seesaw load balancer
        - `netmask` string — The netmask used by the VMware user cluster.
        - `gateway` string — The network gateway used by the VMware user cluster.
        - `ips` VmwareHostIp[] — The node's network configurations used by the VMware user cluster.
          - `hostname` string — Hostname of the machine. VM's name will be used if this field is empty.
          - `ip` string — IP could be an IP address (like 1.2.3.4) or a CIDR (like 1.2.3.0/24).
    - `manualLbConfig` VmwareAdminManualLbConfig
      - `konnectivityServerNodePort` integer — NodePort for konnectivity server service running as a sidecar in each kube-apiserver pod (ex. 30564).
      - `ingressHttpNodePort` integer — NodePort for ingress service's http. The ingress service in the admin cluster is implemented as a Service of type NodePort (ex. 32527).
      - `ingressHttpsNodePort` integer — NodePort for ingress service's https. The ingress service in the admin cluster is implemented as a Service of type NodePort (ex. 30139).
      - `controlPlaneNodePort` integer — NodePort for control plane service. The Kubernetes API server in the admin cluster is implemented as a Service of type NodePort (ex. 30968).
      - `addonsNodePort` integer — NodePort for add-ons server in the admin cluster.
  - `controlPlaneNode` VmwareAdminControlPlaneNodeConfig — VmwareAdminControlPlaneNodeConfig contains control plane node configuration for VMware admin cluster.
    - `cpus` string, int64 — The number of vCPUs for the control-plane node of the admin cluster.
    - `memory` string, int64 — The number of mebibytes of memory for the control-plane node of the admin cluster.
    - `replicas` string, int64 — The number of control plane nodes for this VMware admin cluster. (default: 1 replica).
  - `proxy` VmwareAdminProxy — VmwareAdminProxy represents configuration for admin cluster proxy.
    - `noProxy` string — A comma-separated list of IP addresses, IP address ranges, host names, and domain names that should not go through the proxy server. When Google Distributed Cloud sends a request to one of these addresses, hosts, or domains, the request is sent directly.
    - `url` string — The HTTP address of proxy server.
  - `createTime` string, google-datetime — Output only. The time at which VMware admin cluster was created.
  - `status` ResourceStatus — ResourceStatus describes why a cluster or node pool has a certain status. (e.g., ERROR or DEGRADED).
    - `errorMessage` string — Human-friendly representation of the error message from controller. The error message can be temporary as the controller 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.
    - `versions` Versions — Versions describes the mapping of a given version to the number of machines under this version.
      - `versions` Version[] — Shows the mapping of a given version to the number of machines under this version.
        - `version` string — Resource version.
        - `count` string, int64 — Number of machines under the above version.
    - `conditions` ResourceCondition[] — ResourceCondition provide a standard mechanism for higher-level status reporting from controller.
      - `type` string — Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)
      - `message` string — Human-readable message indicating details about last transition.
      - `lastTransitionTime` string, google-datetime — Last time the condition transit from one status to another.
      - `reason` string — Machine-readable message indicating details about last transition.
      - `state` 'STATE_UNSPECIFIED' | 'STATE_TRUE' | 'STATE_FALSE' | 'STATE_UNKNOWN' — state of the condition.
    - `version` string — Reflect current version of the resource.
  - `authorization` VmwareAdminAuthorizationConfig — VmwareAdminAuthorizationConfig represents configuration for admin cluster authorization.
    - `viewerUsers` ClusterUser[] — For VMware admin clusters, users will be granted the cluster-viewer role on the cluster.
      - `username` string — Required. The name of the user, e.g. `my-gcp-id@gmail.com`.
  - `annotations` object — Annotations on the VMware 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.
  - `name` string — Immutable. The VMware admin cluster resource name.
  - `localName` string — Output only. The object name of the VMware OnPremAdminCluster 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.
  - `vcenter` VmwareAdminVCenterConfig — VmwareAdminVCenterConfig contains VCenter configuration for VMware admin cluster.
    - `dataDisk` string — The name of the virtual machine disk (VMDK) for the admin cluster.
    - `storagePolicyName` string — The name of the vCenter storage policy for the user cluster.
    - `resourcePool` string — The name of the vCenter resource pool for the admin cluster.
    - `datastore` string — The name of the vCenter datastore for the admin cluster.
    - `datacenter` string — The name of the vCenter datacenter for the admin cluster.
    - `caCertData` string — Contains the vCenter CA certificate public key for SSL verification.
    - `address` string — The vCenter IP address.
    - `folder` string — The name of the vCenter folder for the admin cluster.
    - `cluster` string — The name of the vCenter cluster for the admin cluster.
  - `state` 'STATE_UNSPECIFIED' | 'PROVISIONING' | 'RUNNING' | 'RECONCILING' | 'STOPPING' | 'ERROR' | 'DEGRADED' — Output only. The current state of VMware admin cluster.
  - `updateTime` string, google-datetime — Output only. The time at which VMware admin cluster was last updated.
  - `endpoint` string — Output only. The DNS name of VMware admin cluster's API server.
  - `networkConfig` VmwareAdminNetworkConfig — VmwareAdminNetworkConfig contains network configuration for VMware admin cluster.
    - `vcenterNetwork` string — vcenter_network specifies vCenter network name.
    - `hostConfig` VmwareHostConfig — Represents the common parameters for all the hosts irrespective of their IP address.
      - `dnsServers` string[] — DNS servers.
      - `ntpServers` string[] — NTP servers.
      - `dnsSearchDomains` string[] — DNS search domains.
    - `haControlPlaneConfig` VmwareAdminHAControlPlaneConfig — Specifies HA admin control plane config.
      - `controlPlaneIpBlock` VmwareIpBlock — Represents a collection of IP addresses to assign to nodes.
        - `netmask` string — The netmask used by the VMware user cluster.
        - `gateway` string — The network gateway used by the VMware user cluster.
        - `ips` VmwareHostIp[] — The node's network configurations used by the VMware user cluster.
          - `hostname` string — Hostname of the machine. VM's name will be used if this field is empty.
          - `ip` string — IP could be an IP address (like 1.2.3.4) or a CIDR (like 1.2.3.0/24).
    - `serviceAddressCidrBlocks` string[] — Required. All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.
    - `podAddressCidrBlocks` string[] — Required. All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.
    - `dhcpIpConfig` VmwareDhcpIpConfig — Represents the network configuration required for the VMware user clusters with DHCP IP configurations.
      - `enabled` boolean — enabled is a flag to mark if DHCP IP allocation is used for VMware user clusters.
    - `staticIpConfig` VmwareStaticIpConfig — Represents the network configuration required for the VMware user clusters with Static IP configurations.
      - `ipBlocks` VmwareIpBlock[] — Represents the configuration values for static IP allocation to nodes.
        - `netmask` string — The netmask used by the VMware user cluster.
        - `gateway` string — The network gateway used by the VMware user cluster.
        - `ips` VmwareHostIp[] — The node's network configurations used by the VMware user cluster.
          - `hostname` string — Hostname of the machine. VM's name will be used if this field is empty.
          - `ip` string — IP could be an IP address (like 1.2.3.4) or a CIDR (like 1.2.3.0/24).
  - `platformConfig` VmwarePlatformConfig — VmwarePlatformConfig represents configuration for the VMware platform.
    - `requiredPlatformVersion` string — Input only. The required platform version e.g. 1.13.1. If the current platform version is lower than the target version, the platform version will be updated to the target version. If the target version is not installed in the platform (bundle versions), download the target version bundle.
    - `platformVersion` string — Output only. The platform version e.g. 1.13.2.
    - `status` ResourceStatus — ResourceStatus describes why a cluster or node pool has a certain status. (e.g., ERROR or DEGRADED).
      - `errorMessage` string — Human-friendly representation of the error message from controller. The error message can be temporary as the controller 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.
      - `versions` Versions — Versions describes the mapping of a given version to the number of machines under this version.
        - `versions` Version[] — Shows the mapping of a given version to the number of machines under this version.
          - `version` string — Resource version.
          - `count` string, int64 — Number of machines under the above version.
      - `conditions` ResourceCondition[] — ResourceCondition provide a standard mechanism for higher-level status reporting from controller.
        - `type` string — Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)
        - `message` string — Human-readable message indicating details about last transition.
        - `lastTransitionTime` string, google-datetime — Last time the condition transit from one status to another.
        - `reason` string — Machine-readable message indicating details about last transition.
        - `state` 'STATE_UNSPECIFIED' | 'STATE_TRUE' | 'STATE_FALSE' | 'STATE_UNKNOWN' — state of the condition.
      - `version` string — Reflect current version of the resource.
    - `bundles` VmwareBundleConfig[] — Output only. The list of bundles installed in the admin cluster.
      - `version` string — The version of the bundle.
      - `status` ResourceStatus — ResourceStatus describes why a cluster or node pool has a certain status. (e.g., ERROR or DEGRADED).
        - `errorMessage` string — Human-friendly representation of the error message from controller. The error message can be temporary as the controller 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.
        - `versions` Versions — Versions describes the mapping of a given version to the number of machines under this version.
          - `versions` Version[] — Shows the mapping of a given version to the number of machines under this version.
            - `version` string — Resource version.
            - `count` string, int64 — Number of machines under the above version.
        - `conditions` ResourceCondition[] — ResourceCondition provide a standard mechanism for higher-level status reporting from controller.
          - `type` string — Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)
          - `message` string — Human-readable message indicating details about last transition.
          - `lastTransitionTime` string, google-datetime — Last time the condition transit from one status to another.
          - `reason` string — Machine-readable message indicating details about last transition.
          - `state` 'STATE_UNSPECIFIED' | 'STATE_TRUE' | 'STATE_FALSE' | 'STATE_UNKNOWN' — state of the condition.
        - `version` string — Reflect current version of the resource.
  - `bootstrapClusterMembership` string — The bootstrap cluster this VMware admin cluster belongs to.
  - `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.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/gkeonprem.md) · [All operations](https://skmtc.net/google/apis/gkeonprem/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/gkeonprem/versions/aed3768b9183/schema)
