Last updated: 04-04-2024
Download OpenAPI specification:Download
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.
NKE uses basic authentication: The user provides user ID and password every time a request is sent as the authentication header.
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.
uuid required | string The Airgap UUID. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/airgap/{uuid}/certificate-rotation/status \ --header 'Accept: application/json' \
{- "percentage_complete": 100,
- "progress_message": "string",
- "status": "string",
- "uuid": "string",
- "error_detail": "string"
}
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.
skip-health-checks | boolean Default: false Skip health checks during the certificate rotation if Airgap node is unhealthy due to expired certificates. |
uuid required | string The Airgap UUID. |
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" }'
{- "task_uuid": "string"
}
Disable alert forwarding configuration enabled on the cluster.
name required | string The Kubernetes cluster name. |
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' \
{- "message_info": { }
}
Forward alerts to the provided SMTP configuration.
API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster1/enable-alert-forwarding
name required | string The Kubernetes cluster name. |
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. |
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" }'
{- "message_info": { }
}
name required | string The Kubernetes cluster name. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/alert-forwarding \ --header 'Accept: application/json' \
{- "password": "string",
- "smtp-host": "string",
- "smtp-port": 0,
- "tls": false,
- "to-email-address": "string",
- "username": "string",
- "from-email-address": "string"
}
Disable the audit log collection.
name required | string The Kubernetes cluster name. |
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' \
{- "message_info": { }
}
Enable the audit log collection.
name required | string The Kubernetes cluster name. |
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' \
{- "message_info": { }
}
Get status of the audit log collection.
name required | string The Kubernetes cluster name. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/audit-logs \ --header 'Accept: application/json' \
{- "enabled": true
}
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.
name required | string The Kubernetes cluster name. |
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. |
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 }'
{- "task_uuid": "string"
}
Add nodes to the specified node pool of the specified Kubernetes cluster.
node-pool-name required | string The name of the node pool. |
name required | string The Kubernetes cluster name. |
count required | integer >= 1 Count of the nodes to be added. |
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 }'
{- "task_uuid": "string"
}
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
cluster_name required | string The Kubernetes cluster name. |
registry_name required | string [ 1 .. 40 ] characters [a-z0-9]([-a-z0-9]*[a-z0-9])? The name of the private registry configuration. |
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" }'
{- "task_uuid": "string"
}
Create a Kubernetes cluster with the provided configuration.
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. |
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 } ] } }'
{- "cluster_name": "string",
- "cluster_uuid": "string",
- "task_uuid": "string"
}
name required | string Name of the kubernetes cluster addon. e.g. cilium, fluentbit, etc. |
uuid required | string Kubernetes cluster UUID. |
force | boolean Default: false Force delete cluster addon even if it's a system default addon. |
curl --request DELETE \ --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{uuid}/addons/{name} \ --header 'Accept: application/json' \
{- "message_info": { }
}
Delete the Kubernetes cluster.
name required | string The Kubernetes cluster name. |
skip-prechecks | boolean Default: false Determines whether NKE allows cluster deletion during cluster deployment. |
curl --request DELETE \ --url https://www.nutanix.dev/karbon/v1/k8s/clusters/{name} \ --header 'Accept: application/json' \
{- "task_uuid": "string",
- "cluster_name": "string",
- "cluster_uuid": "string"
}
Delete the node pool of the Kubernetes cluster. The scope is restricted to a newly added worker node pool currently.
node-pool-name required | string The node pool name. |
name required | string The Kubernetes cluster name. |
curl --request DELETE \ --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{name}/node-pools/{node-pool-name} \ --header 'Accept: application/json' \
{- "task_uuid": "string"
}
Get health status of the Kubernetes cluster.
API format- https://server.nutanix.com:9440/karbon/v1/k8s/clusters/cluster01/health.
name required | string [ 1 .. 40 ] characters The name of the Kubernetes cluster. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1/k8s/clusters/{name}/health \ --header 'Accept: application/json' \
{- "messages": [
- "string"
], - "status": true
}
name required | string Name of the kubernetes cluster addon. e.g. cilium, fluentbit, etc. |
uuid required | string Kubernetes cluster UUID. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{uuid}/addons/{name} \ --header 'Accept: application/json' \
{- "metadata": { },
- "spec": {
- "chartName": "string",
- "clusterSelector": {
- "matchExpressions": [
- {
- "operator": "string",
- "values": [
- "string"
], - "key": "string"
}
], - "matchLabels": {
- "property1": "string",
- "property2": "string"
}
}, - "namespace": "string",
- "options": {
- "uninstall": {
- "description": "string",
- "keepHistory": true
}, - "upgrade": {
- "cleanupOnFail": true,
- "force": true,
- "maxHistory": 0,
- "recreate": true,
- "resetValues": true,
- "reuseValues": true
}, - "waitForJobs": true,
- "atomic": true,
- "disableHooks": true,
- "options": true,
- "skipCRDs": true,
- "timeout": "string",
- "dependencyUpdate": true,
- "disableOpenAPIValidation": true,
- "install": {
- "createNamespace": true,
- "includeCRDs": true
}, - "wait": true
}, - "releaseName": "string",
- "repoURL": "string",
- "valuesTemplate": "string",
- "version": "string"
}, - "status": {
- "conditions": [
- {
- "status": "string",
- "type": "string",
- "lastTransitionTime": "2019-08-24T14:15:22Z",
- "message": "string",
- "reason": "string",
- "severity": "string"
}
], - "revision": 0,
- "status": "string"
}
}
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.
name required | string [ 1 .. 40 ] characters The name of the Kubernetes cluster. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1/k8s/clusters/{name}/ssh \ --header 'Accept: application/json' \
{- "username": "string",
- "certificate": "string",
- "expiry_time": "2019-08-24T14:15:22Z",
- "private_key": "string"
}
Get task details associated with the Kubernetes cluster.
API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster01/tasks/18887d47-6144-42b5-8d7f-7033b8a33704.
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. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/tasks/{task-uuid} \ --header 'Accept: 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 all the details of the k8s-agent of the cluster.
uuid required | string Kubernetes cluster UUID. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{uuid}/agent \ --header 'Accept: application/json' \
{- "controller_image": "string",
- "edgemgmt_image": "string"
}
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.
name required | string The Kubernetes cluster name. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{name}/available-updates \ --header 'Accept: application/json' \
{- "uuid": "string",
- "name": "string",
- "node_os_images": [
- {
- "image_uuid": "string",
- "release_date": "2019-08-24T14:15:22Z",
- "release_notes_url": "string",
- "version": "string"
}
], - "ntnx_k8s_releases": [
- {
- "release_date": "2019-08-24T14:15:22Z",
- "release_notes_url": "string",
- "version": "string",
- "image_uuid": "string",
- "image_version": "string"
}
]
}
Get the kubeconfig to access the Kubernetes cluster.
API format- https://server.nutanix.com:9440/karbon/v1/k8s/clusters/cluster01/kubeconfig.
name required | string [ 1 .. 40 ] characters The name of the Kubernetes cluster. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1/k8s/clusters/{name}/kubeconfig \ --header 'Accept: application/json' \
{- "kube_config": "string"
}
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.
name required | string The Kubernetes cluster name. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1/k8s/clusters/{name} \ --header 'Accept: application/json' \
{- "etcd_config": {
- "node_pools": [
- "string"
]
}, - "master_config": {
- "deployment_type": "string",
- "node_pools": [
- "string"
]
}, - "status": "string",
- "clusterapi_enabled": true,
- "cni_config": {
- "service_ipv4_cidr": "string",
- "calico_config": {
- "ip_pool_configs": [
- {
- "cidr": "string"
}
]
}, - "cilium_config": { },
- "flannel_config": { },
- "node_cidr_mask_size": 0,
- "pod_ipv4_cidr": "string"
}, - "name": "string",
- "version": "string",
- "categories": [
- {
- "value": "string",
- "key": "string"
}
], - "disable_monitoring": true,
- "uuid": "string",
- "worker_config": {
- "node_pools": [
- "string"
]
}, - "is_management": true,
- "project": "string",
- "kubeapi_server_ipv4_address": "string"
}
Get the Kubernetes cluster registration details.
id required | string Kubernetes cluster UUID. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations/{id} \ --header 'Accept: application/json' \
{- "name": "string",
- "status": "string",
- "uuid": "string",
- "addons_info": {
- "property1": {
- "property1": "string",
- "property2": "string"
}, - "property2": {
- "property1": "string",
- "property2": "string"
}
}, - "categories_mapping": {
- "property1": "string",
- "property2": "string"
}, - "cluster_info": {
- "property1": "string",
- "property2": "string"
}, - "k8s_distribution": "string"
}
Get the node pool configuration.
API format- https://server.nutanix.com:9440/karbon/v1-beta.1/k8s/clusters/cluster01/node-pools/worker-node-pool-1.
node-pool-name required | string The node pool name. |
name required | string The Kubernetes cluster name. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{name}/node-pools/{node-pool-name} \ --header 'Accept: application/json' \
{- "name": "string",
- "node_os_image_uuid": "string",
- "node_os_version": "string",
- "nodes": [
- {
- "hostname": "string",
- "ipv4_address": "string"
}
], - "num_instances": 0,
- "ahv_config": {
- "network_uuid": "string",
- "prism_element_cluster_uuid": "string",
- "cpu": 1,
- "disk_mib": 40960,
- "iscsi_network_name": "string",
- "iscsi_network_uuid": "string",
- "memory_mib": 4096,
- "network_name": "string"
}, - "category": "string",
- "default": true,
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "assigned_gpu_config_list": [
- {
- "count": 1,
- "name": "string"
}
]
}
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.
name required | string The Kubernetes cluster name. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/certificate-rotation/status \ --header 'Accept: application/json' \
{- "progress_message": "string",
- "status": "string",
- "error_detail": "string",
- "percentage_complete": 100
}
uuid required | string Kubernetes cluster UUID. |
metadata | object |
object Spec defines the desired state of the cluster addon. | |
object Status defines the observed state of cluster addon. |
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" } }'
{- "message_info": { }
}
Get all the Kubernetes cluster registration objects.
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations \ --header 'Accept: application/json' \
[- {
- "name": "string",
- "status": "string",
- "uuid": "string",
- "addons_info": {
- "property1": {
- "property1": "string",
- "property2": "string"
}, - "property2": {
- "property1": "string",
- "property2": "string"
}
}, - "categories_mapping": {
- "property1": "string",
- "property2": "string"
}, - "cluster_info": {
- "property1": "string",
- "property2": "string"
}, - "k8s_distribution": "string"
}
]
uuid required | string Kubernetes cluster UUID. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/{uuid}/addons \ --header 'Accept: application/json' \
[- {
- "metadata": { },
- "spec": {
- "chartName": "string",
- "clusterSelector": {
- "matchExpressions": [
- {
- "operator": "string",
- "values": [
- "string"
], - "key": "string"
}
], - "matchLabels": {
- "property1": "string",
- "property2": "string"
}
}, - "namespace": "string",
- "options": {
- "uninstall": {
- "description": "string",
- "keepHistory": true
}, - "upgrade": {
- "cleanupOnFail": true,
- "force": true,
- "maxHistory": 0,
- "recreate": true,
- "resetValues": true,
- "reuseValues": true
}, - "waitForJobs": true,
- "atomic": true,
- "disableHooks": true,
- "options": true,
- "skipCRDs": true,
- "timeout": "string",
- "dependencyUpdate": true,
- "disableOpenAPIValidation": true,
- "install": {
- "createNamespace": true,
- "includeCRDs": true
}, - "wait": true
}, - "releaseName": "string",
- "repoURL": "string",
- "valuesTemplate": "string",
- "version": "string"
}, - "status": {
- "conditions": [
- {
- "status": "string",
- "type": "string",
- "lastTransitionTime": "2019-08-24T14:15:22Z",
- "message": "string",
- "reason": "string",
- "severity": "string"
}
], - "revision": 0,
- "status": "string"
}
}
]
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.
name required | string The Kubernetes cluster name. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/gpus \ --header 'Accept: application/json' \
[- {
- "total_count": 0,
- "assignable_count": 0,
- "name": "string"
}
]
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
type | string Enum: "classic" "capi_management" "capx" Type of the kubernetes cluster. e.g. classic, capi_management, CAPX, etc. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters \ --header 'Accept: application/json' \
[- {
- "etcd_config": {
- "node_pools": [
- "string"
]
}, - "master_config": {
- "deployment_type": "string",
- "node_pools": [
- "string"
]
}, - "status": "string",
- "clusterapi_enabled": true,
- "cni_config": {
- "service_ipv4_cidr": "string",
- "calico_config": {
- "ip_pool_configs": [
- {
- "cidr": "string"
}
]
}, - "cilium_config": { },
- "flannel_config": { },
- "node_cidr_mask_size": 0,
- "pod_ipv4_cidr": "string"
}, - "name": "string",
- "version": "string",
- "categories": [
- {
- "value": "string",
- "key": "string"
}
], - "disable_monitoring": true,
- "uuid": "string",
- "worker_config": {
- "node_pools": [
- "string"
]
}, - "is_management": true,
- "project": "string",
- "kubeapi_server_ipv4_address": "string"
}
]
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.
name required | string The Kubernetes cluster name. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/node-pools \ --header 'Accept: application/json' \
[- {
- "name": "string",
- "node_os_image_uuid": "string",
- "node_os_version": "string",
- "nodes": [
- {
- "hostname": "string",
- "ipv4_address": "string"
}
], - "num_instances": 0,
- "ahv_config": {
- "network_uuid": "string",
- "prism_element_cluster_uuid": "string",
- "cpu": 1,
- "disk_mib": 40960,
- "iscsi_network_name": "string",
- "iscsi_network_uuid": "string",
- "memory_mib": 4096,
- "network_name": "string"
}, - "category": "string",
- "default": true,
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "assigned_gpu_config_list": [
- {
- "count": 1,
- "name": "string"
}
]
}
]
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.
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-beta.1/k8s/clusters/available-updates \ --header 'Accept: application/json' \
[- {
- "uuid": "string",
- "name": "string",
- "node_os_images": [
- {
- "image_uuid": "string",
- "release_date": "2019-08-24T14:15:22Z",
- "release_notes_url": "string",
- "version": "string"
}
], - "ntnx_k8s_releases": [
- {
- "release_date": "2019-08-24T14:15:22Z",
- "release_notes_url": "string",
- "version": "string",
- "image_uuid": "string",
- "image_version": "string"
}
]
}
]
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
cluster_name required | string The Kubernetes cluster name. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{cluster_name}/registries \ --header 'Accept: application/json' \
[- {
- "uuid": "string",
- "endpoint": "string",
- "name": "string"
}
]
Register a Kubernetes cluster with the provided configuration.
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. |
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" }'
{- "cluster_name": "string",
- "cluster_uuid": "string",
- "task_uuid": "string"
}
Remove nodes from the specified node pool for the provided Kubernetes cluster.
node-pool-name required | string The name of the node pool. |
name required | string The Kubernetes cluster name. |
skip-prechecks | boolean Default: false Determine whether the removal of nodes can override pre-checks. |
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. |
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" ] }'
{- "task_uuid": "string"
}
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
registry_name required | string Private registry name. |
cluster_name required | string The Kubernetes cluster name. |
curl --request DELETE \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{cluster_name}/registries/{registry_name} \ --header 'Accept: application/json' \
{- "task_uuid": "string"
}
Unregister the Kubernetes cluster.
id required | string Kubernetes cluster UUID. |
curl --request DELETE \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/cluster-registrations/{id} \ --header 'Accept: application/json' \
{- "cluster_uuid": "string",
- "task_uuid": "string",
- "cluster_name": "string"
}
uuid required | string Kubernetes cluster UUID. |
metadata | object |
object Spec defines the desired state of the cluster addon. | |
object Status defines the observed state of cluster addon. |
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" } }'
{- "message_info": { }
}
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.
skip-health-checks | boolean Default: false Indicates whether to skip the health checks during certificate rotation for an unhealthy cluster with expired certificates. |
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. |
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" }'
{- "task_uuid": "string"
}
Update Kubernetes cluster addon info with the provided information.
name required | string Kubernetes cluster addon name. |
id required | string Kubernetes cluster UUID. |
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. |
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": {} }'
{- "cluster_name": "string",
- "cluster_uuid": "string"
}
Update Kubernetes cluster addon metrics with the provided information.
name required | string Kubernetes cluster addon name. |
id required | string Kubernetes cluster UUID. |
required | object (v1.1.0_k8s_cluster_addon_metrics) Addon metrics information for this k8s cluster. |
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": {} }'
{- "cluster_name": "string",
- "cluster_uuid": "string"
}
Update Kubernetes cluster info with the provided information.
id required | string Kubernetes cluster UUID. |
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. |
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": {} }'
{- "cluster_name": "string",
- "cluster_uuid": "string"
}
Update Kubernetes cluster metrics with the provided information.
id required | string Kubernetes cluster UUID. |
required | object (v1.1.0_k8s_cluster_metrics) Metrics information for this k8s cluster. |
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": {} }'
{- "cluster_name": "string",
- "cluster_uuid": "string"
}
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.
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. |
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" }'
{- "task_uuid": "string"
}
Update the labels of the node pool of the Kubernetes cluster. The scope is restricted to a worker node pool currently.
node-pool-name required | string The node pool name. |
name required | string The Kubernetes cluster name. |
object Map of user-provided labels to add to the node pool. | |
remove_labels | Array of strings |
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" ] }'
{- "task_uuid": "string"
}
name required | string The Kubernetes cluster name. |
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' \
{- "message_info": { }
}
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.
name required | string The Kubernetes cluster name. |
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' \
{- "message_info": { }
}
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.
name required | string The Kubernetes cluster name. |
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' \
{- "message_info": { }
}
Forward logs to an external endpoint.
API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/k8s/clusters/cluster1/enable-log-forwarding.
name required | string The Kubernetes cluster name. |
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). |
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 }'
{- "message_info": { }
}
Provides information about external endpoints where the logs will be forwarded.
name required | string The Kubernetes cluster name. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/k8s/clusters/{name}/log-forwarding \ --header 'Accept: application/json' \
{- "host": "string",
- "port": 0
}
Update the log exporter memory and CPU resources.
name required | string The Kubernetes cluster name. |
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. |
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 }'
{- "message_info": { }
}
Get the NKE controller version of the k8 cluster.
API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/version.
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/version \ --header 'Accept: application/json' \
{- "build_date": "string",
- "git_commit": "string",
- "version": "string"
}
Creates private registry entry in NKE with provided configuration.
API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/registries
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. |
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" }'
{- "uuid": "string",
- "endpoint": "string",
- "name": "string"
}
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
name required | string The name of the private registry. |
curl --request DELETE \ --url https://www.nutanix.dev/karbon/v1-alpha.1/registries/{name} \ --header 'Accept: application/json' \
{- "registry_name": "string"
}
name required | string The name of the private registry. |
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/registries/{name} \ --header 'Accept: application/json' \
{- "uuid": "string",
- "endpoint": "string",
- "name": "string"
}
Provides details of the private registry configured with Nutanix Kubernetes Engine. API format- https://server.nutanix.com:9440/karbon/v1-alpha.1/registries
curl --request GET \ --url https://www.nutanix.dev/karbon/v1-alpha.1/registries \ --header 'Accept: application/json' \
[- {
- "uuid": "string",
- "endpoint": "string",
- "name": "string"
}
]
uuid required | string UUID of the Kubernetes cluster. |
curl --request GET \ --url https://www.nutanix.dev/k8s/cluster/{uuid}/k8s_upgrade/versions \ --header 'Accept: application/json' \
{- "compatible_versions": [
- "string"
], - "cur_version": "string"
}
uuid required | string UUID of the Kubernetes cluster. |
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. |
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" }'
[- {
- "target_host_image_config": {
- "image_uuid": "string",
- "name": "string",
- "os_flavor": "string",
- "uuid": "string",
- "version": "string"
}
}
]
uuid required | string UUID of the Kubernetes cluster. |
curl --request GET \ --url https://www.nutanix.dev/k8s/cluster/{uuid}/upgrade \ --header 'Accept: application/json' \
{- "current_host_image_config": {
- "property1": "string",
- "property2": "string"
}, - "target_host_image_config": {
- "image_uuid": "string",
- "name": "string",
- "os_flavor": "string",
- "uuid": "string",
- "version": "string"
}
}
uuid required | string UUID of the Kubernetes cluster. |
curl --request GET \ --url https://www.nutanix.dev/k8s/cluster/{uuid}/k8s_upgrade \ --header 'Accept: application/json' \
[- {
- "error_detail": "string",
- "percent_complete": 0,
- "progress_message": "string",
- "status": "string",
- "upgrade_info": {
- "cluster_name": "string",
- "controller_version": "string",
- "source_version": "string",
- "target_version": "string"
}, - "upgrade_start_time": 0,
- "uuid": "string"
}
]
uuid required | string UUID of the Kubernetes cluster. |
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. |
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 }'
{- "task_uuid": "string"
}
uuid required | string UUID of the Kubernetes cluster. |
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) |
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" } }'
{- "status_code": 0,
- "task_uuid": "string"
}