API Reference

Last updated: 04-04-2024

Karbon (v1.1.0)

Download OpenAPI specification:Download

Introduction

Nutanix Kubernetes Engine (NKE) is a curated turnkey offering that provides simplified provisioning and operations of Kubernetes clusters. Kubernetes is an open source container orchestration system for deploying and managing container-based applications.

NKE uses the CentOS Linux-based operating systems for NKE-enabled Kubernetes cluster creation. Linux containers provide the flexibility to deploy applications in different environments with consistent results.

NKE streamlines the deployment and management of Kubernetes clusters with a simple GUI integrated into Prism Central (PC). Kibana, the built-in add-on, lets you filter and parse logs for systems, pods, and nodes. Prometheus, another add-on, provides a monitoring mechanism that triggers alerts on your cluster. NKE also uses Pulse, Prism health-monitoring system, which interacts with Nutanix Support to expedite cluster issue resolutions.

For more information about NKE and its offerings, refer to NKE Documentation.

Authentication

NKE uses basic authentication: The user provides user ID and password every time a request is sent as the authentication header.

Airgap

Get the status of the certificate rotation operation for the Airgap node

Get the status of the latest certificate rotation task running on the given Airgap node.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/airgap/certificate-rotation/status.

path Parameters
uuid
required
string

The Airgap UUID.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/airgap/{uuid}/certificate-rotation/status \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "percentage_complete": 100,
  • "progress_message": "string",
  • "status": "string",
  • "uuid": "string",
  • "error_detail": "string"
}

Update the certificates used by the various components of the Airgap node

Update the signed certificates used by the Airgap node, master nodes, worker nodes, and the etcd nodes of the Kubernetes cluster for authentication.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/airgap/certificate-rotation.

query Parameters
skip-health-checks
boolean
Default: false

Skip health checks during the certificate rotation if Airgap node is unhealthy due to expired certificates.

Request Body schema: application/json
required
uuid
required
string

The Airgap UUID.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/airgap/certificate-rotation \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "uuid": "string"
}'

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Alert

Disable alert forwarding

Disable alert forwarding configuration enabled on the cluster.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/disable-alert-forwarding \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
{
  • "message_info": { }
}

Forward alerts to the provided SMTP configuration

Forward alerts to the provided SMTP configuration.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster1/enable-alert-forwarding

path Parameters
name
required
string

The Kubernetes cluster name.

Request Body schema: application/json
password
string

SMTP server password.

smtp-host
required
string^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA...

IP or FQDN address of the SMTP Server.

smtp-port
integer

Port number of the SMTP Server. By default, port 25 or 587 (TLS/STARTTLS) is used.

tls
boolean
Default: false

TLS or STARTTLS mode of communication with the SMTP server.

to-email-address
required
string

Destination email address(es) to which the alerts are delivered.

username
string

SMTP server username.

from-email-address
required
string

Source email address to be used while sending emails.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/enable-alert-forwarding \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "from-email-address": "string",
    "password": "string",
    "smtp-host": "string",
    "smtp-port": 0,
    "tls": false,
    "to-email-address": "string",
    "username": "string"
}'

Response samples

Content type
application/json
{
  • "message_info": { }
}

Get the details of SMTP configurations of the cluster

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/alert-forwarding \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "password": "string",
  • "smtp-host": "string",
  • "smtp-port": 0,
  • "tls": false,
  • "to-email-address": "string",
  • "username": "string",
  • "from-email-address": "string"
}

Auditlog

Disable the audit log collection

Disable the audit log collection.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/disable-audit-logs \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
{
  • "message_info": { }
}

Enable the audit log collection

Enable the audit log collection.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/enable-audit-logs \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
{
  • "message_info": { }
}

Get status of the audit log collection

Get status of the audit log collection.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/audit-logs \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "enabled": true
}

Cluster

Add a node pool to a Kubernetes cluster

Add a node pool to a Kubernetes cluster. The scope is restricted to a worker node pool currently.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster01/add-node-pool.

path Parameters
name
required
string

The Kubernetes cluster name.

Request Body schema: application/json
required
object

Map of user-provided labels for the nodes in the node pool.

name
required
string [ 1 .. 128 ] characters ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

Unique name of the node pool.

node_os_version
string

The version of the node OS image.

num_instances
integer

Number of nodes in the node pool.

