Vcenter NamespaceManagement Clusters enable

Vcenter NamespaceManagement Clusters enable

This operation is deprecated as of vSphere API 9.0.0.0. Use POST /vcenter/namespace-management/supervisors/{cluster}?action=enable_on_compute_cluster operation or POST /vcenter/namespace-management/supervisors?action=enable_on_zones operation instead.

Enable vSphere Namespaces on the cluster. This operation sets up Kubernetes instance for the cluster along with worker nodes.

This operation was added in vSphere API 7.0.0.0.

Returns an authorization error if you do not have all of the privileges described as follows:

  • The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.
Request
URI
POST
https://{api_host}/api/vcenter/namespace-management/clusters/{cluster}?action=enable
COPY
Path Parameters
string
cluster
Required

Identifier for the cluster on which vSphere Namespaces will be enabled.

The parameter must be an identifier for the resource type: ClusterComputeResource.


Request Body

Specification for setting up the Kubernetes API server and the worker nodes.

Required

Show optional properties

{
    "size_hint": "string",
    "service_cidr": {},
    "network_provider": "string",
    "master_management_network": {},
    "master_storage_policy": "string",
    "ephemeral_storage_policy": "string",
    "image_storage": {}
}
{
    "size_hint": "string",
    "service_cidr": {
        "address": "string",
        "prefix": 0
    },
    "network_provider": "string",
    "ncp_cluster_network_spec": {
        "pod_cidrs": [
            {
                "address": "string",
                "prefix": 0
            }
        ],
        "ingress_cidrs": [
            {
                "address": "string",
                "prefix": 0
            }
        ],
        "egress_cidrs": [
            {
                "address": "string",
                "prefix": 0
            }
        ],
        "cluster_distributed_switch": "string",
        "nsx_edge_cluster": "string",
        "nsx_tier0_gateway": "string",
        "namespace_subnet_prefix": 0,
        "routed_mode": false
    },
    "workload_networks_spec": {
        "supervisor_primary_workload_network": {
            "network": "string",
            "network_provider": "string",
            "vsphere_network": {
                "portgroup": "string",
                "ip_assignment_mode": "string",
                "address_ranges": [
                    {
                        "address": "string",
                        "count": 0
                    }
                ],
                "gateway": "string",
                "subnet_mask": "string",
                "mode": "string"
            },
            "nsx_network": {
                "namespace_network_cidrs": [
                    {
                        "address": "string",
                        "prefix": 0
                    }
                ],
                "ingress_cidrs": [
                    {
                        "address": "string",
                        "prefix": 0
                    }
                ],
                "egress_cidrs": [
                    {
                        "address": "string",
                        "prefix": 0
                    }
                ],
                "nsx_tier0_gateway": "string",
                "subnet_prefix_length": 0,
                "routed_mode": false,
                "load_balancer_size": "string"
            }
        },
        "network_list": [
            {
                "network": "string",
                "network_provider": "string",
                "vsphere_network": {
                    "portgroup": "string",
                    "ip_assignment_mode": "string",
                    "address_ranges": [
                        {
                            "address": "string",
                            "count": 0
                        }
                    ],
                    "gateway": "string",
                    "subnet_mask": "string",
                    "mode": "string"
                },
                "nsx_network": {
                    "namespace_network_cidrs": [
                        {
                            "address": "string",
                            "prefix": 0
                        }
                    ],
                    "ingress_cidrs": [
                        {
                            "address": "string",
                            "prefix": 0
                        }
                    ],
                    "egress_cidrs": [
                        {
                            "address": "string",
                            "prefix": 0
                        }
                    ],
                    "nsx_tier0_gateway": "string",
                    "subnet_prefix_length": 0,
                    "routed_mode": false,
                    "load_balancer_size": "string"
                }
            }
        ]
    },
    "workload_ntp_servers": [
        "string"
    ],
    "load_balancer_config_spec": {
        "id": "string",
        "address_ranges": [
            {
                "address": "string",
                "count": 0
            }
        ],
        "provider": "string",
        "ha_proxy_config_create_spec": {
            "servers": [
                {
                    "host": "string",
                    "port": 0
                }
            ],
            "username": "string",
            "password": "string",
            "certificate_authority_chain": "string"
        },
        "avi_config_create_spec": {
            "server": {
                "host": "string",
                "port": 0
            },
            "username": "string",
            "password": "string",
            "certificate_authority_chain": "string",
            "cloud_name": "string"
        }
    },
    "master_management_network": {
        "floating_ip": "string",
        "network": "string",
        "network_segment": {
            "networks": [
                "string"
            ]
        },
        "mode": "string",
        "address_range": {
            "starting_address": "string",
            "address_count": 0,
            "subnet_mask": "string",
            "gateway": "string"
        }
    },
    "master_dns": [
        "string"
    ],
    "worker_dns": [
        "string"
    ],
    "master_dns_search_domains": [
        "string"
    ],
    "master_ntp_servers": [
        "string"
    ],
    "master_storage_policy": "string",
    "ephemeral_storage_policy": "string",
    "cns_file_config": {
        "vsan_clusters": [
            "string"
        ]
    },
    "login_banner": "string",
    "master_dns_names": [
        "string"
    ],
    "image_storage": {
        "storage_policy": "string"
    },
    "default_image_registry": {
        "hostname": "string",
        "port": 0
    },
    "default_image_repository": "string",
    "default_kubernetes_service_content_library": "string",
    "cluster_proxy_config": {
        "proxy_settings_source": "string",
        "https_proxy_config": "string",
        "http_proxy_config": "string",
        "no_proxy_config": [
            "string"
        ],
        "tls_root_ca_bundle": "string"
    },
    "content_libraries": [
        {
            "content_library": "string",
            "supervisor_services": [
                "string"
            ],
            "resource_naming_strategy": "string"
        }
    ],
    "count": 0
}
string
size_hint
Required

