autoscaler/cluster-autoscaler/cloudprovider/utho
Manoj 126b76d130
Utho autoscaler (#8398)
* cloudprovider: init Utho cloud provider

* add utho cloud provider logic

* implement tests and mock client for Utho cloud provider functionality

* enhance Utho cloud provider: improve logging, add ReadNodePool method, and restore toProviderID function

* add unit tests for Utho cloud provider node group functionality

* add deployment and secret configuration for Utho cloud provider

* remove outdated Utho Go module versions from go.sum

* add stress-test deployment example, improve error messages, and enhance node group tests

* update utho autoscaler image version to 1.0.0

* refactor: reorder parameters in setupMockListNodePools

* fix: correct license formatting in utho_cloud_provider_test.go and add license header to utils.go

* fix: comment out approvers and reviewers in OWNERS file

* Remove utho-go as dependency

* add comments to clarify structures and services in Utho API

* add comments to Utho SDK

* add comments

* remove unnecessary comments in cloud_instances.go and kubernetes.go

* Revert changes to go.mod

* Revert changes to go.mod

* ensure newline at end of go.mod and go.sum files

---------

Co-authored-by: hmada15 <31375621+hmada15@users.noreply.github.com>
Co-authored-by: m-kased <31375621+m-kased@users.noreply.github.com>
2025-08-11 09:35:08 -07:00
..
examples Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
utho-go Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
OWNERS Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
README.md Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
utho_cloud_provider.go Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
utho_cloud_provider_test.go Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
utho_manager.go Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
utho_manager_test.go Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
utho_mock_test.go Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
utho_node_group.go Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
utho_node_group_test.go Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00
utils.go Utho autoscaler (#8398) 2025-08-11 09:35:08 -07:00

README.md

Cluster Autoscaler for Utho

The cluster autoscaler for Utho scales nodes in a Utho Kubernetes cluster.

Utho Kubernetes Engine

Utho Kubernetes Engine https://utho.com/kubernetes is the managed kubernetes solution provided by Utho.

Utho Kubernetes lets users create Node Pools, i.e. groups of nodes each of the same type.

The size of a Node Pool can be configured at any moment. The user cannot select specific nodes to be deleted when downsizing a Node Pool, rather, Utho Kubernetes will randomly select nodes to be deleted to reach the defined size, even if a node is not healthy or has been manually deleted.

Nodes in a Node Pool are considered disposable: they can be deleted and recreated at any moment, deleting a single node outside of Utho Kubernetes will be recreated by Utho after a small amount of time.

Configuration

It is mandatory to define the cloud configuration file cloud-config. You can see an example of the cloud config file at examples/cluster-autoscaler-secret.yaml, it is an INI file with the following fields:

The (JSON) configuration file of the Utho cloud provider supports the following values:

  • cluster_id: the ID of the Utho Kubernetes cluster.
  • token: the Utho API key literally defined.

Configuring the autoscaler such as if it should be monitoring node pools or what the minimum and maximum values. Should be configured through the Utho API. The autoscaler will pick up any changes and adjust accordingly.

Development

Make sure you are inside the cluster-autoscaler path of the autoscaler repository.

Create the docker image:

make container

tag the generated docker image and push it to a registry.