object (v1.1.0_ahv_config)
Array of objects (v1.1.0_gpu_config)

List of GPU configurations that can be assigned to the nodes of the node pool.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/add-node-pool \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "ahv_config": {
        "cpu": 1,
        "disk_mib": 40960,
        "iscsi_network_name": "string",
        "iscsi_network_uuid": "string",
        "memory_mib": 4096,
        "network_name": "string",
        "network_uuid": "string",
        "prism_element_cluster_uuid": "string"
    },
    "gpu_config_list": [
        {
            "count": 1,
            "name": "string"
        }
    ],
    "labels": {
        "property1": "string",
        "property2": "string"
    },
    "name": "string",
    "node_os_version": "string",
    "num_instances": 0
}'

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Add nodes to a node pool of a cluster

Add nodes to the specified node pool of the specified Kubernetes cluster.

path Parameters
node-pool-name
required
string

The name of the node pool.

name
required
string

The Kubernetes cluster name.

Request Body schema: application/json
required
count
required
integer >= 1

Count of the nodes to be added.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/node-pools/{node-pool-name}/add-nodes \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "count": 1
}'

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Add the private registry access to the Kubernetes cluster

Adds private registry configuration access that will be consumed by Kubernetes cluster.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster01/registries

path Parameters
cluster_name
required
string

The Kubernetes cluster name.

Request Body schema: application/json
required
registry_name
required
string [ 1 .. 40 ] characters [a-z0-9]([-a-z0-9]*[a-z0-9])?

The name of the private registry configuration.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{cluster_name}/registries \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "registry_name": "string"
}'

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Create a new Kubernetes cluster

Create a Kubernetes cluster with the provided configuration.

Request Body schema: application/json
required
required
object (v1.1.0_cni_config)
Default: {"node_cidr_mask_size":24,"pod_ipv4_cidr":"172.20.0.0/16","service_ipv4_cidr":"172.19.0.0/16"}

Kubernetes cluster networking configuration. The Flannel or the Calico configuration must be provided.

disable_monitoring
boolean

Set to 'true' to disable deployment of monitoring stack(prometheus). Default: false.

required
object (v1.1.0_metadata)
required
object (v1.1.0_storage_class_config)
required
object (v1.1.0_workers_config)

Configuration of the worker nodes.

name
required
string [ 1 .. 40 ] characters [a-z0-9]([-a-z0-9]*[a-z0-9])?

Unique name of the Kubernetes cluster.

apiserver_sni
Array of strings (v1.1.0_hostnames) [^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA...]

List of hostnames or IP addresses. SNI can be used to provide additional hostnames or IP addresses for the API Server certificate.

is_management
boolean

Determines whether the Kubernetes cluster is management cluster or not. Default: false.

required
object (v1.1.0_masters_config)

Configuration of the master nodes. Provide one of the following configurations: single master, active-passive or the external load-balancer.

project
string

Project(name or uuid) associated with an NKE cluster