This affects the size and resources allocated to the Kubernetes API server. It also affects the suggested default serviceCidr and podCidrs.

For more information see: Vcenter NamespaceManagement SizingHint.

This property was added in vSphere API 7.0.0.0.

service_cidr
Required

CIDR block from which Kubernetes allocates service cluster IP addresses. This range should not overlap with those in Vcenter NamespaceManagement Clusters NCPClusterNetworkEnableSpec.pod_cidrs, Vcenter NamespaceManagement Clusters NCPClusterNetworkEnableSpec.ingress_cidrs, Vcenter NamespaceManagement Clusters NCPClusterNetworkEnableSpec.egress_cidrs, or other services running in the datacenter.

This property was added in vSphere API 7.0.0.0.

string
network_provider
Required

The provider of cluster networking for this vSphere Namespaces cluster.

For more information see: Vcenter NamespaceManagement Clusters NetworkProvider.

This property was added in vSphere API 7.0.0.0.

ncp_cluster_network_spec
Optional

Specification for the NSX Container Plugin cluster network.

This property was added in vSphere API 7.0.0.0.

This property is optional and it is only relevant when the value of network_provider is Vcenter NamespaceManagement Clusters NetworkProvider.NSXT_CONTAINER_PLUGIN.

workload_networks_spec
Optional

Specification for the workload networks to be associated with the cluster.

This property was added in vSphere API 7.0.1.0.

This property is optional and it is only relevant when the value of network_provider is Vcenter NamespaceManagement Clusters NetworkProvider.VSPHERE_NETWORK.

array of string
workload_ntp_servers
Optional

List of NTP server DNS names or IP addresses to use for workloads such as Kubernetes Cluster VMs, specified in order of preference.

This property was added in vSphere API 7.0.1.0.

If missing or null, NTP server for Kubernetes API servers will be used.

load_balancer_config_spec
Optional

The load balancer configuration is derived from the user-provisioned load balancer that will be used to operate a load balancer that fronts vSphere Namespaces cluster servers, Kubernetes Cluster API servers, and other servers upon request.

This configuration is required for network providers that do not have a default load balancer included.

This property was added in vSphere API 7.0.1.0.

This property is optional and it is only relevant when the value of network_provider is Vcenter NamespaceManagement Clusters NetworkProvider.VSPHERE_NETWORK.

master_management_network
Required

Specification for the management network on Kubernetes API server. Vcenter NamespaceManagement Clusters NetworkSpec.mode must be STATICRANGE as we require Kubernetes API server to have a stable address.

This property was added in vSphere API 7.0.0.0.

