k3s/cmd
Kubernetes Submit Queue c7b71ebca9
Merge pull request #64408 from luxas/kubeadm_refactor_bt
Automatic merge from submit-queue (batch tested with PRs 64057, 63223, 64346, 64562, 64408). 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: Refactor the Bootstrap Tokens usage in the API types

**What this PR does / why we need it**:
This PR:
 - Moves some common, generic Bootstrap Token helpers and constants from `k8s.io/kubernetes/cmd/kubeadm/app/util/token` to `k8s.io/client-go/tools/bootstrap/token/`
 - Breaks out the top-level Bootstrap Token fields to a dedicated `BootstrapToken` struct with helper functions.
 - Instead of representing the Bootstrap Token as a plain `string`, there is now a wrapper struct `BootstrapTokenString` that can marshal/unmarshal correctly and supports validation on create, and splitting up the full token in the ID/Secret parts automatically.
 - Makes kubeadm support multiple Bootstrap Tokens automatically by supporting a slice of `BootstrapToken` in the `MasterConfiguration` API object
 - Consolidates the place for kubeadm to create token-related flags in an `options` package
 - Supports automatic conversion from the `v1alpha1` to `v1alpha2` API
 - Adds support to set token expiration directly instead of setting a TTL (Expiration and TTL are mutually exclusive)
 - Removes the old `TokenDiscovery` struct we're not using anymore inside of kubeadm

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Related to https://github.com/kubernetes/community/pull/2131

**Special notes for your reviewer**:
This is work in progress. Please only review the first two commits for now.
I will work on splitting up this PR in smaller chunks.
I will also write unit tests tomorrow.

**Release note**:

```release-note
[action required] kubeadm: The Token-related fields in the `MasterConfiguration` object have now been refactored. Instead of the top-level `.Token`, `.TokenTTL`, `.TokenUsages`, `.TokenGroups` fields, there is now a `BootstrapTokens` slice of `BootstrapToken` objects that support the same features under the `.Token`, `.TTL`, `.Usages`, `.Groups` fields.
```
@kubernetes/sig-cluster-lifecycle-pr-reviews @mattmoyer @liztio
2018-06-02 02:10:18 -07:00
..
clicheck wire config flags through factory 2018-05-04 17:02:20 -04:00
cloud-controller-manager Merge pull request #64016 from stewart-yu/stewart-controller-manager-codeclean 2018-05-30 18:49:17 -07:00
controller-manager auto generated file 2018-05-18 10:23:38 +08:00
gendocs wire config flags through factory 2018-05-04 17:02:20 -04:00
genkubedocs Remove signal handler registration from pkg/kubelet 2018-05-24 20:44:12 +01:00
genman Remove signal handler registration from pkg/kubelet 2018-05-24 20:44:12 +01:00
genswaggertypedocs Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
genutils Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
genyaml wire config flags through factory 2018-05-04 17:02:20 -04:00
hyperkube Remove signal handler registration from pkg/kubelet 2018-05-24 20:44:12 +01:00
importverifier fix message output for import verifier 2018-05-10 12:50:28 -04:00
kube-apiserver apiextensions-apiserver: add establishing controller to avoid race between established and CRs actually served 2018-05-29 13:46:47 +02:00
kube-controller-manager Merge pull request #64016 from stewart-yu/stewart-controller-manager-codeclean 2018-05-30 18:49:17 -07:00
kube-proxy Merge pull request #61077 from islinwb/fix_ipvs_warninfo 2018-05-31 20:01:26 -07:00
kube-scheduler Fixing scheduling latency metrics 2018-05-30 11:20:12 +02:00
kubeadm Merge pull request #64408 from luxas/kubeadm_refactor_bt 2018-06-02 02:10:18 -07:00
kubectl kubectl use its own logs 2018-05-22 11:35:38 +08:00
kubelet Merge pull request #63143 from jsafrane/containerized-subpath 2018-06-01 12:12:19 -07:00
kubemark Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
linkcheck Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
BUILD gke-certificates-controller: rm -rf 2018-02-15 12:01:00 -08:00
OWNERS