version
required
string^v?(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d...

Kubernetes version of the cluster.

Array of objects (v1.1.0_categories)

Prism categories associated with the NKE cluster. (Note: categories must be pre-created)

clusterapi_enabled
boolean

Deploy k8s cluster using cluster api. Default: false

required
object (v1.1.0_etcd_config)

Configuration of the etcd cluster.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1/k8s/clusters \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "apiserver_sni": [
        "string"
    ],
    "categories": [
        {
            "key": "string",
            "value": "string"
        }
    ],
    "clusterapi_enabled": true,
    "cni_config": {
        "calico_config": {
            "ip_pool_configs": [
                {
                    "cidr": "string"
                }
            ]
        },
        "flannel_config": {},
        "node_cidr_mask_size": 0,
        "pod_ipv4_cidr": "string",
        "service_ipv4_cidr": "string"
    },
    "disable_monitoring": true,
    "etcd_config": {
        "node_pools": [
            {
                "ahv_config": {
                    "cpu": 1,
                    "disk_mib": 40960,
                    "iscsi_network_name": "string",
                    "iscsi_network_uuid": "string",
                    "memory_mib": 4096,
                    "network_name": "string",
                    "network_uuid": "string",
                    "prism_element_cluster_uuid": "string"
                },
                "gpu_config_list": [
                    {
                        "count": 1,
                        "name": "string"
                    }
                ],
                "labels": {
                    "property1": "string",
                    "property2": "string"
                },
                "name": "string",
                "node_os_version": "string",
                "num_instances": 0
            }
        ]
    },
    "is_management": true,
    "masters_config": {
        "active_passive_config": {
            "external_ipv4_address": "string"
        },
        "external_lb_config": {
            "external_ipv4_address": "string",
            "master_nodes_config": [
                {
                    "ipv4_address": "string",
                    "node_pool_name": "string"
                }
            ]
        },
        "node_pools": [
            {
                "ahv_config": {
                    "cpu": 1,
                    "disk_mib": 40960,
                    "iscsi_network_name": "string",
                    "iscsi_network_uuid": "string",
                    "memory_mib": 4096,
                    "network_name": "string",
                    "network_uuid": "string",
                    "prism_element_cluster_uuid": "string"
                },
                "gpu_config_list": [
                    {
                        "count": 1,
                        "name": "string"
                    }
                ],
                "labels": {
                    "property1": "string",
                    "property2": "string"
                },
                "name": "string",
                "node_os_version": "string",
                "num_instances": 0
            }
        ],
        "single_master_config": {}
    },
    "metadata": {
        "api_version": "v1.0.0"
    },
    "name": "string",
    "project": "string",
    "storage_class_config": {
        "default_storage_class": true,
        "name": "string",
        "reclaim_policy": "string",
        "volumes_config": {
            "data_service_endpoint": "string",
            "file_system": "ext4",
            "flash_mode": true,
            "password": "string",
            "prism_element_cluster_uuid": "string",
            "storage_container": "string",
            "username": "string"
        }
    },
    "version": "string",
    "workers_config": {
        "node_pools": [
            {
                "ahv_config": {
                    "cpu": 1,
                    "disk_mib": 40960,
                    "iscsi_network_name": "string",
                    "iscsi_network_uuid": "string",
                    "memory_mib": 4096,
                    "network_name": "string",
                    "network_uuid": "string",
                    "prism_element_cluster_uuid": "string"
                },
                "gpu_config_list": [
                    {
                        "count": 1,
                        "name": "string"
                    }
                ],
                "labels": {
                    "property1": "string",
                    "property2": "string"
                },
                "name": "string",
                "node_os_version": "string",
                "num_instances": 0
            }
        ]
    }
}'

Response samples

Content type
application/json
{
  • "cluster_name": "string",
  • "cluster_uuid": "string",
  • "task_uuid": "string"
}

Delete a specific addon installed on the kubernetes cluster

path Parameters
name
required
string

Name of the kubernetes cluster addon. e.g. cilium, fluentbit, etc.

uuid
required
string

Kubernetes cluster UUID.

query Parameters
force
boolean
Default: false

Force delete cluster addon even if it's a system default addon.

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{uuid}/addons/{name} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "message_info": { }
}

Delete the Kubernetes cluster

Delete the Kubernetes cluster.

path Parameters
name
required
string

The Kubernetes cluster name.

query Parameters
skip-prechecks
boolean
Default: false

Determines whether NKE allows cluster deletion during cluster deployment.

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/karbon/v1/k8s/clusters/{name} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "task_uuid": "string",
  • "cluster_name": "string",
  • "cluster_uuid": "string"
}

Delete the node pool

Delete the node pool of the Kubernetes cluster. The scope is restricted to a newly added worker node pool currently.

path Parameters
node-pool-name
required
string

The node pool name.

name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{name}/node-pools/{node-pool-name} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Get health status of the Kubernetes cluster

Get health status of the Kubernetes cluster.

API format- https://server.nutanix.com:9440/karbon/v1/k8s/clusters/cluster01/health.

path Parameters
name
required
string [ 1 .. 40 ] characters

The name of the Kubernetes cluster.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1/k8s/clusters/{name}/health \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "messages": [
    ],
  • "status": true
}

Get information of a specified addon installed on the kubernetes cluster.

path Parameters
name
required
string

Name of the kubernetes cluster addon. e.g. cilium, fluentbit, etc.

uuid
required
string

Kubernetes cluster UUID.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{uuid}/addons/{name} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "metadata": { },
  • "spec": {
    },
  • "status": {
    }
}

Get SSH credentials to remotely access nodes that belong to the Kubernetes cluster

Get SSH credentials to remotely access nodes that belong to the Kubernetes cluster. The credentials have an expiry time of 24 hours.

