Rest API documentation
List all the nodes in a project identified by the project UUID
X | string |
project | string | UUID of the project the node belongs to |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/nodes' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
array | array | ||
actualKubeRoleVersion | string | Kube version of the node | |
cloudInstanceId | string | cloud instance id of the node | |
cloudProviderType | string | Type of cloud provider, such as local or aws used to create the cluster | |
cloudProviderUuid | string | UUID of the cloud provider | |
clusterName | string | Name of the cluster the node belongs to | |
clusterUuid | string | UUID of the cluster the node belongs to | |
clusterKubeRoleVersion | string | Kube role version of the cluster | |
name | string | Host name of the node | |
uuid | string | UUID of the node | |
api | integer | 1 indicates the API server on this node is running. 0 otherwise. Applicable only if isMaster is 1 | |
primaryIp | string | IP address of the node | |
startKube | integer | Indicates whether Kube has started (1 to indicate active and 0 otherwise) | |
status | string | Status of the node. States include “ok”, ”converging”, “failed”. These states indicate the current state of kubernetes setup on the host. | |
isMaster | integer | 1 if this node is a master of a cluster. 0 otherwise | |
masterless | integer | ||
nodePoolName | string | Name of the node pool, the node belongs to | |
nodePoolUuid | string | UUID of the node pool, the node belongs to | |
projectId | string | UUID of the project the node belongs to |
unauthorized to perform this operation
xxxxxxxxxx
[
"{array...}"
]
Get details of a specific node in project, identified by the UUID
X | string |
uuid | string | UUID of the node | |
project | string | UUID of the project the node belongs to |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/nodes/%7Buuid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
actualKubeRoleVersion | string | Kube version of the node | |
cloudInstanceId | string | cloud instance id of the node | |
cloudProviderType | string | Type of cloud provider, such as local or aws used to create the cluster | |
cloudProviderUuid | string | UUID of the cloud provider | |
clusterName | string | Name of the cluster the node belongs to | |
clusterUuid | string | UUID of the cluster the node belongs to | |
clusterKubeRoleVersion | string | Kube role version of the cluster | |
name | string | Host name of the node | |
uuid | string | UUID of the node | |
api | integer | 1 indicates the API server on this node is running. 0 otherwise. Applicable only if isMaster is 1 | |
primaryIp | string | IP address of the node | |
startKube | integer | Indicates whether Kube has started (1 to indicate active and 0 otherwise) | |
status | string | Status of the node. States include “ok”, ”converging”, “failed”. These states indicate the current state of kubernetes setup on the host. | |
isMaster | integer | 1 if this node is a master of a cluster. 0 otherwise | |
masterless | integer | ||
nodePoolName | string | Name of the node pool, the node belongs to | |
nodePoolUuid | string | UUID of the node pool, the node belongs to | |
projectId | string | UUID of the project the node belongs to |
unauthorized to perform this operation
xxxxxxxxxx
{
"schema": "{}"
}
Updates the properties of the node specified by the node UUID
Currently, only the cluster property for a node can be modified and its primary usage is to detach a node from a cluster. The node, if needed, can be reattached to another cluster by using the cluster’s attach API
X | string |
uuid | string | UUID of the node | |
project | string | UUID of the project the nodes belongs to |
object | object | ||
clusterUuid | string | Value of this field must be set to null to detach the node |
xxxxxxxxxx
curl --request PUT \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/nodes/%7Buuid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data '{
"clusterUuid": "{string}"
}'
OK, if the node gets deattached from the cluster
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Cloud Provider
Get the list of the cloud provider accounts currently setup in a project identified by project UUID
X | string |
project | string | UUID of the project the cloud provider belongs to |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/cloudProviders' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
array | array | ||
name | string | Name of the cloud provider account | |
uuid | string | UUID of the cloud provider account | |
type | string | Type of the cloud provider account | |
nodePoolUuid | string | UUID of the associated node pool | |
nodePoolName | string | Name of the associated node pool | |
projectID | string | UUID of the cloud provider |
unauthorized to perform this operation
xxxxxxxxxx
[
"{array...}"
]
Add a cloud provider account
Note that by default, there is one “local” cloud provider, which is used for building clusters manually. Currently, the supported cloudProviders are AWS,Azure,GCP other than the “local” provider.
X | string |
project | string | UUID of the project the cloud provider account belongs to |
object | object | ||
name | string | Name of the cloud provider account | |
type | string | Type of the cloud provider account | |
key | string | Cloud access key | |
secret | string | Cloud secret key |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/cloudProviders' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data '{
"name": "{string}",
"type": "{string}",
"key": "{string}",
"secret": "{string}"
}'
OK, if the cloud provider gets created successfully
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Get all available cloud provider types, in a project identified by project UUID
X | string |
project | string | UUID of the project the cloud provider belongs to |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/cloudProvider/types' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
type | string | Cloud provider type.Examples are 'aws', 'local', 'azure' |
unauthorized to perform this operation
xxxxxxxxxx
{
"schema": "{}"
}
Get the details for cloud provider account identified by the account_uuid
This is applicable only for public cloud providers
X | string |
uuid | string | UUID of the cloud provider | |
project | string | UUID of the project the cloud provider belongs to |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/cloudProviders/%7Buuid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
Regions | array | Regions belonging to the provider | |
Endpoint | string | endpoint of the region | |
RegionName | string | name of the region | |
OptInStatus | string | Indicates whether opt-in is required or not |
unauthorized to perform this operation
xxxxxxxxxx
{
"schema": "{}"
}
Delete a cloud provider account specified by account uuid
X | string |
uuid | string | UUID of the cloud provider | |
project | string | UUID of the project the cloud provider account belongs to |
xxxxxxxxxx
curl --request DELETE \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/cloudProviders/%7Buuid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK, if the cloud provider gets deleted successfully
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Get the details for a region in a particular cloud provider account identified by the account_uuid
This is applicable only for public cloud providers
X | string |
uuid | string | UUID of the cloud provider | |
regionid | string | Name of the region | |
project | string | UUID of the project the cloud provider belongs to |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/cloudProviders/%7Buuid%7D/region/%7Bregionid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
azs | array[object] | The list of availability zones in the region | |
domains | array[object] | The list of hosting domains | |
flavors | array[object] | The list of instance flavors supported in the region | |
keyPairs | array[object] | The list of ssh key pairs in the region | |
operatingSystems | array[object] | The list of operating systems available in the region | |
vpcs | array[object] | The list of virtual private networks available in the region |
unauthorized to perform this operation
xxxxxxxxxx
{
"schema": "{}"
}
Add ssh key to a cloud provider region
X | string |
uuid | string | UUID of the cloud provider | |
regionid | string | Name of the region | |
project | string | UUID of the project the cloud provider belongs to |
object | object | ||
name | string | Name of the key | |
key | string | Contents of the key |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/cloudProviders/%7Buuid%7D/region/%7Bregionid%7D/sshKey' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data '{
"name": "{string}",
"key": "{string}"
}'
OK
No response body |
Key is not in valid OpenSSH public key format
unauthorized to perform this operation
xxxxxxxxxx
No response
Validate a cloud provider account
Validate a cloud provider credentials before adding it
X | string |
project | string | UUID of the project the cloud provider account belongs to |
object | object | ||
name | string | Name of the cloud provider account | |
type | string | Type of the cloud provider account | |
key | string | Cloud access key | |
secret | string | Cloud secret key |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/cloudProviders/validate' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data '{
"name": "{string}",
"type": "{string}",
"key": "{string}",
"secret": "{string}"
}'
OK, if the cloud provider gets created successfully
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Update a cloud provider account specified by account uuid
X | string |
uuid | string | UUID of the cloud provider |
object | object | ||
name | string | Name of the cloud provider account | |
key | string | Cloud access key | |
secret | string | Cloud secret key |
xxxxxxxxxx
curl --request PUT \
--url 'https://platform9.com/qbert/v1/cloudProviders/%7Buuid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data '{
"name": "{string}",
"key": "{string}",
"secret": "{string}"
}'
OK, if the cloud provider gets upddated successfully
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Cluster
Get the list of clusters currently setup in PMK
X | string |
project | string | UUID of the project the cluster belongs to |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
array | array | ||
name | string | Name of the cluster | |
uuid | string | UUID of the cluster | |
containersCidr | string | CIDR used for container IP addresses | |
servicesCidr | string | CIDR used for service IP addresses | |
isKubernetes | integer | Field is set to 1 if the cluster is a Kubernetes cluster, 0 otherwise | |
isMesos | integer | Field is set to 1 if the cluster is a Mesos cluster, 0 otherwise | |
isSwarm | integer | Field is set to 1 if the cluster is a Swarm cluster, 0 otherwise | |
externalDnsName | string | Optional DNS name for API endpoint. This field is autogenerated when pf9 domain is used. | |
debug | boolean | If field is set to true,debug logs will be enabled | |
masterIp | string | Ip of the master node, applicable only for cloud provider type 'openstack' | |
status | string | Status of the cluster | |
masterStatus | string | 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 | |
workerStatus | string | 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 | |
ipv6 | boolean | Set to true if ipv6 is enabled | |
kubeRoleVersion | string | Pf9-kube role version to be used when bringing up the cluster. | |
canMinorUpgrade | integer | Set to 1 if minor upgrade is possible, 0 otheriwse. | |
minorUpgradeRoleVersion | string | Role version of minor upgrade. | |
canPatchUpgrade | integer | Set to 1 if patch upgrade is possible, 0 otherwise. | |
patchUpgradeRoleVersion | string | Role version of patch upgrade. | |
upgradingTo | string | Set to the version the cluster is upgrading to, otherwise null. | |
flannelIfaceLabel | string | The interface used by flannel for interhost communication | |
flannelPublicIfaceLabel | string | The IP address used as the flannel public IP for the nodes in the cluster | |
dockerRoot | string | Root directory for docker | |
etcdDataDir | string | Data directory for etcd. The field is applicable to master nodes only | |
lastOp | string | The last operation such as node attach or node detach that was performed on the cluster | |
lastOk | string | The timestamp when the cluster last reported an OK status | |
keystoneEnabled | integer | Field is set to 1 if keystone is enabled, 0 otherwise | |
authzEnabled | integer | Field is set to 1 if authz is enabled, 0 otherwise | |
taskStatus | string | Status of the last task that run on the cluster. | |
taskError | string | Error details if the last task on cluster did not succeed | |
kubeProxyMode | string | The mode which kube-proxy is running in | |
numMasters | integer | Number of master nodes in the cluster | |
numWorkers | integer | Number of worker nodes in the cluster | |
enableCAS | boolean | If value is 1,cluster autoscaling is enabled (only for AWS clusters). | |
numMinWorkers | integer | This parameter is required if enableCAS is set to true. This is the minimum number of worker nodes in ASG | |
numMaxWorkers | integer | This parameter is required if enableCAS is set to true. This is the maximum number of worker nodes in ASG | |
etcdHeartbeatIntervalMs | integer | Frequency with which master node will notify workers | |
etcdElectionTimeoutMs | integer | This timeout is how long a worker node will go without hearing a heartbeat,before attempting to become master | |
privileged | integer | Field is set to 1 if cluster runs privileged containers, 0 otherwise | |
apiserverStorageBackend | string | The kube-apiserver storage backend for persistance, etcd3(default) | |
appCatalogEnabled | integer | DEPRECATED. Always disabled now. Field is set to 1 if app catalog is enabled, 0 otherwise | |
projectId | string | UUID of the Keystone project that this cluster is part of | |
runtimeConfig | string | ||
isEtcdBackupEnabled | boolean | Set to true if etcd backup should be enabled, false otherwise | |
intervalInMins | integer | etcd backup interval, specified in minutes | |
intervalInHours | integer | etcd backup interval, specified in Hours | |
dailyBackupTime | string | etcd backup Timestamp for daily backup, specified in format 'HH:MM' | |
maxIntervalBackupCount | integer | max number of Backups retention for interval type backups | |
maxTimestampBackupCount | integer | max number of Backups retention for Timestamp type backups | |
storageType | string | Storage type for the etcd backup. Only 'local' is current supported type. 'local' saves backup to the node's local disk | |
localPath | string | Path on the local filesystem where the etcd backup should be stored. For 'local' storage type only. | |
taskStatus | string | Status indicating whether the backup cron job on the Kubernetes cluster was successfully setup. Can be 'success' or 'error' | |
taskErrorDetail | string | Details of the error occurred of the taskStatus returned is 'error' | |
nodePoolUuid | string | UUID of the node pool used for the cluster | |
nodePoolName | string | Name of the node pool used for the cluster | |
cloudProviderUuid | string | UUID of the cloud provider used to create this cluster | |
cloudProviderName | string | Name of the cloud provider used to create this cluster | |
cloudProviderType | string | Type of the cloud provider used to create this cluster | |
region | string | Cloud provider region in which the cluster was created | |
masterFlavor | string | Node flavor used for master node | |
apiServerFlags | string | List of kube-apiserver flags. (e.g. --request-timeout=2m0s, --kubelet-timeout=20s) | |
controllerManagerFlags | string | List of kube-controller-manager flags. (e.g. --large-cluster-size-threshold=60, --node-monitor-period =5s) | |
monitoring | string | Check whether monitoring is enabled on the cluster | |
workerFlavor | string | Node flavor used for worker node | |
sshKey | string | Public SSH key associated with the cluster nodes | |
serviceFqdn | string | FQDN used to reference cluster services | |
ami | string | AMI ID used to provision cluster nodes | |
domainId | string | Domain used for cluster FQDNs | |
numSpotWorkers | string | Number of spot workers | |
spotWorkerFlavor | string | Node falvor used for spot workers | |
spotPrice | string | Pricing of the spot instances | |
numMaxSpotWorkers | string | Maximum number of spot workers | |
isPrivate | boolean | 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. | |
usePf9Domain | string | Set to true if platform9.net domain is used, false otherwise | |
internalElb | boolean | 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 | |
azs | array[string] | Availability zone(s) the cluster is deployed in | |
httpProxy | string | 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 | |
privateSubnets | array[string] | 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 | |
subnets | array[string] | ||
vpc | string | 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 | |
customAmi | string | The custom ami name which can be specified by a user | |
deployLuigiOperator | integer | Set to 1 if Luigi is deployed otherwise 0 | |
deployKubevirt | integer | Set to 1 if Kubevirt is deployed otherwise 0 | |
canUpgrade | boolean | Field is set to true if the cluster can be upgraded, false otherwise | |
networkPlugin | string | Network backend to use for container networking. Defaults to flannel. Supported choices are flannel, calico, noop, weave | |
allowWorkloadsOnMaster | integer | Field is set to 1 if the master nodes can run non-critical workloads | |
tags | object | User defined key-value pairs represented as a JSON object | |
k8sApiPort | string | Port on which K8S API Server will listen, 443 by default | |
masterless | boolean | Set to true if creating a masterless cluster | |
masterVipIpv4 | string | API server Virtual IP that provides failover if specified for the cluster. Defaults to empty string | |
masterVipIface | string | The interface that VIP attaches to if specified. Defaults to empty string | |
enableMetallb | boolean | 1 if metallb enabled. Defaults to 0 | |
metallbCidr | string | 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 | |
masterVipVrouterId | string | Virtual router id choosen for the cluster. Range: 0-254. Emptry string if masterVipIpv4 not specified | |
calicoV4BlockSize | string | Subnet size per node for the Calico network, in CIDR notation (e.g. 26) | |
calicoIpIpMode | string | IP-IP encapsulation mode for Calico network. Choose: Always, Never, CrossSubnet | |
calicoNatOutgoing | integer | Field is set to 1 if Calico nodes need to NAT north-south egress traffic. | |
calicoIPv4 | string | ipv4 address detection for host e.g. autodetect ipv4 interface | |
calicoIPv4DetectionMethod | string | ipv4 detection method for network interface. e.g. first-found finds first found network interface | |
calicoIPv6 | string | ipv6 address detection for host e.g. autodetect ipv6 interface | |
calicoIPv6DetectionMethod | string | ipv6 detection method for network interface. e.g. first-found finds first found network interface | |
calicoIPv6PoolCidr | string | CIDR for ipv6 pool | |
calicoIPv6PoolBlockSize | string | The CIDR size of allocation blocks used by this pool.(e.g. 116) | |
calicoIPv6PoolNatOutgoing | integer | Field is set to 1 if Calico nodes need to NAT north-south egress traffic. | |
felixIPv6Support | boolean | ipv6 support for Felix | |
calicoNodeCpuLimit | string | Corresponds to the CALICO_NODE_CPU_LIMIT environment variable in Calico. | |
calicoNodeMemoryLimit | string | Corresponds to the CALICO_NODE_MEMORY_LIMIT environment variable in Calico. | |
calicoTyphaCpuLimit | string | Corresponds to the CALICO_TYPHA_CPU_LIMIT environment variable in Calico. | |
calicoTyphaMemoryLimit | string | Corresponds to the CALICO_TYPHA_MEMORY_LIMIT environment variable in Calico. | |
calicoControllerCpuLimit | string | Corresponds to the CALICO_CONTROLLER_CPU_LIMIT environment variable in Calico. | |
calicoControllerMemoryLimit | string | Corresponds to the CALICO_CONTROLLER_MEMORY_LIMIT environment variable in Calico. | |
etcdVersion | string | etcd version | |
mtuSize | string | MTU for container network interfaces. Optional and used for the Calico network backend | |
cpuManagerPolicy | string | options: none, static; default: none | |
topologyManagerPolicy | string | options: none, best-effort, restricted, single-numa-node; default: none | |
reservedCPUs | string | list of CPUs to be reserved for the system. Ex: 1-3,5 | |
dockerPrivateRegistry | string | (optional) URL of private Docker registry to fetch Platform9 images from | |
quayPrivateRegistry | string | (optional) URL of private Quay registry to fetch Platform9 images from | |
gcrPrivateRegistry | string | (optional) URL of private GCR registry to fetch Platform9 images from | |
k8sPrivateRegistry | string | (optional) URL of private K8S registry to fetch Platform9 images from | |
useHostname | boolean | (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. | |
enableProfileAgent | boolean | (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. | |
enableCatapultMonitoring | boolean | (optional) If set to true (default value) platform9 Catapult monitoring will be deployed on the cluster | |
dockerCentosPackageRepoUrl | string | (optional) URL of the centos repo to be used for docker installation, this URL is added as a first mirror optiopn | |
dockerUbuntuPackageRepoUrl | string | (optional) URL of the ubuntu repo to be used for docker installation, this URL is added as a first mirror option | |
containerRuntime | string | (optional) Container runtime for this cluster. Valid values: [docker, containerd] | |
certExpiryHrs | integer | (optional) Number of hours before user certificates in kubeconfig expires, should be greater than 0 if set. Default is 24hrs. | |
addonOperatorImageTag | string | (optional) addon operator image tag for this cluster. |
unauthorized to perform this operation
xxxxxxxxxx
[
"{array...}"
]
Creates a cluster using auto deploy or manual mode
X | string |
project | string | UUID of the project the cluster belongs to |
object | object | ||
allowWorkloadsOnMaster | integer | Field is set to 1 if the master nodes can run non-critical workloads | |
ami | string | AMI ID used to provision cluster nodes | |
appCatalogEnabled | integer | DEPRECATED. Field doesn't lead to any action on the cluster now. Field is set to 1 if app catalog is enabled, 0 otherwise, applicable also for manual deploy | |
azs | array[string] | Availability zone(s) the cluster is deployed in | |
calicoV4BlockSize | string | Subnet size per node for the Calico network, in CIDR notation (e.g. 26) | |
calicoIpIpMode | string | IP-IP encapsulation mode for Calico network. Choose: Always, Never, CrossSubnet | |
calicoNatOutgoing | boolean | Field is set to true if Calico nodes need to NAT north-south egress traffic. | |
calicoNodeCpuLimit | string | Corresponds to the CALICO_NODE_CPU_LIMIT environment variable in Calico. | |
calicoNodeMemoryLimit | string | Corresponds to the CALICO_NODE_MEMORY_LIMIT environment variable in Calico. | |
calicoTyphaCpuLimit | string | Corresponds to the CALICO_TYPHA_CPU_LIMIT environment variable in Calico. | |
calicoTyphaMemoryLimit | string | Corresponds to the CALICO_TYPHA_MEMORY_LIMIT environment variable in Calico. | |
calicoControllerCpuLimit | string | Corresponds to the CALICO_CONTROLLER_CPU_LIMIT environment variable in Calico. | |
calicoControllerMemoryLimit | string | Corresponds to the CALICO_CONTROLLER_MEMORY_LIMIT environment variable in Calico. | |
certExpiryHrs | integer | (optional) Number of hours before user certificates in kubeconfig expires, should be greater than 0 if set. Default is 24hrs. | |
containersCidr | string | CIDR used for container IP addresses, applicable also for manual deploy | |
deployLuigiOperator | integer | Set to 1 if Luigi is deployed otherwise 0 | |
deployKubevirt | integer | Set to 1 if Kubevirt is deployed otherwise 0 | |
dockerLiveRestoreEnabled | boolean | Enables the use of Docker live restore as described here: https://docs.docker.com/config/containers/live-restore/ | |
domainId | string | Domain used for cluster FQDNs | |
enableMetallb | boolean | If true, install MetalLB to support the loadbalancer service-type | |
enableCAS | boolean | If true, cluster autoscaling is enabled (only for AWS clusters). | |
isEtcdBackupEnabled | boolean | Set to true if etcd backup should be enabled, false otherwise | |
intervalInMins | integer | etcd backup interval, specified in minutes | |
intervalInHours | integer | etcd backup interval, specified in Hours | |
dailyBackupTime | string | etcd backup Timestamp for daily backup, specified in format 'HH:MM' | |
maxIntervalBackupCount | integer | max number of Backups retention for interval type backups | |
maxTimestampBackupCount | integer | max number of Backups retention for Timestamp type backups | |
storageType | string | Storage type for the etcd backup. Only 'local' is current supported type. 'local' saves backup to the node's local disk | |
localPath | string | Path on the local filesystem where the etcd backup should be stored. For 'local' storage type only. | |
etcdHeartbeatIntervalMs | integer | Frequency with which master node will notify workers | |
etcdElectionTimeoutMs | integer | This timeout is how long a worker node will go without hearing a heartbeat,before attempting to become master | |
externalDnsName | string | Optional DNS name for API endpoint. This field is autogenerated when usePf9Domain is set, also applicable for manual deploy | |
httpProxy | string | 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 | |
internalElb | boolean | 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 | |
isPrivate | boolean | 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. | |
k8sApiPort | string | Port on which K8S API Server will listen, 443 by default | |
masterless | boolean | Set to true if creating a masterless cluster | |
masterFlavor | string | Node flavor used for master node | |
masterVipIpv4 | string | API server Virtual IP that provides failover. When specified, deploy keepalived setup to cluster master nodes together | |
masterVipIface | string | If masterVipIpv4 is specified, this field is required. Specify the interface that the VIP attaches to | |
metallbCidr | string | 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) | |
mtuSize | string | MTU for container network interfaces. Optional and used for the Calico network backend | |
name | string | Name of the cluster, applicable also for manual deploy | |
networkPlugin | string | Network backend to use for container networking. Defaults to flannel. Supported choices are flannel, calico, noop, weave | |
nodePoolUuid | string | UUID of the node pool used for the cluster, applicable also for manual deploy | |
numMasters | integer | Number of master nodes in the cluster | |
numWorkers | integer | Number of worker nodes in the cluster | |
numMinWorkers | integer | This parameter is required if enableCAS is set to true. This is the minimum number of worker nodes in ASG | |
numMaxWorkers | integer | This parameter is required if enableCAS is set to true. This is the maximum number of worker nodes in ASG | |
privateSubnets | array[string] | 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 | |
privileged | boolean | Field is set to 1 if cluster runs privileged containers, 0 otherwise | |
region | string | Cloud provider region in which the cluster was created | |
runtimeConfig | string | Applicable also for manual deploy | |
serviceFqdn | string | FQDN used to reference cluster services | |
servicesCidr | string | CIDR used for service IP addresses, applicable also for manual deploy | |
sshKey | string | Public SSH key associated with the cluster nodes | |
subnets | array[string] | ||
tags | object | User defined key-value pairs represented as a JSON object | |
usePf9Domain | boolean | Set to true if platform9.net domain is used, false otherwise | |
vpc | string | 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 | |
workerFlavor | string | Node flavor used for worker node | |
kubeRoleVersion | string | Pf9-kube role version to be used when bringing up the cluster. | |
containerRuntime | string | (optional) Container runtime for this cluster. Valid values: [docker, containerd] | |
addonOperatorImageTag | string | (optional) addon operator image tag for this cluster. | |
addonVersions | object | ||
coredns | string | coredns version | |
dashboard | string | dashboard version | |
dns | string | dns-autoscaler version | |
kubevirt | string | kubevirt version | |
luigi | string | luigi version | |
metal3 | string | metal3 version | |
metallb | string | metallb version | |
metricsserver | string | metricsserver version | |
monitoring | string | monitoring version | |
profileagent | string | profileagent version | |
cluster | string | cluster-autoscaler-aws version | |
cluster | string | cluster-autoscaler-azure version |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data '{
"allowWorkloadsOnMaster": "{integer}",
"ami": "{string}",
"appCatalogEnabled": "{integer}",
"azs": [
"{array[string]...}"
],
"calicoV4BlockSize": "{string}",
"calicoIpIpMode": "{string}",
"calicoNatOutgoing": "{boolean}",
"calicoNodeCpuLimit": "{string}",
"calicoNodeMemoryLimit": "{string}",
"calicoTyphaCpuLimit": "{string}",
"calicoTyphaMemoryLimit": "{string}",
"calicoControllerCpuLimit": "{string}",
"calicoControllerMemoryLimit": "{string}",
"certExpiryHrs": "{integer}",
"containersCidr": "{string}",
"deployLuigiOperator": "{integer}",
"deployKubevirt": "{integer}",
"dockerLiveRestoreEnabled": "{boolean}",
"domainId": "{string}",
"enableMetallb": "{boolean}",
"enableCAS": "{boolean}",
"etcdBackup": "{}",
"etcdHeartbeatIntervalMs": "{integer}",
"etcdElectionTimeoutMs": "{integer}",
"externalDnsName": "{string}",
"httpProxy": "{string}",
"internalElb": "{boolean}",
"isPrivate": "{boolean}",
"k8sApiPort": "{string}",
"masterless": "{boolean}",
"masterFlavor": "{string}",
"masterVipIpv4": "{string}",
"masterVipIface": "{string}",
"metallbCidr": "{string}",
"mtuSize": "{string}",
"name": "{string}",
"networkPlugin": "{string}",
"nodePoolUuid": "{string}",
"numMasters": "{integer}",
"numWorkers": "{integer}",
"numMinWorkers": "{integer}",
"numMaxWorkers": "{integer}",
"privateSubnets": [
"{array[string]...}"
],
"privileged": "{boolean}",
"region": "{string}",
"runtimeConfig": "{string}",
"serviceFqdn": "{string}",
"servicesCidr": "{string}",
"sshKey": "{string}",
"subnets": [
"{array[string]...}"
],
"tags": {},
"usePf9Domain": "{boolean}",
"vpc": "{string}",
"workerFlavor": "{string}",
"kubeRoleVersion": "{string}",
"containerRuntime": "{string}",
"addonOperatorImageTag": "{string}",
"addonVersions": {
"coredns": "{string}",
"dashboard": "{string}",
"dns-autoscaler": "{string}",
"kubevirt": "{string}",
"luigi": "{string}",
"metal3": "{string}",
"metallb": "{string}",
"metricsserver": "{string}",
"monitoring": "{string}",
"profileagent": "{string}",
"cluster-autoscaler-aws": "{string}",
"cluster-autoscaler-azure": "{string}"
}
}'
OK, if cluster create request was submitted successfully
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Get details of a cluster
X | string |
uuid | string | UUID of the cluster | |
project | string | UUID of the project the cluster belongs to |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters/%7Buuid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
name | string | Name of the cluster | |
uuid | string | UUID of the cluster | |
containersCidr | string | CIDR used for container IP addresses | |
servicesCidr | string | CIDR used for service IP addresses | |
isKubernetes | integer | Field is set to 1 if the cluster is a Kubernetes cluster, 0 otherwise | |
isMesos | integer | Field is set to 1 if the cluster is a Mesos cluster, 0 otherwise | |
isSwarm | integer | Field is set to 1 if the cluster is a Swarm cluster, 0 otherwise | |
externalDnsName | string | Optional DNS name for API endpoint. This field is autogenerated when pf9 domain is used. | |
debug | boolean | If field is set to true,debug logs will be enabled | |
masterIp | string | Ip of the master node, applicable only for cloud provider type 'openstack' | |
status | string | Status of the cluster | |
masterStatus | string | 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 | |
workerStatus | string | 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 | |
ipv6 | boolean | Set to true if ipv6 is enabled | |
kubeRoleVersion | string | Pf9-kube role version to be used when bringing up the cluster. | |
canMinorUpgrade | integer | Set to 1 if minor upgrade is possible, 0 otheriwse. | |
minorUpgradeRoleVersion | string | Role version of minor upgrade. | |
canPatchUpgrade | integer | Set to 1 if patch upgrade is possible, 0 otherwise. | |
patchUpgradeRoleVersion | string | Role version of patch upgrade. | |
upgradingTo | string | Set to the version the cluster is upgrading to, otherwise null. | |
flannelIfaceLabel | string | The interface used by flannel for interhost communication | |
flannelPublicIfaceLabel | string | The IP address used as the flannel public IP for the nodes in the cluster | |
dockerRoot | string | Root directory for docker | |
etcdDataDir | string | Data directory for etcd. The field is applicable to master nodes only | |
lastOp | string | The last operation such as node attach or node detach that was performed on the cluster | |
lastOk | string | The timestamp when the cluster last reported an OK status | |
keystoneEnabled | integer | Field is set to 1 if keystone is enabled, 0 otherwise | |
authzEnabled | integer | Field is set to 1 if authz is enabled, 0 otherwise | |
taskStatus | string | Status of the last task that run on the cluster. | |
taskError | string | Error details if the last task on cluster did not succeed | |
kubeProxyMode | string | The mode which kube-proxy is running in | |
numMasters | integer | Number of master nodes in the cluster | |
numWorkers | integer | Number of worker nodes in the cluster | |
enableCAS | boolean | If value is 1,cluster autoscaling is enabled (only for AWS clusters). | |
numMinWorkers | integer | This parameter is required if enableCAS is set to true. This is the minimum number of worker nodes in ASG | |
numMaxWorkers | integer | This parameter is required if enableCAS is set to true. This is the maximum number of worker nodes in ASG | |
etcdHeartbeatIntervalMs | integer | Frequency with which master node will notify workers | |
etcdElectionTimeoutMs | integer | This timeout is how long a worker node will go without hearing a heartbeat,before attempting to become master | |
privileged | integer | Field is set to 1 if cluster runs privileged containers, 0 otherwise | |
apiserverStorageBackend | string | The kube-apiserver storage backend for persistance, etcd3(default) | |
appCatalogEnabled | integer | DEPRECATED. Always disabled now. Field is set to 1 if app catalog is enabled, 0 otherwise | |
projectId | string | UUID of the Keystone project that this cluster is part of | |
runtimeConfig | string | ||
isEtcdBackupEnabled | boolean | Set to true if etcd backup should be enabled, false otherwise | |
intervalInMins | integer | etcd backup interval, specified in minutes | |
intervalInHours | integer | etcd backup interval, specified in Hours | |
dailyBackupTime | string | etcd backup Timestamp for daily backup, specified in format 'HH:MM' | |
maxIntervalBackupCount | integer | max number of Backups retention for interval type backups | |
maxTimestampBackupCount | integer | max number of Backups retention for Timestamp type backups | |
storageType | string | Storage type for the etcd backup. Only 'local' is current supported type. 'local' saves backup to the node's local disk | |
localPath | string | Path on the local filesystem where the etcd backup should be stored. For 'local' storage type only. | |
taskStatus | string | Status indicating whether the backup cron job on the Kubernetes cluster was successfully setup. Can be 'success' or 'error' | |
taskErrorDetail | string | Details of the error occurred of the taskStatus returned is 'error' | |
nodePoolUuid | string | UUID of the node pool used for the cluster | |
nodePoolName | string | Name of the node pool used for the cluster | |
cloudProviderUuid | string | UUID of the cloud provider used to create this cluster | |
cloudProviderName | string | Name of the cloud provider used to create this cluster | |
cloudProviderType | string | Type of the cloud provider used to create this cluster | |
region | string | Cloud provider region in which the cluster was created | |
masterFlavor | string | Node flavor used for master node | |
apiServerFlags | string | List of kube-apiserver flags. (e.g. --request-timeout=2m0s, --kubelet-timeout=20s) | |
controllerManagerFlags | string | List of kube-controller-manager flags. (e.g. --large-cluster-size-threshold=60, --node-monitor-period =5s) | |
monitoring | string | Check whether monitoring is enabled on the cluster | |
workerFlavor | string | Node flavor used for worker node | |
sshKey | string | Public SSH key associated with the cluster nodes | |
serviceFqdn | string | FQDN used to reference cluster services | |
ami | string | AMI ID used to provision cluster nodes | |
domainId | string | Domain used for cluster FQDNs | |
numSpotWorkers | string | Number of spot workers | |
spotWorkerFlavor | string | Node falvor used for spot workers | |
spotPrice | string | Pricing of the spot instances | |
numMaxSpotWorkers | string | Maximum number of spot workers | |
isPrivate | boolean | 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. | |
usePf9Domain | string | Set to true if platform9.net domain is used, false otherwise | |
internalElb | boolean | 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 | |
azs | array[string] | Availability zone(s) the cluster is deployed in | |
httpProxy | string | 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 | |
privateSubnets | array[string] | 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 | |
subnets | array[string] | ||
vpc | string | 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 | |
customAmi | string | The custom ami name which can be specified by a user | |
deployLuigiOperator | integer | Set to 1 if Luigi is deployed otherwise 0 | |
deployKubevirt | integer | Set to 1 if Kubevirt is deployed otherwise 0 | |
canUpgrade | boolean | Field is set to true if the cluster can be upgraded, false otherwise | |
networkPlugin | string | Network backend to use for container networking. Defaults to flannel. Supported choices are flannel, calico, noop, weave | |
allowWorkloadsOnMaster | integer | Field is set to 1 if the master nodes can run non-critical workloads | |
tags | object | User defined key-value pairs represented as a JSON object | |
k8sApiPort | string | Port on which K8S API Server will listen, 443 by default | |
masterless | boolean | Set to true if creating a masterless cluster | |
masterVipIpv4 | string | API server Virtual IP that provides failover if specified for the cluster. Defaults to empty string | |
masterVipIface | string | The interface that VIP attaches to if specified. Defaults to empty string | |
enableMetallb | boolean | 1 if metallb enabled. Defaults to 0 | |
metallbCidr | string | 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 | |
masterVipVrouterId | string | Virtual router id choosen for the cluster. Range: 0-254. Emptry string if masterVipIpv4 not specified | |
calicoV4BlockSize | string | Subnet size per node for the Calico network, in CIDR notation (e.g. 26) | |
calicoIpIpMode | string | IP-IP encapsulation mode for Calico network. Choose: Always, Never, CrossSubnet | |
calicoNatOutgoing | integer | Field is set to 1 if Calico nodes need to NAT north-south egress traffic. | |
calicoIPv4 | string | ipv4 address detection for host e.g. autodetect ipv4 interface | |
calicoIPv4DetectionMethod | string | ipv4 detection method for network interface. e.g. first-found finds first found network interface | |
calicoIPv6 | string | ipv6 address detection for host e.g. autodetect ipv6 interface | |
calicoIPv6DetectionMethod | string | ipv6 detection method for network interface. e.g. first-found finds first found network interface | |
calicoIPv6PoolCidr | string | CIDR for ipv6 pool | |
calicoIPv6PoolBlockSize | string | The CIDR size of allocation blocks used by this pool.(e.g. 116) | |
calicoIPv6PoolNatOutgoing | integer | Field is set to 1 if Calico nodes need to NAT north-south egress traffic. | |
felixIPv6Support | boolean | ipv6 support for Felix | |
calicoNodeCpuLimit | string | Corresponds to the CALICO_NODE_CPU_LIMIT environment variable in Calico. | |
calicoNodeMemoryLimit | string | Corresponds to the CALICO_NODE_MEMORY_LIMIT environment variable in Calico. | |
calicoTyphaCpuLimit | string | Corresponds to the CALICO_TYPHA_CPU_LIMIT environment variable in Calico. | |
calicoTyphaMemoryLimit | string | Corresponds to the CALICO_TYPHA_MEMORY_LIMIT environment variable in Calico. | |
calicoControllerCpuLimit | string | Corresponds to the CALICO_CONTROLLER_CPU_LIMIT environment variable in Calico. | |
calicoControllerMemoryLimit | string | Corresponds to the CALICO_CONTROLLER_MEMORY_LIMIT environment variable in Calico. | |
etcdVersion | string | etcd version | |
mtuSize | string | MTU for container network interfaces. Optional and used for the Calico network backend | |
cpuManagerPolicy | string | options: none, static; default: none | |
topologyManagerPolicy | string | options: none, best-effort, restricted, single-numa-node; default: none | |
reservedCPUs | string | list of CPUs to be reserved for the system. Ex: 1-3,5 | |
dockerPrivateRegistry | string | (optional) URL of private Docker registry to fetch Platform9 images from | |
quayPrivateRegistry | string | (optional) URL of private Quay registry to fetch Platform9 images from | |
gcrPrivateRegistry | string | (optional) URL of private GCR registry to fetch Platform9 images from | |
k8sPrivateRegistry | string | (optional) URL of private K8S registry to fetch Platform9 images from | |
useHostname | boolean | (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. | |
enableProfileAgent | boolean | (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. | |
enableCatapultMonitoring | boolean | (optional) If set to true (default value) platform9 Catapult monitoring will be deployed on the cluster | |
dockerCentosPackageRepoUrl | string | (optional) URL of the centos repo to be used for docker installation, this URL is added as a first mirror optiopn | |
dockerUbuntuPackageRepoUrl | string | (optional) URL of the ubuntu repo to be used for docker installation, this URL is added as a first mirror option | |
containerRuntime | string | (optional) Container runtime for this cluster. Valid values: [docker, containerd] | |
certExpiryHrs | integer | (optional) Number of hours before user certificates in kubeconfig expires, should be greater than 0 if set. Default is 24hrs. | |
addonOperatorImageTag | string | (optional) addon operator image tag for this cluster. |
unauthorized to perform this operation
xxxxxxxxxx
{
"schema": "{}"
}
Update the properties of a cluster specified by the cluster_uuid
X | string |
uuid | string | UUID of the cluster | |
project | string | UUID of the project the cluster belongs to |
object | object | ||
numWorkers | integer | Number of worker nodes in the cluster. For AWS cluster, this parameter is relevant only if cluster autoscaling is disabled | |
numMinWorkers | integer | Minimum number of worker nodes in ASG for AWS cluster. This parameter is relevant only if cluster autoscaling is enabled | |
numMaxWorkers | integer | Maximum number of worker nodes in ASG for AWS cluster. This parameter is relevant only if cluster autoscaling is enabled | |
isEtcdBackupEnabled | boolean | Set to true if etcd backup should be enabled, false otherwise | |
intervalInMins | integer | etcd backup interval, specified in minutes | |
intervalInHours | integer | etcd backup interval, specified in Hours | |
dailyBackupTime | string | etcd backup Timestamp for daily backup, specified in format 'HH:MM' | |
maxIntervalBackupCount | integer | max number of Backups retention for interval type backups | |
maxTimestampBackupCount | integer | max number of Backups retention for Timestamp type backups | |
storageType | string | Storage type for the etcd backup. Only 'local' is current supported type. 'local' saves backup to the node's local disk | |
localPath | string | Path on the local filesystem where the etcd backup should be stored. For 'local' storage type only. | |
tags | object | User defined key-value pairs represented as a JSON object | |
customAmi | string | The custom ami name which can be specified by a user | |
enableProfileAgent | boolean | (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. | |
certExpiryHrs | integer | (optional) Number of hours before user certificates in kubeconfig expires, should be greater than 0 if set. Default is 24hrs. |
xxxxxxxxxx
curl --request PUT \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters/%7Buuid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data '{
"numWorkers": "{integer}",
"numMinWorkers": "{integer}",
"numMaxWorkers": "{integer}",
"etcdBackup": "{}",
"tags": {},
"customAmi": "{string}",
"enableProfileAgent": "{boolean}",
"certExpiryHrs": "{integer}"
}'
OK, if cluster upgrade request was submitted successfully
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Delete a cluster from PMK as specified by the cluster UUID
X | string |
uuid | string | UUID of the cluster | |
project | string | UUID of the project the cluster belongs to |
xxxxxxxxxx
curl --request DELETE \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters/%7Buuid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK, if cluster delete request was submitted successfully
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Get the kubeconfig blob for the specific cluster
X | string |
cluster | string | UUID of the cluster | |
project | string | UUID of the project the cluster belongs to |
force | boolean | If true, generates certificate based kubeconfig. Default is false. |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/kubeconfig/%7Bcluster_uuid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data force_cert_auth={force_cert_auth}
The response is a blob sent with the Content-Type ‘application/octet-stream’
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Generate token to be used by web cli
X | string |
uuid | string | UUID of the cluster | |
project | string | UUID of the project the cluster belongs to |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/webcli/%7Buuid%7D' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
token | string | Web cli token |
Unauthorized to perform this operation
xxxxxxxxxx
{
"schema": "{}"
}
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.
X | string |
uuid | string | UUID of the cluster | |
project | string | UUID of the project the cluster belongs to |
array | array[object] | ||
uuid | string | UUID of the node | |
isMaster | boolean | true if the node should be attached as master, false otherwise. |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters/%7Buuid%7D/attach' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data '[
{
"uuid": "{string}",
"isMaster": "{boolean}"
}
]'
OK, if the node get attached to the cluster
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Detach nodes from a cluster. In a manual deployed cluster, nodes can be removed from a cluster using this API.
X | string |
uuid | string | UUID of the cluster | |
project | string | UUID of the project the cluster belongs to |
array | array[object] | ||
uuid | string | UUID of the node | |
isMaster | boolean | true if the node should be attached as master, false otherwise. |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters/%7Buuid%7D/detach' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data '[
{
"uuid": "{string}",
"isMaster": "{boolean}"
}
]'
OK, if the node get attached to the cluster
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Upgrade a cluster, identified by the uuid
X | string |
uuid | string | UUID of the cluster | |
project | string | UUID of the project the cloud provider account belongs to |
object | object | ||
batchUpgradePercent | number | Number between 1-100 which represents the percent of worker nodes to upgrade in parallel at once during an upgrade | |
containerRuntime | string | (optional) Container runtime for this cluster. Valid values: [docker, containerd] | |
addonOperatorImageTag | string | (optional) addon operator image tag for this cluster. | |
addonVersions | object | ||
coredns | string | coredns version | |
dashboard | string | dashboard version | |
dns | string | dns-autoscaler version | |
kubevirt | string | kubevirt version | |
luigi | string | luigi version | |
metal3 | string | metal3 version | |
metallb | string | metallb version | |
metricsserver | string | metricsserver version | |
monitoring | string | monitoring version | |
profileagent | string | profileagent version | |
cluster | string | cluster-autoscaler-aws version | |
cluster | string | cluster-autoscaler-azure version |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters/%7Buuid%7D/upgrade' \
--header 'X-Auth-Token: {X-Auth-Token}' \
--data '{
"batchUpgradePercent": "{number}",
"containerRuntime": "{string}",
"addonOperatorImageTag": "{string}",
"addonVersions": {
"coredns": "{string}",
"dashboard": "{string}",
"dns-autoscaler": "{string}",
"kubevirt": "{string}",
"luigi": "{string}",
"metal3": "{string}",
"metallb": "{string}",
"metricsserver": "{string}",
"monitoring": "{string}",
"profileagent": "{string}",
"cluster-autoscaler-aws": "{string}",
"cluster-autoscaler-azure": "{string}"
}
}'
OK, if upgrade request is successfully issued
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Restart PMK service on all nodes in a cluster, identified by the uuid
X | string |
uuid | string | UUID of the cluster | |
project | string | UUID of the project the cloud provider account belongs to |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters/%7Buuid%7D/restart' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK, if restart request is successfully issued
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Restart PMK service on all worker nodes in a cluster, identified by the uuid
X | string |
uuid | string | UUID of the cluster | |
project | string | UUID of the project the cloud provider account belongs to |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters/%7Buuid%7D/restartWorkers' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK, if restart request is successfully issued
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Restart PMK service on all master nodes in a cluster, identified by the uuid
X | string |
uuid | string | UUID of the cluster | |
project | string | UUID of the project the cloud provider account belongs to |
xxxxxxxxxx
curl --request POST \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/clusters/%7Buuid%7D/restartMasters' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK, if restart request is successfully issued
No response body |
Unauthorized to perform this operation
xxxxxxxxxx
No response
Get list of nodes on which PMK service is getting restarted
X | string |
project | string | UUID of the project the cloud provider account belongs to |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/currentRollingRestarts' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
array | array | ||
name | string | UUID of the node | |
runState | boolean | True if the node is up |
Unauthorized to perform this operation
xxxxxxxxxx
[
"{array...}"
]
Node Pool
Get details of all node pools
X | string |
project | string | UUID of the project the node pool belongs to |
xxxxxxxxxx
curl --get \
--url 'https://platform9.com/qbert/v3/%7Bproject_uuid%7D/nodePools' \
--header 'X-Auth-Token: {X-Auth-Token}'
OK
array | array | ||
name | string | Name of the node pool | |
uuid | string | UUID of the node pool | |
cloudProviderUuid | string | UUID of the associated cloud provider | |
cloudProviderName | string | Name of the associated cloud provider |
unauthorized to perform this operation
xxxxxxxxxx
[
"{array...}"
]