Skip to content

feat(t8s-cluster/management-cluster): add cluster-autoscaler deployment#1756

Merged
cwrau merged 1 commit intomainfrom
feat/t8s-cluster/add-cluster-autoscaler-deployment
Oct 22, 2025
Merged

feat(t8s-cluster/management-cluster): add cluster-autoscaler deployment#1756
cwrau merged 1 commit intomainfrom
feat/t8s-cluster/add-cluster-autoscaler-deployment

Conversation

@cwrau
Copy link
Member

@cwrau cwrau commented Oct 22, 2025

Summary by CodeRabbit

  • New Features

    • Enabled cluster autoscaler deployment with automatic node pool discovery and cloud provider integration.
  • Changes

    • Simplified cluster provisioning by removing pre-install cleanup operations for cloud-controller-manager, CNI, CSI, etcd defragmentation, and storage classes.

Copilot AI review requested due to automatic review settings October 22, 2025 12:29
@cwrau cwrau enabled auto-merge October 22, 2025 12:29
@coderabbitai
Copy link

coderabbitai bot commented Oct 22, 2025

Warning

Rate limit exceeded

@cwrau has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 0 minutes and 52 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between e84b075 and c892e90.

📒 Files selected for processing (8)
  • charts/t8s-cluster/templates/management-cluster/autoscaler.yaml (1 hunks)
  • charts/t8s-cluster/templates/workload-cluster/pre-install/_uninstall-job.yaml (0 hunks)
  • charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-cloud-controller-manager.yaml (0 hunks)
  • charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-cni.yaml (0 hunks)
  • charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-csi.yaml (0 hunks)
  • charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-etcd-defrag.yaml (0 hunks)
  • charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-storageclasses.yaml (0 hunks)
  • charts/t8s-cluster/values.yaml (1 hunks)

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Adds cluster autoscaler Flux HelmRelease deployment to management cluster with conditional enablement based on nodePool replica configuration. Removes pre-install uninstall workflow templates including Job, ServiceAccount, and RBAC resources previously used to clean resources during uninstall. Updates Helm repository values to include autoscaler chart reference.

Changes

Cohort / File(s) Summary
Cluster Autoscaler Deployment
charts/t8s-cluster/templates/management-cluster/autoscaler.yaml
New Helm template that conditionally renders a Flux HelmRelease for cluster-autoscaler. Deployment is enabled when any nodePool replica is a map. Configures auto-discovery, cloud provider integration via ClusterAPI, and extraArgs for scaling behavior and resource naming.
Pre-Install Uninstall Job Removal
charts/t8s-cluster/templates/workload-cluster/pre-install/_uninstall-job.yaml
Removes complete uninstall Job template including ServiceAccount, Role, and RoleBinding resources that previously executed kubectl cleanup commands during pre-install phase.
Uninstall Invocation Removals
charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-cloud-controller-manager.yaml, uninstall-cni.yaml, uninstall-csi.yaml, uninstall-etcd-defrag.yaml
Removes Helm template invocations that conditionally rendered uninstall jobs for cloud-controller-manager, CNI (Cilium), CSI, and etcd-defrag resources.
Storage Classes Uninstall Removal
charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-storageclasses.yaml
Removes pre-install Job that deleted teutostack storage classes using kubectl with restricted security context and kubeconfig volume mounting.
Helm Repository Configuration
charts/t8s-cluster/values.yaml
Adds autoscaler Helm repository entry with URL https://kubernetes.github.io/autoscaler and cluster-autoscaler chart version 9.52.1.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~40 minutes

Involves a significant architectural change: adding conditional cluster autoscaler deployment logic alongside complete removal of pre-install uninstall workflow infrastructure. Mixed patterns across multiple files require verification that resource cleanup logic is properly eliminated without unintended side effects, and that autoscaler enablement conditions align with nodePool configuration changes in related PRs.

Possibly related PRs

Suggested labels

t8s-cluster

Suggested reviewers

  • tasches
  • marvinWolff
  • teutonet-bot

Poem

🐰 A rabbit hops through Helm charts with glee,
Auto-scaling now, uninstall jobs flee!
ClusterAPI whispers secrets so keen,
Flux deploys wonders we've never seen.
Storage classes rest, pre-install dreams gone—
Bootstrap magic carries us on! ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title "feat(t8s-cluster/management-cluster): add cluster-autoscaler deployment" is clearly related to the primary change in the changeset, which is the addition of a new Helm template (autoscaler.yaml) that deploys the cluster autoscaler in the management cluster. The title accurately identifies the main feature being introduced. While the changeset also includes removal of several pre-install uninstall templates from the workload-cluster and updates to values.yaml, these appear to be supporting changes or refactoring that accompany the primary autoscaler deployment feature. The title is concise, specific, and sufficiently clear for a teammate reviewing the repository history to understand the core purpose of this change.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds cluster-autoscaler deployment capabilities to the t8s-cluster management cluster, enabling automatic scaling of node pools based on resource utilization. The changes also clean up legacy pre-install uninstall jobs that are no longer needed.

  • Adds autoscaler Helm repository configuration and chart version specification
  • Implements conditional autoscaler HelmRelease deployment for clusters with autoscaling-enabled node pools
  • Removes obsolete pre-install cleanup jobs for various cluster components