API format- https://server.nutanix.com:9440/karbon/v1/k8s/clusters/cluster01/ssh.

path Parameters
name
required
string [ 1 .. 40 ] characters

The name of the Kubernetes cluster.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1/k8s/clusters/{name}/ssh \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "username": "string",
  • "certificate": "string",
  • "expiry_time": "2019-08-24T14:15:22Z",
  • "private_key": "string"
}

Get task details associated with the Kubernetes cluster

path Parameters
task-uuid
required
string^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}...

The UUID of the task.

name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/tasks/{task-uuid} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "progress_message": "string",
  • "status": "string",
  • "uuid": "string",
  • "creation_time": "2019-08-24T14:15:22Z",
  • "error_detail": "string",
  • "message": "string",
  • "operation_type": "string",
  • "percentage_complete": 100
}

Get the agent status of a cluster

Get all the details of the k8s-agent of the cluster.

path Parameters
uuid
required
string

Kubernetes cluster UUID.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{uuid}/agent \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "controller_image": "string",
  • "edgemgmt_image": "string"
}

Get the available updates of node OS images and Nutanix Kubernetes releases of the Kubernetes cluster

Get the details of the available node OS images and Nutanix Kubernetes releases for upgrade of the Kubernetes cluster.

API format- https://server.nutanix.com:9440/karbon/v1-beta.1/k8s/clusters/cluster01/available-updates.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{name}/available-updates \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "node_os_images": [
    ],
  • "ntnx_k8s_releases": [
    ]
}

Get the kubeconfig to access the Kubernetes cluster

Get the kubeconfig to access the Kubernetes cluster.

API format- https://server.nutanix.com:9440/karbon/v1/k8s/clusters/cluster01/kubeconfig.

path Parameters
name
required
string [ 1 .. 40 ] characters

The name of the Kubernetes cluster.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1/k8s/clusters/{name}/kubeconfig \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "kube_config": "string"
}

Get the Kubernetes cluster details

Get the Kubernetes cluster details, which include worker, etcd, and master configuration details.

API format- https://server.nutanix.com:9440/karbon/v1/k8s/clusters/cluster01.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1/k8s/clusters/{name} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "etcd_config": {
    },
  • "master_config": {
    },
  • "status": "string",
  • "clusterapi_enabled": true,
  • "cni_config": {
    },
  • "name": "string",
  • "version": "string",
  • "categories": [
    ],
  • "disable_monitoring": true,
  • "uuid": "string",
  • "worker_config": {
    },
  • "is_management": true,
  • "project": "string",
  • "kubeapi_server_ipv4_address": "string"
}

Get the Kubernetes cluster registration details

Get the Kubernetes cluster registration details.

path Parameters
id
required
string

Kubernetes cluster UUID.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations/{id} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "name": "string",
  • "status": "string",
  • "uuid": "string",
  • "addons_info": {
    },
  • "categories_mapping": {
    },
  • "cluster_info": {
    },
  • "k8s_distribution": "string"
}

Get the node pool configuration

path Parameters
node-pool-name
required
string

The node pool name.

name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{name}/node-pools/{node-pool-name} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "name": "string",
  • "node_os_image_uuid": "string",
  • "node_os_version": "string",
  • "nodes": [
    ],
  • "num_instances": 0,
  • "ahv_config": {
    },
  • "category": "string",
  • "default": true,
  • "labels": {
    },
  • "assigned_gpu_config_list": [
    ]
}

Get the status of the certificate rotation operation for the Kubernetes cluster

Get the status of the latest certificate rotation task running on the given Kubernetes cluster.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster01/certificate-rotation/status.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/certificate-rotation/status \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "progress_message": "string",
  • "status": "string",
  • "error_detail": "string",
  • "percentage_complete": 100
}

Install a specific addon on kubernetes cluster

path Parameters
uuid
required
string

Kubernetes cluster UUID.

Request Body schema: application/json
required
metadata
object
object

Spec defines the desired state of the cluster addon.

object

