Categorygithub.com/Fred78290/kubernetes-aws-autoscaler
modulepackage
1.29.0-dev
Repository: https://github.com/fred78290/kubernetes-aws-autoscaler.git
Documentation: pkg.go.dev

# README

Build Status Quality Gate Status Licence

kubernetes-aws-autoscaler

Kubernetes autoscaler for aws

Supported releases

  • 1.26.11
    • This version is supported kubernetes v1.26 and support k3s, rke2, external kubernetes distribution
  • 1.27.9
    • This version is supported kubernetes v1.27 and support k3s, rke2, external kubernetes distribution
  • 1.28.4
    • This version is supported kubernetes v1.28 and support k3s, rke2, external kubernetes distribution
  • 1.29.0
    • This version is supported kubernetes v1.29 and support k3s, rke2, external kubernetes distribution

How it works

This tool will drive AWS to deploy EC2 instance at the demand. The cluster autoscaler deployment use an enhanced version of cluster-autoscaler. https://github.com/Fred78290/autoscaler.

This version use grpc to communicate with the cloud provider hosted outside the pod. A docker image is available here https://hub.docker.com//fred78290/cluster-autoscaler

You can also use the vanilla autoscaler with the externalgrpc cloud provider

A sample of the cluster-autoscaler deployment is available at examples/cluster-autoscaler.yaml. You must fill value between <>

Before you must create a kubernetes cluster on AWS

You can do it from scrash or you can use script from projetct autoscaled-masterkube-aws to create a kubernetes cluster in single control plane or in HA mode with 3 control planes.

Commandline arguments

ParameterDescription
versionPrint the version and exit
saveTell the tool to save state in this file
configThe the tool to use config file

Build

The build process use make file. The simplest way to build is make container

New features

Use k3s, rke2 or external as kubernetes distribution method

Instead using kubeadm as kubernetes distribution method, it is possible to use k3s, rke2 or external

external allow to use custom shell script to join cluster

Samples provided here

Use the vanilla autoscaler with extern gRPC cloud provider

You can also use the vanilla autoscaler with the externalgrpc cloud provider

Samples of the cluster-autoscaler deployment with vanilla autoscaler. You must fill value between <>

Use external kubernetes distribution

When you use a custom method to create your cluster, you must provide a shell script to vmware-autoscaler to join the cluster. The script use a yaml config created by vmware-autscaler at the given path.

config: /etc/default/vmware-autoscaler-config.yaml

provider-id: vsphere://42373f8d-b72d-21c0-4299-a667a18c9fce
max-pods: 110
node-name: vmware-dev-rke2-woker-01
server: 192.168.1.120:9345
token: K1060b887525bbfa7472036caa8a3c36b550fbf05e6f8e3dbdd970739cbd7373537
disable-cloud-controller: false

If you declare to use an external etcd service

datastore-endpoint: https://1.2.3.4:2379
datastore-cafile: /etc/ssl/etcd/ca.pem
datastore-certfile: /etc/ssl/etcd/etcd.pem
datastore-keyfile: /etc/ssl/etcd/etcd-key.pem

You can also provide extras config onto this file

{
  "external": {
    "join-command": "/usr/local/bin/join-cluster.sh"
    "config-path": "/etc/default/vmware-autoscaler-config.yaml"
    "extra-config": {
        "mydata": {
          "extra": "ball"
        },
        "...": "..."
    }
  }
}

Your script is responsible to set the correct kubelet flags such as max-pods=110, provider-id=aws:///, cloud-provider=external, ...

Annotations requirements

If you expected to use vmware-autoscaler on already deployed kubernetes cluster, you must add some node annotations to existing node

Also don't forget to create an image usable by vmware-autoscaler to scale up the cluster create-image.sh

AnnotationDescriptionValue
cluster-autoscaler.kubernetes.io/scale-down-disabledAvoid scale down for this nodetrue
cluster.autoscaler.nodegroup/nameNode group nameaws-dev-rke2
cluster.autoscaler.nodegroup/autoprovisionTell if the node is provisionned by vmware-autoscalerfalse
cluster.autoscaler.nodegroup/instance-idThe vm UUID42373f8d-b72d-21c0-4299-a667a18c9fce
cluster.autoscaler.nodegroup/instance-nameThe instance nameaws-dev-rke2-master-01
cluster.autoscaler.nodegroup/managedTell if the node is managed by vmware-autoscaler not autoscaledfalse
cluster.autoscaler.nodegroup/node-indexThe node index, will be set if missing0

