Creates a new cluster plan
Creates a new cluster plan
Query Parameters
Set to 'All' to perform a server-side dry run of creating this resource
Set an explicit owner for this resource
- application/json
Request Body required
The specification for the cluster plan you are creating
property name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
string
metadata
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
annotations object
Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations
labels object
Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
managedFields undefined[]
ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.
ownerReferences undefined[]
List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
spec
ClusterPlanSpec defines the desired state of Plan
allocation
labels object
policies undefined[]
template required
Template are the key+value pairs describing a cluster configuration
clusterLabels object
ClusterLabels provide a set of labels which will be set on any cluster built from this plan
maintenance
Maintenance provides the details around the maintenance window
networking
Networking provides the details around the cluster networking options
authorizedMasterNetworks undefined[]
AuthorizedMasterNetworks is a collection of authorized networks which is permitted to speak to the cloud kubernetes API, default to all if not provided.
authorizedNetworks undefined[]
AuthorizedNetworks is a collection of authorized networks which is permitted to speak to our authentication proxy
networkRef
NetworkRef is reference to a network where the cluster should reside
nodePools undefined[]
NodePools is a collection of node pools associated to the cluster
autoscaling
Autoscaling indicates the node pool should autoscale
defaultUpdateOptions
DefaultUpdateOptions defines how this nodepool can be upgraded - Used by the cluster controller to generate NodePoolUpdates based on spec changes - Ignored when a NodePoolUpdate is created directly
newReplacementConfig
NewReplacementConfig specifies how to create a new node pool and migrate workloads to it
labels object
Labels is a collection of label placed on to the nodepool
providerDetails
ProviderDetails provides any cloud specific options for this nodepool
aks
AKS defines the cloud specific options for AKS clusters
eks
EKS defines a cloud specific options for EKS clusters
gke
GKE is the provider specification for their clusters
spot
Spot if defines enables nodepool to use spot instances
aks
AKS defines the options for AKS spot instances
eks
EKS provides additional options for EKS
taints undefined[]
Taints defines a collection scheduling taints placed on the nodepool
providerDetails
ProviderDetails defines cloud specific cluster options
aks
AKS defines the cloud specific options for AKS clusters
linuxProfile
LinuxProfile is the configuration for Linux VMs
windowsProfile
WindowsProfile is the configuration for Windows VMs
eks
EKS defines a cloud specific options for EKS clusters
cloudWatchLogging
CloudWatchLogging allows all control plane logging to be enabled
gke
GKE is the provider specification for their clusters
quotaLimits
QuotaLimits provide defaults for quotas and limits which are critical for multi-tenancy
templates undefined[]
Templates provide initial defaults for Quotas and Limits for allocated namespaces used when a cluster is allocated to other workspaces to control ResourceQuotas and LimitRanges These values will result in a one time creation of: - a new cluster workspace QuotaLimit object for "constraints" per workspace (with a namespace claim) - a tenant workspace QuotaLimit object for namespace defaults per workspace Required if a cluster is allocated for any tenant workspaces
constraints
Constraints are for providing management of resource constraints to workloads - Typically only managed by cluster owners to provide hard resource constraints - Used to prevent noisy neigbor issues in a multi-tenanted environment
hardQuota object
QuotaHard are applied as ResourceQuota objects to all namespaces for a tenant of that type There are the maximun resource usage in total for a namespace e.g.: hardQuota: requests.cpu: "1" requests.memory: "1Gi" limit.cpu: "2"
limitRanges undefined[] required
LimitRanges (in the context of constraints) are applied as LimitRanges (using Max) These are the largest values that can be used by a single resource in a namespace They will prevent workloads from using up all resources on a single node
max object
Max usage constraints on this kind by resource name.
maxLimitRequestRatio object
MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
resourceDefaults undefined[]
ResourceDefaults provide defaults for workloads (to prevent initial constraint violations) Not set directly or managed by owners (as only maximum values taken so should not conflict)
default object
Default resource requirement limit value by resource name if resource limit is omitted.
defaultRequest object
DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
security
Security contains security settings for the cluster
podSecurityStandard
PodSecurityStandard indicates we want to use the pod security standard
status
ClusterPlanStatus defines the observed state of Plan
conditions undefined[]
lastReconcile
lastSuccess
obsoleteResources undefined[]
Responses
- 200
- 400
- 401
- 403
- 500
Contains the cluster plan definition
- application/json
- Schema
- Example (from schema)
Schema
property name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
stringproperty name*
string
metadata
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
annotations object
Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations
labels object
Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
managedFields undefined[]
ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.
ownerReferences undefined[]
List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
spec
ClusterPlanSpec defines the desired state of Plan
allocation
labels object
policies undefined[]
template
Template are the key+value pairs describing a cluster configuration
clusterLabels object
ClusterLabels provide a set of labels which will be set on any cluster built from this plan
maintenance
Maintenance provides the details around the maintenance window
networking
Networking provides the details around the cluster networking options
authorizedMasterNetworks undefined[]
AuthorizedMasterNetworks is a collection of authorized networks which is permitted to speak to the cloud kubernetes API, default to all if not provided.
authorizedNetworks undefined[]
AuthorizedNetworks is a collection of authorized networks which is permitted to speak to our authentication proxy
networkRef
NetworkRef is reference to a network where the cluster should reside
nodePools undefined[]
NodePools is a collection of node pools associated to the cluster
autoscaling
Autoscaling indicates the node pool should autoscale
defaultUpdateOptions
DefaultUpdateOptions defines how this nodepool can be upgraded - Used by the cluster controller to generate NodePoolUpdates based on spec changes - Ignored when a NodePoolUpdate is created directly
newReplacementConfig
NewReplacementConfig specifies how to create a new node pool and migrate workloads to it
labels object
Labels is a collection of label placed on to the nodepool
providerDetails
ProviderDetails provides any cloud specific options for this nodepool
aks
AKS defines the cloud specific options for AKS clusters
eks
EKS defines a cloud specific options for EKS clusters
gke
GKE is the provider specification for their clusters
spot
Spot if defines enables nodepool to use spot instances
aks
AKS defines the options for AKS spot instances
eks
EKS provides additional options for EKS
taints undefined[]
Taints defines a collection scheduling taints placed on the nodepool
providerDetails
ProviderDetails defines cloud specific cluster options
aks
AKS defines the cloud specific options for AKS clusters
linuxProfile
LinuxProfile is the configuration for Linux VMs
windowsProfile
WindowsProfile is the configuration for Windows VMs
eks
EKS defines a cloud specific options for EKS clusters
cloudWatchLogging
CloudWatchLogging allows all control plane logging to be enabled
gke
GKE is the provider specification for their clusters
quotaLimits
QuotaLimits provide defaults for quotas and limits which are critical for multi-tenancy
templates undefined[]
Templates provide initial defaults for Quotas and Limits for allocated namespaces used when a cluster is allocated to other workspaces to control ResourceQuotas and LimitRanges These values will result in a one time creation of: - a new cluster workspace QuotaLimit object for "constraints" per workspace (with a namespace claim) - a tenant workspace QuotaLimit object for namespace defaults per workspace Required if a cluster is allocated for any tenant workspaces
constraints
Constraints are for providing management of resource constraints to workloads - Typically only managed by cluster owners to provide hard resource constraints - Used to prevent noisy neigbor issues in a multi-tenanted environment
hardQuota object
QuotaHard are applied as ResourceQuota objects to all namespaces for a tenant of that type There are the maximun resource usage in total for a namespace e.g.: hardQuota: requests.cpu: "1" requests.memory: "1Gi" limit.cpu: "2"
limitRanges undefined[]
LimitRanges (in the context of constraints) are applied as LimitRanges (using Max) These are the largest values that can be used by a single resource in a namespace They will prevent workloads from using up all resources on a single node
max object
Max usage constraints on this kind by resource name.
maxLimitRequestRatio object
MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
resourceDefaults undefined[]
ResourceDefaults provide defaults for workloads (to prevent initial constraint violations) Not set directly or managed by owners (as only maximum values taken so should not conflict)
default object
Default resource requirement limit value by resource name if resource limit is omitted.
defaultRequest object
DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
security
Security contains security settings for the cluster
podSecurityStandard
PodSecurityStandard indicates we want to use the pod security standard
status
ClusterPlanStatus defines the observed state of Plan
conditions undefined[]
lastReconcile
lastSuccess
obsoleteResources undefined[]
{
"apiVersion": "string",
"kind": "string",
"metadata": {
"annotations": {},
"clusterName": "string",
"creationTimestamp": "string",
"deletionGracePeriodSeconds": 0,
"deletionTimestamp": "string",
"finalizers": [
"string"
],
"generateName": "string",
"generation": 0,
"labels": {},
"managedFields": [
{
"apiVersion": "string",
"fieldsType": "string",
"fieldsV1": "string",
"manager": "string",
"operation": "string",
"subresource": "string",
"time": "string"
}
],
"name": "string",
"namespace": "string",
"ownerReferences": [
{
"apiVersion": "string",
"blockOwnerDeletion": true,
"controller": true,
"kind": "string",
"name": "string",
"uid": "string"
}
],
"resourceVersion": "string",
"selfLink": "string",
"uid": "string"
},
"spec": {
"allocation": {
"type": "string",
"workspaces": [
"string"
]
},
"labels": {},
"policies": [
{
"editable": true,
"enum": [
"string"
],
"max": 0,
"min": 0,
"path": "string",
"pattern": "string",
"summary": "string"
}
],
"summary": "string",
"template": {
"channel": "string",
"clusterLabels": {},
"description": "string",
"enableAutoUpgrade": true,
"enablePrivateCluster": true,
"expires": "string",
"maintenance": {
"windowDuration": "string",
"windowStart": "string"
},
"networking": {
"authorizedMasterNetworks": [
{
"cidr": "string",
"name": "string"
}
],
"authorizedNetworks": [
{
"cidr": "string",
"name": "string"
}
],
"networkPlan": "string",
"networkProvider": "string",
"networkRef": {
"group": "string",
"kind": "string",
"name": "string",
"namespace": "string",
"version": "string"
}
},
"nodePools": [
{
"autoscaling": {
"enabled": true,
"maxSize": 0,
"minSize": 0
},
"channel": "string",
"cloudResourceName": "string",
"defaultUpdateOptions": {
"cloudUpdateStrategy": "string",
"newReplacementConfig": {
"nodeDrainTimeOut": "string"
},
"replacementStrategy": "string"
},
"description": "string",
"diskSize": 0,
"expires": "string",
"image": "string",
"labels": {},
"logicalName": "string",
"machine": "string",
"maxPodsPerNode": 0,
"providerDetails": {
"aks": {
"mode": "string"
},
"eks": {
"ami": "string",
"eC2SSHKey": "string",
"sshSourceSecurityGroups": [
"string"
],
"userData": "string"
},
"gke": {
"enableAutorepair": true,
"enableAutoupgrade": true
},
"type": "string"
},
"size": 0,
"spot": {
"aks": {
"maxSpotPrice": "string"
},
"eks": {
"additionalInstanceTypes": [
"string"
]
},
"enabled": true
},
"taints": [
{
"effect": "string",
"key": "string",
"value": "string"
}
],
"version": "string",
"zones": [
"string"
]
}
],
"provider": "string",
"providerDetails": {
"aks": {
"infraResourceGroupOverride": "string",
"linuxProfile": {
"adminUsername": "string",
"sshPublicKeys": [
"string"
]
},
"resourceGroupOverride": "string",
"skuTier": "string",
"windowsProfile": {
"adminPassword": "string",
"adminUsername": "string"
}
},
"eks": {
"adminARNs": [
"string"
],
"cloudWatchLogging": {
"api": true,
"audit": true,
"authenticator": true,
"controllerManager": true,
"scheduler": true
},
"enableEndpointPrivate": true,
"securityGroupIDs": [
"string"
]
},
"gke": {
"enableHTTPLoadBalancer": true,
"enableHorizontalPodAutoscaler": true,
"enableShieldedNodes": true,
"enableStackDriverLogging": true,
"enableStackDriverMetrics": true,
"masterIPV4Cidr": "string"
},
"type": "string"
},
"quotaLimits": {
"default": "string",
"templates": [
{
"constraints": {
"hardQuota": {},
"limitRanges": [
{
"max": {},
"maxLimitRequestRatio": {},
"type": "string"
}
]
},
"name": "string",
"resourceDefaults": [
{
"default": {},
"defaultRequest": {},
"type": "string"
}
]
}
]
},
"region": "string",
"security": {
"podSecurityStandard": {
"allowed": [
"string"
],
"defaultProfile": "string",
"enabled": true
}
},
"version": "string"
}
},
"status": {
"cloudResourcesCreated": true,
"conditions": [
{
"detail": "string",
"lastTransitionTime": "string",
"message": "string",
"name": "string",
"negativePolarity": true,
"observedGeneration": 0,
"reason": "string",
"status": "string",
"type": "string"
}
],
"detail": "string",
"lastReconcile": {
"generation": 0,
"time": "string"
},
"lastSuccess": {
"generation": 0,
"time": "string"
},
"message": "string",
"obsoleteResources": [
{
"kind": "string",
"name": "string"
}
],
"status": "string",
"wayfinderVersion": "string"
}
}
Validation error of supplied parameters/body
- application/json
- Schema
- Example (from schema)
Schema
fieldErrors undefined[]
{
"code": 0,
"fieldErrors": [
{
"errCode": "string",
"field": "string",
"message": "string"
}
],
"message": "string"
}
If not authenticated
If authenticated but not authorized
A generic API error containing the cause of the error
- application/json
- Schema
- Example (from schema)
Schema
{
"code": 0,
"detail": "string",
"message": "string",
"uri": "string",
"verb": "string"
}