Status defines the observed state of cluster addon.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{uuid}/addons \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "metadata": {},
    "spec": {
        "chartName": "string",
        "clusterSelector": {
            "matchExpressions": [
                {}
            ],
            "matchLabels": {
                "property1": "string",
                "property2": "string"
            }
        },
        "namespace": "string",
        "options": {
            "atomic": true,
            "dependencyUpdate": true,
            "disableHooks": true,
            "disableOpenAPIValidation": true,
            "install": {
                "createNamespace": true,
                "includeCRDs": true
            },
            "options": true,
            "skipCRDs": true,
            "timeout": "string",
            "uninstall": {
                "description": "string",
                "keepHistory": true
            },
            "upgrade": {
                "cleanupOnFail": true,
                "force": true,
                "maxHistory": 0,
                "recreate": true,
                "resetValues": true,
                "reuseValues": true
            },
            "wait": true,
            "waitForJobs": true
        },
        "releaseName": "string",
        "repoURL": "string",
        "valuesTemplate": "string",
        "version": "string"
    },
    "status": {
        "conditions": [
            {}
        ],
        "revision": 0,
        "status": "string"
    }
}'

Response samples

Content type
application/json
{
  • "message_info": { }
}

List all of the Kubernetes cluster registrations

Get all the Kubernetes cluster registration objects.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

List all the addons installed on the kubernetes cluster

path Parameters
uuid
required
string

Kubernetes cluster UUID.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{uuid}/addons \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

List all the GPU configurations discoverable by the Kubernetes cluster

List of all the GPU configurations discoverable by the Kubernetes cluster based on what PE clusters or hosts it can span (currently restricted to one PE cluster). This only reports PASSTHROUGH_COMPUTE GPUs currently.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster01/gpus.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/gpus \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

List all the Kubernetes clusters

Get all the Kubernetes cluster objects, which include worker, etcd, and master configuration details.

API format- https://server.nutanix.com:9440/karbon/v1-beta.1/k8s/clusters

query Parameters
type
string
Enum: "classic" "capi_management" "capx"

Type of the kubernetes cluster. e.g. classic, capi_management, CAPX, etc.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

List all the node pools of the Kubernetes cluster

List all the node pool configurations of the Kubernetes cluster.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster01/node-pools.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/node-pools \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

List the available updates of the node OS images and Nutanix Kubernetes releases

List the details of the available node OS images and Nutanix Kubernetes releases for upgrade of all the Kubernetes clusters.

API format- https://server.nutanix.com:9440/karbon/v1-beta.1/k8s/clusters/available-updates.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/available-updates \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

List the private registries used by the Kubernetes cluster

Provides details of a private registry that is configured to be consumed by Kubernetes cluster.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster01/registries

path Parameters
cluster_name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{cluster_name}/registries \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

Register a new Kubernetes cluster

Register a Kubernetes cluster with the provided configuration.

Request Body schema: application/json
required
required
object (v1.1.0_k8s_cluster_categories_mapping)

Categories for this Kubernetes cluster. This allows setting up multiple values from a single key.

k8s_distribution
required
string

The type of 3rd party Kubernetes cluster.

required
object (v1.1.0_metadata)
name
required
string [ 1 .. 40 ] characters [a-z0-9]([-a-z0-9]*[a-z0-9])?

Unique name of the Kubernetes cluster.

uuid
required
string^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}...

The UUID of the Kubernetes cluster.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "categories_mapping": {},
    "k8s_distribution": "string",
    "metadata": {
        "api_version": "v1.0.0"
    },
    "name": "string",
    "uuid": "string"
}'

Response samples

Content type
application/json
{
  • "cluster_name": "string",
  • "cluster_uuid": "string",
  • "task_uuid": "string"
}

Remove nodes from a node pool of a cluster

Remove nodes from the specified node pool for the provided Kubernetes cluster.

path Parameters
node-pool-name
required
string

The name of the node pool.

name
required
string

The Kubernetes cluster name.

query Parameters
skip-prechecks
boolean
Default: false

Determine whether the removal of nodes can override pre-checks.

Request Body schema: application/json
required

Parameters of the node pool.

count
integer >= 1

Count of the nodes to be removed.

node_list
Array of strings

Names of the nodes to be removed.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/node-pools/{node-pool-name}/remove-nodes \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "count": 1,
    "node_list": [
        "string"
    ]
}'

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Remove the private registry access from the Kubernetes cluster

Deletes the private registry that will be consumed by Kubernetes cluster

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster01/registries/test-reg

path Parameters
registry_name
required
string

Private registry name.

cluster_name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{cluster_name}/registries/{registry_name} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Unregister the Kubernetes cluster

