-
Notifications
You must be signed in to change notification settings - Fork 39k
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
kubeadm: Add a v1alpha3
API
#65629
kubeadm: Add a v1alpha3
API
#65629
Conversation
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.
Thanks for this PR
/approve
@timothysc I let you give the final lgtm
4dc24ed
to
526b740
Compare
let me know when all the rebasing is done. |
526b740
to
54c2939
Compare
|
||
// Package v1alpha2 holds the external kubeadm API types of version v1alpha2 | ||
// Note: This file should be kept in sync with the similar one for the internal API | ||
// TODO: The BootstrapTokenString object should move out to either k8s.io/client-go or k8s.io/api in the future |
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.
Now is the time to make this change, it really doesn't belong here.
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.
This is out of scope for this PR, it isn't worse than what we had with v1alpha1 and v1alpha2 really.
Yes, we're gonna fix this very soon, but it doesn't block all of the other PRs I have lined up for the moment
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.
Please file an issue in the kubeadm repo as p1 as it needs to get fixed this cycle.
/cc @fabriziopandini
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 added an action item to kubernetes/kubeadm#963 Tracking issue for "Config to v1beta1"
package v1alpha3 | ||
|
||
// DefaultCACertPath defines default location of CA certificate on Linux | ||
const DefaultCACertPath = "/etc/kubernetes/pki/ca.crt" |
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.
Why is this outside of the rest of the other defaults.
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.
It's branched per OS, there's an other constant for windows.
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.
Again, this is 100% equal to what's in v1alpha2
54c2939
to
7e488e7
Compare
This PR sets the ground for the new version of kubeadm API, but doesn't make any change to API types (to be addressed in following PRs along with the related KEP) |
[APPROVALNOTIFIER] This PR is APPROVED Approval requirements bypassed by manually added approval. This pull-request has been approved by: fabriziopandini, luxas 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 |
Self-approving the |
Automatic merge from submit-queue (batch tested with PRs 64593, 65117, 65629, 65827, 65686). If you want to cherry-pick this change to another branch, please follow the instructions here. |
Automatic merge from submit-queue (batch tested with PRs 65822, 65834, 65859, 65631). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. kubeadm: Add support for reading multiple YAML documents **What this PR does / why we need it**: In preparation for splitting the kubelet and kube-proxy componentconfigs out of the MasterConfiguration API struct, add support for reading multiple YAML documents **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: ref: kubernetes/kubeadm#911 Depends on: - [x] #65776 - [x] #65628 - [x] #65629 **Special notes for your reviewer**: Please only review the `Refactor a bit of the config YAML loading code, and support loading multiple YAML documents` commit **Release note**: ```release-note NONE ``` @kubernetes/sig-cluster-lifecycle-pr-reviews
…nentconfigs Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. kubeadm: Start using internal versions for ComponentConfigs in the internal API **What this PR does / why we need it**: This PR changes kubeadm to store the internal API versions of the ComponentConfig APIs, in order to in the future be able to read multiple external versions with conversion. It also moves all the ComponentConfigs to a common struct instead of splitting them out in many. This makes it possible to more easily host more ComponentConfigs in the future. In v1alpha3, the ComponentConfigs will later be removed from the external version of the API (see: kubernetes#65787), but for this PR no changes to the external API are made. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: ref: kubernetes/kubeadm#911 Depends on: - [x] kubernetes#65776 - [x] kubernetes#65628 - [x] kubernetes#65629 - [x] kubernetes#65631 **Special notes for your reviewer**: **Release note**: ```release-note NONE ``` @kubernetes/sig-cluster-lifecycle-pr-reviews
…om_api Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. kubeadm: Use separate YAML docs for the kubelet and kube-proxy ComponentConfigs **What this PR does / why we need it**: This PR makes kubeadm load the ComponentConfig for the kubelet and kube-proxy from separate YAML documents in the `kubeadm init` config file. This is backwards-compatible with `v1alpha2`. The ComponentConfigs are stored internally in the internal kubeadm `MasterConfiguration` struct, but when marshalling the componentconfigs are written as separate YAML documents. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: ref: kubernetes/kubeadm#911 Depends on: - [x] #65776 - [x] #65628 - [x] #65629 - [x] #65631 - [x] #65940 **Special notes for your reviewer**: Only review the last five commits please. (The last commit is purely autogenerated, so can be skipped) **Release note**: ```release-note kubeadm: Use separate YAML documents for the kubelet and kube-proxy ComponentConfigs ``` @kubernetes/sig-cluster-lifecycle-pr-reviews /assign @timothysc
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Rename `MasterConfiguration` to `InitConfiguration` in the kubeadm v1alpha3 Config API **What this PR does / why we need it**: In v1alpha3, we have made the design decision that `MasterConfiguration` will be renamed `InitConfiguration`. This PR implements that change. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: ref: kubernetes/kubeadm#911 Depends on: - [x] #65776 - [x] #65628 - [x] #65629 - [x] #65631 - [x] #65940 - [x] #65787 **Special notes for your reviewer**: Most of the code is autogenerated, using just find and replace. Please only review commits: - `Automated rename from MasterConfiguration to InitConfiguration` - `Rename MasterConfiguration to InitConfiguration in v1alpha3, but support both names for this release of kubeadm` **Release note**: ```release-note [action required] The `MasterConfiguration` kind in the kubeadm v1alpha2 API has been renamed `InitConfiguration` in v1alpha3 ``` @kubernetes/sig-cluster-lifecycle-pr-reviews
Automatic merge from submit-queue (batch tested with PRs 66138, 65951). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Rename `NodeConfiguration` to `JoinConfiguration` in the kubeadm v1alpha3 Config API **What this PR does / why we need it**: In v1alpha3, we have made the design decision that `NodeConfiguration` will be renamed `JoinConfiguration`. This PR implements that change. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: ref: kubernetes/kubeadm#911 Depends on: - [x] kubernetes#65776 - [x] kubernetes#65628 - [x] kubernetes#65629 - [x] kubernetes#65631 - [x] kubernetes#65940 - [x] kubernetes#65787 - [ ] kubernetes#65945 **Special notes for your reviewer**: Please only review the last three commits here. **Release note**: ```release-note [action required] The `NodeConfiguration` kind in the kubeadm v1alpha2 API has been renamed `JoinConfiguration` in v1alpha3 ``` @kubernetes/sig-cluster-lifecycle-pr-reviews
Automatic merge from submit-queue (batch tested with PRs 63877, 64559, 65952). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. kubeadm: Make the kubeadm config kinds mutually exclusive **What this PR does / why we need it**: Right now it would be possible to feed kubeadm with a YAML document with all the four different Config kinds kubeadm at HEAD supports, `MasterConfiguration`, `InitConfiguration`, `JoinConfiguration` and `NodeConfiguration`. This PR makes them mutually exclusive so that kubeadm can know how to handle the config file properly. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: ref: kubernetes/kubeadm#911 Depends on: - [x] #65776 - [x] #65628 - [x] #65629 - [x] #65631 - [x] #65940 - [x] #65787 - [x] #65945 - [x] #65951 **Special notes for your reviewer**: Please only review the last commit **Release note**: ```release-note NONE ``` @kubernetes/sig-cluster-lifecycle-pr-reviews
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. [reissue] kubeadm: Split out ClusterConfiguration from InitConfiguration As @luxas is not able to take care of #66219, I am reissuing the same change here. There are a few minor things added by me: - The original PR is rebased on latest master. - Some broken tests were fixed. - Some TODOs were added. - Run update-bazel and update-gofmt Below is the text of the original PR by Lucas. ----- **What this PR does / why we need it:** Splits MasterConfiguration to InitConfiguration and ClusterConfiguration as outlined in the kubeadm Config KEP. InitConfiguration holds init-only information, and ClusterConfiguration holds cluster-wide information. In the internal representation InitConfiguration wraps ClusterConfiguration as a field, but in serialized format they're different YAML documents. **Which issue(s) this PR fixes** (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged): ref: kubernetes/kubeadm#911 Depends on: - [X] #65776 - [X] #65628 - [X] #65629 - [X] #65631 - [X] #65940 - [X] #65787 - [X] #65945 - [X] #65951 - [X] #65952 **Special notes for your reviewer:** **Release note**: ```release-note kubeadm: InitConfiguration now consists of two structs: InitConfiguration and ClusterConfiguration ``` @kubernetes/sig-cluster-lifecycle-pr-reviews
What this PR does / why we need it:
Adds a (now duplicated) v1alpha3 API. Equal to
v1alpha2
now, but will be changed later.Hopefully we'll graduate this to
v1beta1
during the v1.12 cycle.Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged):ref: kubernetes/kubeadm#911
Depends on:
Special notes for your reviewer:
These commits should be reviewed:
Add a duplicated v1alpha3 API
: A pure directory copy of thev1alpha2
folder, only changed the package name in the Go filesRegister the v1alpha3 API in the scheme, and update the roundtrip API tests
, started registering the new API and using it internallyAutomated bump from v1alpha2 references to v1alpha3
: Replaced all v1alpha2 references with v1alpha3Release note:
@kubernetes/sig-cluster-lifecycle-pr-reviews