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

# POST /v1/{+parent}/vmwareNodePools

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

Creates a new VMware node pool in a given project, location and VMWare cluster.

## Path parameters

- `parent` string, required

## Query parameters

- `validateOnly` boolean
- `vmwareNodePoolId` string

## Request body

- VmwareNodePool — Resource VmwareNodePool represents a VMware node pool. ##
  - `updateTime` string, google-datetime — Output only. The time at which this node pool was last updated.
  - `config` VmwareNodeConfig — Parameters that describe the configuration of all nodes within a given node pool.
    - `imageType` string — Required. The OS image to be used for each node in a node pool. Currently `cos`, `cos_cgv2`, `ubuntu`, `ubuntu_cgv2`, `ubuntu_containerd` and `windows` are supported.
    - `labels` object — 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: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
    - `bootDiskSizeGb` string, int64 — VMware disk size to be used during creation.
    - `taints` NodeTaint[] — The initial taints assigned to nodes of this node pool.
      - `key` string — Key associated with the effect.
      - `value` string — Value associated with the effect.
      - `effect` 'EFFECT_UNSPECIFIED' | 'NO_SCHEDULE' | 'PREFER_NO_SCHEDULE' | 'NO_EXECUTE' — The taint effect.
    - `cpus` string, int64 — The number of CPUs for each node in the node pool.
    - `image` string — The OS image name in vCenter, only valid when using Windows.
    - `vsphereConfig` VmwareVsphereConfig — VmwareVsphereConfig represents configuration for the VMware VCenter for node pool.
      - `hostGroups` string[] — Vsphere host groups to apply to all VMs in the node pool
      - `datastore` string — The name of the vCenter datastore. Inherited from the user cluster.
      - `tags` VmwareVsphereTag[] — Tags to apply to VMs.
        - `category` string — The Vsphere tag category.
        - `tag` string — The Vsphere tag name.
    - `replicas` string, int64 — The number of nodes in the node pool.
    - `memoryMb` string, int64 — The megabytes of memory for each node in the node pool.
    - `enableLoadBalancer` boolean — Allow node pool traffic to be load balanced. Only works for clusters with MetalLB load balancers.
  - `state` 'STATE_UNSPECIFIED' | 'PROVISIONING' | 'RUNNING' | 'RECONCILING' | 'STOPPING' | 'ERROR' | 'DEGRADED' — Output only. The current state of the node pool.
  - `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.
  - `uid` string — Output only. The unique identifier of the node pool.
  - `annotations` object — Annotations on the node pool. 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 resource name of this node pool.
  - `onPremVersion` string — Anthos version for the node pool. Defaults to the user cluster version.
  - `createTime` string, google-datetime — Output only. The time at which this node pool was created.
  - `nodePoolAutoscaling` VmwareNodePoolAutoscalingConfig — NodePoolAutoscaling config for the NodePool to allow for the kubernetes to scale NodePool.
    - `minReplicas` integer — Minimum number of replicas in the NodePool.
    - `maxReplicas` integer — Maximum number of replicas in the NodePool.
  - `reconciling` boolean — Output only. If set, there are currently changes in flight to the node pool.
  - `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.
  - `displayName` string — The display name for the node pool.
  - `deleteTime` string, google-datetime — Output only. The time at which this node pool was deleted. If the resource is not deleted, this must be empty

## 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)