Unregister the Kubernetes cluster.

path Parameters
id
required
string

Kubernetes cluster UUID.

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations/{id} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "cluster_uuid": "string",
  • "task_uuid": "string",
  • "cluster_name": "string"
}

Update a specific addon on kubernetes cluster

path Parameters
uuid
required
string

Kubernetes cluster UUID.

Request Body schema: application/json
required
metadata
object
object

Spec defines the desired state of the cluster addon.

object

Status defines the observed state of cluster addon.

Responses

Request samples

curl --request PUT \
    --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{uuid}/addons \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "metadata": {},
    "spec": {
        "chartName": "string",
        "clusterSelector": {
            "matchExpressions": [
                {}
            ],
            "matchLabels": {
                "property1": "string",
                "property2": "string"
            }
        },
        "namespace": "string",
        "options": {
            "atomic": true,
            "dependencyUpdate": true,
            "disableHooks": true,
            "disableOpenAPIValidation": true,
            "install": {
                "createNamespace": true,
                "includeCRDs": true
            },
            "options": true,
            "skipCRDs": true,
            "timeout": "string",
            "uninstall": {
                "description": "string",
                "keepHistory": true
            },
            "upgrade": {
                "cleanupOnFail": true,
                "force": true,
                "maxHistory": 0,
                "recreate": true,
                "resetValues": true,
                "reuseValues": true
            },
            "wait": true,
            "waitForJobs": true
        },
        "releaseName": "string",
        "repoURL": "string",
        "valuesTemplate": "string",
        "version": "string"
    },
    "status": {
        "conditions": [
            {}
        ],
        "revision": 0,
        "status": "string"
    }
}'

Response samples

Content type
application/json
{
  • "message_info": { }
}

Update certificates for Kubernetes cluster components.

Update the signed certificates used by the master, worker and the etcd nodes of the Kubernetes cluster for authentication.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/certificate-rotation.

query Parameters
skip-health-checks
boolean
Default: false

Indicates whether to skip the health checks during certificate rotation for an unhealthy cluster with expired certificates.

Request Body schema: application/json
required
apiserver_sni
Array of strings (v1.1.0_hostnames) [^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA...]

List of hostnames or IP addresses. SNI can be used to provide additional hostnames or IP addresses for the API Server certificate.

name
required
string [ 1 .. 40 ] characters

The Kubernetes cluster name.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/certificate-rotation \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "apiserver_sni": [
        "string"
    ],
    "name": "string"
}'

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Update Kubernetes cluster addon info

Update Kubernetes cluster addon info with the provided information.

path Parameters
name
required
string

Kubernetes cluster addon name.

id
required
string

Kubernetes cluster UUID.

Request Body schema: application/json
required
required
object (v1.1.0_k8s_cluster_addon_info)

Addons information for this Kubernetes cluster. This allows setting up multiple values from a single key.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations/{id}/addons/{name}/setinfo \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "cluster_addon_info": {}
}'

Response samples

Content type
application/json
{
  • "cluster_name": "string",
  • "cluster_uuid": "string"
}

Update Kubernetes cluster addon metrics.

Update Kubernetes cluster addon metrics with the provided information.

path Parameters
name
required
string

Kubernetes cluster addon name.

id
required
string

Kubernetes cluster UUID.

Request Body schema: application/json
required
required
object (v1.1.0_k8s_cluster_addon_metrics)

Addon metrics information for this k8s cluster.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations/{id}/addons/{name}/metrics \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "cluster_addon_metrics": {}
}'

Response samples

Content type
application/json
{
  • "cluster_name": "string",
  • "cluster_uuid": "string"
}

Update Kubernetes cluster info

Update Kubernetes cluster info with the provided information.

path Parameters
id
required
string

Kubernetes cluster UUID.

Request Body schema: application/json
required
required
object (v1.1.0_k8s_cluster_info_mapping)

Cluster information for this Kubernetes cluster. This allows setting up multiple values from a single key.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations/{id}/setinfo \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "cluster_info": {}
}'

Response samples

Content type
application/json
{
  • "cluster_name": "string",
  • "cluster_uuid": "string"
}

Update Kubernetes cluster metrics.

Update Kubernetes cluster metrics with the provided information.

path Parameters
id
required
string

Kubernetes cluster UUID.

Request Body schema: application/json
required
required
object (v1.1.0_k8s_cluster_metrics)