Reviewed Changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
charts/t8s-cluster/values.yaml Adds autoscaler Helm repository URL and cluster-autoscaler chart version 9.52.1
charts/t8s-cluster/templates/management-cluster/autoscaler.yaml Creates HelmRelease resource for cluster-autoscaler with Cluster API integration
charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-storageclasses.yaml Removes legacy storage class cleanup job
charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-etcd-defrag.yaml Removes legacy etcd-defrag cleanup job
charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-csi.yaml Removes legacy CSI cleanup job
charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-cni.yaml Removes legacy CNI cleanup job
charts/t8s-cluster/templates/workload-cluster/pre-install/uninstall-cloud-controller-manager.yaml Removes legacy cloud controller manager cleanup job
charts/t8s-cluster/templates/workload-cluster/pre-install/_uninstall-job.yaml Removes shared uninstall job template used by deleted cleanup jobs

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@cwrau cwrau force-pushed the feat/t8s-cluster/add-cluster-autoscaler-deployment branch from e84b075 to 636fbdd Compare October 22, 2025 12:55
@cwrau cwrau force-pushed the feat/t8s-cluster/add-cluster-autoscaler-deployment branch from 636fbdd to c892e90 Compare October 22, 2025 12:58
@cwrau cwrau added this pull request to the merge queue Oct 22, 2025
Merged via the queue into main with commit 5b6ead9 Oct 22, 2025
20 checks passed
@cwrau cwrau deleted the feat/t8s-cluster/add-cluster-autoscaler-deployment branch October 22, 2025 13:33
github-merge-queue bot pushed a commit that referenced this pull request Jan 15, 2026
🤖 I have created a release *beep* *boop*
---


##
[9.5.0](t8s-cluster-v9.4.1...t8s-cluster-v9.5.0)
(2026-01-15)


### Features

* **t8s-cluster/artifacthub:** use centralised helmRepositories template
([#1846](#1846))
([73a41f9](73a41f9))
* **t8s-cluster/cilium:** enable kubeProxy replacement
([#1815](#1815))
([b3c412d](b3c412d))
* **t8s-cluster/management-cluster:** add cluster-autoscaler deployment
([#1756](#1756))
([5b6ead9](5b6ead9))
* **t8s-cluster/management-cluster:** enable ImageVolume feature flag
([#1786](#1786))
([9676ee0](9676ee0))
* **t8s-cluster/management-cluster:** set apiServerLoadBalancer.provider
via TeutonetesCloud
([#1898](#1898))
([6bf8889](6bf8889))
* **t8s-cluster/management-cluster:** switch to hcp
([#1759](#1759))
([303b0b6](303b0b6))
* **t8s-cluster/management-cluster:** use new
KubeletEnsureSecretPulledImages feature gate
([#1858](#1858))
([40d7bef](40d7bef))
* **t8s-cluster:** migrate to CAPI v1beta2
([#1685](#1685))
([dc5f071](dc5f071))


### Bug Fixes

* **t8s-cluster/autoscaler:** these names are inside the workload
cluster
([#1877](#1877))
([f345cea](f345cea))
* **t8s-cluster/management-cluster:** leave out protocol if `nil`
([#1837](#1837))
([f370dac](f370dac))
* **t8s-cluster:** only allow nodePools with valid k8s names
([#1851](#1851))
([b9431c5](b9431c5))


### Miscellaneous Chores

* **t8s-cluster/dependencies:** update common docker tag to v1.6.0
([#1811](#1811))
([b3b4c94](b3b4c94))
* **t8s-cluster/dependencies:** update common docker tag to v1.7.0
([#1873](#1873))
([71e062f](71e062f))
* **t8s-cluster/dependencies:** update helm release cilium to v1.18.6
([#1894](#1894))
([e1adc88](e1adc88))
* **t8s-cluster/dependencies:** update helm release cluster-autoscaler
to v9.53.0
([#1856](#1856))
([dc67fcd](dc67fcd))
* **t8s-cluster/dependencies:** update helm release
openstack-cloud-controller-manager to v2.34.1
([#1553](#1553))
([e984d19](e984d19))
* **t8s-cluster/dependencies:** update registry.k8s.io/etcd docker tag
to v3.5.24
([#1793](#1793))
([a5098e3](a5098e3))
* **t8s-cluster/dependencies:** update registry.k8s.io/etcd docker tag
to v3.6.6
([#1813](#1813))
([e07ffa7](e07ffa7))
* **t8s-cluster/dependencies:** update registry.k8s.io/etcd docker tag
to v3.6.7
([#1895](#1895))
([cf1d3b4](cf1d3b4))
* **t8s-cluster/flux:** use centralised HelmRepositories instead of
per-instance
([#1758](#1758))
([3deff65](3deff65))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants