autoscaler/cluster-autoscaler/cloudprovider/ionoscloud
Guy Templeton 3b16d93124
CA - Correct Cloudprovider PR labelling to area/provider/<provider name>
2023-05-29 15:30:46 +01:00
..
ionos-cloud-sdk-go Bump k/k dependencies to v1.25.0 together with go.mod go version. 2022-08-26 13:38:07 +02:00
.gitignore Add Ionos Cloud cloudprovider 2020-11-27 16:56:23 +01:00
OWNERS CA - Correct Cloudprovider PR labelling to area/provider/<provider name> 2023-05-29 15:30:46 +01:00
README.md Update Ionos Cloud README and deploy example 2023-03-02 13:58:16 +01:00
cache.go Update ionos-cloud SDK and refactor 2022-04-28 15:43:45 +02:00
cache_test.go Update ionos-cloud SDK and refactor 2022-04-28 15:43:45 +02:00
client.go Update ionos-cloud SDK and refactor 2022-04-28 15:43:45 +02:00
client_test.go Update ionos-cloud SDK and refactor 2022-04-28 15:43:45 +02:00
example-values.yaml Update Ionos Cloud README and deploy example 2023-03-02 13:58:16 +01:00
ionoscloud_cloud_provider.go Add GetNodeGpuConfig to cloud provider 2023-02-14 14:08:29 +00:00
ionoscloud_cloud_provider_test.go Update ionos-cloud SDK and refactor 2022-04-28 15:43:45 +02:00
ionoscloud_manager.go Update ionos-cloud SDK and refactor 2022-04-28 15:43:45 +02:00
ionoscloud_manager_test.go test: use `T.Setenv` to set env vars in tests 2022-08-18 21:28:18 +08:00
mock_api_client_test.go Update ionos-cloud SDK and refactor 2022-04-28 15:43:45 +02:00
mock_ionos_cloud_manager_test.go Update ionos-cloud SDK and refactor 2022-04-28 15:43:45 +02:00
utils.go Update ionos-cloud SDK and refactor 2022-04-28 15:43:45 +02:00
utils_test.go Update ionos-cloud SDK and refactor 2022-04-28 15:43:45 +02:00

README.md

Cluster Autoscaler on Ionos Cloud Managed Kubernetes

The cluster autoscaler for the Ionos Cloud scales worker nodes within Managed Kubernetes cluster node pools. It can be deployed as Deployment in your cluster.

Deployment

Managed

Managed autoscaling can be enabled or disabled via Kubernetes Manager in the DCD or API. In this case a Deployment is not needed, since it will be deployed in the managed Kubernetes controlplane.

In-cluster

If you don't have a token, generate one:

curl -u '<username>:<password>' https://api.ionos.com/auth/v1/tokens/generate

Store the token in a secret:

kubectl create secret generic cloud-config --from-literal=token=MY_TOKEN

Edit example-values.yaml and deploy using helm:

helm install ionoscloud-cluster-autoscaler autoscaler/cluster-autoscaler -f example-values.yaml

Development

The unit tests use mocks generated by mockery. To update them run:

mockery --inpackage --testonly --case snake --boilerplate-file ../../../hack/boilerplate/boilerplate.generatego.txt --name APIClient
mockery --inpackage --testonly --case snake --boilerplate-file ../../../hack/boilerplate/boilerplate.generatego.txt --name IonosCloudManager

Build an image

Build and push a docker image in the cluster-autoscaler directory:

make build-in-docker BUILD_TAGS=ionoscloud
make make-image BUILD_TAGS=ionoscloud TAG='<tag>' REGISTRY='<registry>'
make push-image BUILD_TAGS=ionoscloud TAG='<tag>' REGISTRY='<registry>'

If you're using rootless podman, create a symlink to docker and build the image using:

make make-image BUILD_TAGS=ionoscloud TAG='<tag>' REGISTRY='<registry>' DOCKER_NETWORK=host