Sample master node

    cluster-autoscaler.kubernetes.io/scale-down-disabled: "true"
    cluster.autoscaler.nodegroup/autoprovision: "false"
    cluster.autoscaler.nodegroup/instance-id: 42373f8d-b72d-21c0-4299-a667a18c9fce
    cluster.autoscaler.nodegroup/instance-name: aws-dev-rke2-master-01
    cluster.autoscaler.nodegroup/managed: "false" 
    cluster.autoscaler.nodegroup/name: aws-dev-rke2
    cluster.autoscaler.nodegroup/node-index: "0"

Sample first worker node

    cluster-autoscaler.kubernetes.io/scale-down-disabled: "true"
    cluster.autoscaler.nodegroup/autoprovision: "false"
    cluster.autoscaler.nodegroup/instance-id: 42370879-d4f7-eab0-a1c2-918a97ac6856
    cluster.autoscaler.nodegroup/managed: "false"
    cluster.autoscaler.nodegroup/name: vmware-dev-rke2
    cluster.autoscaler.nodegroup/node-index: "1"

Sample autoscaled worker node

    cluster-autoscaler.kubernetes.io/scale-down-disabled: "false"
    cluster.autoscaler.nodegroup/autoprovision: "true"
    cluster.autoscaler.nodegroup/instance-id: 3d25c629-3f1d-46b3-be9f-b95db2a64859
    cluster.autoscaler.nodegroup/managed: "false"
    cluster.autoscaler.nodegroup/name: vmware-dev-rke2
    cluster.autoscaler.nodegroup/node-index: "2"

Node labels

These labels will be added

LabelDescriptionValue
node-role.kubernetes.io/control-planeTell if the node is control-planetrue
node-role.kubernetes.io/masterTell if the node is mastertrue
node-role.kubernetes.io/workerTell if the node is workertrue

Cloud provider AWS compliant

Version 1.24.6 and 1.25.2 and above are cloud-provider-aws by building provider-id conform to syntax aws://<zone-id>/<instance-id>

CRD controller

This new release include a CRD controller allowing to create kubernetes node without use of aws cli or code. Just by apply a configuration file, you have the ability to create nodes on the fly.

As exemple you can take a look on artifacts/examples/example.yaml on execute the following command to create a new node

kubectl apply -f artifacts/examples/example.yaml

If you want delete the node just delete the CRD with the call

kubectl delete -f artifacts/examples/example.yaml

You have the ability also to create a control plane as instead a worker

kubectl apply -f artifacts/examples/controlplane.yaml

The resource is cluster scope so you don't need a namespace. The name of the resource is not the name of the managed node.

The minimal resource declaration

apiVersion: "nodemanager.aldunelabs.com/v1alpha1"
kind: "ManagedNode"
metadata:
  name: "aws-ca-k8s-managed-01"
spec:
  nodegroup: aws-ca-k8s
  instanceType: t3a.medium
  diskSizeInGB: 10
  eni:
    subnetID: subnet-1234
    securityGroup: sg-5678

The full qualified resource including networks declaration to override the default controller network management and adding some node labels & annotations. If you specify the managed node as controller, you can also allows the controlplane to support deployment as a worker node

apiVersion: "nodemanager.aldunelabs.com/v1alpha1"
kind: "ManagedNode"
metadata:
  name: "aws-ca-k8s-managed-01"
spec:
  nodegroup: aws-ca-k8s
  controlPlane: false
  allowDeployment: false
  instanceType: t3a.medium
  diskSizeInGB: 10
  labels:
  - demo-label.aldunelabs.com=demo
  - sample-label.aldunelabs.com=sample
  annotations:
  - demo-annotation.aldunelabs.com=demo
  - sample-annotation.aldunelabs.com=sample
  eni:
    subnetID: subnet-1234
    securityGroup: sg-5678
    privateAddress: 172.30.64.80
    publicIP: false

It's possible also to specify an existing ENI.

apiVersion: "nodemanager.aldunelabs.com/v1alpha1"
kind: "ManagedNode"
metadata:
  name: "aws-ca-k8s-master-02"
spec:
  nodegroup: aws-ca-k8s
  controlPlane: true
  allowDeployment: false
  instanceType: t3a.medium
  diskSizeInGB: 20
  labels:
  - demo-label.aldunelabs.com=demo
  - sample-label.aldunelabs.com=sample
  annotations:
  - demo-annotation.aldunelabs.com=demo
  - sample-annotation.aldunelabs.com=sample
  eni:
    networkInterfaceID: eni-0875ac4cdac6da498

