compute.appvia.io/v2beta2
Package v2beta2 contains API Schema definitions for the compute v2beta2 API group
Exported Resource Types
Cluster
Cluster is the schema for cluster definitions in Wayfinder
Field | Description | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta2 | ||||||||||||||||||||||||||
kind | Cluster | ||||||||||||||||||||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||||||||||||||||||||
spec ClusterSpec |
| ||||||||||||||||||||||||||
status ClusterStatus |
|
ClusterPlan
ClusterPlan is the Schema for the plans API
Field | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta2 | ||||||||||||
kind | ClusterPlan | ||||||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||||||
spec ClusterPlanSpec |
| ||||||||||||
status ClusterPlanStatus |
|
ClusterPlanValidation
ClusterPlanValidation is the schema for cluster plan validations
Field | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta2 | ||||||||||||||||
kind | ClusterPlanValidation | ||||||||||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||||||||||
spec ClusterPlanValidationSpec |
| ||||||||||||||||
status ClusterPlanValidationStatus |
|
ComputeTemplate
ComputeTemplate is the Schema for the ComputeTemplate API
Field | Description | ||||||
---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta2 | ||||||
kind | ComputeTemplate | ||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||
spec ComputeTemplateSpec |
| ||||||
status ComputeTemplateStatus |
|
Internal Resource Types
- AKSClusterStatus
- AKSNodePoolSpec
- AKSNodePoolSpotInstances
- AKSSpec
- AuthorizedNetwork
- AutoScalingOptions
- CloudWatchLogging
- ClusterMetric
- ClusterNetworkStatus
- ClusterPackageValidationStatus
- ClusterPlanCluster
- ClusterPlanNetwork
- ClusterPlanSpec
- ClusterPlanStatus
- ClusterPlanValidationSpec
- ClusterPlanValidationStatus
- ClusterProviderDetails
- ClusterQuotaLimits
- ClusterSpec
- ClusterStatus
- ClusterUpdateStep
- ClusterValidationStatus
- ClusterValidationStep
- ClusterValidationStepStatus
- ComputeTemplateSpec
- ComputeTemplateStatus
- ConditionSuccess
- Constraints
- DeployedResourceHash
- EKSClusterStatus
- EKSEncryption
- EKSEncryptionStatus
- EKSNodePoolSpotInstances
- EKSSpec
- GKEMaintenanceWindow
- GKEProviderDetails
- GKESpec
- LimitRangeConstraint
- LimitRangeDefault
- Metrics
- NextUpdateVersion
- NodePoolProviderDetails
- NodePoolShared
- NodePoolSpec
- NodeTaint
- OutboundType
- PodSecurityStandard
- ProviderStatus
- ProviderType
- ProvisioningState
- QuotaLimitTemplate
- Security
- SpotInstancesOptions
- ValidationStepStatus
- WorkloadProviderDetails
AKSClusterStatus
(Appears on: ProviderStatus)
AKSClusterStatus is used to hold any thing related to the AKS clusters
Field | Description |
---|---|
resourceGroupName string | ResourceGroupName is the resource group that this cluster is in |
infraResourceGroupName string | InfraResourceGroupName is the resource group that AKS manages |
clusterPrincipalID string | ClusterPrincipalID is the cluster principal in Azure This is required for assigning permission to the AKS cluster in Azure |
AKSNodePoolSpec
(Appears on: NodePoolProviderDetails)
AKSNodePoolSpec represents a node pool within a AKS cluster
Field | Description |
---|---|
mode string | Mode is the type of the node pool. System node pools serve the primary purpose of hosting critical system pods such as CoreDNS and tunnelfront. User node pools serve the primary purpose of hosting your application pods. |
AKSNodePoolSpotInstances
(Appears on: SpotInstancesOptions)
AKSNodePoolSpotInstances are the options for spot instances in Azure
Field | Description |
---|---|
maxSpotPrice string | MaxSpotPrice is the maximum price willing to pay for an spot instance billed in microdollars. The figure is optional and needless to say only relevant when the nodepool is made of spot instances |
AKSSpec
(Appears on: ClusterProviderDetails)
AKSSpec defines the desired state of an AKS cluster
Field | Description |
---|---|
skuTier string | SKUTier is the Uptime SLA that should be used for the AKS cluster. “Free”, “Standard” or “Premium”. The legacy tier “Paid” is also supported and will be converted to “Standard” as per https://learn.microsoft.com/en-us/azure/aks/free-standard-pricing-tiers. |
resourceGroupOverride string | ResourceGroupOverride will specify a resource group when required |
infraResourceGroupOverride string | InfraResourceGroupOverride will specify a resource group to use for nodes useful when we want to reclaim a cluster |
nodeOSUpgradeChannel github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/containerservice/armcontainerservice/v4.NodeOSUpgradeChannel | NodeOSUpgradeChannel is the strategy for node level OS security updates |
outboundType OutboundType | OutboundType defines the outbound connectivity for the cluster. N.B. only the values “loadBalancer” (default) and “userDefinedRouting” are supported |
privatelinkDNSZoneVNetLinks []string | PrivatelinkDNSZoneVNetLinks are full Azure resource IDs of vNets to link the Azure-created privatelink DNS zone to. This is only applicable when spec.enablePrivateCluster is true, and is ONLY required if you have configured custom DNS resolvers in your cluster network plan (spec.providerDetails.azure.dnsResolverIPAddresses). When using custom DNS resolvers this MUST be set to a vNet where those resolvers can resolve the DNS. Without this, the cluster will not build successfully. |
privateEndpointLinkManagement bool | PrivateEndpointLinkManagement will manage private connectivity to the AKS Kubernetes API When enabled will create the following objects centrally for each AKS cluster: 1. A private endpoint in Wayfinder’s AKS subnet, associated with the remote AKS Kubernetes API 2. Any new DNS zones (one per AKS region) as required for resolving remote AKS private links 3. DNS zone records for the remote AKS Kubernetes API This is only applicable when spec.enablePrivateCluster is true and is ONLY possible if you have configured Wayfinder during installation to know: - Management AKS Subnet ID - AKS Virtual Network Location - PrivateLink resource group |
createUserAssignedIdentity bool | CreateUserAssignedIdentity will generate a new MSI for the cluster and grant it Contributor access to the cluster’s resource group. FEATURE STATUS: ALPHA This property is not yet fully tested/supported and may change or be removed. |
AuthorizedNetwork
(Appears on: ClusterPlanNetwork)
AuthorizedNetwork provides a definition for the authorized networks
Field | Description |
---|---|
name string | Name provides a descriptive name for this network |
cidr string | CIDR is the network range associated to this network |
AutoScalingOptions
(Appears on: NodePoolShared)
AutoScalingOptions define the options per cloud provider for autoscaling
Field | Description |
---|---|
enabled bool | Enabled indicates the node pool to use autoscaling |
minSize int64 | MinSize is minimum number of nodes if autoscaling is enabled |
maxSize int64 | MaxSize is the maximum number of nodes if autoscaling is enabled |
CloudWatchLogging
(Appears on: EKSSpec)
CloudWatchLogging defines the control plane logging options
Field | Description |
---|---|
api bool | API will enable logging for the Kubernetes API server |
audit bool | Audit will enable logging for the Kubernetes audit |
authenticator bool | Authenticator will enable logging for the Kubernetes authentication |
controllerManager bool | ControllerManager will enable logging for the Kubernetes controller manager |
scheduler bool | Scheduler will enable logging for the Kubernetes scheduler component |
ClusterMetric
(Appears on: Metrics)
ClusterMetric defines a metric for a cluster
Field | Description |
---|---|
name string | Name is the name of the metric |
cpu string | CPU is the CPU usage |
memory string | Memory is the memory usage |
pods string | Pods is the number of pods |
ClusterNetworkStatus
(Appears on: ClusterPlanStatus)
Field | Description |
---|---|
exampleNetwork ClusterNetworkDetail | ExampleNetwork describes a cluster network that will be created from this plan |
networkCapacity ClusterNetworkCapacities | NetworkCapacity describes the capacity to build a network from this plan |
ClusterPackageValidationStatus
(Appears on: ClusterValidationStatus)
Field | Description |
---|---|
ref PackageRef | Ref is a reference to the package name and version |
status Status | Status is the status of the package release |
message string | Message is the status message for the package release |
errorDetail string | ErrorDetail is the summary for why the package failed When the package failed, should contain enough information to diagnose the issue |
failedConditions []Condition | FailedConditions is a list of failed conditions from the package release |
passedConditions []Condition | PassedConditions is a list of passed conditions from the package release These are required so we can report on the progress of the package release |
ClusterPlanCluster
(Appears on: ClusterPlanSpec)
Field | Description |
---|---|
clusterLabels map[string]string | ClusterLabels provide a set of labels which will be set on any cluster built from this plan |
enableAutoUpgrade bool | EnableAutoUpgrade indicates wayfinder should handle any upgrades for the clusters |
enablePrivateCluster bool | EnablePrivateCluster indicates the cluster should be made private |
packages []PackageRef | Packages is the list of packages to deploy on this cluster Specifying packages via the plan will disable the legacy ‘label targeting’ behaviour for packages on this cluster, so you must specify all packages you wish to be deployed here. |
providerDetails ClusterProviderDetails | ProviderDetails defines cloud specific cluster options |
security Security | Security contains security settings for the cluster |
kubernetesVersion string | KubernetesVersion is the kubernetes version to use. |
ClusterPlanNetwork
(Appears on: ClusterPlanSpec)
ClusterPlanNetwork defines the structure for all the internal network parameters These are not used to create a network, but to configure the cluster
Field | Description |
---|---|
authorizedNetworks []AuthorizedNetwork | AuthorizedNetworks is a collection of authorized networks which is permitted to speak to our authentication proxy |
authorizedMasterNetworks []AuthorizedNetwork | AuthorizedMasterNetworks is a collection of authorized networks which is permitted to speak to the cloud kubernetes API, default to all if not provided. |
networkPlan string | NetworkPlan defines the network plan for the cluster Required on cluster plans |
aksServicesNetwork string | AKSServicesNetwork is the CIDR to use as a service network on an Azure AKS cluster. This is not a routable ‘real’ network on Azure, but the value specified must not overlap with any IP ranges which may be routable in the network in which the cluster is created. It is valid for this range to be the same on multiple AKS clusters. This will become required for AKS clusters in a future release. |
ClusterPlanSpec
(Appears on: ClusterPlan)
ClusterPlanSpec defines the desired state of Plan
Field | Description |
---|---|
description string | Description provides a short title summary for the cluster plan It should describe a cluster in terms that are meaningful for developers: e.g. a public cluster with ingress, dns and PKI certificates |
version ObjectVersion | Version identifies the version of this overall plan. It must be incremented to produce new publishable/consumable versions of the plan definition. Most fields are immutable without incrementing this version. Must be a valid semver in the format X.Y.Z without a ‘v’ prefix. An optional -suffix can be provided; note in semver that 1.0.0 is after 1.0.0-1. |
scope Scope | Scope defines where this plan can be used |
provider string | Provider refers to the cluster type (e.g. AKS, GKE, EKS) |
network ClusterPlanNetwork | Network provides the details around the cluster networking options |
cluster ClusterPlanCluster | Cluster fields are used to build the cluster |
ClusterPlanStatus
(Appears on: ClusterPlan)
ClusterPlanStatus defines the observed state of Plan
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
clusterNetwork ClusterNetworkStatus | ClusterNetwork describes the network that will be created from this plan |
ClusterPlanValidationSpec
(Appears on: ClusterPlanValidation)
ClusterPlanValidationSpec defines the desired state of a ClusterPlanValidation
Field | Description |
---|---|
clusterBuild ClusterSpec | ClusterBuild is the spec of a cluster to build it includes the initial plan to validate as a reference along with the stage and region The spec will be stored on the status of the validation for reference Cannot be set at the same time as ClusterUpdateRef Must be set if ClusterUpdateRef is not set |
workspace WorkspaceKey | Workspace is the workspace in which the cluster will be built Only valid when ClusterBuild is set |
timeout Kubernetes meta/v1.Duration | Timeout is the maximum time to wait for the initial validation of a cluster Applies to both a new cluster build or an existing cluster if specified If not specified will wait up to 1 hour Does not apply to any additional validation steps |
retainCluster string | RetainCluster allows you to control when to retain the cluster after validation If not specified the cluster will be deleted after validation completes (success or failure) |
clusterRef ClusterRef | ClusterRef is a reference to an existing cluster to update The spec will be stored on the status of the validation for reference Cannot be set at the same time as ClusterBuild Must be set if ClusterBuild is not set |
validationSteps []ClusterValidationStep | ValidationSteps provides a list of additional validation steps to perform on the cluster once built successfully |
ClusterPlanValidationStatus
(Appears on: ClusterPlanValidation)
ClusterPlanValidationStatus defines the observed state of the cluster plan validation
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
initialClusterSpec ClusterSpec | InitialClusterSpec is the initial spec of the cluster that was built / updated |
clusterBuildStatus ClusterValidationStatus | ClusterBuildStatus is the status of the cluster build |
clusterBuildRef ClusterRef | ClusterBuildRef is the reference to the cluster if build |
clusterFound bool | ClusterFound is true when carrying out an update only |
validationStepsStatus []ValidationStepStatus | ValidationStepsStatus is a list of steps to validate |
validated bool | Validated is the overall success of the validation This is only true when all steps have passed |
failedValidation bool | FailedValidation is true when the validation failed This is not set for any transient infrastructure errors |
ClusterProviderDetails
(Appears on: ClusterPlanCluster)
ClusterProviderDetails defines the parameters for cloud specific options - i.e options which cannot be consolidated as they are too specific to the chosen cloud vendor
Field | Description |
---|---|
aks AKSSpec | AKS defines the cloud specific options for AKS clusters |
eks EKSSpec | EKS defines a cloud specific options for EKS clusters |
gke GKESpec | GKE is the provider specification for their clusters |
ClusterQuotaLimits
(Appears on: ClusterSpec)
ClusterQuotaLimits defines templates for QuotaLimits for a cluster
Field | Description |
---|---|
templates []QuotaLimitTemplate | 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 |
default string | Default specifies the default template name to use e.g. “Small” A specific template can be specified with labels on NamespaceClaim objects Required if a cluster is allocated for any tenant workspaces |
ClusterSpec
(Appears on: Cluster, ClusterPlanValidationSpec, ClusterPlanValidationStatus)
ClusterSpec defines the desired state of a cluster
Field | Description |
---|---|
description string | Description provides a short summary to the use of the cluster |
multitenancy ScopeWorkspace | Multitenancy allows a cluster to be used by other workspaces. |
cloudAccessConfigRef CloudAccessConfigRef | CloudAccessConfigRef is a reference to the cloud access configuration to use when building the cluster |
cloudResourceName string | CloudResourceName specifies the name of the cluster in the cloud Can be left blank so that the name is derived from the wayfinder workspace and resource name |
provider string | Provider refers to the cluster type (e.g. AKS, GKE, EKS) |
providerDetails WorkloadProviderDetails | ProviderDetails are the workload affecting, provider specific details for the cluster Note that this is NOT the same as the cluster provider settings provided by the cluster plan. |
planRef PlanRef | PlanRef is a reference to the cluster plan values used to provision this cluster. |
clusterNetworkRef ClusterNetworkRef | ClusterNetworkRef is a reference to the network where the cluster should reside Other networking fields are provided indirectly by the cluster plan |
expires Kubernetes meta/v1.Duration | Expires is the duration after which the cluster should automatically be removed. |
nodePools []NodePoolSpec | NodePools is a list of node pools for this cluster |
region string | Region is the region you want the cluster to reside |
stage string | Stage is the name of the stage for this cluster |
quotaLimits ClusterQuotaLimits | QuotaLimits provide defaults for quotas and limits which are important for multi-tenancy |
ClusterStatus
(Appears on: Cluster)
ClusterStatus defines the observed state of a cluster
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
kubeProxyEndpoint string | KubeProxyEndpoint is the endpoint of the kube proxy for this cluster |
caCertificate string | CaCertificate is the base64 encoded cluster certificate |
kubeApiEndpoint string | KubeAPIEndpoint is the kubernetes API endpoint url |
clusterNetwork ClusterNetworkStatus | ClusterNetwork contains the network configuration used by this cluster |
providerStatus ProviderStatus | ProviderStatus is provider specific data with types |
version string | KubernetesVersion is the kubernetes version of the cluster |
dnsZones []string | DNSZones is a list of Wayfinder-managed DNS zones which are currently available in this cluster with ExternalDNS. This will be populated if the DNSReady condition is true. |
expires Kubernetes meta/v1.Time | Expires is the timestamp after which the cluster should automatically be removed. The populated value should be time at which the cluster is created, plus duration defined in Spec.Expires |
deployedResourceHashes []DeployedResourceHash | DeployedResourceHashes is set to a hash of the resources deployed into the cluster so we can re-apply if the resources change but quickly no-op if they have not. |
metrics Metrics | Metrics is a list of metrics for this cluster |
lastReconciledPlanVersion ObjectVersion | LastReconciledPlanVersion is the version of the plan that was last used for reconciliation |
lastSuccessfulPlanVersion ObjectVersion | LastSuccessfulPlanVersion is the version of the plan that was last used for a reconciliation that completed successfully |
ClusterUpdateStep
(Appears on: ClusterValidationStep)
Field | Description |
---|---|
toPlanVersion PlanRef | ToPlanVersion is the plan version to validate against Required when Type is ClusterUpgrade |
updateTimeout Kubernetes meta/v1.Duration | UpdateTimeout is the timeout for the cluster update If not specified will wait up to 30 minutes |
ClusterValidationStatus
(Appears on: ClusterPlanValidationStatus, ClusterValidationStepStatus, ValidationStepStatus)
ClusterValidationStatus defines the status of a cluster validation applicable after a cluster build or update validate step THIS needs to be updated to support different update types
Field | Description |
---|---|
status Status | Status is the status of the validation |
failedClusterConditions []Condition | FailedClusterConditions is a list of failed conditions from the cluster |
passedClusterConditions []Condition | PassedClusterConditions is a list of passed conditions from the cluster Required for reporting on the cluster progress |
packages []ClusterPackageValidationStatus | Packages are the packages that failed this validation step |
planRef PlanRef | PlanRef is the target plan the cluster will be at after this step |
fromPlanRef PlanRef | FromPlanRef is the version of the plan the cluster was updated from Only set for ClusterUpdate steps |
clusterPlanDiff string | ClusterPlanDiff is the computed difference of the cluster plan changes when updating Only set for ClusterUpdate steps |
updateStartTime Kubernetes meta/v1.Time | UpdateStartTime is the time the update started used to calculate if the update has timed out |
ClusterValidationStep
(Appears on: ClusterPlanValidationSpec)
ClusterValidationStep defines a generic validation step for a cluster
Field | Description |
---|---|
type string | Type is the type of validation step |
clusterUpdate ClusterUpdateStep | ClusterUpdate is the step to upgrade a cluster Required when Type is ClusterUpdate (and initially as the only supported type) |
ClusterValidationStepStatus
ClusterValidationStepStatus defines the status of a generic cluster validation step
Field | Description |
---|---|
type string | Type is the type of validation step |
clusterStatus ClusterValidationStatus | ClusterStatus shows the status of this cluster after this validation step was applied |
ComputeTemplateSpec
(Appears on: ComputeTemplate)
ComputeTemplateSpec defines the desired state of a ComputeTemplate
Field | Description |
---|---|
description string | Description provides a short title summary for the compute template It should describe a compute template in terms that are meaningful for developers: e.g. a compute template with very large nodes suitable for memory intensive applications |
provider string | Provider refers to the cluster type (e.g. AKS, GKE, EKS) |
nodePools []NodePoolShared | NodePools is a collection of node pools associated to a cluster |
ComputeTemplateStatus
(Appears on: ComputeTemplate)
ComputeTemplateStatus defines the observed state of ComputeTemplate
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
ConditionSuccess
Field | Description |
---|---|
type ConditionType | Type is the specific identifier for the condition |
name string | Name is the human readable name for the condition |
reason string | Reason is the reason for the condition being met (or NA) |
Constraints
(Appears on: QuotaLimitTemplate)
Constraints controlling a namespace by an owner
Field | Description |
---|---|
hardQuota ResourceList | QuotaHard are applied as ResourceQuota objects to all namespaces for a tenant of that type There are the maximum resource usage in total for a namespace e.g.: hardQuota: requests.cpu: “1” requests.memory: “1Gi” limit.cpu: “2” |
limitRanges []LimitRangeConstraint | 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 |
DeployedResourceHash
(Appears on: ClusterStatus)
DeployedResourceHash provides a hash for a deployed resource (e.g. the auth proxy or helm controller) so we can quickly no-op if the hash is unchanged
Field | Description |
---|---|
name string | Name is the name of the resource |
hash string | Hash is the computed hash of the resources last applied |
lastApplied Kubernetes meta/v1.Time | LastApplied is the last time the resource was applied |
errors []string | Errors from pods or events related to failed deployments |
EKSClusterStatus
(Appears on: ProviderStatus)
EKSClusterStatus is used to hold any thing related to the EKS clusters
Field | Description |
---|---|
oidc string | OIDC is the url for the OIDC endpoint |
encryption EKSEncryptionStatus | Encryption shows the status of the EKS secrets encryption for this cluster |
EKSEncryption
(Appears on: EKSSpec)
EKSEncryption defines the configuration of EKS encryption
Field | Description |
---|---|
secretsEncryptionEnabled bool | SecretsEncryptionEnabled will enable EKS secrets encryption. This will generate a new KMS key for the cluster and configure the cluster to use that KMS key for envelope encryption of secrets. |
EKSEncryptionStatus
(Appears on: EKSClusterStatus)
EKSEncryptionStatus defines the status of the encryption
Field | Description |
---|---|
kmsKeyID string | KMSKeyID is the ARN of the KMS key in use for EKS encryption |
kmsKeyAlias string | KMSKeyAlias is the alias of the KMS key in use for EKS encryption |
kmsKeyStatus Status | KMSKeyStatus describes the provisioning state of the KMS key used for EKS encryption |
ready bool | Ready indicates that secrets encryption has been enabled and is healthy |
EKSNodePoolSpotInstances
(Appears on: SpotInstancesOptions)
EKSNodePoolSpotInstances defined the options for EKS spot instances
Field | Description |
---|---|
additionalInstanceTypes []string | AdditionalInstanceTypes provides an additional list of instances to use when spot instances is enabled |
EKSSpec
(Appears on: ClusterProviderDetails)
EKSSpec defines the desired state of EKSCluster
Field | Description |
---|---|
adminARNs []string | AdminARNs is the list of roles or users to be granted access to the EKS K8s API |
cloudWatchLogging CloudWatchLogging | CloudWatchLogging allows all control plane logging to be enabled |
enableEndpointPrivate bool | EnableEndpointPrivate indicates the EKS endpoint should be private and non-public facing |
securityGroupIDs []string | SecurityGroupIds is a list of security group IDs |
encryption EKSEncryption | Encryption controls the encryption configuration of the cluster. |
GKEMaintenanceWindow
(Appears on: GKEProviderDetails)
GKEMaintenanceWindow defines the maintenance window
Field | Description |
---|---|
windowStart string | WindowStart is the time we can perform updates and upgrades, represented in 24h format e.g. “15:00” |
GKEProviderDetails
(Appears on: WorkloadProviderDetails)
Field | Description |
---|---|
maintenance GKEMaintenanceWindow | Maintenance provides the details for when a cluster can be maintained by GKE |
GKESpec
(Appears on: ClusterProviderDetails)
GKESpec defines the additional options for a GKE cluster
Field | Description |
---|---|
enableHorizontalPodAutoscaler bool | The Horizontal Pod Autoscaler changes the shape of your Kubernetes workload by automatically increasing or decreasing the number of Pods in response to the workload’s CPU or memory consumption, or in response to custom metrics reported from within Kubernetes or external metrics from sources outside of your cluster. |
enableHTTPLoadBalancer bool | EnableHTTPLoadBalancer indicates if the cluster should be configured with the GKE ingress controller. When enabled GKE will autodiscover your ingress resources and provision load balancer on your behalf. |
enableShieldedNodes bool | EnableShieldedNodes indicates we should enable the shielded nodes options in GKE. This protects against a variety of attacks by hardening the underlying GKE node against rootkits and bootkits. |
enableStackDriverLogging bool | EnableStackDriverLogging indicates if Stackdriver logging should be enabled for the cluster |
enableStackDriverMetrics bool | EnableStackDriverMetrics indicates if Stackdriver metrics should be enabled for the cluster |
masterIPV4CIDR string | TODO: always derive this off the network when it exists MasterIPV4CIDR is network range used when private networking is enabled. This is the peering subnet used to to GKE master api layer. Note, this must be unique within the network. |
LimitRangeConstraint
(Appears on: Constraints)
LimitRangeConstraint provides constraining Limits to be applied to a managed namespace Managed by tenant
Field | Description |
---|---|
type Kubernetes core/v1.LimitType | Type of resource that this limit applies to. |
max ResourceList | (Optional) Max usage constraints on this kind by resource name. |
maxLimitRequestRatio ResourceList | (Optional) 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. |
LimitRangeDefault
(Appears on: QuotaLimitTemplate)
LimitRangeDefault provides defaults for pod container and volumes Managed by a tenant with understanding of the workloads involved
Field | Description |
---|---|
type Kubernetes core/v1.LimitType | Type of resource that this limit applies to. |
default ResourceList | (Optional) Default resource requirement limit value by resource name if resource limit is omitted. |
defaultRequest ResourceList | (Optional) DefaultRequest is the default resource requirement request value by resource name if resource request is omitted. |
Metrics
(Appears on: ClusterStatus)
Field | Description |
---|---|
lastChecked Kubernetes meta/v1.Time | LastChecked identifies when the metrics of the cluster was last checked. |
metrics []ClusterMetric | Metrics are the metrics of the cluster |
NextUpdateVersion
NextUpdateVersion is the next cluster plan version available to the update cluster endpoint
Field | Description |
---|---|
version string | Version is the version of the next update |
updateAvailable bool |
NodePoolProviderDetails
(Appears on: NodePoolShared)
NodePoolProviderDetails defines the parameters for cloud specific options - i.e options which cannot be consolidated as they are too specific to the chosen cloud vendor
Field | Description |
---|---|
aks AKSNodePoolSpec | AKS defines the cloud specific options for AKS clusters |
NodePoolShared
(Appears on: ComputeTemplateSpec, NodePoolSpec)
Field | Description |
---|---|
logicalName string | LogicalName is the internally unique name of the NodePool (not in cloud) - Should always be consistent with a single name entry in a Cluster or NodePoolUpdate - Has to be unique across all node pools on the Cluster spec - Will NOT always match the name of the NodePool in cloud - Should be treated as an immutable field |
diskSize int64 | DiskSize is the amount of disk space to assign to the nodes in MBs |
autoscaling AutoScalingOptions | Autoscaling indicates the node pool should auto-scale |
image string | Image is the image we should use on the instances of this pool |
labels map[string]string | Labels to be placed onto the node pool nodes to enable workloads to target this node pool selectively |
maxPodsPerNode int64 | MaxPodsPerNode controls how many pods can be scheduled onto each node in this pool |
machine string | Machine is the instance type of the nodes in the pool |
providerDetails NodePoolProviderDetails | ProviderDetails provides any cloud specific options for this node pool |
size int64 | Size is initial size if autoscaling defined - or the effective size if no autoscaling is enabled |
spot SpotInstancesOptions | Spot, if defined, enables the node pool to use spot instances |
taints []NodeTaint | Taints defines a collection scheduling taints placed on the node pool |
zones []string | Zones defines a list of cloud specific availability zones where the nodes are permitted to run |
NodePoolSpec
(Appears on: ClusterSpec)
NodePoolSpec defines a node pool in kubernetes
Field | Description |
---|---|
cloudResourceName string | CloudResourceName is the name of the node pool in the cloud provider. If unpopulated, a sensible default name will be auto-generated for this node pool. |
NodePoolShared NodePoolShared | (Members of NodePoolShared are embedded into this type.) NodePoolShared is the specification of the node pool |
NodeTaint
(Appears on: NodePoolShared)
NodeTaint is the structure of a taint on a nodepool https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
Field | Description |
---|---|
key string | Key is a unique taint identifier |
value string | Value is the value that must be matched for the taint to apply |
effect string | Effect is desired action on the taint |
OutboundType
(string
alias)
(Appears on: AKSSpec)
Value | Description |
---|---|
"loadBalancer" | OutboundTypeLoadBalancer - The load balancer is used for egress through an AKS assigned public IP. This supports Kubernetes services of type ‘loadBalancer’. For more information see outbound type loadbalancer. |
"managedNATGateway" | OutboundTypeManagedNATGateway - The AKS-managed NAT gateway is used for egress. |
"userAssignedNATGateway" | OutboundTypeUserAssignedNATGateway - The user-assigned NAT gateway associated to the cluster subnet is used for egress. This is an advanced scenario and requires proper network configuration. |
"userDefinedRouting" | OutboundTypeUserDefinedRouting - Egress paths must be defined by the user. This is an advanced scenario and requires proper network configuration. For more information see outbound type userDefinedRouting. |
PodSecurityStandard
(Appears on: Security)
PodSecurityStandard defines the Pod Security Standard options
Field | Description |
---|---|
enabled bool | Enabled indicates the addons is enabled |
defaultProfile string | DefaultProfile is the default profile to use for the cluster wayfinder managed namespaces |
allowed []string | AllowedProfiles is a list of profiles that are allowed to be used in the cluster |
ProviderStatus
(Appears on: ClusterStatus)
ProviderStatus is a broken down status per provider for the cluster - i.e. outputs from the clusters which are specific to the clouds
Field | Description |
---|---|
eks EKSClusterStatus | EKS is the provider status for AWS |
aks AKSClusterStatus | AKS is the provider status for Azure |
ProviderType
(string
alias)
ProviderType represents the concrete type of account that a CloudAccount represents
ProvisioningState
(string
alias)
Value | Description |
---|---|
"Provisioning" | ProvisioningStateCreating is the state when the node pool is being created |
"Degraded" | ProvisioningStateDegraded is the state when the node pool is degraded |
"Deleting" | ProvisioningStateDeleting is the state when the node pool is being deleted |
"Failed" | ProvisioningStateFailed is the state when the node pool is failed |
"Succeeded" | ProvisioningStateSucceeded is the state when the node pool is created |
"Unknown" | ProvisioningStateUnknown is the state when the node pool is unknown |
"Updating" | ProvisioningStateUpdating is the state when the node pool is being updated |
QuotaLimitTemplate
(Appears on: ClusterQuotaLimits)
QuotaLimitTemplate provides template values on clusters and plans
Field | Description |
---|---|
name string | Name is the immutable name to track the template that was used Would normally specify a QuotaLimit “size” for a tenant |
constraints 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 neighbor issues in a multi-tenanted environment |
resourceDefaults []LimitRangeDefault | 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) |
Security
(Appears on: ClusterPlanCluster)
Security defines the security options for a cluster
Field | Description |
---|---|
podSecurityStandard PodSecurityStandard | PodSecurityStandard indicates we want to use the pod security standard |
SpotInstancesOptions
(Appears on: NodePoolShared)
SpotInstancesOptions defines the options for spot instances
Field | Description |
---|---|
enabled bool | Enabled indicates the node pool should use spots |
aks AKSNodePoolSpotInstances | AKS defines the options for AKS spot instances |
eks EKSNodePoolSpotInstances | EKS provides additional options for EKS |
ValidationStepStatus
(Appears on: ClusterPlanValidationStatus)
ValidationStepStatus defines the status of a validation step
Field | Description |
---|---|
clusterUpdateStatus ClusterValidationStatus | ClusterUpdateStatus is the status of the cluster update |
WorkloadProviderDetails
(Appears on: ClusterSpec)
Field | Description |
---|---|
gke GKEProviderDetails |