Generate Cluster Deployment Spec
API to generate cluster deployment spec
Request
URI
POST
https://{api_host}/telco/api/caas/v2/templates/{templateName}/cluster/resolve
COPY
Path Parameters
string
templateName
Required
Cluster template name for which deploy spec to be generated
Request Body
Overrides for cluster template. Cluster deploy spec is generated by merging the cluster template and overrides
clusterOverrides of type(s) application/json
Required
{
"spec": {}
}
object
metadata
Optional
cluster metadata
Responses
200
Returns cluster deployment spec
Returns cluster of type(s) application/json
{
"lastUpdated": "lastUpdated",
"metadata": {
"createdByIntent": "createdByIntent",
"modifiedByIntent": "modifiedByIntent",
"tcaCpId": "tcaCpId",
"resourceVersion": 0.8008281904610115,
"name": "name",
"mgmtClusterName": "mgmtClusterName",
"annotations": {
"templateName": "templateName"
}
},
"creationUser": "creationUser",
"intentQueued": true,
"creationDate": "creationDate",
"spec": {
"clusterConfigSpec": {
"autoscaler": {
"scaleDownDelayAfterFailure": "scaleDownDelayAfterFailure",
"maxNodesTotal": 0,
"scaleDownDelayAfterAdd": "scaleDownDelayAfterAdd",
"scaleDownDelayAfterDelete": "scaleDownDelayAfterDelete",
"maxNodeProvisionTime": "maxNodeProvisionTime",
"enable": true,
"minSize0": 1,
"scaleDownUnneededTime": "scaleDownUnneededTime",
"maxSize0": 6
},
"airgapSpec": {
"caCert": "caCert",
"fqdn": "fqdn",
"type": "extension",
"extensionId": "extensionId"
},
"proxySpec": {
"caCert": "caCert",
"httpProxy": "httpProxy",
"httpsProxy": "httpsProxy",
"noProxy": "noProxy",
"type": "extension",
"extensionId": "extensionId"
},
"clusterNetwork": {
"pods": {
"cidrBlocks": [
"cidrBlocks",
"cidrBlocks"
]
},
"apiServerPort": 6,
"services": {
"cidrBlocks": [
"cidrBlocks",
"cidrBlocks"
]
},
"serviceDomain": "serviceDomain"
},
"airgap": {
"caCert": "caCert",
"fqdn": "fqdn"
},
"ipFamilies": "IPv4",
"proxy": {
"caCert": "caCert",
"httpProxy": "httpProxy",
"httpsProxy": "httpsProxy",
"noProxy": "noProxy"
},
"tcaBomReleaseRef": {
"name": "name"
},
"cniType": "cniType",
"controlPlaneEndpoint": {
"host": "host"
},
"cloudProviders": {
"primeRef": {
"vimId": "vimId",
"datacenter": "datacenter"
},
"subRefs": [
{
"vimId": "vimId",
"datacenter": "datacenter"
},
{
"vimId": "vimId",
"datacenter": "datacenter"
}
]
},
"publicKeyRef": {
"uid": "uid",
"apiVersion": "apiVersion",
"kind": "kind",
"resourceVersion": "resourceVersion",
"fieldPath": "fieldPath",
"name": "name",
"namespace": "namespace"
},
"strategy": {
"type": "type",
"rollingUpdate": {
"maxSurge": "",
"maxUnavailable": ""
}
}
},
"controlPlaneSpec": {
"template": "template",
"diskGiB": 1,
"numCPUs": 2,
"datastore": "datastore",
"replicas": 9,
"kubeadmConfigTemplate": {
"clusterConfiguration": {
"controllerManager": {
"extraArgs": {
"key": "extraArgs"
},
"extraVolumes": [
{
"mountPath": "mountPath",
"name": "name",
"readOnly": true,
"pathType": "pathType",
"hostPath": "hostPath"
},
{
"mountPath": "mountPath",
"name": "name",
"readOnly": true,
"pathType": "pathType",
"hostPath": "hostPath"
}
]
},
"kind": "kind",
"dns": {
"imageRepository": "imageRepository",
"imageTag": "imageTag"
},
"certificatesDir": "certificatesDir",
"featureGates": {
"key": true
},
"networking": {
"podSubnet": "podSubnet",
"serviceSubnet": "serviceSubnet",
"dnsDomain": "dnsDomain"
},
"scheduler": {
"extraArgs": {
"key": "extraArgs"
},
"extraVolumes": [
{
"mountPath": "mountPath",
"name": "name",
"readOnly": true,
"pathType": "pathType",
"hostPath": "hostPath"
},
{
"mountPath": "mountPath",
"name": "name",
"readOnly": true,
"pathType": "pathType",
"hostPath": "hostPath"
}
]
},
"apiVersion": "apiVersion",
"controlPlaneEndpoint": "controlPlaneEndpoint",
"clusterName": "clusterName",
"apiServer": {
"extraArgs": {
"key": "extraArgs"
},
"timeoutForControlPlane": "timeoutForControlPlane",
"certSANs": [
"certSANs",
"certSANs"
],
"extraVolumes": [
{
"mountPath": "mountPath",
"name": "name",
"readOnly": true,
"pathType": "pathType",
"hostPath": "hostPath"
},
{
"mountPath": "mountPath",
"name": "name",
"readOnly": true,
"pathType": "pathType",
"hostPath": "hostPath"
}
]
},
"imageRepository": "imageRepository",
"etcd": {
"external": {
"caFile": "caFile",
"endpoints": [
"endpoints",
"endpoints"
],
"keyFile": "keyFile",
"certFile": "certFile"
},
"local": {
"peerCertSANs": [
"peerCertSANs",
"peerCertSANs"
],
"extraArgs": {
"key": "extraArgs"
},
"dataDir": "dataDir",
"serverCertSANs": [
"serverCertSANs",
"serverCertSANs"
],
"imageRepository": "imageRepository",
"imageTag": "imageTag"
}
},
"kubernetesVersion": "kubernetesVersion"
}
},
"cloudMachineTemplate": {
"type": "type",
"vSphereMachine": {
"template": "template",
"cloneMode": "fullClone",
"numCoresPerSocket": 5,
"folder": "folder",
"datastore": "datastore",
"datacenter": "datacenter",
"storagePolicyName": "storagePolicyName",
"resourcePool": "resourcePool"
}
},
"datacenter": "datacenter",
"storagePolicyName": "storagePolicyName",
"memoryMiB": 5,
"labels": {
"key": "labels"
},
"network": {
"devices": [
{
"dhcp4": true,
"nameservers": [
"nameservers",
"nameservers"
],
"dhcp6": true,
"networkName": "networkName",
"gateway6": "gateway6",
"gateway4": "gateway4",
"mtu": 5
},
{
"dhcp4": true,
"nameservers": [
"nameservers",
"nameservers"
],
"dhcp6": true,
"networkName": "networkName",
"gateway6": "gateway6",
"gateway4": "gateway4",
"mtu": 5
}
]
},
"cloneMode": "fullClone",
"numCoresPerSocket": 7,
"folder": "folder",
"tcaBomReleaseRef": {
"name": "name"
},
"controlPlaneName": "controlPlaneName",
"clusterName": "clusterName",
"cloudProvider": {
"vimId": "vimId"
},
"strategy": {
"type": "type",
"rollingUpdate": {
"maxSurge": "",
"maxUnavailable": ""
}
},
"resourcePool": "resourcePool"
},
"nfOrchestrationTcaCPId": "nfOrchestrationTcaCPId"
},
"status": {
"deleteAccepted": true,
"vimId": "vimId",
"stats": {
"nodepools": {
"total": 4,
"ready": 2,
"lastTransitionTime": "lastTransitionTime"
},
"addons": {
"total": 4,
"ready": 2,
"lastTransitionTime": "lastTransitionTime"
}
},
"clusterUrl": "clusterUrl",
"resourceVersion": 3.616076749251911,
"opstatus": "processing",
"conditions": [
{
"severity": "Warning",
"reason": "reason",
"lastTransitionTime": "lastTransitionTime",
"type": "Ready",
"message": "message",
"status": true
},
{
"severity": "Warning",
"reason": "reason",
"lastTransitionTime": "lastTransitionTime",
"type": "Ready",
"message": "message",
"status": true
}
],
"kubernetesVersion": "kubernetesVersion"
}
}
string
lastUpdated
Optional
lastUpdated
string
creationDate
Optional
creationDate
string
creationUser
Optional
creationUser
boolean
intentQueued
Optional
intentQueued
400
Bad Request
Returns errorResponse of type(s) application/json
{
"errors": [
{
"code": "string",
"message": "string"
}
]
}
401
Unauthorized
Operation doesn't return any data structure
403
Forbidden
Operation doesn't return any data structure
404
Resource request is not found
Returns errorResponse of type(s) application/json
{
"errors": [
{
"code": "string",
"message": "string"
}
]
}
500
Internal Server Error
Returns errorResponse of type(s) application/json
{
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Cluster V2 templates Operations
POST
Create Cluster Template
DELETE
Delete Cluster Template
GET
Download Cluster Template
POST
Generate Addons Deployment Spec
POST
Generate Cluster Deployment Spec
POST
Generate Node Pools Deployment Spec
GET
Get All Cluster Templates
GET
Get Cluster Template
POST
Transform Cluster Template
PUT
Update Cluster Template
POST
Upload Cluster Template