Sample config

As example of use generated by autoscaled-masterkube-aws scripts autoscaled-masterkube-aws

{
    "distribution": "rke2",
    "use-external-etcd": false,
    "src-etcd-ssl-dir": "/etc/kubernetes/pki/etcd",
    "dst-etcd-ssl-dir": "/etc/kubernetes/pki/etcd",
    "kubernetes-pki-srcdir": "/etc/kubernetes/pki",
    "kubernetes-pki-dstdir": "/etc/kubernetes/pki",
    "network": "unix",
    "listen": "/var/run/cluster-autoscaler/aws.sock",
    "secret": "aws",
    "minNode": 0,
    "maxNode": 9,
    "maxPods": 17,
    "node-name-prefix": "autoscaled",
    "managed-name-prefix": "managed",
    "controlplane-name-prefix": "master",
    "nodePrice": 0,
    "podPrice": 0,
    "image": "focal-k8s-rke2-aws-v1.29.0-containerd-amd64",
    "cloud-provider": "external",
    "optionals": {
        "pricing": false,
        "getAvailableMachineTypes": false,
        "newNodeGroup": false,
        "templateNodeInfo": false,
        "createNodeGroup": false,
        "deleteNodeGroup": false
    },
    "kubeadm": {
        "address": "172.30.73.121:6443",
        "token": "m1vmoc.3ox7sartsgk8f14l",
        "ca": "sha256:70ecc6f82ad1a6938d6fbd4865f4a8d0fb4fcec70cea4140dff3b657b9600c0e",
        "extras-args": [
            "--ignore-preflight-errors=All"
        ]
    },
    "k3s": {
        "address": "172.30.73.121:6443",
        "token": "m1vmoc.3ox7sartsgk8f14l",
        "datastore-endpoint": "https://1.2.3.4:2379",
        "extras-commands": []
    },
    "rke2": {
        "address": "172.30.73.121:6443",
        "token": "m1vmoc.3ox7sartsgk8f14l",
        "datastore-endpoint": "https://1.2.3.4:2379",
        "extras-commands": []
    },
    "external": {
        "address": "172.30.73.121:6443",
        "token": "m1vmoc.3ox7sartsgk8f14l",
        "datastore-endpoint": "https://1.2.3.4:2379",
        "join-command": "/usr/local/bin/join-cluster.sh",
        "config-path": "/etc/default/vmware-autoscaler-config.yaml",
        "extra-config": {
            "...": "..."
        }
    },
    "default-machine": "t3a.medium",
    "machines": {
        "t3a.nano": {
            "price": 0.0051,
            "memsize": 512,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3a.micro": {
            "price": 0.0102,
            "memsize": 1024,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3a.small": {
            "price": 0.0204,
            "memsize": 2048,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3a.medium": {
            "price": 0.0408,
            "memsize": 4096,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3a.large": {
            "price": 0.0816,
            "memsize": 8192,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3a.xlarge": {
            "price": 0.1632,
            "memsize": 16384,
            "vcpus": 4,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3a.2xlarge": {
            "price": 0.3264,
            "memsize": 32768,
            "vcpus": 8,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3.nano": {
            "price": 0.0057,
            "memsize": 512,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3.micro": {
            "price": 0.0114,
            "memsize": 1024,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3.small": {
            "price": 0.0228,
            "memsize": 2048,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3.medium": {
            "price": 0.0456,
            "memsize": 4096,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3.large": {
            "price": 0.0912,
            "memsize": 8192,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3.xlarge": {
            "price": 0.1824,
            "memsize": 16384,
            "vcpus": 4,
            "diskType": "gp2",
            "diskSize": 10
        },
        "t3.2xlarge": {
            "price": 0.3648,
            "memsize": 32768,
            "vcpus": 8,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5.large": {
            "vcpus": 2,
            "memsize": 4096,
            "price": 0.101,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5.xlarge": {
            "vcpus": 4,
            "memsize": 8192,
            "price": 0.202,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5.2xlarge": {
            "vcpus": 8,
            "memsize": 16384,
            "price": 0.404,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5.4xlarge": {
            "vcpus": 16,
            "memsize": 32768,
            "price": 0.808,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5.9xlarge": {
            "vcpus": 36,
            "memsize": 73728,
            "price": 1.818,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5.12xlarge": {
            "vcpus": 48,
            "memsize": 98304,
            "price": 2.424,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5.18xlarge": {
            "vcpus": 72,
            "memsize": 147456,
            "price": 3.636,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5.24xlarge": {
            "vcpus": 96,
            "memsize": 196608,
            "price": 4.848,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5a.large": {
            "vcpus": 2,
            "memsize": 4096,
            "price": 0.091,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5a.xlarge": {
            "vcpus": 4,
            "memsize": 8192,
            "price": 0.182,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5a.2xlarge": {
            "vcpus": 8,
            "memsize": 16384,
            "price": 0.364,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5a.4xlarge": {
            "vcpus": 16,
            "memsize": 32768,
            "price": 0.728,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5a.8xlarge": {
            "vcpus": 32,
            "memsize": 65536,
            "price": 1.456,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5a.12xlarge": {
            "vcpus": 48,
            "memsize": 98304,
            "price": 2.184,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5a.16xlarge": {
            "vcpus": 64,
            "memsize": 131072,
            "price": 2.912,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c5a.24xlarge": {
            "vcpus": 96,
            "memsize": 196608,
            "price": 4.368,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5a.large": {
            "price": 0.096,
            "memsize": 8192,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5a.xlarge": {
            "price": 0.192,
            "memsize": 16384,
            "vcpus": 4,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5a.2xlarge": {
            "price": 0.384,
            "memsize": 32768,
            "vcpus": 8,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5a.4xlarge": {
            "price": 0.768,
            "memsize": 65536,
            "vcpus": 16,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5a.8xlarge": {
            "price": 1.536,
            "memsize": 131072,
            "vcpus": 32,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5a.12xlarge": {
            "price": 2.304,
            "memsize": 196608,
            "vcpus": 48,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5a.16xlarge": {
            "price": 3.072,
            "memsize": 196608,
            "vcpus": 64,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5.large": {
            "price": 0.107,
            "memsize": 8192,
            "vcpus": 2,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5.xlarge": {
            "price": 0.214,
            "memsize": 16384,
            "vcpus": 4,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5.2xlarge": {
            "price": 0.428,
            "memsize": 32768,
            "vcpus": 8,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5.4xlarge": {
            "price": 0.856,
            "memsize": 65536,
            "vcpus": 16,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5.8xlarge": {
            "price": 1.712,
            "memsize": 131072,
            "vcpus": 32,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5.12xlarge": {
            "price": 2.568,
            "memsize": 196608,
            "vcpus": 48,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m5.16xlarge": {
            "price": 3.424,
            "memsize": 196608,
            "vcpus": 64,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r6i.large": {
            "vcpus": 2,
            "memsize": 16384,
            "price": 0.148,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r6i.xlarge": {
            "vcpus": 4,
            "memsize": 32768,
            "price": 0.296,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r6i.2xlarge": {
            "vcpus": 8,
            "memsize": 65536,
            "price": 0.592,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5.large": {
            "vcpus": 2,
            "memsize": 16384,
            "price": 0.148,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5.xlarge": {
            "vcpus": 4,
            "memsize": 32768,
            "price": 0.296,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5.2xlarge": {
            "vcpus": 8,
            "memsize": 65536,
            "price": 0.592,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5.4xlarge": {
            "vcpus": 16,
            "memsize": 131072,
            "price": 1.184,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5.8xlarge": {
            "vcpus": 32,
            "memsize": 262144,
            "price": 2.368,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5.12xlarge": {
            "vcpus": 48,
            "memsize": 393216,
            "price": 3.552,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5.16xlarge": {
            "vcpus": 64,
            "memsize": 524288,
            "price": 4.736,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5.24xlarge": {
            "vcpus": 96,
            "memsize": 786432,
            "price": 7.104,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5a.large": {
            "vcpus": 2,
            "memsize": 16384,
            "price": 0.133,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5a.xlarge": {
            "vcpus": 4,
            "memsize": 32768,
            "price": 0.266,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5a.2xlarge": {
            "vcpus": 8,
            "memsize": 65536,
            "price": 0.532,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5a.4xlarge": {
            "vcpus": 16,
            "memsize": 131072,
            "price": 1.064,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5a.8xlarge": {
            "vcpus": 32,
            "memsize": 262144,
            "price": 2.128,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5a.12xlarge": {
            "vcpus": 48,
            "memsize": 393216,
            "price": 3.192,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5a.16xlarge": {
            "vcpus": 64,
            "memsize": 524288,
            "price": 4.256,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r5a.24xlarge": {
            "vcpus": 96,
            "memsize": 786432,
            "price": 6.384,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r6i.4xlarge": {
            "vcpus": 16,
            "memsize": 131072,
            "price": 1.184,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r6i.8xlarge": {
            "vcpus": 32,
            "memsize": 262144,
            "price": 2.368,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r6i.12xlarge": {
            "vcpus": 48,
            "memsize": 393216,
            "price": 3.552,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r6i.16xlarge": {
            "vcpus": 64,
            "memsize": 524288,
            "price": 4.736,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r6i.24xlarge": {
            "vcpus": 96,
            "memsize": 786432,
            "price": 7.104,
            "diskType": "gp2",
            "diskSize": 10
        },
        "r6i.32xlarge": {
            "vcpus": 128,
            "memsize": 1048576,
            "price": 9.472,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m6i.large": {
            "vcpus": 2,
            "memsize": 8192,
            "price": 0.112,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m6i.xlarge": {
            "vcpus": 4,
            "memsize": 16384,
            "price": 0.224,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m6i.2xlarge": {
            "vcpus": 8,
            "memsize": 32768,
            "price": 0.448,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m6i.4xlarge": {
            "vcpus": 16,
            "memsize": 65536,
            "price": 0.896,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m6i.8xlarge": {
            "vcpus": 32,
            "memsize": 131072,
            "price": 1.792,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m6i.12xlarge": {
            "vcpus": 48,
            "memsize": 196608,
            "price": 2.688,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m6i.16xlarge": {
            "vcpus": 64,
            "memsize": 262144,
            "price": 3.584,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m6i.24xlarge": {
            "vcpus": 96,
            "memsize": 393216,
            "price": 5.376,
            "diskType": "gp2",
            "diskSize": 10
        },
        "m6i.32xlarge": {
            "vcpus": 128,
            "memsize": 524288,
            "price": 7.168,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c6i.large": {
            "vcpus": 2,
            "memsize": 4096,
            "price": 0.101,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c6i.xlarge": {
            "vcpus": 4,
            "memsize": 8192,
            "price": 0.202,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c6i.2xlarge": {
            "vcpus": 8,
            "memsize": 16384,
            "price": 0.404,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c6i.4xlarge": {
            "vcpus": 16,
            "memsize": 32768,
            "price": 0.808,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c6i.8xlarge": {
            "vcpus": 32,
            "memsize": 65536,
            "price": 1.616,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c6i.12xlarge": {
            "vcpus": 48,
            "memsize": 98304,
            "price": 2.424,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c6i.16xlarge": {
            "vcpus": 64,
            "memsize": 131072,
            "price": 3.232,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c6i.24xlarge": {
            "vcpus": 96,
            "memsize": 196608,
            "price": 4.848,
            "diskType": "gp2",
            "diskSize": 10
        },
        "c6i.32xlarge": {
            "vcpus": 128,
            "memsize": 262144,
            "price": 6.464,
            "diskType": "gp2",
            "diskSize": 10
        }
    },
    "sync-folder": {},
    "ssh-infos": {
        "wait-ssh-ready-seconds": 180,
        "user": "ubuntu",
        "ssh-private-key": "/etc/ssh/id_rsa"
    },
    "aws": {
        "aws-ca-k8s": {
            "accessKey": "12345678",
            "secretKey": "12345678",
            "token": "",
            "profile": "acme",
            "region": "eu-west-1",
            "keyName": "aws-k8s-key",
            "ami": "ami-12345678",
            "iam-role-arn": "arn:aws:iam::12345678:instance-profile/kubernetes-worker-profile",
            "timeout": 120,
            "tags": [
                {
                    "key": "CustomTag",
                    "value": "CustomValue"
                }
            ],
            "network": {
                "route53": "Z12345678",
                "privateZoneName": "acme.priv",
                "accessKey": "12345678",
                "secretKey": "12345678",
                "token": "",
                "profile": "acme",
                "region": "eu-west-1",
                "eni": [
                    {
                        "subnets": [
                            "subnet-12345678",
                            "subnet-45789",
                            "subnet-123458933"
                        ],
                        "securityGroup": "sg-123456789",
                        "publicIP": false
                    }
                ]
            }
        }
    }
}

Unmaintened releases

All release before 1.26.11 are not maintened

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author