array of string
master_dns
Optional

List of DNS server IP addresses to use on Kubernetes API server, specified in order of preference.

This property was added in vSphere API 7.0.0.0.

If missing or null, no default DNS servers are set.

array of string
worker_dns
Optional

List of DNS server IP addresses to use on the worker nodes, specified in order of preference.

This property was added in vSphere API 7.0.0.0.

If missing or null, no default DNS servers are set.

array of string
master_dns_search_domains
Optional

List of domains (for example "vmware.com") to be searched when trying to lookup a host name on Kubernetes API server, specified in order of preference.

This property was added in vSphere API 7.0.0.0.

If missing or null, no default DNS search domains are set.

array of string
master_ntp_servers
Optional

List of NTP server DNS names or IP addresses to use on Kubernetes API server, specified in order of preference.

This property was added in vSphere API 7.0.0.0.

If missing or null, VMware Tools based time synchronization is enabled.

string
master_storage_policy
Required

Identifier of storage policy associated with Kubernetes API server.

This property was added in vSphere API 7.0.0.0.

When clients pass a value of this schema as a parameter, the property must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this schema as a response, the property will be an identifier for the resource type: SpsStorageProfile.

string
ephemeral_storage_policy
Required

Identifier of storage policy associated with ephemeral disks of all the Kubernetes Pods in the cluster.

This property was added in vSphere API 7.0.0.0.

When clients pass a value of this schema as a parameter, the property must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this schema as a response, the property will be an identifier for the resource type: SpsStorageProfile.

cns_file_config
Optional

Specification for configuring Cloud Native Storage file volume support on Supervisor. This feature provides support for provisioning ReadWriteMany persistent volumes on this cluster and/or external clusters.

This property was added in vSphere API 7.0.3.0.

If missing or null, file volume support will not be enabled on this Supervisor.

string
login_banner
Optional

Disclaimer to be displayed prior to login via the Kubectl plugin.

This property was added in vSphere API 7.0.0.0.

If missing or null, just skip it.

array of string
master_dns_names
Optional

List of DNS names to associate with the Kubernetes API server. These DNS names are embedded in the TLS certificate presented by the API server.

This property was added in vSphere API 7.0.0.0.

If missing or null, no DNS names are embedded in the TLS certificate.

image_storage
Required

Specification for storage to be used for container images.

This property was added in vSphere API 7.0.0.0.

default_image_registry
Optional

Default image registry to use when Kubernetes Pod container specification does not specify it as part of the container image name.

This property was added in vSphere API 7.0.0.0.

If missing or null, defaults to Docker Hub.

string
default_image_repository
Optional

Default image repository to use when Kubernetes Pod container specification does not specify it as part of the container image name.

This property was added in vSphere API 7.0.0.0.

If missing or null, defaults to Docker Hub official repository in case of Docker Hub image registry, otherwise defaults to empty string.

string
default_kubernetes_service_content_library
Optional

This property is deprecated as of vSphere API 9.0.0.0. Use Vcenter NamespaceManagement Clusters EnableSpec.content_libraries instead.

Identifier of the Content Library which holds the VM Images for vSphere Kubernetes Service.

This Content Library should be subscribed to VMware's hosted vSphere Kubernetes Service Repository.

This property was added in vSphere API 7.0.0.0.

If missing or null, the Content Library will be automatically generated and configured to the Supervisor.

When clients pass a value of this schema as a parameter, the property must be an identifier for the resource type: com.vmware.content.Library. When operations return a value of this schema as a response, the property will be an identifier for the resource type: com.vmware.content.Library.

cluster_proxy_config
Optional

Proxy configuration that will be applied to the Supervisor. The proxy should be reachable from the management network and will be used for image pulling and container traffic exiting out of the Supervisor.

This property was added in vSphere API 7.0.3.00100.

If missing or null the settings will be inherited from the vCenter settings if available.

array of object
content_libraries
Optional

List of Content Libraries that will be associated with a Supervisor. This list should refer to existing Content Libraries in the vSphere inventory. These Content Libraries and the Content Library items belonging to them will be read-only across all vSphere Namespaces. If Vcenter NamespaceManagement Clusters EnableSpec.default_kubernetes_service_content_library is set, the Content Library identifier will be migrated to this property.

