Skip to content

Commit 0e2c268

Browse files
authored
Merge pull request kubernetes#75013 from neolit123/fix-join-flags
kubeadm: amend flags for join phases
2 parents b82868b + 3e151ab commit 0e2c268

File tree

3 files changed

+84
-38
lines changed

3 files changed

+84
-38
lines changed

cmd/kubeadm/app/cmd/phases/join/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ go_library(
1616
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
1717
"//cmd/kubeadm/app/cmd/options:go_default_library",
1818
"//cmd/kubeadm/app/cmd/phases/workflow:go_default_library",
19-
"//cmd/kubeadm/app/cmd/util:go_default_library",
2019
"//cmd/kubeadm/app/constants:go_default_library",
2120
"//cmd/kubeadm/app/phases/certs:go_default_library",
2221
"//cmd/kubeadm/app/phases/controlplane:go_default_library",

cmd/kubeadm/app/cmd/phases/join/controlplanejoin.go

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,43 +22,41 @@ import (
2222
"github.com/pkg/errors"
2323
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
2424
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow"
25-
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
2625
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
2726
etcdphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd"
2827
markcontrolplanephase "k8s.io/kubernetes/cmd/kubeadm/app/phases/markcontrolplane"
2928
uploadconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig"
3029
"k8s.io/kubernetes/pkg/util/normalizer"
3130
)
3231

33-
var (
34-
controlPlaneJoinExample = normalizer.Examples(`
35-
# Joins a machine as a control plane instance
36-
kubeadm join phase control-plane-join all
37-
`)
38-
)
32+
var controlPlaneJoinExample = normalizer.Examples(`
33+
# Joins a machine as a control plane instance
34+
kubeadm join phase control-plane-join all
35+
`)
3936

40-
func getControlPlaneJoinPhaseFlags() []string {
41-
return []string{
42-
options.APIServerAdvertiseAddress,
43-
options.APIServerBindPort,
37+
func getControlPlaneJoinPhaseFlags(name string) []string {
38+
flags := []string{
4439
options.CfgPath,
4540
options.ControlPlane,
4641
options.NodeName,
4742
}
43+
if name != "mark-control-plane" {
44+
flags = append(flags, options.APIServerAdvertiseAddress)
45+
}
46+
return flags
4847
}
4948

5049
// NewControlPlaneJoinPhase creates a kubeadm workflow phase that implements joining a machine as a control plane instance
5150
func NewControlPlaneJoinPhase() workflow.Phase {
5251
return workflow.Phase{
5352
Name: "control-plane-join",
5453
Short: "Joins a machine as a control plane instance",
55-
Long: cmdutil.MacroCommandLongDescription,
5654
Example: controlPlaneJoinExample,
5755
Phases: []workflow.Phase{
5856
{
5957
Name: "all",
6058
Short: "Joins a machine as a control plane instance",
61-
InheritFlags: getControlPlaneJoinPhaseFlags(),
59+
InheritFlags: getControlPlaneJoinPhaseFlags("all"),
6260
RunAllSiblings: true,
6361
},
6462
newEtcdLocalSubphase(),
@@ -73,7 +71,7 @@ func newEtcdLocalSubphase() workflow.Phase {
7371
Name: "etcd",
7472
Short: "Add a new local etcd member",
7573
Run: runEtcdPhase,
76-
InheritFlags: getControlPlaneJoinPhaseFlags(),
74+
InheritFlags: getControlPlaneJoinPhaseFlags("etcd"),
7775
}
7876
}
7977

@@ -86,7 +84,7 @@ func newUpdateStatusSubphase() workflow.Phase {
8684
kubeadmconstants.KubeadmConfigConfigMap,
8785
),
8886
Run: runUpdateStatusPhase,
89-
InheritFlags: getControlPlaneJoinPhaseFlags(),
87+
InheritFlags: getControlPlaneJoinPhaseFlags("update-status"),
9088
}
9189
}
9290

@@ -95,7 +93,7 @@ func newMarkControlPlaneSubphase() workflow.Phase {
9593
Name: "mark-control-plane",
9694
Short: "Mark a node as a control-plane",
9795
Run: runMarkControlPlanePhase,
98-
InheritFlags: getControlPlaneJoinPhaseFlags(),
96+
InheritFlags: getControlPlaneJoinPhaseFlags("mark-control-plane"),
9997
}
10098
}
10199

cmd/kubeadm/app/cmd/phases/join/controlplaneprepare.go

Lines changed: 70 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,20 @@ import (
3131
"k8s.io/kubernetes/cmd/kubeadm/app/phases/copycerts"
3232
kubeconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubeconfig"
3333
kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig"
34+
"k8s.io/kubernetes/pkg/util/normalizer"
3435
)
3536

37+
var controlPlanePrepareExample = normalizer.Examples(`
38+
# Prepares the machine for serving a control plane
39+
kubeadm join phase control-plane-prepare all
40+
`)
41+
3642
// NewControlPlanePreparePhase creates a kubeadm workflow phase that implements the preparation of the node to serve a control plane
3743
func NewControlPlanePreparePhase() workflow.Phase {
3844
return workflow.Phase{
39-
Name: "control-plane-prepare",
40-
Short: "Prepares the machine for serving a control plane.",
45+
Name: "control-plane-prepare",
46+
Short: "Prepares the machine for serving a control plane.",
47+
Example: controlPlanePrepareExample,
4148
Phases: []workflow.Phase{
4249
{
4350
Name: "all [api-server-endpoint]",
@@ -48,33 +55,75 @@ func NewControlPlanePreparePhase() workflow.Phase {
4855
newControlPlanePrepareDownloadCertsSubphase(),
4956
newControlPlanePrepareCertsSubphase(),
5057
newControlPlanePrepareKubeconfigSubphase(),
51-
newControlPlanePrepareManifestsSubphases(),
58+
newControlPlanePrepareControlPlaneSubphase(),
5259
},
5360
}
5461
}
5562

5663
func getControlPlanePreparePhaseFlags(name string) []string {
57-
flags := []string{
58-
options.APIServerAdvertiseAddress,
59-
options.APIServerBindPort,
60-
options.CfgPath,
61-
options.ControlPlane,
62-
options.NodeName,
63-
}
64-
if name != "manifests" {
65-
flags = append(flags,
64+
var flags []string
65+
switch name {
66+
case "all":
67+
flags = []string{
68+
options.APIServerAdvertiseAddress,
69+
options.APIServerBindPort,
70+
options.CfgPath,
71+
options.ControlPlane,
72+
options.NodeName,
6673
options.FileDiscovery,
6774
options.TokenDiscovery,
6875
options.TokenDiscoveryCAHash,
6976
options.TokenDiscoverySkipCAHash,
7077
options.TLSBootstrapToken,
7178
options.TokenStr,
72-
)
73-
}
74-
if name == "all" || name == "download-certs" {
75-
flags = append(flags,
7679
options.CertificateKey,
77-
)
80+
}
81+
case "download-certs":
82+
flags = []string{
83+
options.CfgPath,
84+
options.ControlPlane,
85+
options.FileDiscovery,
86+
options.TokenDiscovery,
87+
options.TokenDiscoveryCAHash,
88+
options.TokenDiscoverySkipCAHash,
89+
options.TLSBootstrapToken,
90+
options.TokenStr,
91+
options.CertificateKey,
92+
}
93+
case "certs":
94+
flags = []string{
95+
options.APIServerAdvertiseAddress,
96+
options.CfgPath,
97+
options.ControlPlane,
98+
options.NodeName,
99+
options.FileDiscovery,
100+
options.TokenDiscovery,
101+
options.TokenDiscoveryCAHash,
102+
options.TokenDiscoverySkipCAHash,
103+
options.TLSBootstrapToken,
104+
options.TokenStr,
105+
}
106+
case "kubeconfig":
107+
flags = []string{
108+
options.CfgPath,
109+
options.ControlPlane,
110+
options.FileDiscovery,
111+
options.TokenDiscovery,
112+
options.TokenDiscoveryCAHash,
113+
options.TokenDiscoverySkipCAHash,
114+
options.TLSBootstrapToken,
115+
options.TokenStr,
116+
options.CertificateKey,
117+
}
118+
case "control-plane":
119+
flags = []string{
120+
options.APIServerAdvertiseAddress,
121+
options.APIServerBindPort,
122+
options.CfgPath,
123+
options.ControlPlane,
124+
}
125+
default:
126+
flags = []string{}
78127
}
79128
return flags
80129
}
@@ -106,16 +155,16 @@ func newControlPlanePrepareKubeconfigSubphase() workflow.Phase {
106155
}
107156
}
108157

109-
func newControlPlanePrepareManifestsSubphases() workflow.Phase {
158+
func newControlPlanePrepareControlPlaneSubphase() workflow.Phase {
110159
return workflow.Phase{
111160
Name: "control-plane",
112161
Short: "Generates the manifests for the new control plane components",
113-
Run: runControlPlanePrepareManifestsSubphase, //NB. eventually in future we would like to break down this in sub phases for each component
114-
InheritFlags: getControlPlanePreparePhaseFlags("manifests"),
162+
Run: runControlPlanePrepareControlPlaneSubphase, //NB. eventually in future we would like to break down this in sub phases for each component
163+
InheritFlags: getControlPlanePreparePhaseFlags("control-plane"),
115164
}
116165
}
117166

118-
func runControlPlanePrepareManifestsSubphase(c workflow.RunData) error {
167+
func runControlPlanePrepareControlPlaneSubphase(c workflow.RunData) error {
119168
data, ok := c.(JoinData)
120169
if !ok {
121170
return errors.New("control-plane-prepare phase invoked with an invalid data struct")

0 commit comments

Comments
 (0)