Skip to main content

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

FieldDescription

apiVersion
string

compute.appvia.io/v2beta2

kind
string

Cluster
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
ClusterSpec
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

status
ClusterStatus
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

ClusterPlan

ClusterPlan is the Schema for the plans API

FieldDescription

apiVersion
string

compute.appvia.io/v2beta2

kind
string

ClusterPlan
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
ClusterPlanSpec
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

status
ClusterPlanStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

clusterNetwork
ClusterNetworkStatus

ClusterNetwork describes the network that will be created from this plan

ClusterPlanValidation

ClusterPlanValidation is the schema for cluster plan validations

FieldDescription

apiVersion
string

compute.appvia.io/v2beta2

kind
string

ClusterPlanValidation
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
ClusterPlanValidationSpec
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

status
ClusterPlanValidationStatus
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

ComputeTemplate

ComputeTemplate is the Schema for the ComputeTemplate API

FieldDescription

apiVersion
string

compute.appvia.io/v2beta2

kind
string

ComputeTemplate
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
ComputeTemplateSpec
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

status
ComputeTemplateStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

Internal Resource Types

AKSClusterStatus

(Appears on: ProviderStatus)

AKSClusterStatus is used to hold any thing related to the AKS clusters

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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)

FieldDescription
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)

FieldDescription
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)

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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)

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

ConditionSuccess

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
windowStart

string

WindowStart is the time we can perform updates and upgrades, represented in 24h format e.g. “15:00”

GKEProviderDetails

(Appears on: WorkloadProviderDetails)

FieldDescription
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

FieldDescription
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

FieldDescription
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

FieldDescription
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)

FieldDescription
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

FieldDescription
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

FieldDescription
aks
AKSNodePoolSpec

AKS defines the cloud specific options for AKS clusters

NodePoolShared

(Appears on: ComputeTemplateSpec, NodePoolSpec)

FieldDescription
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

FieldDescription
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/

FieldDescription
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)

ValueDescription
"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

FieldDescription
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

FieldDescription
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)

ValueDescription
"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

FieldDescription
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

FieldDescription
podSecurityStandard
PodSecurityStandard

PodSecurityStandard indicates we want to use the pod security standard

SpotInstancesOptions

(Appears on: NodePoolShared)

SpotInstancesOptions defines the options for spot instances

FieldDescription
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

FieldDescription
clusterUpdateStatus
ClusterValidationStatus

ClusterUpdateStatus is the status of the cluster update

WorkloadProviderDetails

(Appears on: ClusterSpec)

FieldDescription
gke
GKEProviderDetails