-
Notifications
You must be signed in to change notification settings - Fork 216
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
Promoting sigs.k8s.io/karpenter
to package version v1.0.0
#1570
Labels
triage/accepted
Indicates an issue or PR is ready to be actively worked on.
Comments
k8s-ci-robot
added
the
needs-triage
Indicates an issue or PR lacks a `triage/foo` label and requires one.
label
Aug 13, 2024
/triage accepted |
k8s-ci-robot
added
triage/accepted
Indicates an issue or PR is ready to be actively worked on.
and removed
needs-triage
Indicates an issue or PR lacks a `triage/foo` label and requires one.
labels
Aug 13, 2024
Extra credit: document the stability guarantees. |
makes sense to me |
Thanks folks for the feedback! v1.0.0 is out! |
/close |
@jonathan-innis: Closing this issue. In response to this:
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. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The Karpenter maintainer team introduced an RFC proposal in May of 2024 to propose API changes and roadmap to Karpenter v1. These changes have since been merged across the repo and the maintainer team is ready to promote the
sigs.k8s.io/karpenter
package tagged asv1.0.0
, alongside its APIs at v1.Why We Have Chosen to Upgrade the Package to
v1.0.0
The
sigs.k8s.io/karpenter
package has long-been in a production-ready state for users, but has not reflected this production-ready state through its versioning scheme. Given the first initial release of v1 APIs within Karpenter, the maintainer team feels this is the best time to make the bump to v1.0.0.This versioning scheme also allows us to stop versioning the
sigs.k8s.io/karpenter
package in lock-step with theaws/karpenter-provider-aws
package, a practice that was legacy from a time when thesigs.k8s.io/karpenter
package was owned by the AWS organization and was namedaws/karpenter-core
. We believe this upgrade to v1.0.0 will allow us to update our versioning to properly signal breaking and non-breaking changes to downstream integrations.How This Affects Downstream Integrations (e.g. CloudProviders)
With this change, the
sigs.k8s.io/karpenter
package would now be referenced throughgo.mod
s asv1.0.0
, reflecting the repo package tag. Downstream integrations (such as CloudProviders:aws/karpenter-provider-aws
,Azure/karpenter-provider-azure
, etc.) would need to update theirgo.mod
s to reference the new package version.How This Affects Our Stability Guarantees
The v1 APIs that are released alongside the v1 package upgrade will carry different guarantees than the package itself.
The v1 package itself will not have these same guarantees as the v1 APIs available inside of the package. v1 APIs released in this package are guaranteed by Kubernetes stability guarantees; package functions, struct, etc. are not. See https://kubernetes.io/docs/reference/using-api/ for more details on Kubernetes stability guidelines.
Practically, what this means is that exported methods within the
sigs.k8s.io/karpenter
package (including the cloudprovider interface) are subject to a breaking change within the v1.x.y major version without a bump to v2.x.y. Starting in v1.0.0, we will signal a breaking change to thesigs.k8s.io/karpenter
package through a minor version bump to the package. This includes scenarios where exported functions change their signatures or interfaces/structures like the cloudprovider interface make changes that break downstream integrations. Patch version upgrades will signal non-breaking changes to the package including additional functionality or new function signatures or structs that don't affect existing integrations.This versioning strategy follows the prior art of other Kubernetes project integrations that have gone v1.0.0, including Kubernetes itself:
The text was updated successfully, but these errors were encountered: