compute.appvia.io/v2beta1
Package v2beta1 contains API Schema definitions for the compute v2beta1 API group
Exported Resource Types
- Cluster
- ClusterPlan
- ContainerRegistry
- GlobalContainerRegistry
- KubernetesUpdate
- NamespaceClaim
- NodePool
- NodePoolUpdate
- QuotaLimit
Cluster
Cluster is the schema for cluster definitions in Wayfinder
Field | Description | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta1 | ||||||||||||||||||||||||||||||||||
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/v2beta1 | ||||||||
kind | ClusterPlan | ||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||
spec ClusterPlanSpec |
| ||||||||
status ClusterPlanStatus |
|
ContainerRegistry
ContainerRegistry is the container registry type
Field | Description | ||||||
---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta1 | ||||||
kind | ContainerRegistry | ||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||
spec ContainerRegistrySpec |
| ||||||
status ContainerRegistryStatus |
|
GlobalContainerRegistry
GlobalContainerRegistry is the global container registry type
Field | Description | ||||||
---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta1 | ||||||
kind | GlobalContainerRegistry | ||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||
spec ContainerRegistrySpec |
| ||||||
status ContainerRegistryStatus |
|
KubernetesUpdate
KubernetesUpdate is the schema for Kubernetes version updates to clusters
Field | Description | ||||||
---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta1 | ||||||
kind | KubernetesUpdate | ||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||
spec KubernetesUpdateSpec |
| ||||||
status KubernetesUpdateStatus |
|
NamespaceClaim
NamespaceClaim is the Schema for the namespaceclaims API
Field | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta1 | ||||||||||
kind | NamespaceClaim | ||||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||||
spec NamespaceClaimSpec |
| ||||||||||
status NamespaceClaimStatus |
|
NodePool
Nodepool is the schema for cluster nodepool definitions in Wayfinder
Field | Description | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta1 | ||||||||||||||||||||||||||||||||||
kind | NodePool | ||||||||||||||||||||||||||||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||||||||||||||||||||||||||||
spec NodePoolSpec |
| ||||||||||||||||||||||||||||||||||
status NodePoolStatus |
|
NodePoolUpdate
NodePoolUpdate is the schema for cluster nodepool replacement definitions in Wayfinder
Field | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta1 | ||||||||
kind | NodePoolUpdate | ||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||
spec NodePoolUpdateSpec |
| ||||||||
status NodePoolUpdateStatus |
|
QuotaLimit
QuotaLimit is the schema for QuotaLimit
Field | Description | ||||||
---|---|---|---|---|---|---|---|
apiVersion | compute.appvia.io/v2beta1 | ||||||
kind | QuotaLimit | ||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||
spec QuotaLimitSpec |
| ||||||
status QuotaLimitStatus |
|
Internal Resource Types
- AKSClusterStatus
- AKSNodePoolSpec
- AKSNodePoolSpotInstances
- AKSSpec
- Authentication
- AuthorizedNetwork
- AutoScalingOptions
- CloudWatchLogging
- ClusterMetric
- ClusterNetworkStatus
- ClusterPlanSpec
- ClusterPlanStatus
- ClusterProviderDetails
- ClusterQuotaLimits
- ClusterShared
- ClusterSpec
- ClusterStatus
- ClusterTemplate
- Constraints
- ContainerRegistryProviderDetails
- ContainerRegistrySpec
- ContainerRegistryStatus
- ContainerRegistryTarget
- ContainerRegistryType
- DeployedResourceHash
- EKSClusterStatus
- EKSEncryption
- EKSEncryptionStatus
- EKSNodePoolSpec
- EKSNodePoolSpotInstances
- EKSSpec
- GKESpec
- GlobalOrScopedContainerRegistry
- KubernetesUpdateSpec
- KubernetesUpdateStatus
- LimitRangeConstraint
- LimitRangeDefault
- LinuxProfile
- MaintenanceWindow
- Metrics
- NamespaceClaimSpec
- NamespaceClaimStatus
- NetworkRange
- Networking
- NodePoolCloudUpdateStrategy
- NodePoolProviderDetails
- NodePoolReplacementStrategy
- NodePoolSpec
- NodePoolStatus
- NodePoolUpdateNewReplacementConfig
- NodePoolUpdateOptions
- NodePoolUpdateSpec
- NodePoolUpdateStatus
- NodeStatus
- NodeTaint
- OriginalNodePoolStatus
- OutboundType
- PackageValue
- PodSecurityStandard
- ProviderStatus
- ProviderType
- ProvisioningState
- QuotaLimitSpec
- QuotaLimitStatus
- QuotaLimitTemplate
- Security
- SpotInstancesOptions
- UnmanagedContainerRegistryParameters
- UnmanagedNodePoolSpec
- UnmanagedSpec
- WindowsProfile
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 |
---|---|
linuxProfile LinuxProfile | LinuxProfile is the configuration for Linux VMs |
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 treated as “Standard” as per https://learn.microsoft.com/en-us/azure/aks/free-standard-pricing-tiers. In this API version, the default if no value supplied is “Free”. In the next API version this will be a required field, so you are encouraged to set it now. |
windowsProfile WindowsProfile | WindowsProfile is the configuration for Windows VMs |
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 See v2beta2 for more information |
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. |
Authentication
Authentication provides options to the authentication module
Field | Description |
---|---|
disableInline bool | DisableInline indicates if we disable inline authorization |
AuthorizedNetwork
(Appears on: Networking)
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: NodePoolSpec, OriginalNodePoolStatus)
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 |
ClusterPlanSpec
(Appears on: ClusterPlan)
ClusterPlanSpec defines the desired state of Plan
Field | Description |
---|---|
PlanSpec PlanSpec | (Members of PlanSpec are embedded into this type.) |
summary string | Summary provides a short title summary for the cluster plan It should describe a cluster in terms that are meaningful for developers: e.g. a cluster with very large nodes suitable for memory intensive applications |
template ClusterTemplate | Template are the key+value pairs describing a cluster configuration |
packages []PackageRef | This requires the ‘package_templating’ feature flag to be enabled. Packages is the list of packages to deploy on this cluster, in order. 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. |
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 |
ClusterProviderDetails
(Appears on: ClusterShared)
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 |
---|---|
type ProviderType | |
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 |
unmanaged UnmanagedSpec | Unmanaged provides the specification for unmanagement cluster |
ClusterQuotaLimits
(Appears on: ClusterShared)
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 |
ClusterShared
(Appears on: ClusterSpec, ClusterTemplate)
ClusterShared provides the fields that exist on both the ClusterPlan and Cluster spec
Field | Description |
---|---|
channel string | Channel describes the channel a cluster follows. On create, you must populate either channel or version, but not both. |
description string | Description provides a short summary to the use of the cluster |
enableAutoUpgrade bool | EnableAutoUpgrade indicates wayfinder should handle any upgrades for the clusters |
enablePrivateCluster bool | EnablePrivateCluster indicates the cluster should be made private |
expires Kubernetes meta/v1.Duration | Expires provides the duration (TTL) before automatic expiration of the cluster |
maintenance MaintenanceWindow | Maintenance provides the details around the maintenance window |
networking Networking | Networking provides the details around the cluster networking options |
nodePools []NodePoolSpec | NodePools is a collection of node pools associated to the cluster |
provider string | Provider refers to the cluster type (e.g. AKS, GKE, EKS) |
providerDetails ClusterProviderDetails | ProviderDetails defines cloud specific cluster options |
security Security | Security contains security settings for the cluster |
region string | Region is the region you want the cluster to reside |
quotaLimits ClusterQuotaLimits | QuotaLimits provide defaults for quotas and limits which are critical for multi-tenancy |
version string | Version is the kubernetes version to use. On create, you must populate either Channel or Version, but not both. |
ClusterSpec
(Appears on: Cluster)
ClusterSpec defines the desired state of a cluster
Field | Description |
---|---|
allocation ResourceAllocation | Allocation describes which workspaces can use this cluster. |
cloudAccessConfigRef CloudAccessConfigReference | 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 |
plan string | Plan refers to the original plan the cluster was created from |
stage string | Stage is the name of the stage for this cluster |
secretRef Kubernetes core/v1.SecretReference | SecretRef is a reference to an existing secret containing an administrative access token for this cluster. Required only for clusters which are not created by Wayfinder. |
ClusterShared ClusterShared | (Members of ClusterShared are embedded into this type.) |
ClusterStatus
(Appears on: Cluster)
ClusterStatus defines the observed state of a cluster
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
authProxyEndpoint string | AuthProxyEndpoint is the endpoint of the legacy authentication proxy for this cluster. Will only be populated if the legacy authentication proxy is deployed. |
kubeProxyEndpoint string | KubeProxyEndpoint is the endpoint of the kube proxy for this cluster |
authProxyCertificate string | AuthProxyCertificate is the certificate of the auth proxy endpoint |
caCertificate string | CaCertificate is the base64 encoded cluster certificate |
kubeApiEndpoint string | KubeAPIEndpoint is the kubernetes API endpoint url |
clusterNetwork ClusterNetworkStatus | Network contains the network configuration used by this cluster |
providerStatus ProviderStatus | ProviderStatus is provider specific data with types |
version string | Version 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 |
deployedChartsImage string | DeployedChartsImage will be set, once the cluster is in condition HelmReady, to indicate which version of the charts image is deployed and active in this cluster |
deployedAuthProxyImage string | DeployedAuthProxyImage will be set, once the cluster is in condition AuthProxyReady, to indicate which version of the auth proxy image is deployed and active in this cluster |
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 |
ClusterTemplate
(Appears on: ClusterPlanSpec)
Field | Description |
---|---|
ClusterShared ClusterShared | (Members of ClusterShared are embedded into this type.) |
clusterLabels map[string]string | ClusterLabels provide a set of labels which will be set on any cluster built from this plan |
Constraints
(Appears on: NamespaceClaimStatus, QuotaLimitSpec, 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 maximun 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 |
ContainerRegistryProviderDetails
(Appears on: ContainerRegistrySpec)
ContainerRegistryProviderDetails provides parameters that are specific to a particular type of Container Registry
Field | Description |
---|---|
type ContainerRegistryType | |
unmanaged UnmanagedContainerRegistryParameters | (Optional) Unmanaged holds parameters specific to an Unmanaged container registries. |
ContainerRegistrySpec
(Appears on: ContainerRegistry, GlobalContainerRegistry)
ContainerRegistrySpec defines the specification of a container registry
Field | Description |
---|---|
target ContainerRegistryTarget | Target contains targeting information for this registry |
provider string | Provider defines which provider to use to create this registry |
providerDetails ContainerRegistryProviderDetails | ProviderDetails provides additional fields which can be used for provider specific data needed to provision this registry |
ContainerRegistryStatus
(Appears on: ContainerRegistry, GlobalContainerRegistry)
ContainerRegistryStatus defines the status of a container registry
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
RoutingStatus RoutingStatus | (Members of RoutingStatus are embedded into this type.) |
pullSecret Kubernetes core/v1.SecretReference | PullSecret is a reference to the imagePullSecret |
ContainerRegistryTarget
(Appears on: ContainerRegistrySpec)
ContainerRegistryTarget is the targeting specification for this registry
Field | Description |
---|---|
cluster Kubernetes meta/v1.LabelSelector | Cluster specifies the cluster(s) this registry should be made available to |
namespace Kubernetes meta/v1.LabelSelector | Namespace specifies the Namespace(s) this registry should be made available to |
ContainerRegistryType
(string
alias)
(Appears on: ContainerRegistryProviderDetails)
ContainerRegistryType represents the concrete type of a Container Registry to provide
Value | Description |
---|---|
"Unmanaged" | ContainerRegistryTypeUnmanaged is the type for unmanaged registries |
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 |
EKSNodePoolSpec
(Appears on: NodePoolProviderDetails)
EKSNodePoolSpec defines the desired state of EKSCluster
Field | Description |
---|---|
ami string | AMI is a custom image we should use for this nodepool |
eC2SSHKey string | EC2SSHKey is the Amazon EC2 SSH key that provides access for SSH communication with the worker nodes in the managed node group https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html |
sshSourceSecurityGroups []string | SSHSourceSecurityGroups is the security groups that are allowed SSH access (port 22) to the worker nodes |
userData string | UserData for the launch configuration |
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. ALPHA: This feature is under development |
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. |
GlobalOrScopedContainerRegistry
GlobalOrScopedContainterRegistry provides a common interface for global or workspace-scoped Container Regigistries
KubernetesUpdateSpec
(Appears on: KubernetesUpdate)
KubernetesUpdateSpec defines an update to the kubernetes version
Field | Description |
---|---|
UpdateSpec UpdateSpec | (Members of UpdateSpec are embedded into this type.) |
targetKubernetesVersion string | TargetKubernetesVersion is the specific Kubernetes version to use for the new node pool spec - Normally be an increment of the current, existing Kubernetes version - should satisfy the rules of the Kubernetes versioning scheme as per https://kubernetes.io/docs/setup/release/version-skew-policy/ |
KubernetesUpdateStatus
(Appears on: KubernetesUpdate)
KubernetesUpdateStatus defines the observed state of an update
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
startTime Kubernetes meta/v1.Time | StartTime is the time the update was started Is used to estimate the percentage complete time |
estimatedPercentageComplete int | EstimatedPercentageComplete is the estimated percentage complete of the update - Based on the time from StartTime and a test of actual updates |
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: NamespaceClaimSpec, 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. |
LinuxProfile
(Appears on: AKSSpec)
LinuxProfile is the configuration for Linux VMs
Field | Description |
---|---|
adminUsername string | AdminUsername is the admin username for Linux VMs |
sshPublicKeys []string | SSHPublicKeys is a list of public SSH keys to allow to connect to the Linux VMs |
MaintenanceWindow
(Appears on: ClusterShared)
MaintenanceWindow 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” |
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 |
NamespaceClaimSpec
(Appears on: NamespaceClaim)
NamespaceClaimSpec defines the desired state of NamespaceClaim
Field | Description |
---|---|
cluster Ownership | Cluster is the cluster the namespace resides |
name string | Name is the name of the namespace to create |
annotations map[string]string | Annotations is a series of annotations on the namespace |
labels map[string]string | Labels is a series of labels for the namespace |
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) |
NamespaceClaimStatus
(Appears on: NamespaceClaim)
NamespaceClaimStatus defines the observed state of NamespaceClaim
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) Status is the status of the namespace |
appliedConstraints Constraints | AppliedConstraints details any applicable constraints applied to this namespace by the cluster owner |
packageValues []PackageValue | PackageValues are values present in packages that a user may need to construct manifests. |
dnsZones []string | DNSZones are the zones associated with the namespace |
NetworkRange
NetworkRange defines a network block
Field | Description |
---|---|
type string | Type defines the type of network |
cidr string | CIDR defines the network range |
Networking
(Appears on: ClusterShared)
Networking 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. |
networkProvider string | NetworkProvider defines a network cni provider for the cluster |
networkPlan string | NetworkPlan defines the network plan for the cluster If the network plan is not provided, a networkRef must be provided instead Required on cluster plans |
networkRef Ownership | NetworkRef is reference to a network where the cluster should reside |
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. |
NodePoolCloudUpdateStrategy
(string
alias)
(Appears on: NodePoolUpdateOptions)
NodePoolReplacementStrategy is the CloudSupported NodePoolUpdate update in place strategy Only “CloudDefault” is supported now https://appviakore.atlassian.net/browse/WF-2131 will introduce None (e.g. only replacement)
Value | Description |
---|---|
"CloudDefault" | NodePoolCloudUpdateStrategyCloudDefault will defer to the cloud provider mechanism for updating |
"None" | NodePoolCloudUpdateStrategyNone will disable cloud provider updates Only the replacement strategy options are then used |
NodePoolProviderDetails
(Appears on: NodePoolSpec)
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 |
---|---|
type ProviderType | |
aks AKSNodePoolSpec | AKS defines the cloud specific options for AKS clusters |
eks EKSNodePoolSpec | EKS defines a cloud specific options for EKS clusters |
unmanaged UnmanagedNodePoolSpec | Unmanaged provides the specification for unmanaged cluster |
NodePoolReplacementStrategy
(string
alias)
(Appears on: NodePoolUpdateOptions)
NodePoolReplacementStrategy is the update strategy type for a NodePoolUpdate Only “None” is supported now https://appviakore.atlassian.net/browse/WF-2131 will introduce NewReplacement
Value | Description |
---|---|
"NewReplacement" | NodePoolReplacementStrategyNewReplacement will create a new node pool and migrate workloads to it - will drain and delete the old NodePool nodes, one at a time |
"None" | NodePoolReplacementStrategyNone signifies we do not manage replacement NodePools We need to validate fields that are not supported by the cloud provider |
NodePoolSpec
(Appears on: NodePool, ClusterShared, NodePoolUpdateSpec)
NodePool defines a node pool in kubernetes
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 nodepools on the Cluster spec - Will NOT always match the name of the NodePool in cloud - Should be treated as an immutable field |
cloudResourceName string | CloudResourceName is the name of the cloud resource - should not be set by the client - set by the NodePool mutate if empty - set by the NodePoolUpdate controller depending on the update type |
description string | Description provides an optional description to the node pool |
diskSize int64 | DiskSize is the amount of disk space to assign to the nodes in MBs |
autoscaling AutoScalingOptions | Autoscaling indicates the node pool should autoscale |
expires Kubernetes meta/v1.Time | Expires provides a time for automatic expiration of the cluster |
image string | Image is the image we should use on the instances of this pool |
labels map[string]string | Labels is a collection of label placed on to the nodepool |
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 nodepool |
size int64 | Size is initial size if autoscaling defined - or the effective size if no autoscaling is enabled |
spot SpotInstancesOptions | Spot if defines enables nodepool to use spot instances |
taints []NodeTaint | Taints defines a collection scheduling taints placed on the nodepool |
version string | Version is the specified version of kubernetes on the node pool This cannot be set by a client if a channel is also specified Will be set by the NodePoolUpdate controller on actual nodepools if a channel is specified |
zones []string | Zones defines a list of cloud specific availability zones where the nodes are permitted to run |
defaultUpdateOptions NodePoolUpdateOptions | 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 |
NodePoolStatus
(Appears on: NodePool)
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
name string | Name is the name of the node pool |
details string | Details is message from the provider about the node pool |
providerStatus ProvisioningState | ProvisioningState is provisioning state of the nodePool |
nodeCount int | NodeCount is the number of nodes in the node pool |
nodeCountReady int | NodeCountReady is the number of nodes in the node pool which are ready |
NodePoolUpdateNewReplacementConfig
(Appears on: NodePoolUpdateOptions)
NodePoolUpdateNewReplacementConfig are the options for a replacement strategy Not used yet - see https://appviakore.atlassian.net/browse/WF-2131
Field | Description |
---|---|
nodeDrainTimeOut Kubernetes meta/v1.Duration | NodeDrainTimeOut is the delay to wait for a node to drain before force deleting it After this delay and then the node will be force deleted |
NodePoolUpdateOptions
(Appears on: NodePoolSpec, NodePoolUpdateSpec)
NodePoolUpdateOptions are all the options for updating or replacing a NodePool
Field | Description |
---|---|
replacementStrategy NodePoolReplacementStrategy | ReplacementStrategy is how node pools can get replaced when required |
cloudUpdateStrategy NodePoolCloudUpdateStrategy | CloudUpdateStrategy is how the cloud provider can update the node pool (if at all) |
newReplacementConfig NodePoolUpdateNewReplacementConfig | NewReplacementConfig specifies how to create a new node pool and migrate workloads to it |
NodePoolUpdateSpec
(Appears on: NodePoolUpdate)
NodePoolUpdateSpec defines a node pool update or replacement in kubernetes
Field | Description |
---|---|
UpdateSpec UpdateSpec | (Members of UpdateSpec are embedded into this type.) |
newSpec NodePoolSpec | NewSpec is the desired spec of the existing (if updated) or new node pool (if replaced) |
options NodePoolUpdateOptions | Options are the options for the update or replacement strategy |
nodePoolToUpdate string | NodePoolToUpdate is the reference to the NodePool metadata.Name to be updated / replaced |
NodePoolUpdateStatus
(Appears on: NodePoolUpdate)
NodePoolUpdateStatus defines the observed state of NodePoolUpdate
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
originalNodePool OriginalNodePoolStatus | OriginalNodePool is the status of the node pool being updated / replaced |
estimatedPercentageComplete int | EstimatedPercentageComplete is the estimated percentage complete of the node pool update This will vary per provider and update strategy and cluster usage |
NodeStatus
(Appears on: OriginalNodePoolStatus)
NodeStatus is the migration status of a node in a node pool
Field | Description |
---|---|
name string | Name is the name of the node |
drainStartTime Kubernetes meta/v1.Time | DrainStartTime is the time that the node draining was initiated This is used along with the NodeDrainTimeOut to determine if the node should be force deleted |
drained bool | Drained is true if the node has been successfully drained (ready for deletion) |
migrated bool | Migrated is true if the node has been successfully migrated to the new node pool |
kubeletVersion string | KubeletVersion is the K8s version of the node |
machineID string | MachineID is the K8s version of the node |
NodeTaint
(Appears on: NodePoolSpec)
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 provides the key definition for this tainer |
value string | Value is arbitrary value for this taint to compare |
effect string | Effect is desired action on the taint |
OriginalNodePoolStatus
(Appears on: NodePoolUpdateStatus)
OriginalNodePoolStatus is the status of a node pool being updated / replaced
Field | Description |
---|---|
nodes map[string]*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/compute/v2beta1.NodeStatus | Nodes provide the information about the nodes to migrate stored by name |
originalAutoScalingOptions AutoScalingOptions | OriginalAutoScalingOptions are the auto scaling options for the node pool before we started migrating |
autoscalingDisabled bool | AutoscalingDisabled is true if the autoscaling has been disabled |
deleted bool | Deleted indicates if the old node pool has been deleted |
cordoned bool | Cordoned indicates if the NodePool has been cordoned yet |
drainStartTime Kubernetes meta/v1.Time | DrainStartTime is the time the node pool started draining |
migratedNodes int | MigratedNodes is the number of old nodes migrated to the new node pool |
migrated bool | Migrated indicates if the Workloads have been migrated to the new node pool |
size int64 | Size is the size of the old NodePool |
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. |
PackageValue
(Appears on: NamespaceClaimStatus)
PackageValue represents a value in a package release
Field | Description |
---|---|
name string | Name is the name of the value field |
description string | Description is an explanation of value’s significance/usage |
value string | Value is a representation of the value |
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)
(Appears on: ClusterProviderDetails, NodePoolProviderDetails)
ProviderType represents the concrete type of account that a CloudAccount represents
ProvisioningState
(string
alias)
(Appears on: NodePoolStatus)
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 |
QuotaLimitSpec
(Appears on: QuotaLimit)
QuotaLimitSpec provide the default ResourceQuota and LimitRange settings. They can be applied to all namespaces for a workspace Optionally they can relate to specific namespaces only
Field | Description |
---|---|
name string | TemplateName is the immutable name to track the tempate 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 neigbor issues in a multi-tenanted environment |
namespaceClaim Ownership | NamespaceClaim is the reference for a specific namespace claim that resulted in this object |
QuotaLimitStatus
(Appears on: QuotaLimit)
QuotaLimitStatus provides the status of a QuotaLimit object
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) Status is the status of the QuotaLimit |
QuotaLimitTemplate
(Appears on: ClusterQuotaLimits)
QuotaLimitTemplate provides template values on clusters and plans
Field | Description |
---|---|
name string | TemplateName is the immutable name to track the tempate 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 neigbor 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: ClusterShared)
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: NodePoolSpec)
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 |
UnmanagedContainerRegistryParameters
(Appears on: ContainerRegistryProviderDetails)
UnmanagedContainerRegistryParameters
Field | Description |
---|---|
secret Kubernetes core/v1.SecretReference |
UnmanagedNodePoolSpec
(Appears on: NodePoolProviderDetails)
UnmanagedNodePoolSpec defines the spec for an unmanaged nodepool
UnmanagedSpec
(Appears on: ClusterProviderDetails)
UnmanagedSpec defines the spec for unmanaged cluster
WindowsProfile
(Appears on: AKSSpec)
WindowsProfile is the configuration for Windows VMs
Field | Description |
---|---|
adminPassword string | AdminPassword is the admin password for Windows VMs |
adminUsername string | AdminUsername is the admin username for Windows VMs |