@@ -39,7 +39,7 @@ func AlreadyInstalledError() error {
39
39
)
40
40
}
41
41
42
- func (m * infraManager ) Install (ctx context.Context ) (finalErr error ) {
42
+ func (m * infraManager ) Install (ctx context.Context , rc runtimeconfig. RuntimeConfig ) (finalErr error ) {
43
43
m .mu .Lock ()
44
44
defer m .mu .Unlock ()
45
45
@@ -64,24 +64,24 @@ func (m *infraManager) Install(ctx context.Context) (finalErr error) {
64
64
return fmt .Errorf ("parse license: %w" , err )
65
65
}
66
66
67
- if err := m .initComponentsList (license ); err != nil {
67
+ if err := m .initComponentsList (license , rc ); err != nil {
68
68
return fmt .Errorf ("init components: %w" , err )
69
69
}
70
70
71
71
if err := m .setStatus (types .StateRunning , "" ); err != nil {
72
72
return fmt .Errorf ("set status: %w" , err )
73
73
}
74
74
75
- // Run install in background
76
- go m .install (context .Background (), license )
75
+ // Background context is used to avoid canceling the operation if the context is canceled
76
+ go m .install (context .Background (), license , rc )
77
77
78
78
return nil
79
79
}
80
80
81
- func (m * infraManager ) initComponentsList (license * kotsv1beta1.License ) error {
81
+ func (m * infraManager ) initComponentsList (license * kotsv1beta1.License , rc runtimeconfig. RuntimeConfig ) error {
82
82
components := []types.InfraComponent {{Name : K0sComponentName }}
83
83
84
- addOns := addons .GetAddOnsForInstall (m . rc , addons.InstallOptions {
84
+ addOns := addons .GetAddOnsForInstall (rc , addons.InstallOptions {
85
85
IsAirgap : m .airgapBundle != "" ,
86
86
DisasterRecoveryEnabled : license .Spec .IsDisasterRecoverySupported ,
87
87
})
@@ -99,7 +99,7 @@ func (m *infraManager) initComponentsList(license *kotsv1beta1.License) error {
99
99
return nil
100
100
}
101
101
102
- func (m * infraManager ) install (ctx context.Context , license * kotsv1beta1.License ) (finalErr error ) {
102
+ func (m * infraManager ) install (ctx context.Context , license * kotsv1beta1.License , rc runtimeconfig. RuntimeConfig ) (finalErr error ) {
103
103
defer func () {
104
104
if r := recover (); r != nil {
105
105
finalErr = fmt .Errorf ("panic: %v: %s" , r , string (debug .Stack ()))
@@ -115,7 +115,7 @@ func (m *infraManager) install(ctx context.Context, license *kotsv1beta1.License
115
115
}
116
116
}()
117
117
118
- _ , err := m .installK0s (ctx )
118
+ _ , err := m .installK0s (ctx , rc )
119
119
if err != nil {
120
120
return fmt .Errorf ("install k0s: %w" , err )
121
121
}
@@ -130,18 +130,18 @@ func (m *infraManager) install(ctx context.Context, license *kotsv1beta1.License
130
130
return fmt .Errorf ("create metadata client: %w" , err )
131
131
}
132
132
133
- hcli , err := m .getHelmClient ()
133
+ hcli , err := m .getHelmClient (rc )
134
134
if err != nil {
135
135
return fmt .Errorf ("create helm client: %w" , err )
136
136
}
137
137
defer hcli .Close ()
138
138
139
- in , err := m .recordInstallation (ctx , kcli , license )
139
+ in , err := m .recordInstallation (ctx , kcli , license , rc )
140
140
if err != nil {
141
141
return fmt .Errorf ("record installation: %w" , err )
142
142
}
143
143
144
- if err := m .installAddOns (ctx , license , kcli , mcli , hcli ); err != nil {
144
+ if err := m .installAddOns (ctx , license , kcli , mcli , hcli , rc ); err != nil {
145
145
return fmt .Errorf ("install addons: %w" , err )
146
146
}
147
147
@@ -160,7 +160,7 @@ func (m *infraManager) install(ctx context.Context, license *kotsv1beta1.License
160
160
return nil
161
161
}
162
162
163
- func (m * infraManager ) installK0s (ctx context.Context ) (k0sCfg * k0sv1beta1.ClusterConfig , finalErr error ) {
163
+ func (m * infraManager ) installK0s (ctx context.Context , rc runtimeconfig. RuntimeConfig ) (k0sCfg * k0sv1beta1.ClusterConfig , finalErr error ) {
164
164
componentName := K0sComponentName
165
165
166
166
if err := m .setComponentStatus (componentName , types .StateRunning , "Installing" ); err != nil {
@@ -187,18 +187,18 @@ func (m *infraManager) installK0s(ctx context.Context) (k0sCfg *k0sv1beta1.Clust
187
187
logFn := m .logFn ("k0s" )
188
188
189
189
logFn ("creating k0s configuration file" )
190
- k0sCfg , err := k0s .WriteK0sConfig (ctx , m . rc .NetworkInterface (), m .airgapBundle , m . rc .PodCIDR (), m . rc .ServiceCIDR (), m .endUserConfig , nil )
190
+ k0sCfg , err := k0s .WriteK0sConfig (ctx , rc .NetworkInterface (), m .airgapBundle , rc .PodCIDR (), rc .ServiceCIDR (), m .endUserConfig , nil )
191
191
if err != nil {
192
192
return nil , fmt .Errorf ("create config file: %w" , err )
193
193
}
194
194
195
195
logFn ("creating systemd unit files" )
196
- if err := hostutils .CreateSystemdUnitFiles (ctx , m .logger , m . rc , false ); err != nil {
196
+ if err := hostutils .CreateSystemdUnitFiles (ctx , m .logger , rc , false ); err != nil {
197
197
return nil , fmt .Errorf ("create systemd unit files: %w" , err )
198
198
}
199
199
200
200
logFn ("installing k0s" )
201
- if err := k0s .Install (m . rc , m . rc .NetworkInterface ()); err != nil {
201
+ if err := k0s .Install (rc , rc .NetworkInterface ()); err != nil {
202
202
return nil , fmt .Errorf ("install cluster: %w" , err )
203
203
}
204
204
@@ -220,7 +220,7 @@ func (m *infraManager) installK0s(ctx context.Context) (k0sCfg *k0sv1beta1.Clust
220
220
}
221
221
222
222
logFn ("adding registry to containerd" )
223
- registryIP , err := registry .GetRegistryClusterIP (m . rc .ServiceCIDR ())
223
+ registryIP , err := registry .GetRegistryClusterIP (rc .ServiceCIDR ())
224
224
if err != nil {
225
225
return nil , fmt .Errorf ("get registry cluster IP: %w" , err )
226
226
}
@@ -231,7 +231,7 @@ func (m *infraManager) installK0s(ctx context.Context) (k0sCfg *k0sv1beta1.Clust
231
231
return k0sCfg , nil
232
232
}
233
233
234
- func (m * infraManager ) recordInstallation (ctx context.Context , kcli client.Client , license * kotsv1beta1.License ) (* ecv1beta1.Installation , error ) {
234
+ func (m * infraManager ) recordInstallation (ctx context.Context , kcli client.Client , license * kotsv1beta1.License , rc runtimeconfig. RuntimeConfig ) (* ecv1beta1.Installation , error ) {
235
235
logFn := m .logFn ("metadata" )
236
236
237
237
// get the configured custom domains
@@ -244,7 +244,7 @@ func (m *infraManager) recordInstallation(ctx context.Context, kcli client.Clien
244
244
License : license ,
245
245
ConfigSpec : m .getECConfigSpec (),
246
246
MetricsBaseURL : netutils .MaybeAddHTTPS (ecDomains .ReplicatedAppDomain ),
247
- RuntimeConfig : m . rc .Get (),
247
+ RuntimeConfig : rc .Get (),
248
248
EndUserConfig : m .endUserConfig ,
249
249
})
250
250
if err != nil {
@@ -259,7 +259,7 @@ func (m *infraManager) recordInstallation(ctx context.Context, kcli client.Clien
259
259
return in , nil
260
260
}
261
261
262
- func (m * infraManager ) installAddOns (ctx context.Context , license * kotsv1beta1.License , kcli client.Client , mcli metadata.Interface , hcli helm.Client ) error {
262
+ func (m * infraManager ) installAddOns (ctx context.Context , license * kotsv1beta1.License , kcli client.Client , mcli metadata.Interface , hcli helm.Client , rc runtimeconfig. RuntimeConfig ) error {
263
263
// get the configured custom domains
264
264
ecDomains := utils .GetDomains (m .releaseData )
265
265
@@ -290,7 +290,7 @@ func (m *infraManager) installAddOns(ctx context.Context, license *kotsv1beta1.L
290
290
addons .WithKubernetesClient (kcli ),
291
291
addons .WithMetadataClient (mcli ),
292
292
addons .WithHelmClient (hcli ),
293
- addons .WithRuntimeConfig (m . rc ),
293
+ addons .WithRuntimeConfig (rc ),
294
294
addons .WithProgressChannel (progressChan ),
295
295
)
296
296
@@ -308,7 +308,7 @@ func (m *infraManager) installAddOns(ctx context.Context, license *kotsv1beta1.L
308
308
EndUserConfigSpec : m .getEndUserConfigSpec (),
309
309
KotsInstaller : func () error {
310
310
opts := kotscli.InstallOptions {
311
- RuntimeConfig : m . rc ,
311
+ RuntimeConfig : rc ,
312
312
AppSlug : license .Spec .AppSlug ,
313
313
LicenseFile : m .licenseFile ,
314
314
Namespace : runtimeconfig .KotsadmNamespace ,
0 commit comments