Cluster

Get the list of clusters currently setup in PMK

get
Path parameters
projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK

application/json
namestringOptional

Name of the cluster

uuidstringOptional

UUID of the cluster

created_atstringOptional

Creation time of the cluster

projectIdstringOptional

UUID of the Keystone project that this cluster is part of

isKubernetesintegerOptional

Field is set to 1 if the cluster is a Kubernetes cluster, 0 otherwise

kubeRoleVersionstringOptional

The version of the pf9-kube role

etcdVersionstringOptional

The version of etcd used for cluster

isAirgappedintegerOptional

Field is set to 1 if the cluster is air-gapped, 0 otherwise

useHostnamebooleanOptional

(optioanl) If set to true nodes will be registered in the cluster using hostname instead of IP address. This option is only applicable to IPv4 hosts. This option is ignored when deploying clusters on IPv6 enabled hosts and public clouds - AWS, Azure, etc.

allowWorkloadsOnMasterintegerOptional

Field is set to 1 if the master nodes can run non-critical workloads

containerRuntimestringOptional

(optional) Container runtime for this cluster. Valid values: [docker, containerd]

containersCidrstringOptional

CIDR used for container IP addresses

servicesCidrstringOptional

CIDR used for service IP addresses

externalDnsNamestringOptional

Optional DNS name for API endpoint. This field is autogenerated when pf9 domain is used.

privilegedintegerOptional

Field is set to 1 if cluster runs privileged containers, 0 otherwise

runtimeConfigstringOptional
kubeProxyModestringOptional

The mode of kube proxy

apiserverStorageBackendstringOptional

The storage backend of the api server

k8sApiPortstringOptional

Port on which K8S API Server will listen, 443 by default

masterIpstringOptional

Ip of the master node, applicable only for cloud provider type 'openstack'

masterVipIpv4stringOptional

API server Virtual IP that provides failover if specified for the cluster. Defaults to empty string

masterVipIfacestringOptional

The interface that VIP attaches to if specified. Defaults to empty string

masterVipVrouterIdstringOptional

Virtual router id choosen for the cluster. Range: 0-254. Emptry string if masterVipIpv4 not specified

networkPluginstringOptional

Network backend to use for container networking. Defaults to flannel. Supported choices are flannel, calico, noop, weave

addonOperatorImageTagstringOptional

(optional) addon operator image tag for this cluster.

dockerRootstringOptional

Root directory for docker

etcdDataDirstringOptional

Data directory for etcd. The field is applicable to master nodes only

certExpiryHrsintegerOptional

(optional) Number of hours before user certificates in kubeconfig expires, should be greater than 0 if set. Default is 24hrs.

keystoneEnabledintegerOptional

Field is set to 1 if keystone is enabled, 0 otherwise

authzEnabledintegerOptional

Field is set to 1 if authz is enabled, 0 otherwise

appCatalogEnabledintegerOptional

DEPRECATED. Field doesn't lead to any action on the cluster now. Field is set to 1 if app catalog is enabled, 0 otherwise

enableProfileAgentbooleanOptional

(optional) If set to true platform9 profile engine agent will be deployed on the cluster. This agent is required to be able to use profiles.

enableEtcdEncryptionstringOptional

States whether tls encryption is enabled on etcd, Default:false

ipv6booleanOptional

Set to 1 if ipv6 enabled. Defaults to 0

enableMetallbbooleanOptional

1 if metallb enabled. Defaults to 0

metallbCidrstringOptional

Comma separated pools of IPs like A.B.C.D-E.F.G.H, I.J.K.L-M.N.O.P that metallb will manage if specified

base64EncMetallbConfigstringOptional

Base64 encoded string of metallb custom resource yaml

nodePoolUuidstringOptional

UUID of the node pool used for the cluster

nodePoolNamestringOptional

Name of the node pool used for the cluster

cloudProviderUuidstringOptional

UUID of the cloud provider used to create this cluster

cloudProviderNamestringOptional

Name of the cloud provider used to create this cluster

cloudProviderTypestringOptional

Type of the cloud provider used to create this cluster

tagsobjectOptional

User defined key-value pairs represented as a JSON object

mtuSizestringOptional

MTU for container network interfaces. Optional and used for the Calico network backend

cpuManagerPolicystringOptional

options: none, static; default: none

topologyManagerPolicystringOptional

options: none, best-effort, restricted, single-numa-node; default: none

reservedCPUsstringOptional

list of CPUs to be reserved for the system. Ex: 1-3,5

numMastersintegerOptional

Number of master nodes in the cluster

numWorkersintegerOptional

Number of worker nodes in the cluster

statusstringOptional

Status of the cluster

masterStatusstringOptional

Status of the master nodes. 'healthy' means all masters are healthy. 'partially healthy' means quorum number of masters are healthy, but some are not. 'unhealthy' means quorum number of master are unhealthy

workerStatusstringOptional

Status of the worker nodes. 'healthy' means all workers are healthy. 'partially healthy' means more than 50% of the workers are healthy, rest are unhealthy. 'unhealthy' means more than 50% of the workers are unhealthy

lastOpstringOptional

The last operation such as node attach or node detach that was performed on the cluster

lastOkstringOptional

The timestamp when the cluster last reported an OK status

taskStatusstringOptional

Status of the last task that run on the cluster.

taskErrorstringOptional

Error details if the last task on cluster did not succeed

debugstringOptional

enable debug

masterlessintegerOptional

1 if masterless cluster, 0 otherwise

upgradingTostringOptional

The version that the cluster is upgrading to