This property was added in vSphere API 8.0.2.0.

If missing or null, a subscribed Content Library, subscribed to VMware's hosted vSphere Kubernetes Service Repository, will be automatically created and configured to the Supervisor.

integer As int64 As int64
count
Optional

Number of control planes requested during Supervisor enablement. The allowed values are either 1 or 3.

This property was added in vSphere API 9.0.0.0.

If missing or null, defaults to 3.

Authentication
This operation uses the following authentication methods.
Responses
204

Success!

Operation doesn't return any data structure

400

Vapi Std Errors AlreadyExists if the cluster already has vSphere Namespaces enabled.

Vapi Std Errors InvalidArgument if spec contain any errors.

Vapi Std Errors Unsupported if the specified cluster is not supported for vSphere Namespaces, the cluster's hosts do not have the required ESX version, or for any other incompatibilities.

Returns Vapi Std Errors Error of type(s) application/json
"Vapi Std Errors Error Object"
array of object
messages
Required

Stack of one or more localizable messages for human error consumers.

The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked.

Each subsequent message in the stack describes the "cause" of the prior message.

object
data
Optional

Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully.

Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports.

The Vapi Std Errors ArgumentLocations, Vapi Std Errors FileLocations, and Vapi Std Errors TransientIndication schemas are intended as possible values for this property. Vapi Std DynamicID may also be useful as a value for this property (although that is not its primary purpose). Some resources may provide their own specific schemas for use as the value of this property when reporting errors from their operations.

Some operations will not set this property when reporting errors.

string
error_type
Required

Discriminator field to help API consumers identify the structure type.

For more information see: Vapi Std Errors Error Type.

This property was added in vSphere API 6.7.2.

Can be missing or null for compatibility with preceding implementations.


401

if the user can not be authenticated.

Returns Vapi Std Errors Unauthenticated of type(s) application/json
This response body class contains all of the following: InlineVapi Std Errors Unauthenticated0
"Vapi Std Errors Unauthenticated Object"
string
challenge
Optional

Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used.

For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm="27da1358-2ba4-11e9-b210-d663bd873d93",sts="http://vcenter/sso?vsphere.local", Basic realm="vCenter"

This property was added in vSphere API 7.0.0.0.

This property is optional because it was added in a newer version than its parent node.


403

if the user does not have Namespaces.Manage privilege.

Returns Vapi Std Errors Unauthorized of type(s) application/json
This response body class contains all of the following: InlineVapi Std Errors Unauthorized0
"Vapi Std Errors Unauthorized Object"

404

if resources/objects could not be located.

Returns Vapi Std Errors NotFound of type(s) application/json
This response body class contains all of the following: InlineVapi Std Errors NotFound0
"Vapi Std Errors NotFound Object"

500

Vapi Std Errors Error if the system reports an error while responding to the request.

Vapi Std Errors UnableToAllocateResource if the specified cluster is not licensed or resource pool reservation for control plane VMs fails.

Returns Vapi Std Errors Error of type(s) application/json
"Vapi Std Errors Error Object"
array of object
messages
Required

Stack of one or more localizable messages for human error consumers.

The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked.

Each subsequent message in the stack describes the "cause" of the prior message.

object
data
Optional

Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully.

Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports.

The Vapi Std Errors ArgumentLocations, Vapi Std Errors FileLocations, and Vapi Std Errors TransientIndication schemas are intended as possible values for this property. Vapi Std DynamicID may also be useful as a value for this property (although that is not its primary purpose). Some resources may provide their own specific schemas for use as the value of this property when reporting errors from their operations.

Some operations will not set this property when reporting errors.

string
error_type
Required

Discriminator field to help API consumers identify the structure type.

For more information see: Vapi Std Errors Error Type.

This property was added in vSphere API 6.7.2.

Can be missing or null for compatibility with preceding implementations.


Code Samples
COPY
                    curl -X POST -H 'Authorization: <value>' -H 'Content-Type: application/json' -d '{"ephemeral_storage_policy:"string","image_storage":"{}","master_management_network":"{}","master_storage_policy:"string","network_provider:"string","service_cidr":"{}","size_hint:"string"}' https://{api_host}/api/vcenter/namespace-management/clusters/{cluster}?action=enable