kubeadm: use output/v1alpha2 in kubeadm commands
Use the new API for "config images list" and "token list".
This commit is contained in:
parent
2d4fcedbcf
commit
b92966aeac
@ -38,7 +38,7 @@ import (
|
|||||||
kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
|
kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
|
||||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme"
|
outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme"
|
||||||
outputapiv1alpha1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha1"
|
outputapiv1alpha2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha2"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
|
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
|
||||||
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
|
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs"
|
"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs"
|
||||||
@ -413,7 +413,7 @@ type imageTextPrinter struct {
|
|||||||
// PrintObj is an implementation of ResourcePrinter.PrintObj for plain text output
|
// PrintObj is an implementation of ResourcePrinter.PrintObj for plain text output
|
||||||
func (itp *imageTextPrinter) PrintObj(obj runtime.Object, writer io.Writer) error {
|
func (itp *imageTextPrinter) PrintObj(obj runtime.Object, writer io.Writer) error {
|
||||||
var err error
|
var err error
|
||||||
if imgs, ok := obj.(*outputapiv1alpha1.Images); ok {
|
if imgs, ok := obj.(*outputapiv1alpha2.Images); ok {
|
||||||
_, err = fmt.Fprintln(writer, strings.Join(imgs.Images, "\n"))
|
_, err = fmt.Fprintln(writer, strings.Join(imgs.Images, "\n"))
|
||||||
} else {
|
} else {
|
||||||
err = errors.New("unexpected object type")
|
err = errors.New("unexpected object type")
|
||||||
@ -436,7 +436,7 @@ func (ipf *imageTextPrintFlags) ToPrinter(outputFormat string) (output.Printer,
|
|||||||
func (i *ImagesList) Run(out io.Writer, printer output.Printer) error {
|
func (i *ImagesList) Run(out io.Writer, printer output.Printer) error {
|
||||||
imgs := images.GetControlPlaneImages(&i.cfg.ClusterConfiguration)
|
imgs := images.GetControlPlaneImages(&i.cfg.ClusterConfiguration)
|
||||||
|
|
||||||
if err := printer.PrintObj(&outputapiv1alpha1.Images{Images: imgs}, out); err != nil {
|
if err := printer.PrintObj(&outputapiv1alpha2.Images{Images: imgs}, out); err != nil {
|
||||||
return errors.Wrap(err, "unable to print images")
|
return errors.Wrap(err, "unable to print images")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,7 +253,7 @@ k8s.gcr.io/coredns/coredns:{{.CoreDNSVersion}}
|
|||||||
outputFormat: "json",
|
outputFormat: "json",
|
||||||
expectedOutput: `{
|
expectedOutput: `{
|
||||||
"kind": "Images",
|
"kind": "Images",
|
||||||
"apiVersion": "output.kubeadm.k8s.io/v1alpha1",
|
"apiVersion": "output.kubeadm.k8s.io/v1alpha2",
|
||||||
"images": [
|
"images": [
|
||||||
"k8s.gcr.io/kube-apiserver:{{.KubeVersion}}",
|
"k8s.gcr.io/kube-apiserver:{{.KubeVersion}}",
|
||||||
"k8s.gcr.io/kube-controller-manager:{{.KubeVersion}}",
|
"k8s.gcr.io/kube-controller-manager:{{.KubeVersion}}",
|
||||||
@ -272,7 +272,7 @@ k8s.gcr.io/coredns/coredns:{{.CoreDNSVersion}}
|
|||||||
KubernetesVersion: dummyKubernetesVersionStr,
|
KubernetesVersion: dummyKubernetesVersionStr,
|
||||||
},
|
},
|
||||||
outputFormat: "yaml",
|
outputFormat: "yaml",
|
||||||
expectedOutput: `apiVersion: output.kubeadm.k8s.io/v1alpha1
|
expectedOutput: `apiVersion: output.kubeadm.k8s.io/v1alpha2
|
||||||
images:
|
images:
|
||||||
- k8s.gcr.io/kube-apiserver:{{.KubeVersion}}
|
- k8s.gcr.io/kube-apiserver:{{.KubeVersion}}
|
||||||
- k8s.gcr.io/kube-controller-manager:{{.KubeVersion}}
|
- k8s.gcr.io/kube-controller-manager:{{.KubeVersion}}
|
||||||
|
@ -41,11 +41,10 @@ import (
|
|||||||
|
|
||||||
bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1"
|
bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1"
|
||||||
kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
|
kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
|
||||||
kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
|
||||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
|
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
|
||||||
outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme"
|
outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme"
|
||||||
outputapiv1alpha1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha1"
|
outputapiv1alpha2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha2"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
|
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
|
||||||
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
|
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
|
||||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
@ -300,7 +299,7 @@ func RunGenerateToken(out io.Writer) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func formatBootstrapToken(obj *outputapiv1alpha1.BootstrapToken) string {
|
func formatBootstrapToken(obj *outputapiv1alpha2.BootstrapToken) string {
|
||||||
ttl := "<forever>"
|
ttl := "<forever>"
|
||||||
expires := "<never>"
|
expires := "<never>"
|
||||||
if obj.Expires != nil {
|
if obj.Expires != nil {
|
||||||
@ -347,7 +346,7 @@ func (ttp *tokenTextPrinter) PrintObj(obj runtime.Object, writer io.Writer) erro
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Print token
|
// Print token
|
||||||
fmt.Fprint(tabw, formatBootstrapToken(obj.(*outputapiv1alpha1.BootstrapToken)))
|
fmt.Fprint(tabw, formatBootstrapToken(obj.(*outputapiv1alpha2.BootstrapToken)))
|
||||||
|
|
||||||
return tabw.Flush()
|
return tabw.Flush()
|
||||||
}
|
}
|
||||||
@ -391,9 +390,9 @@ func RunListTokens(out io.Writer, errW io.Writer, client clientset.Interface, pr
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Convert token into versioned output structure
|
// Convert token into versioned output structure
|
||||||
outputToken := outputapiv1alpha1.BootstrapToken{
|
outputToken := outputapiv1alpha2.BootstrapToken{
|
||||||
BootstrapToken: kubeadmapiv1beta2.BootstrapToken{
|
BootstrapToken: bootstraptokenv1.BootstrapToken{
|
||||||
Token: &kubeadmapiv1beta2.BootstrapTokenString{ID: token.Token.ID, Secret: token.Token.Secret},
|
Token: &bootstraptokenv1.BootstrapTokenString{ID: token.Token.ID, Secret: token.Token.Secret},
|
||||||
Description: token.Description,
|
Description: token.Description,
|
||||||
TTL: token.TTL,
|
TTL: token.TTL,
|
||||||
Expires: token.Expires,
|
Expires: token.Expires,
|
||||||
|
@ -33,10 +33,9 @@ import (
|
|||||||
"k8s.io/client-go/tools/clientcmd"
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
|
|
||||||
bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1"
|
bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1"
|
||||||
kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
|
||||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme"
|
outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme"
|
||||||
outputapiv1alpha1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha1"
|
outputapiv1alpha2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha2"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/util/output"
|
"k8s.io/kubernetes/cmd/kubeadm/app/util/output"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -360,7 +359,7 @@ func TestTokenOutput(t *testing.T) {
|
|||||||
outputFormat: "json",
|
outputFormat: "json",
|
||||||
expected: `{
|
expected: `{
|
||||||
"kind": "BootstrapToken",
|
"kind": "BootstrapToken",
|
||||||
"apiVersion": "output.kubeadm.k8s.io/v1alpha1",
|
"apiVersion": "output.kubeadm.k8s.io/v1alpha2",
|
||||||
"token": "abcdef.1234567890123456",
|
"token": "abcdef.1234567890123456",
|
||||||
"description": "valid bootstrap tooken",
|
"description": "valid bootstrap tooken",
|
||||||
"usages": [
|
"usages": [
|
||||||
@ -381,7 +380,7 @@ func TestTokenOutput(t *testing.T) {
|
|||||||
usages: []string{"signing", "authentication"},
|
usages: []string{"signing", "authentication"},
|
||||||
extraGroups: []string{"system:bootstrappers:kubeadm:default-node-token"},
|
extraGroups: []string{"system:bootstrappers:kubeadm:default-node-token"},
|
||||||
outputFormat: "yaml",
|
outputFormat: "yaml",
|
||||||
expected: `apiVersion: output.kubeadm.k8s.io/v1alpha1
|
expected: `apiVersion: output.kubeadm.k8s.io/v1alpha2
|
||||||
description: valid bootstrap tooken
|
description: valid bootstrap tooken
|
||||||
groups:
|
groups:
|
||||||
- system:bootstrappers:kubeadm:default-node-token
|
- system:bootstrappers:kubeadm:default-node-token
|
||||||
@ -428,9 +427,9 @@ abcdef.1234567890123456 <forever> <never> signing,authentication valid b
|
|||||||
}
|
}
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
token := outputapiv1alpha1.BootstrapToken{
|
token := outputapiv1alpha2.BootstrapToken{
|
||||||
BootstrapToken: kubeadmapiv1beta2.BootstrapToken{
|
BootstrapToken: bootstraptokenv1.BootstrapToken{
|
||||||
Token: &kubeadmapiv1beta2.BootstrapTokenString{ID: tc.id, Secret: tc.secret},
|
Token: &bootstraptokenv1.BootstrapTokenString{ID: tc.id, Secret: tc.secret},
|
||||||
Description: tc.description,
|
Description: tc.description,
|
||||||
Usages: tc.usages,
|
Usages: tc.usages,
|
||||||
Groups: tc.extraGroups,
|
Groups: tc.extraGroups,
|
||||||
|
Loading…
Reference in New Issue
Block a user