canUpgradebooleanOptional

Field is set to true if the cluster can be upgraded, false otherwise

canMinorUpgradeintegerOptional

Field is set to 1 if the cluster can be upgraded to a minor version, 0 otherwise

canPatchUpgradeintegerOptional

Field is set to 1 if the cluster can be upgraded to a patch version, 0 otherwise

minorUpgradeRoleVersionstringOptional

The minor version of the pf9-kube role that can be upgraded

patchUpgradeRoleVersionstringOptional

The patch version of the pf9-kube role that can be upgraded

flannelIfaceLabelstringOptional

The interface used by flannel for interhost communication

flannelPublicIfaceLabelstringOptional

The IP address used as the flannel public IP for the nodes in the cluster

calicoIPv4stringOptional

Calico IPv4 mode

calicoIPv4DetectionMethodstringOptional

Calico IPv4 detection method

calicoV4BlockSizestringOptional

Subnet size per node for the Calico network, in CIDR notation (e.g. 26)

calicoIPv6stringOptional

Calico IPv6 mode

calicoIPv6DetectionMethodstringOptional

Calico IPv6 detection method

calicoIPv6PoolCidrstringOptional

Calico IPv6 pool CIDR

calicoIPv6PoolBlockSizestringOptional

Calico IPv6 pool block size

calicoIPv6PoolNatOutgoingintegerOptional

Calico IPv6 pool NAT outgoing

calicoRouterIDstringOptional

Calico router ID

calicoIpIpModestringOptional

IP-IP encapsulation mode for Calico network. Choose: Always, Never, CrossSubnet

calicoNatOutgoingbooleanOptional

Field is set to true if Calico nodes need to NAT north-south egress traffic.

calicoNodeCpuLimitstringOptional

Corresponds to the CALICO_NODE_CPU_LIMIT environment variable in Calico.

calicoNodeMemoryLimitstringOptional

Corresponds to the CALICO_NODE_MEMORY_LIMIT environment variable in Calico.

calicoTyphaCpuLimitstringOptional

Corresponds to the CALICO_TYPHA_CPU_LIMIT environment variable in Calico.

calicoTyphaMemoryLimitstringOptional

Corresponds to the CALICO_TYPHA_MEMORY_LIMIT environment variable in Calico.

calicoControllerCpuLimitstringOptional

Corresponds to the CALICO_CONTROLLER_CPU_LIMIT environment variable in Calico.

calicoControllerMemoryLimitstringOptional

Corresponds to the CALICO_CONTROLLER_MEMORY_LIMIT environment variable in Calico.

felixIPv6SupportintegerOptional

Field is set to true if Felix supports IPv6

dockerCentosPackageRepoUrlstringOptional

(optional) URL of the centos repo to be used for docker installation

dockerUbuntuPackageRepoUrlstringOptional

(optional) URL of the ubuntu repo to be used for docker installation

dockerPrivateRegistrystringOptional

(optional) URL of private Docker registry to fetch Platform9 images from

quayPrivateRegistrystringOptional

(optional) URL of private Quay registry to fetch Platform9 images from

gcrPrivateRegistrystringOptional

(optional) URL of private GCR registry to fetch Platform9 images from

k8sPrivateRegistrystringOptional

(optional) URL of private K8S registry to fetch Platform9 images from

customRegistryUrlstringOptional

URL for a custom registry that is expected to serve all images for the cluster

customRegistryRepoPathstringOptional

path in custom registry where all images are cached

customRegistryUsernamestringOptional

username for the custom registry

customRegistryPasswordstringOptional

password for the custom registry

customRegistrySkipTlsbooleanOptional

configure containerd to skip tls verification for custom registry

customRegistrySelfSignedCertsbooleanOptional

Set to true if the custom registry uses self signed certs

customRegistryCertPathstringOptional