Metrics information for this k8s cluster.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations/{id}/metrics \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "cluster_metrics": {}
}'

Response samples

Content type
application/json
{
  • "cluster_name": "string",
  • "cluster_uuid": "string"
}

Update the Kubernetes secret and docker volume plugin password across Kubernetes clusters deployed in NKE

Update the Kubernetes secret and docker volume plugin password across Kubernetes clusters deployed in NKE. The update operation is performed only for the clusters where the provided Prism Element UUID and the username match.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/storage-auth.

Request Body schema: application/json
required
password
required
string non-empty

Password of the user in Prism Element.

prism_element_cluster_uuid
required
string^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}...

The UUID of the Prism Element cluster.

username
required
string non-empty

Username of the user in Prism Element. API calls to provision volumes are made using this user account.

Responses

Request samples

curl --request PUT \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/storage-auth \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "password": "string",
    "prism_element_cluster_uuid": "string",
    "username": "string"
}'

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Update the labels of the node pool

Update the labels of the node pool of the Kubernetes cluster. The scope is restricted to a worker node pool currently.

path Parameters
node-pool-name
required
string

The node pool name.

name
required
string

The Kubernetes cluster name.

Request Body schema: application/json
required
object

Map of user-provided labels to add to the node pool.

remove_labels
Array of strings

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/node-pools/{node-pool-name}/update-labels \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "add_labels": {
        "property1": "string",
        "property2": "string"
    },
    "remove_labels": [
        "string"
    ]
}'

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Log

Disable log forwarding to the external endpoint

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/disable-log-forwarding \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
{
  • "message_info": { }
}

Disable the Elasticsearch and Kibana from the logging stack

Disable the Elasticsearch and Kibana deployed to monitor the ntnx-system services.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster1/disable-infra-logging.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/disable-infra-logging \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
{
  • "message_info": { }
}

Enable Elasticsearch and Kibana from the logging stack

Enable Elasticsearch and Kibana to monitor ntnx-system services.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster1/enable-infra-logging.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/enable-infra-logging \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
{
  • "message_info": { }
}

Forward Logs to an external endpoint

path Parameters
name
required
string

The Kubernetes cluster name.

Request Body schema: application/json
object (v1.1.0_http_auth_config)

HTTP authentication credentials of the external endpoint.

port
required
integer

Port of the external endpoint.

object (v1.1.0_certificates_config)

Certificate Authority (CA), client certificate, and the client key associated with the external endpoint.

endpoint_type
required
string
Enum: "elasticsearch" "syslog"

Type of the external endpoint.

host
required
string

The IP address or DNS name of the external endpoint.(For example, 10.45.43.12 or es.hosted.com).

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/enable-log-forwarding \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "certificates": {
        "ca_cert": "string",
        "client_cert": "string",
        "client_key": "string",
        "enable_tls": true,
        "enable_tls_verify": true
    },
    "endpoint_type": "elasticsearch",
    "host": "string",
    "http_auth": {
        "password": "string",
        "username": "string"
    },
    "port": 0
}'

Response samples

Content type
application/json
{
  • "message_info": { }
}

Get the external endpoint details if log forwarding is enabled

Provides information about external endpoints where the logs will be forwarded.

path Parameters
name
required
string

The Kubernetes cluster name.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/log-forwarding \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "host": "string",
  • "port": 0
}

Update the log exporter memory and CPU resources

Update the log exporter memory and CPU resources.

path Parameters
name
required
string

The Kubernetes cluster name.

Request Body schema: application/json
cpu_limit
integer

CPU limit (milliCPU) to be set for log exporter pods.

memory_limit
integer

Memory limit (MiB) to be set for log exporter pods.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/update-log-exporter-resources \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "cpu_limit": 0,
    "memory_limit": 0
}'

Response samples

Content type
application/json
{
  • "message_info": { }
}

Meta

Get the NKE controller version of the k8 cluster

Get the NKE controller version of the k8 cluster.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/version.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/version \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "build_date": "string",
  • "git_commit": "string",
  • "version": "string"
}

Registry

Create the private registry entry in NKE with the provided configuration

Creates private registry entry in NKE with provided configuration.

API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/registries

Request Body schema: application/json
required
cert
string <byte>

Certificate of the private registry in the format of base64-encoded byte array.

