OceanAks is the Schema for the OceanAkss API. Provides a Spotinst Ocean resource using AKS.
Type
CRD
Group
oceanaks.spot.upbound.io
Version
v1alpha1
apiVersion: oceanaks.spot.upbound.io/v1alpha1
kind: OceanAks
OceanAksSpec defines the desired state of OceanAks
No description provided.
The Ocean Kubernetes Autoscaler object.
Auto Scaling scale down operations.
Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch.
Automatic headroom configuration.
Optionally set upper and lower bounds on the resource usage of the cluster.
An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.
Filters for the VM sizes that can be launched from the virtual node group.
The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64.
Vm sizes belonging to a series from the list will not be available for scaling
The filtered gpu types will belong to one of the gpu types from this list.
Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series.
The filtered vm types will belong to one of the vm types from this list.
Specify the custom headroom per VNG. Provide a list of headroom objects.
The Ocean AKS Health object.
Custom Linux OS configuration.
System Controls
The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).
An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.
An object used to specify times that the nodes in the cluster will be taken down.
The times that the shutdown hours will apply. Required if isEnabled is true.
A list of scheduling tasks to preform on the cluster at a specific cron time.
The parameters of the scheduling task. Each task type will have properties relevant only to it.
The parameters of the cluster roll scheduling task.
List of virtual node group identifiers to be rolled. Each identifier is a string. vngIds can be null, and cannot be used together with nodeNames and nodePoolNames.
Add taints to a virtual node group. Only custom user taints are allowed, and not Kubernetes well-known taints or Azure AKS ScaleSetPrioirty (Spot VM) taint. For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To schedule a pod to run on Spot node, add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean.
No description provided.
While used, you can control whether the group should perform a deployment after an update to the configuration.
List of node names to be rolled. Each identifier is a string. nodeNames can be null, and cannot be used together with nodePoolNames and vngIds.
List of node pools to be rolled. Each node pool name is a string. nodePoolNames can be null, and cannot be used together with nodeNames and vngIds.
List of virtual node group identifiers to be rolled. Each identifier is a string. vngIds can be null, and cannot be used together with nodeNames and nodePoolNames.
The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).
THIS IS A BETA FIELD. It will be honored unless the Management Policies feature flag is disabled. InitProvider holds the same fields as ForProvider, with the exception of Identifier and other resource reference fields. The fields that are in InitProvider are merged into ForProvider when the resource is created. The same fields are also added to the terraform ignore_changes hook, to avoid updating them after creation. This is useful for fields that are required on creation, but we do not desire to update them after creation, for example because of an external controller is managing them, like an autoscaler.
The Ocean Kubernetes Autoscaler object.
Auto Scaling scale down operations.
Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch.
Automatic headroom configuration.
Optionally set upper and lower bounds on the resource usage of the cluster.
An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.
Filters for the VM sizes that can be launched from the virtual node group.
The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64.
Vm sizes belonging to a series from the list will not be available for scaling
The filtered gpu types will belong to one of the gpu types from this list.
Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series.
The filtered vm types will belong to one of the vm types from this list.
Specify the custom headroom per VNG. Provide a list of headroom objects.
The Ocean AKS Health object.
Custom Linux OS configuration.
System Controls
The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).
An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.
An object used to specify times that the nodes in the cluster will be taken down.
The times that the shutdown hours will apply. Required if isEnabled is true.
A list of scheduling tasks to preform on the cluster at a specific cron time.
The parameters of the scheduling task. Each task type will have properties relevant only to it.
The parameters of the cluster roll scheduling task.
List of virtual node group identifiers to be rolled. Each identifier is a string. vngIds can be null, and cannot be used together with nodeNames and nodePoolNames.
Add taints to a virtual node group. Only custom user taints are allowed, and not Kubernetes well-known taints or Azure AKS ScaleSetPrioirty (Spot VM) taint. For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To schedule a pod to run on Spot node, add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean.
No description provided.
While used, you can control whether the group should perform a deployment after an update to the configuration.
List of node names to be rolled. Each identifier is a string. nodeNames can be null, and cannot be used together with nodePoolNames and vngIds.
List of node pools to be rolled. Each node pool name is a string. nodePoolNames can be null, and cannot be used together with nodeNames and vngIds.
List of virtual node group identifiers to be rolled. Each identifier is a string. vngIds can be null, and cannot be used together with nodeNames and nodePoolNames.
The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).
THIS IS A BETA FIELD. It is on by default but can be opted out through a Crossplane feature flag. ManagementPolicies specify the array of actions Crossplane is allowed to take on the managed and external resources. This field is planned to replace the DeletionPolicy field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. If both are custom, the DeletionPolicy field will be ignored. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md
ProviderConfigReference specifies how the provider that will be used to create, observe, update, and delete this managed resource should be configured.
Policies for referencing.
PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret store config to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.
WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource. This field is planned to be replaced in a future release in favor of PublishConnectionDetailsTo. Currently, both could be set independently and connection details would be published to both without affecting each other.
OceanAksStatus defines the observed state of OceanAks.
No description provided.
The Ocean Kubernetes Autoscaler object.
Auto Scaling scale down operations.
Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch.
Automatic headroom configuration.
Optionally set upper and lower bounds on the resource usage of the cluster.
An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.
Filters for the VM sizes that can be launched from the virtual node group.
The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64.
Vm sizes belonging to a series from the list will not be available for scaling
The filtered gpu types will belong to one of the gpu types from this list.
Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series.
The filtered vm types will belong to one of the vm types from this list.
Specify the custom headroom per VNG. Provide a list of headroom objects.
The Ocean AKS Health object.
Custom Linux OS configuration.
System Controls
The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).
An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.
An object used to specify times that the nodes in the cluster will be taken down.
The times that the shutdown hours will apply. Required if isEnabled is true.
A list of scheduling tasks to preform on the cluster at a specific cron time.
The parameters of the scheduling task. Each task type will have properties relevant only to it.
The parameters of the cluster roll scheduling task.
List of virtual node group identifiers to be rolled. Each identifier is a string. vngIds can be null, and cannot be used together with nodeNames and nodePoolNames.
Add taints to a virtual node group. Only custom user taints are allowed, and not Kubernetes well-known taints or Azure AKS ScaleSetPrioirty (Spot VM) taint. For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To schedule a pod to run on Spot node, add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean.
No description provided.
While used, you can control whether the group should perform a deployment after an update to the configuration.
List of node names to be rolled. Each identifier is a string. nodeNames can be null, and cannot be used together with nodePoolNames and vngIds.
List of node pools to be rolled. Each node pool name is a string. nodePoolNames can be null, and cannot be used together with nodeNames and vngIds.
List of virtual node group identifiers to be rolled. Each identifier is a string. vngIds can be null, and cannot be used together with nodeNames and nodePoolNames.
The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).
Conditions of the resource.
crossplane-test
apiVersion: oceanaks.spot.upbound.io/v1alpha1
kind: OceanAks
metadata:
name: crossplane-test
namespace: crossplane-system
spec:
forProvider:
aksClusterName: aksClusterName
aksInfrastructureResourceGroupName: aksInfrastructureResourceGroupName
aksRegion: eastus
aksResourceGroupName: aksResourceGroupName
autoscaler:
- autoscaleDown:
- maxScaleDownPercentage: 30
autoscaleHeadroom:
- automatic:
- percentage: 20
autoscaleIsEnabled: true
resourceLimits:
- maxMemoryGib: 1500
maxVcpu: 750
availabilityZones:
- "1"
- "2"
controllerClusterId: controllerClusterId
enableNodePublicIp: false
fallbackToOndemand: true
filters:
- architectures:
- X86_64
maxMemoryGib: 18
maxVcpu: 16
minMemoryGib: 10
minVcpu: 2
series:
- D v3
- Dds_v4
- Dsv2
headrooms:
- cpuPerUnit: 1024
gpuPerUnit: 0
memoryPerUnit: 512
numOfUnits: 2
health:
- gracePeriod: 700
labels:
key: env
value: test
maxCount: 100
maxPodsPerNode: 110
minCount: 1
name: ocean-cluster-name
osDiskSizeGb: 128
osDiskType: Managed
osType: Linux
scheduling:
- shutdownHours:
- isEnabled: true
timeWindows:
- Sat:08:00-Sun:08:00
spotPercentage: 100
tags:
tagKey: env
tagValue: staging
taints:
- effect: NoSchedule
key: taintKey
value: taintValue
providerConfigRef:
name: default