@@ -43,21 +43,23 @@ type SetupController interface {
43
43
}
44
44
45
45
type setupController struct {
46
- log * logrus.Entry
47
- clientFactory apcli.FactoryInterface
48
- k0sDataDir string
49
- enableWorker bool
46
+ log * logrus.Entry
47
+ clientFactory apcli.FactoryInterface
48
+ k0sDataDir string
49
+ enableWorker bool
50
+ kubeletExtraArgs string
50
51
}
51
52
52
53
var _ SetupController = (* setupController )(nil )
53
54
54
55
// NewSetupController creates a `SetupController`
55
- func NewSetupController (logger * logrus.Entry , cf apcli.FactoryInterface , k0sDataDir string , enableWorker bool ) SetupController {
56
+ func NewSetupController (logger * logrus.Entry , cf apcli.FactoryInterface , k0sDataDir , kubeletExtraArgs string , enableWorker bool ) SetupController {
56
57
return & setupController {
57
- log : logger .WithField ("controller" , "setup" ),
58
- clientFactory : cf ,
59
- k0sDataDir : k0sDataDir ,
60
- enableWorker : enableWorker ,
58
+ log : logger .WithField ("controller" , "setup" ),
59
+ clientFactory : cf ,
60
+ k0sDataDir : k0sDataDir ,
61
+ kubeletExtraArgs : kubeletExtraArgs ,
62
+ enableWorker : enableWorker ,
61
63
}
62
64
}
63
65
@@ -74,23 +76,28 @@ func (sc *setupController) Run(ctx context.Context) error {
74
76
}
75
77
}
76
78
77
- hostname , err := apcomm .FindEffectiveHostname ()
79
+ controlNodeName , err := apcomm .FindEffectiveHostname ()
78
80
if err != nil {
79
81
return fmt .Errorf ("unable to determine hostname for signal node setup: %w" , err )
80
82
}
81
83
82
- logger .Infof ("Using effective hostname = '%v'" , hostname )
84
+ kubeletNodeName := controlNodeName
85
+ if sc .enableWorker {
86
+ kubeletNodeName = apcomm .FindKubeletHostname (sc .kubeletExtraArgs )
87
+ }
88
+
89
+ logger .Infof ("Using effective hostname = '%v', kubelet hostname = '%v'" , controlNodeName , kubeletNodeName )
83
90
84
91
if err := retry .Do (func () error {
85
- logger .Infof ("Attempting to create controlnode '%s'" , hostname )
86
- if err := sc .createControlNode (ctx , sc .clientFactory , hostname ); err != nil {
87
- return fmt .Errorf ("create controlnode '%s' attempt failed, retrying: %w" , hostname , err )
92
+ logger .Infof ("Attempting to create controlnode '%s'" , controlNodeName )
93
+ if err := sc .createControlNode (ctx , sc .clientFactory , controlNodeName , kubeletNodeName ); err != nil {
94
+ return fmt .Errorf ("create controlnode '%s' attempt failed, retrying: %w" , controlNodeName , err )
88
95
}
89
96
90
97
return nil
91
98
92
99
}); err != nil {
93
- return fmt .Errorf ("failed to create controlnode '%s' after max attempts: %w" , hostname , err )
100
+ return fmt .Errorf ("failed to create controlnode '%s' after max attempts: %w" , controlNodeName , err )
94
101
}
95
102
96
103
return nil
@@ -114,7 +121,7 @@ func createNamespace(ctx context.Context, cf apcli.FactoryInterface, name string
114
121
115
122
// createControlNode creates a new control node, ignoring errors if one already exists
116
123
// for this physical host.
117
- func (sc * setupController ) createControlNode (ctx context.Context , cf apcli.FactoryInterface , name string ) error {
124
+ func (sc * setupController ) createControlNode (ctx context.Context , cf apcli.FactoryInterface , name , nodeName string ) error {
118
125
logger := sc .log .WithField ("component" , "setup" )
119
126
client , err := sc .clientFactory .GetAutopilotClient ()
120
127
if err != nil {
@@ -141,7 +148,7 @@ func (sc *setupController) createControlNode(ctx context.Context, cf apcli.Facto
141
148
Name : name ,
142
149
// Create the usual os and arch labels as this describes a controller node
143
150
Labels : map [string ]string {
144
- corev1 .LabelHostname : name ,
151
+ corev1 .LabelHostname : nodeName ,
145
152
corev1 .LabelOSStable : runtime .GOOS ,
146
153
corev1 .LabelArchStable : runtime .GOARCH ,
147
154
},
@@ -160,7 +167,7 @@ func (sc *setupController) createControlNode(ctx context.Context, cf apcli.Facto
160
167
return err
161
168
}
162
169
163
- addresses , err := getControlNodeAddresses (name )
170
+ addresses , err := getControlNodeAddresses (nodeName )
164
171
if err != nil {
165
172
return err
166
173
}
0 commit comments