name
required
string [ 1 .. 40 ] characters [a-z0-9]([-a-z0-9]*[a-z0-9])?

The name of the private registry configuration.

password
string non-empty

Password for authentication to the private registry.

port
integer

Port of the private registry.

url
required
string non-empty

URL of the private registry.

username
string non-empty

Username for authentication to the private registry.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/registries \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "cert": "string",
    "name": "string",
    "password": "string",
    "port": 0,
    "url": "string",
    "username": "string"
}'

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "endpoint": "string",
  • "name": "string"
}

Delete the private registry configuration.

Removes the privates registry that is configured in NKE that will be consumed by the Kubernetes cluster. API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/registries/test-reg

path Parameters
name
required
string

The name of the private registry.

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/registries/{name} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "registry_name": "string"
}

Get the private registry configuration of the specified name **API format**- https://server.nutanix.com:9440/karbon/v1-alpha.1/registries/test-reg

path Parameters
name
required
string

The name of the private registry.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/registries/{name} \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "endpoint": "string",
  • "name": "string"
}

List the private registry configurations

Provides details of the private registry configured with Nutanix Kubernetes Engine. API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/registries

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/karbon/v1-alpha.1/registries \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

upgrade

Fetch the list of compatible ntnx-k8s package versions to upgrade Kubernetes and/or addons

path Parameters
uuid
required
string

UUID of the Kubernetes cluster.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/k8s/cluster/{uuid}/k8s_upgrade/versions \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "compatible_versions": [
    ],
  • "cur_version": "string"
}

Fetch the list of upgrade-compatible versions

path Parameters
uuid
required
string

UUID of the Kubernetes cluster.

Request Body schema: application/json
os_flavor
required
string

OS flavor of the host OS image of the cluster.

version
required
string

Version of the particular os flavor of the host OS image.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/k8s/cluster/{uuid}/upgrade/versions \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "os_flavor": "string",
    "version": "string"
}'

Response samples

Content type
application/json
[
  • {
    }
]

Get cluster host image upgrade status

path Parameters
uuid
required
string

UUID of the Kubernetes cluster.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/k8s/cluster/{uuid}/upgrade \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "current_host_image_config": {
    },
  • "target_host_image_config": {
    }
}

Get the status of all the Kubernetes and addon upgrades for the cluster

path Parameters
uuid
required
string

UUID of the Kubernetes cluster.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/k8s/cluster/{uuid}/k8s_upgrade \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

Upgrade host image of all the VMs in the cluster

path Parameters
uuid
required
string

UUID of the Kubernetes cluster.

Request Body schema: application/json
required
drain-policy
any
Default: "kAlways"
Enum: "kAlways" "kBestEffort" "kNever"

Apply drain policy during the node upgrade.

drain-timeout
string
Default: "600s"

Timeout (in seconds) for draining a node.

dry-run
boolean
Default: false

Skip the upgrade for the Kubernetes cluster.

image_uuid
required
string

UUID of the image on PC.

skip-prechecks
boolean
Default: false

Skip the pre-upgrade checks for the Kubernetes cluster.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/k8s/cluster/{uuid}/upgrade \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "drain-policy": "kAlways",
    "drain-timeout": "600s",
    "dry-run": false,
    "image_uuid": "string",
    "skip-prechecks": false
}'

Response samples

Content type
application/json
{
  • "task_uuid": "string"
}

Upgrade the Kubernetes and addon components of the cluster

path Parameters
uuid
required
string

UUID of the Kubernetes cluster.

Request Body schema: application/json
required
drain-policy
any
Default: "kAlways"
Enum: "kAlways" "kBestEffort" "kNever"

Apply drain policy during the node upgrade.

drain-timeout
string
Default: "600s"

Timeout (in seconds) for draining a node.

dry_run
boolean
Default: false

Skip the Kubernetes upgrade for the cluster.

skip_prechecks
boolean
Default: false

Skip the pre-upgrade checks for the Kubernetes cluster.

required
object (0.1.0_upgrade_config)

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/k8s/cluster/{uuid}/k8s_upgrade \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "drain-policy": "kAlways",
    "drain-timeout": "600s",
    "dry_run": false,
    "skip_prechecks": false,
    "upgrade_config": {
        "pkg_version": "string"
    }
}'

Response samples

Content type
application/json
{
  • "status_code": 0,
  • "task_uuid": "string"
}