Skip to content

Conversation

manojdhanda
Copy link
Contributor

@manojdhanda manojdhanda commented Aug 2, 2025

What type of PR is this?

/kind feature

What this PR does / why we need it:

This PR adds Utho as a new cloud provider to the Kubernetes Autoscaler. Utho is a cloud platform built in India, offering scalable compute infrastructure with APIs similar to AWS EC2. Integrating Utho into the Autoscaler allows users to dynamically scale their Kubernetes clusters on Utho, just like they do on GCP, AWS, or Azure.

Key highlights:

  • Implements the CloudProvider, NodeGroup, and Instance interfaces specific to Utho.
  • Supports scale up/down based on Utho's APIs for VM lifecycle management.
  • Includes provider registration logic and necessary flags for enabling Utho in autoscaler CLI.
  • Adds basic documentation and sample YAMLs for setup.

This feature will enable the Kubernetes community and Utho's customers to seamlessly auto-scale workloads based on resource utilization, contributing to performance, cost optimization, and high availability.

Special notes for your reviewer:

  • The initial version covers basic scale-up and scale-down functionality.

Does this PR introduce a user-facing change?

Utho Cloud has been added as a supported cloud provider in Kubernetes Cluster Autoscaler.
Users can now configure autoscaling for Kubernetes nodes hosted on Utho Cloud using the standard Autoscaler configuration.

@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/feature Categorizes issue or PR as related to a new feature. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/documentation Categorizes issue or PR as related to documentation. labels Aug 2, 2025
Copy link

linux-foundation-easycla bot commented Aug 2, 2025

CLA Signed

The committers listed above are authorized under a signed CLA.

@k8s-ci-robot k8s-ci-robot added cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. do-not-merge/needs-area labels Aug 2, 2025
@k8s-ci-robot
Copy link
Contributor

Welcome @manojdhanda!

It looks like this is your first PR to kubernetes/autoscaler 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes/autoscaler has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Aug 2, 2025
@k8s-ci-robot
Copy link
Contributor

Hi @manojdhanda. Thanks for your PR.

I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added area/cluster-autoscaler size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. do-not-merge/invalid-owners-file Indicates that a PR should not merge because it has an invalid OWNERS file in it. and removed do-not-merge/needs-area labels Aug 2, 2025
@k8s-triage-robot
Copy link

This PR may require API review.

If so, when the changes are ready, complete the pre-review checklist and request an API review.

Status of requested reviews is tracked in the API Review project.

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Aug 3, 2025
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/invalid-owners-file Indicates that a PR should not merge because it has an invalid OWNERS file in it. label Aug 4, 2025
Copy link
Contributor

@elmiko elmiko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no comment on the utho specific files, but the integration code looks good to me. just a question about the dependency change for the maintainers.

github.com/pkg/errors v0.9.1
github.com/prometheus/client_golang v1.22.0
github.com/spf13/pflag v1.0.6
github.com/stretchr/testify v1.10.0
github.com/uthoplatforms/utho-go v0.2.10
Copy link
Contributor

@elmiko elmiko Aug 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the past we've had concerns about adding more dependencies to the core, instead preferring to advise individual providers to add the dependencies in their directory. i'm not sure if we are still preferring that though, would want to get some input from other maintainers about this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do include providers in a common go module (w/ the exception of some provider-specific test modules), so we do have to manage a go.mod that is inclusive of core + providers.

That said, @elmiko is correct in that we want to prefer minimum impact to core modules as possible. Could we make changers to the provider implementation to reduce the impact to the main go.mod here @manojdhanda?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes this is implemented.

Copy link
Contributor

@elmiko elmiko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the updates @manojdhanda , i tested this out by building it with the utho build tag and then also building the full autoscaler and testing the cluster-api provider. i did not test on an utho platform.

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 5, 2025
@m-kased
Copy link
Contributor

m-kased commented Aug 10, 2025

@elmiko @jackfrancis
Is there anything else we need to change, or are we just waiting for approval?

@jackfrancis
Copy link
Contributor

/ok-to-test
/label tide/merge-method-squash

@k8s-ci-robot k8s-ci-robot added tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Aug 11, 2025
@jackfrancis
Copy link
Contributor

Added area/provider/utho label to the autoscaler project

cc @towca @BigDarkClown @aleksandra-malinowska @x13n

@jackfrancis
Copy link
Contributor

/lgtm
/approve

Welcome to the Cluster Autoscaler provider ecosystem, @manojdhanda @m-kased!

@jackfrancis jackfrancis added the area/provider/utho Issues or PRs related to Utho provider label Aug 11, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jackfrancis, manojdhanda

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 11, 2025
@k8s-ci-robot k8s-ci-robot merged commit 126b76d into kubernetes:master Aug 11, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/cluster-autoscaler area/provider/utho Issues or PRs related to Utho provider cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/documentation Categorizes issue or PR as related to documentation. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants