-
Notifications
You must be signed in to change notification settings - Fork 419
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update cluster-controller to v0.1.0 #1444
Conversation
This includes a BREAKING CHANGE to the cluster-turndown functionality that is wrapped by cluster-controller. The breaking changes are summarized in https://github.com/kubecost/cluster-turndown/releases/tag/v2.0.0 and should be featured prominently in release notes.
v2 of turndown changes the namespacing of the turndown resources to match K8s API policy. See discussion and references in kubecost/cluster-turndown#44 for more detail. The new CRD YAML is copied from cluster-turndown v2.0.1
This is a more permanent fix to the patch we made here: #1429 |
@AjayTripathy do we have any policy for making breaking changes like this? |
- tds | ||
scope: Cluster | ||
{{ else }} | ||
apiVersion: apiextensions.k8s.io/v1beta1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have a min k8s version we support/guarantee to run on? 1.16 was the first version that beta was added.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there's some minimum, but I don't know what it is. @AjayTripathy may know more.
I don't think we've ever guaranteed a supported version of K8s for cluster-controller (and turndown) because they're perpetually in alpha/beta.
We have to make this change because v1beta1
is being removed and K8s now explicitly disallows *.k8s.io
from being used to namespace non-K8s CRDs. The cluster-turndown PR links to sources: kubecost/cluster-turndown#44.
We could maintain a sort of backwards-compatibility in the Helm chart if we made K8s versions < 1.22 use cluster-controller:v0.6.0
and the v1beta1
CRD.
We decided to not write migration code due to time constraints and instead provide a migration guide, which has been written and included in this PR's associated docs PR: kubecost/docs#246. I did a wide range of testing on GKE clusters with v1.21 of K8s and v1.22 of K8s to check the behavior of having a simultaneous definition of |
Full migration guide testing notes are attached to the docs PR. |
Sorry for the late response here. I feel a migration guide + support should be sufficient. |
What does this PR change?
This includes a BREAKING CHANGE to the cluster-turndown functionality
that is wrapped by cluster-controller. The breaking changes are
summarized in https://github.com/kubecost/cluster-turndown/releases/tag/v2.0.0
and should be featured prominently in release notes.
The breaking change is necessary because we aren't allowed to use
*.k8s.io
to namespace our CRDs. See the notes in kubecost/cluster-turndown#44 for a further explanation and references.Does this PR rely on any other PRs?
How does this PR impact users? (This is the kind of thing that goes in release notes!)
apiextensions.k8s.io/v1beta1
CRDturndownschedules.kubecost.k8s.io
apiextensions.k8s.io/v1
CRDturndownschedules.kubecost.com
as replacement.--set clusterController.enabled=true
), please visit the migration guide to check if you have existing resources that must be migrated to maintain expected functionality.Links to Issues or ZD tickets this PR addresses or fixes
How was this PR tested?
Deployed this version of the Helm chart with
--set clusterController.enabled=true
. Saw theturndownschedules.kubecost.com
CRD withkubectl get crd
. Saw the cluster-controller Pod start and observed clean logs:I did not test using turndown functionality.
Have you made an update to documentation?