Path to the cert file for the custom registry if using self signed certs. Can be of the following formats: [https://example.com/path/to/cert, http://example.com/path/to/cert, file:///path/to/cert, /path/to/cert]

get
/v4/{projectId}/clusters

Creates a cluster using auto deploy or manual mode

post
Path parameters
projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Body
allowWorkloadsOnMasterintegerOptional

Field is set to 1 if the master nodes can run non-critical workloads

apiServerFlagsstring[]Optional

List of kube-apiserver flags. (e.g. --request-timeout=2m0s, --kubelet-timeout=20s)

amistringOptional

AMI ID used to provision cluster nodes

appCatalogEnabledintegerOptional

DEPRECATED. Always disabled now. Field is set to 1 if app catalog is enabled, 0 otherwise, applicable also for manual deploy

azsstring[]Optional

Availability zone(s) the cluster is deployed in

calicoV4BlockSizestringOptional

Subnet size per node for the Calico network, in CIDR notation (e.g. 26)

calicoIpIpModestringOptional

IP-IP encapsulation mode for Calico network. Choose: Always, Never, CrossSubnet

calicoNatOutgoingbooleanOptional

Field is set to true if Calico nodes need to NAT north-south egress traffic.

calicoNodeCpuLimitstringOptional

Corresponds to the CALICO_NODE_CPU_LIMIT environment variable in Calico.

calicoNodeMemoryLimitstringOptional

Corresponds to the CALICO_NODE_MEMORY_LIMIT environment variable in Calico.

calicoTyphaCpuLimitstringOptional

Corresponds to the CALICO_TYPHA_CPU_LIMIT environment variable in Calico.

calicoTyphaMemoryLimitstringOptional

Corresponds to the CALICO_TYPHA_MEMORY_LIMIT environment variable in Calico.

calicoControllerCpuLimitstringOptional

Corresponds to the CALICO_CONTROLLER_CPU_LIMIT environment variable in Calico.

calicoControllerMemoryLimitstringOptional

Corresponds to the CALICO_CONTROLLER_MEMORY_LIMIT environment variable in Calico.

containersCidrstringRequired

CIDR used for container IP addresses, applicable also for manual deploy

controllerManagerFlagsstring[]Optional

List of kube-controller-manager flags. (e.g. --large-cluster-size-threshold=60, --node-monitor-period =5s)

dockerLiveRestoreEnabledbooleanOptional

Enables the use of Docker live restore as described here: https://docs.docker.com/config/containers/live-restore/

domainIdstringOptional

Domain used for cluster FQDNs

enableMetallbbooleanOptional

If true, install MetalLB to support the loadbalancer service-type

enableCASbooleanOptional

If true, cluster autoscaling is enabled (only for AWS clusters).

externalDnsNamestringOptional

Optional DNS name for API endpoint. This field is autogenerated when usePf9Domain is set, also applicable for manual deploy

httpProxystringOptional

The http proxy used for node communications. This parameter is required when internalElb is set to true and the private subnet selected does not route IP packets to the internet through a VPN

internalElbbooleanOptional

Set to true if load balancer is an internal load balancer or false for an Internet-facing load balancer. More information here: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-internal-load-balancers.html. Setting this parameter to true requires that isPrivate is set to true. If the private subnet selected is not configured to route IP packets through a VPN, then an httpProxy is required for node communications to work

isPrivatebooleanOptional

Set to true if nodes are deployed using public subnet, false otherwise, applicable also for manual deploy. This parameter is required if internalElb is set to true.

k8sApiPortstringOptional

Port on which K8S API Server will listen, 443 by default

masterFlavorstringOptional

Node flavor used for master node

masterVipIpv4stringOptional

API server Virtual IP that provides failover. When specified, deploy keepalived setup to cluster master nodes together

masterVipIfacestringOptional

If masterVipIpv4 is specified, this field is required. Specify the interface that the VIP attaches to

metallbCidrstringOptional

If enableMetallb is true, specify the comma-separated pools of IPs that MetalLB will manage (for example: A.B.C.D-E.F.G.H, I.J.K.L-M.N.O.P)

base64EncMetallbConfigstringOptional

Base64 encoded string of metallb custom resource yaml

mtuSizestringOptional

MTU for container network interfaces. Optional and used for the Calico network backend

namestringOptional

Name of the cluster, applicable also for manual deploy

networkPluginstringRequired

Network backend to use for container networking. Defaults to flannel. Supported choices are flannel, calico, noop, weave

nodePoolUuidstringOptional

UUID of the node pool used for the cluster, applicable also for manual deploy

numMastersintegerOptional

Number of master nodes in the cluster

numWorkersintegerOptional

Number of worker nodes in the cluster

numMinWorkersintegerOptional

This parameter is required if enableCAS is set to true. This is the minimum number of worker nodes in ASG

numMaxWorkersintegerOptional

This parameter is required if enableCAS is set to true. This is the maximum number of worker nodes in ASG

ebsVolumeThroughputintegerOptional

(optional) throughput for default gp3 root volume

ebsVolumeIopsintegerOptional

(optional) iops for default gp3 root volume

additionalAWSDiskSizeintegerOptional

Size for block device added for EMP clusters

privateSubnetsstring[]Optional

The private subnet ID to which the cluster is deployed. This parameter is optional if vpc (VPC ID) is set. This parameter is required if vpc (VPC ID) is set and isPrivate is set to true. This parameter is ignored if vpc (VPC ID) is not set

privilegedbooleanOptional

Field is set to 1 if cluster runs privileged containers, 0 otherwise

regionstringOptional

Cloud provider region in which the cluster was created

runtimeConfigstringOptional

Applicable also for manual deploy

schedulerFlagsstring[]Optional

List of kube-scheduler flags. (e.g. --kube-api-burst=120, --log-flush-frequency=5s)

serviceFqdnstringOptional

FQDN used to reference cluster services

servicesCidrstringRequired

CIDR used for service IP addresses, applicable also for manual deploy

sshKeystringOptional

Public SSH key associated with the cluster nodes

subnetsstring[]Optional

The public subnet ID to which the cluster is deployed. This parameter is required if vpc (VPC ID) is set and isPrivate is set to false (Public topology). This parameter is required if vpc (VPC ID) is set and isPrivate is set to true (Private topology). This parameter is optional if vpc (VPC ID) is set and isPrivate is set to true and internalElb is set to true (VPN topology). This parameter is ignored if vpc (VPC ID) is not set

tagsobjectOptional

User defined key-value pairs represented as a JSON object

usePf9DomainbooleanOptional

Set to true if platform9.net domain is used, false otherwise

vpcstringOptional

If set, creates cluster using this VPC ID. Otherwise, the cluster is deployed on a new VPC. This parameter is required if internalElb is set to true

workerFlavorstringOptional

Node flavor used for worker node

kubeRoleVersionstringRequired

Pf9-kube role version to be used when bringing up the cluster.

cpuManagerPolicystringOptional

options: none, static; default: none

topologyManagerPolicystringOptional

options: none, best-effort, restricted, single-numa-node; default: none

reservedCPUsstringOptional

list of CPUs to be reserved for the system. Ex: 1-3,5

dockerPrivateRegistrystringOptional

(optional) URL of private Docker registry to fetch Platform9 images from

quayPrivateRegistrystringOptional

(optional) URL of private Quay registry to fetch Platform9 images from

gcrPrivateRegistrystringOptional

(optional) URL of private GCR registry to fetch Platform9 images from

k8sPrivateRegistrystringOptional

(optional) URL of private K8S registry to fetch Platform9 images from

useHostnamebooleanOptional

(optional) If set to true nodes will be registered in the cluster using hostname instead of IP address. This option is only applicable to IPv4 hosts. This option is ignored when deploying clusters on IPv6 enabled hosts and public clouds - AWS, Azure, etc.

enableProfileAgentbooleanOptional

(optional) If set to true platform9 profile engine agent will be deployed on the cluster. This agent is required to be able to use profiles.

enableCatapultMonitoringbooleanOptional

(optional) If set to true (default value) platform9 Catapult monitoring will be deployed on the cluster

dockerCentosPackageRepoUrlstringOptional

(optional) URL of the centos repo to be used for docker installation, this URL is added as a first mirror optiopn

dockerUbuntuPackageRepoUrlstringOptional

(optional) URL of the ubuntu repo to be used for docker installation, this URL is added as a first mirror option

containerRuntimestringOptional

(optional) Container runtime for this cluster. Valid values: [docker, containerd]

certExpiryHrsintegerOptional

(optional) Number of hours before user certificates in kubeconfig expires, should be greater than 0 if set. Default is 24hrs.

interfaceDetectionMethodstringOptional

(optional) Host Network interface detection method for cluster. Options:[FirstFound/InterfaceName/InterfaceReachableIP] Default: FirstFound

interfaceReachableIPstringOptional

Select interface on host that can reach the given IP (Required when interfaceDetectionMethod=InterfaceReachableIP)

interfaceNamestringOptional

Select interface on host for given Interfacename (Required when interfaceDetectionMethod=InterfaceName)

customRegistryUrlstringOptional

URL for a custom registry that is expected to serve all images for the cluster

customRegistryRepoPathstringOptional

path in custom registry where all images are cached

customRegistryUsernamestringOptional

username for the custom registry

customRegistryPasswordstringOptional

password for the custom registry

customRegistrySkipTlsbooleanOptional

configure containerd to skip tls verification for custom registry

customRegistrySelfSignedCertsbooleanOptional

Set to true if the custom registry uses self signed certs

customRegistryCertPathstringOptional

Path to the cert file for the custom registry if using self signed certs. Can be of the following formats: [https://example.com/path/to/cert, http://example.com/path/to/cert, file:///path/to/cert, /path/to/cert]

deployLuigiOperatorbooleanOptional

Set to true if Luigi is deployed

deployKubevirtbooleanOptional

Set to true if Kubevirt is deployed

etcdHeartbeatIntervalMsintegerOptional

Frequency with which master node will notify workers

etcdElectionTimeoutMsintegerOptional

This timeout is how long a worker node will go without hearing a heartbeat,before attempting to become master

Responses
chevron-right
200

OK, if cluster create request was submitted successfully

No content

post
/v4/{projectId}/clusters

No content

Upgrade a cluster, identified by the uuid

post
Path parameters
uuidstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cloud provider account belongs to

Query parameters
typestringRequired

Type of upgrade minor or patch

forcebooleanOptional

(optional)Forcefully upgrade cluster to version. Default is false.

Header parameters
X-Auth-TokenstringRequired
Body
allowWorkloadsOnMasterintegerOptional

Field is set to 1 if the master nodes can run non-critical workloads

apiServerFlagsstring[]Optional

List of kube-apiserver flags. (e.g. --request-timeout=2m0s, --kubelet-timeout=20s)

batchUpgradePercentnumberOptional

Number between 1-100 which represents the percent of worker nodes to upgrade in parallel at once during an upgrade

batchUpgradeNodesstring[]Optional

List of worker nodes uuids to upgrade in parallel at once during an upgrade

calicoControllerCpuLimitstringOptional

Corresponds to the CALICO_CONTROLLER_CPU_LIMIT environment variable in Calico.

calicoControllerMemoryLimitstringOptional

Corresponds to the CALICO_CONTROLLER_MEMORY_LIMIT environment variable in Calico.

calicoIPv4DetectionMethodstringOptional

IPV4 detection method for calico. Options: FirstFound, InterfaceName, InterfaceReachableIP

calicoNodeCpuLimitstringOptional

Corresponds to the CALICO_NODE_CPU_LIMIT environment variable in Calico.

calicoNodeMemoryLimitstringOptional

Corresponds to the CALICO_NODE_MEMORY_LIMIT environment variable in Calico.

calicoTyphaCpuLimitstringOptional

Corresponds to the CALICO_TYPHA_CPU_LIMIT environment variable in Calico.

calicoTyphaMemoryLimitstringOptional

Corresponds to the CALICO_TYPHA_MEMORY_LIMIT environment variable in Calico.

controllerManagerFlagsstring[]Optional

List of kube-controller-manager flags. (e.g. --large-cluster-size-threshold=60, --node-monitor-period =5s)

containerRuntimestringOptional

(optional) Container runtime for this cluster. Valid values: [docker, containerd]

customRegistryUrlstringOptional

URL for a custom registry that is expected to serve all images for the cluster

customRegistryRepoPathstringOptional

path in custom registry where all images are cached

customRegistryUsernamestringOptional

username for the custom registry

customRegistryPasswordstringOptional

password for the custom registry

customRegistrySkipTlsbooleanOptional

configure containerd to skip tls verification for custom registry

customRegistrySelfSignedCertsbooleanOptional

Set to true if the custom registry uses self signed certs

customRegistryCertPathstringOptional

Path to the cert file for the custom registry if using self signed certs. Can be of the following formats: [https://example.com/path/to/cert, http://example.com/path/to/cert, file:///path/to/cert, /path/to/cert]

privilegedbooleanOptional

Field is set to 1 if cluster runs privileged containers, 0 otherwise

schedulerFlagsstring[]Optional

List of kube-scheduler flags. (e.g. --kube-api-burst=120, --log-flush-frequency=5s)

Responses
chevron-right
200

OK, if upgrade request is successfully issued

No content

post
/v4/{projectId}/clusters/{uuid}/upgrade

No content

Delete all cluster addons for a PMK cluster as specified by the cluster UUID

delete
Path parameters
clusterIdstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK, if clusteraddons delete request was submitted successfully

No content

delete
/v4/{projectId}/clusters/{clusterId}/addons

No content

Set the watch flag on a ClusterAddon to enable or disable drift protection

put
Path parameters
projectIdstringRequired

UUID of the project the cluster belongs to

clusterIDstringRequired

UUID of the cluster

addonTypestringRequired

Type of the addon (e.g. monitoring, coredns)

Header parameters
X-Auth-TokenstringRequired
Body
watchbooleanRequired

Set to true to enable watch (drift protection) on the addon, false to disable

Responses
chevron-right
200

OK, watch flag updated successfully

No content

put
/v4/{projectId}/clusters/{clusterID}/addons/{addonType}/watch

No content

Provides a list of addon version for pf9-kube role on a cluster.

get
Path parameters
clusterIdstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK, List of addon versions.

application/json
metricsserverstringOptional

metricsserver version used for the cluster

metallbstringOptional

metallb version used for the cluster if applicable

dashboardstringOptional

ks8 dashboard version used for the cluster if applicable

cnistringOptional

cni version used for the cluster

luigistringOptional

luigi version used for the cluster if applicable

kustomizestringOptional

kustomize version used for the cluster

calicostringOptional

calico version used for the cluster if applicable

kubevirtaddonstringOptional

kubevirtaddon version used for the cluster if applicable

monitoringstringOptional

monitoring version used for the cluster if applicable

kubernetesstringOptional

kubernetes version used for the cluster

corednsstringOptional

coredns version used for the cluster

cascapistringOptional

cascapi version used for the cluster if applicable

flannelstringOptional

flannel version used for the cluster if applicable

profileagentstringOptional

profileagent version used for the cluster if applicable

metal3stringOptional

metal3 version used for the cluster if applicable

casazurestringOptional

casazure version used for the cluster if applicable

etcdstringOptional

etcd version used for the cluster

get
/v4/{projectId}/clusters/{clusterId}/addonversions
200

OK, List of addon versions.

Provides a list of supported pf9-kube roles for a cluster.

get
Path parameters
projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK, List of supported roles versions.

application/json
countintegerOptional

Number of supported role versions

get
/v4/{projectId}/clusters/supportedRoleVersions
200

OK, List of supported roles versions.

Get details of a cluster

get
Path parameters
uuidstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK

application/json
namestringOptional

Name of the cluster

uuidstringOptional

UUID of the cluster

created_atstringOptional

Creation time of the cluster

projectIdstringOptional

UUID of the Keystone project that this cluster is part of

isKubernetesintegerOptional

Field is set to 1 if the cluster is a Kubernetes cluster, 0 otherwise

kubeRoleVersionstringOptional

The version of the pf9-kube role

etcdVersionstringOptional

The version of etcd used for cluster

isAirgappedintegerOptional

Field is set to 1 if the cluster is air-gapped, 0 otherwise

useHostnamebooleanOptional

(optioanl) If set to true nodes will be registered in the cluster using hostname instead of IP address. This option is only applicable to IPv4 hosts. This option is ignored when deploying clusters on IPv6 enabled hosts and public clouds - AWS, Azure, etc.

allowWorkloadsOnMasterintegerOptional

Field is set to 1 if the master nodes can run non-critical workloads

containerRuntimestringOptional

(optional) Container runtime for this cluster. Valid values: [docker, containerd]

containersCidrstringOptional

CIDR used for container IP addresses

servicesCidrstringOptional

CIDR used for service IP addresses

externalDnsNamestringOptional

Optional DNS name for API endpoint. This field is autogenerated when pf9 domain is used.

privilegedintegerOptional

Field is set to 1 if cluster runs privileged containers, 0 otherwise

runtimeConfigstringOptional
kubeProxyModestringOptional

The mode of kube proxy

apiserverStorageBackendstringOptional

The storage backend of the api server

k8sApiPortstringOptional

Port on which K8S API Server will listen, 443 by default

masterIpstringOptional

Ip of the master node, applicable only for cloud provider type 'openstack'

masterVipIpv4stringOptional

API server Virtual IP that provides failover if specified for the cluster. Defaults to empty string

masterVipIfacestringOptional

The interface that VIP attaches to if specified. Defaults to empty string

masterVipVrouterIdstringOptional

Virtual router id choosen for the cluster. Range: 0-254. Emptry string if masterVipIpv4 not specified

networkPluginstringOptional

Network backend to use for container networking. Defaults to flannel. Supported choices are flannel, calico, noop, weave

addonOperatorImageTagstringOptional

(optional) addon operator image tag for this cluster.

dockerRootstringOptional

Root directory for docker

etcdDataDirstringOptional

Data directory for etcd. The field is applicable to master nodes only

certExpiryHrsintegerOptional

(optional) Number of hours before user certificates in kubeconfig expires, should be greater than 0 if set. Default is 24hrs.

keystoneEnabledintegerOptional

Field is set to 1 if keystone is enabled, 0 otherwise

authzEnabledintegerOptional

Field is set to 1 if authz is enabled, 0 otherwise

appCatalogEnabledintegerOptional

DEPRECATED. Field doesn't lead to any action on the cluster now. Field is set to 1 if app catalog is enabled, 0 otherwise

enableProfileAgentbooleanOptional

(optional) If set to true platform9 profile engine agent will be deployed on the cluster. This agent is required to be able to use profiles.

enableEtcdEncryptionstringOptional

States whether tls encryption is enabled on etcd, Default:false

ipv6booleanOptional

Set to 1 if ipv6 enabled. Defaults to 0

enableMetallbbooleanOptional

1 if metallb enabled. Defaults to 0

metallbCidrstringOptional

Comma separated pools of IPs like A.B.C.D-E.F.G.H, I.J.K.L-M.N.O.P that metallb will manage if specified

base64EncMetallbConfigstringOptional

Base64 encoded string of metallb custom resource yaml

nodePoolUuidstringOptional

UUID of the node pool used for the cluster

nodePoolNamestringOptional

Name of the node pool used for the cluster

cloudProviderUuidstringOptional

UUID of the cloud provider used to create this cluster

cloudProviderNamestringOptional

Name of the cloud provider used to create this cluster

cloudProviderTypestringOptional

Type of the cloud provider used to create this cluster

tagsobjectOptional

User defined key-value pairs represented as a JSON object

mtuSizestringOptional

MTU for container network interfaces. Optional and used for the Calico network backend

cpuManagerPolicystringOptional

options: none, static; default: none

topologyManagerPolicystringOptional

options: none, best-effort, restricted, single-numa-node; default: none

reservedCPUsstringOptional

list of CPUs to be reserved for the system. Ex: 1-3,5

numMastersintegerOptional

Number of master nodes in the cluster

numWorkersintegerOptional

Number of worker nodes in the cluster

statusstringOptional

Status of the cluster

masterStatusstringOptional

Status of the master nodes. 'healthy' means all masters are healthy. 'partially healthy' means quorum number of masters are healthy, but some are not. 'unhealthy' means quorum number of master are unhealthy

workerStatusstringOptional

Status of the worker nodes. 'healthy' means all workers are healthy. 'partially healthy' means more than 50% of the workers are healthy, rest are unhealthy. 'unhealthy' means more than 50% of the workers are unhealthy

lastOpstringOptional

The last operation such as node attach or node detach that was performed on the cluster

lastOkstringOptional

The timestamp when the cluster last reported an OK status

taskStatusstringOptional

Status of the last task that run on the cluster.

taskErrorstringOptional

Error details if the last task on cluster did not succeed

debugstringOptional

enable debug

masterlessintegerOptional

1 if masterless cluster, 0 otherwise

upgradingTostringOptional

The version that the cluster is upgrading to

canUpgradebooleanOptional

Field is set to true if the cluster can be upgraded, false otherwise

canMinorUpgradeintegerOptional

Field is set to 1 if the cluster can be upgraded to a minor version, 0 otherwise

canPatchUpgradeintegerOptional

Field is set to 1 if the cluster can be upgraded to a patch version, 0 otherwise

minorUpgradeRoleVersionstringOptional

The minor version of the pf9-kube role that can be upgraded

patchUpgradeRoleVersionstringOptional

The patch version of the pf9-kube role that can be upgraded

flannelIfaceLabelstringOptional

The interface used by flannel for interhost communication

flannelPublicIfaceLabelstringOptional

The IP address used as the flannel public IP for the nodes in the cluster

calicoIPv4stringOptional

Calico IPv4 mode

calicoIPv4DetectionMethodstringOptional

Calico IPv4 detection method

calicoV4BlockSizestringOptional

Subnet size per node for the Calico network, in CIDR notation (e.g. 26)

calicoIPv6stringOptional

Calico IPv6 mode

calicoIPv6DetectionMethodstringOptional

Calico IPv6 detection method

calicoIPv6PoolCidrstringOptional

Calico IPv6 pool CIDR

calicoIPv6PoolBlockSizestringOptional

Calico IPv6 pool block size

calicoIPv6PoolNatOutgoingintegerOptional

Calico IPv6 pool NAT outgoing

calicoRouterIDstringOptional

Calico router ID

calicoIpIpModestringOptional

IP-IP encapsulation mode for Calico network. Choose: Always, Never, CrossSubnet

calicoNatOutgoingbooleanOptional

Field is set to true if Calico nodes need to NAT north-south egress traffic.

calicoNodeCpuLimitstringOptional

Corresponds to the CALICO_NODE_CPU_LIMIT environment variable in Calico.

calicoNodeMemoryLimitstringOptional

Corresponds to the CALICO_NODE_MEMORY_LIMIT environment variable in Calico.

calicoTyphaCpuLimitstringOptional

Corresponds to the CALICO_TYPHA_CPU_LIMIT environment variable in Calico.

calicoTyphaMemoryLimitstringOptional

Corresponds to the CALICO_TYPHA_MEMORY_LIMIT environment variable in Calico.

calicoControllerCpuLimitstringOptional

Corresponds to the CALICO_CONTROLLER_CPU_LIMIT environment variable in Calico.

calicoControllerMemoryLimitstringOptional

Corresponds to the CALICO_CONTROLLER_MEMORY_LIMIT environment variable in Calico.

felixIPv6SupportintegerOptional

Field is set to true if Felix supports IPv6

dockerCentosPackageRepoUrlstringOptional

(optional) URL of the centos repo to be used for docker installation

dockerUbuntuPackageRepoUrlstringOptional

(optional) URL of the ubuntu repo to be used for docker installation

dockerPrivateRegistrystringOptional

(optional) URL of private Docker registry to fetch Platform9 images from

quayPrivateRegistrystringOptional

(optional) URL of private Quay registry to fetch Platform9 images from

gcrPrivateRegistrystringOptional

(optional) URL of private GCR registry to fetch Platform9 images from

k8sPrivateRegistrystringOptional

(optional) URL of private K8S registry to fetch Platform9 images from

customRegistryUrlstringOptional

URL for a custom registry that is expected to serve all images for the cluster

customRegistryRepoPathstringOptional

path in custom registry where all images are cached

customRegistryUsernamestringOptional

username for the custom registry

customRegistryPasswordstringOptional

password for the custom registry

customRegistrySkipTlsbooleanOptional

configure containerd to skip tls verification for custom registry

customRegistrySelfSignedCertsbooleanOptional

Set to true if the custom registry uses self signed certs

customRegistryCertPathstringOptional

Path to the cert file for the custom registry if using self signed certs. Can be of the following formats: [https://example.com/path/to/cert, http://example.com/path/to/cert, file:///path/to/cert, /path/to/cert]

get
/v4/{projectId}/clusters/{uuid}

Update the properties of a cluster specified by the cluster_uuid

put
Path parameters
uuidstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Body
numWorkersintegerOptional

Number of worker nodes in the cluster. For AWS cluster, this parameter is relevant only if cluster autoscaling is disabled

numMinWorkersintegerOptional

Minimum number of worker nodes in ASG for AWS cluster. This parameter is relevant only if cluster autoscaling is enabled

numMaxWorkersintegerOptional

Maximum number of worker nodes in ASG for AWS cluster. This parameter is relevant only if cluster autoscaling is enabled

tagsobjectOptional

User defined key-value pairs represented as a JSON object

customAmistringOptional

The custom ami name which can be specified by a user

enableProfileAgentbooleanOptional

(optional) If set to true platform9 profile engine agent will be deployed on the cluster. This agent is required to be able to use profiles.

dockerCentosPackageRepoUrlstringOptional

(optional) URL of the centos repo to be used for docker installation

dockerUbuntuPackageRepoUrlstringOptional

(optional) URL of the ubuntu repo to be used for docker installation

certExpiryHrsintegerOptional

(optional) Number of hours before user certificates in kubeconfig expires, should be greater than 0 if set. Default is 24hrs.

ebsVolumeThroughputintegerOptional

(optional) throughput for default gp3 root volume

ebsVolumeIopsintegerOptional

(optional) iops for default gp3 root volume

Responses
chevron-right
200

OK, if cluster upgrade request was submitted successfully

No content

put
/v4/{projectId}/clusters/{uuid}

No content

Delete a cluster from PMK as specified by the cluster UUID

delete
Path parameters
uuidstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK, if cluster delete request was submitted successfully

No content

delete
/v4/{projectId}/clusters/{uuid}

No content

Get nodes of a cluster

get
Path parameters
uuidstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK

application/json
namestringOptional

Host name of the node

uuidstringOptional

UUID of the node

primaryIpstringOptional

IP address of the node

nodePoolNamestringOptional

Name of the node pool, the node belongs to

nodePoolUuidstringOptional

UUID of the node pool, the node belongs to

cloudProviderTypestringOptional

Type of cloud provider, such as local or aws used to create the cluster

cloudProviderUuidstringOptional

UUID of the cloud provider used to create the cluster

cloudInstanceIdstringOptional

UUID of the cloud instance used to create the cluster

clusterNamestringOptional

Name of the cluster the node belongs to

clusterUuidstringOptional

UUID of the cluster the node belongs to

projectIdstringOptional

UUID of the project the node belongs to

actualKubeRoleVersionstringOptional

actual version of the kube role on the node

clusterKubeRoleVersionstringOptional

Kube version of the cluster the node belongs to

isMasterintegerOptional

1 if this node is a master of a custer. 0 otherwise.

api_respondingintegerOptional

1 indicates the API server on this node is running. 0 otherwise. Applicable only if isMaster is 1

statusstringOptional

Status of the node. States include “ok”, ”converging”, “failed”. These states indicate the current state of kubernetes setup on the host.

masterlessintegerOptional

1 indicates the node is a masterless node. 0 otherwise

startKubeintegerOptional

1 indicates kube to be installed on the node . 0 otherwise

get
/v4/{projectId}/clusters/{uuid}/nodes

Get the kubeconfig blob for the specific cluster

get
Path parameters
cluster_uuidstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cluster belongs to

Query parameters
force_cert_authbooleanOptional

If true, generates certificate based kubeconfig. Default is false.

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

The response is a blob sent with the Content-Type ‘application/octet-stream’

No content

get
/v4/{projectId}/kubeconfig/{cluster_uuid}

No content

Generate token to be used by web cli

post
Path parameters
uuidstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK

application/json
tokenstringOptional

Web cli token

post
/v4/{projectId}/webcli/{uuid}

Attach nodes to a cluster. In a manual deployed cluster, nodes can be added to a cluster using this API. If the cluster has no masters, multiple masters can be attached simultaneously.

post
Path parameters
uuidstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Bodyobject[]
uuidstringRequired

UUID of the node

isMasterbooleanOptional

true if the node should be attached as master, false otherwise.

Responses
chevron-right
200

OK, if the node get attached to the cluster

No content

post
/v4/{projectId}/clusters/{uuid}/attach

No content

Detach nodes from a cluster. In a manual deployed cluster, nodes can be removed from a cluster using this API.

post
Path parameters
uuidstringRequired

UUID of the cluster

projectIdstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Bodyobject[]
uuidstringRequired

UUID of the node

isMasterbooleanOptional

true if the node should be attached as master, false otherwise.

Responses
chevron-right
200

OK, if the node get attached to the cluster

No content

post
/v4/{projectId}/clusters/{uuid}/detach

No content

Get kubelet config

get
Path parameters
projectIdstringRequired

UUID of the project the clusters belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK

application/json
get
/v4/{projectId}/kubeletconfig

Creates kubelet config for a cluster as configmap in sunpike

post
Path parameters
projectIdstringRequired

UUID of the project the clusters belongs to

Header parameters
X-Auth-TokenstringRequired
Bodyobject[]
clusterIdstringOptional

Id of the cluster to which the config belongs

Responses
chevron-right
200

OK, if create request was submitted successfully

No content

post
/v4/{projectId}/kubeletconfig

No content

Update the properties of kubelet config

put
Path parameters
projectIdstringRequired

UUID of the project the clusters belongs to

Header parameters
X-Auth-TokenstringRequired
Bodyobject[]
clusterIdstringOptional

Id of the cluster to which the config belongs

Responses
chevron-right
200

OK, if update request was submitted successfully

No content

put
/v4/{projectId}/kubeletconfig

No content

Delete the kubelet config configmap

delete
Path parameters
projectIdstringRequired

UUID of the project clusters belongs to

Header parameters
X-Auth-TokenstringRequired
Bodyobject[]
clusterIdstringOptional

Id of the cluster to which the config belongs

configstring[]Optional

List of config names to be deleted

Responses
chevron-right
200

OK, if delete request was submitted successfully

No content

delete
/v4/{projectId}/kubeletconfig

No content

update cluster state after CNI migration

put
Path parameters
uuidstringRequired

UUID of the cluster

project_uuidstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK

application/json
namestringOptional

Host name of the node

uuidstringOptional

UUID of the node

primaryIpstringOptional

IP address of the node

nodePoolNamestringOptional

Name of the node pool, the node belongs to

nodePoolUuidstringOptional

UUID of the node pool, the node belongs to

cloudProviderTypestringOptional

Type of cloud provider, such as local or aws used to create the cluster

cloudProviderUuidstringOptional

UUID of the cloud provider used to create the cluster

cloudInstanceIdstringOptional

UUID of the cloud instance used to create the cluster

clusterNamestringOptional

Name of the cluster the node belongs to

clusterUuidstringOptional

UUID of the cluster the node belongs to

projectIdstringOptional

UUID of the project the node belongs to

actualKubeRoleVersionstringOptional

actual version of the kube role on the node

clusterKubeRoleVersionstringOptional

Kube version of the cluster the node belongs to

isMasterintegerOptional

1 if this node is a master of a custer. 0 otherwise.

api_respondingintegerOptional

1 indicates the API server on this node is running. 0 otherwise. Applicable only if isMaster is 1

statusstringOptional

Status of the node. States include “ok”, ”converging”, “failed”. These states indicate the current state of kubernetes setup on the host.

masterlessintegerOptional

1 indicates the node is a masterless node. 0 otherwise

startKubeintegerOptional

1 indicates kube to be installed on the node . 0 otherwise

put
/v4/{project_uuid}/clusters/{uuid}/update_cni_on_migration

allow attaching nodes post failed upgrade

put
Path parameters
uuidstringRequired

UUID of the cluster

project_uuidstringRequired

UUID of the project the cluster belongs to

Header parameters
X-Auth-TokenstringRequired
Responses
chevron-right
200

OK

application/json
namestringOptional

Host name of the node

uuidstringOptional

UUID of the node

primaryIpstringOptional

IP address of the node

nodePoolNamestringOptional

Name of the node pool, the node belongs to

nodePoolUuidstringOptional

UUID of the node pool, the node belongs to

cloudProviderTypestringOptional

Type of cloud provider, such as local or aws used to create the cluster

cloudProviderUuidstringOptional

UUID of the cloud provider used to create the cluster

cloudInstanceIdstringOptional

UUID of the cloud instance used to create the cluster

clusterNamestringOptional

Name of the cluster the node belongs to

clusterUuidstringOptional

UUID of the cluster the node belongs to

projectIdstringOptional

UUID of the project the node belongs to

actualKubeRoleVersionstringOptional

actual version of the kube role on the node

clusterKubeRoleVersionstringOptional

Kube version of the cluster the node belongs to

isMasterintegerOptional

1 if this node is a master of a custer. 0 otherwise.

api_respondingintegerOptional

1 indicates the API server on this node is running. 0 otherwise. Applicable only if isMaster is 1

statusstringOptional

Status of the node. States include “ok”, ”converging”, “failed”. These states indicate the current state of kubernetes setup on the host.

masterlessintegerOptional

1 indicates the node is a masterless node. 0 otherwise

startKubeintegerOptional

1 indicates kube to be installed on the node . 0 otherwise

put
/v4/{project_uuid}/clusters/{uuid}/attach_on_failed_upgrade

Last updated

Was this helpful?