Skip to content

Commit f2f128b

Browse files
committed
f
1 parent bacc22f commit f2f128b

File tree

18 files changed

+88
-123
lines changed

18 files changed

+88
-123
lines changed

api/controllers/install/controller.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ func NewInstallController(opts ...InstallControllerOption) (*InstallController,
173173

174174
if controller.installationManager == nil {
175175
controller.installationManager = installation.NewInstallationManager(
176-
installation.WithRuntimeConfig(controller.rc),
177176
installation.WithLogger(controller.logger),
178177
installation.WithInstallation(controller.install.Steps.Installation),
179178
installation.WithLicenseFile(controller.licenseFile),
@@ -185,7 +184,6 @@ func NewInstallController(opts ...InstallControllerOption) (*InstallController,
185184

186185
if controller.hostPreflightManager == nil {
187186
controller.hostPreflightManager = preflight.NewHostPreflightManager(
188-
preflight.WithRuntimeConfig(controller.rc),
189187
preflight.WithLogger(controller.logger),
190188
preflight.WithMetricsReporter(controller.metricsReporter),
191189
preflight.WithHostPreflightStore(preflight.NewMemoryStore(controller.install.Steps.HostPreflight)),
@@ -195,7 +193,6 @@ func NewInstallController(opts ...InstallControllerOption) (*InstallController,
195193

196194
if controller.infraManager == nil {
197195
controller.infraManager = infra.NewInfraManager(
198-
infra.WithRuntimeConfig(controller.rc),
199196
infra.WithLogger(controller.logger),
200197
infra.WithInfra(controller.install.Steps.Infra),
201198
infra.WithPassword(controller.password),

api/controllers/install/hostpreflight.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func (c *InstallController) RunHostPreflights(ctx context.Context, opts RunHostP
1515
ecDomains := utils.GetDomains(c.releaseData)
1616

1717
// Prepare host preflights
18-
hpf, err := c.hostPreflightManager.PrepareHostPreflights(ctx, preflight.PrepareHostPreflightOptions{
18+
hpf, err := c.hostPreflightManager.PrepareHostPreflights(ctx, c.rc, preflight.PrepareHostPreflightOptions{
1919
ReplicatedAppURL: netutils.MaybeAddHTTPS(ecDomains.ReplicatedAppDomain),
2020
ProxyRegistryURL: netutils.MaybeAddHTTPS(ecDomains.ProxyRegistryDomain),
2121
HostPreflightSpec: c.releaseData.HostPreflights,
@@ -28,7 +28,7 @@ func (c *InstallController) RunHostPreflights(ctx context.Context, opts RunHostP
2828
}
2929

3030
// Run host preflights
31-
return c.hostPreflightManager.RunHostPreflights(ctx, preflight.RunHostPreflightOptions{
31+
return c.hostPreflightManager.RunHostPreflights(ctx, c.rc, preflight.RunHostPreflightOptions{
3232
HostPreflightSpec: hpf,
3333
})
3434
}

api/controllers/install/infra.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func (c *InstallController) SetupInfra(ctx context.Context) error {
2727
}
2828
}
2929

30-
if err := c.infraManager.Install(ctx); err != nil {
30+
if err := c.infraManager.Install(ctx, c.rc); err != nil {
3131
return fmt.Errorf("install infra: %w", err)
3232
}
3333

api/controllers/install/installation.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ func (c *InstallController) GetInstallationConfig(ctx context.Context) (*types.I
2424
return nil, fmt.Errorf("set defaults: %w", err)
2525
}
2626

27-
if err := c.installationManager.ValidateConfig(config); err != nil {
27+
if err := c.installationManager.ValidateConfig(config, c.rc.ManagerPort()); err != nil {
2828
return nil, fmt.Errorf("validate: %w", err)
2929
}
3030

3131
return config, nil
3232
}
3333

3434
func (c *InstallController) ConfigureInstallation(ctx context.Context, config *types.InstallationConfig) error {
35-
if err := c.installationManager.ValidateConfig(config); err != nil {
35+
if err := c.installationManager.ValidateConfig(config, c.rc.ManagerPort()); err != nil {
3636
return fmt.Errorf("validate: %w", err)
3737
}
3838

@@ -70,7 +70,7 @@ func (c *InstallController) ConfigureInstallation(ctx context.Context, config *t
7070
return fmt.Errorf("set env vars: %w", err)
7171
}
7272

73-
if err := c.installationManager.ConfigureHost(ctx); err != nil {
73+
if err := c.installationManager.ConfigureHost(ctx, c.rc); err != nil {
7474
return fmt.Errorf("configure: %w", err)
7575
}
7676

api/integration/hostpreflights_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,11 @@ func TestPostRunHostPreflights(t *testing.T) {
176176

177177
// Create a host preflights manager with the mock runner
178178
pfManager := preflight.NewHostPreflightManager(
179-
preflight.WithRuntimeConfig(rc),
180179
preflight.WithPreflightRunner(runner),
181180
)
182181

183182
// Create an installation manager
184183
iManager := installation.NewInstallationManager(
185-
installation.WithRuntimeConfig(rc),
186184
installation.WithInstallationStore(installation.NewMemoryStore(inst)),
187185
)
188186

api/integration/install_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -933,7 +933,6 @@ func TestInstallWithAPIClient(t *testing.T) {
933933

934934
// Create a config manager
935935
installationManager := installation.NewInstallationManager(
936-
installation.WithRuntimeConfig(rc),
937936
installation.WithHostUtils(mockHostUtils),
938937
)
939938

api/internal/managers/infra/install.go

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func AlreadyInstalledError() error {
3939
)
4040
}
4141

42-
func (m *infraManager) Install(ctx context.Context) (finalErr error) {
42+
func (m *infraManager) Install(ctx context.Context, rc runtimeconfig.RuntimeConfig) (finalErr error) {
4343
m.mu.Lock()
4444
defer m.mu.Unlock()
4545

@@ -64,24 +64,24 @@ func (m *infraManager) Install(ctx context.Context) (finalErr error) {
6464
return fmt.Errorf("parse license: %w", err)
6565
}
6666

67-
if err := m.initComponentsList(license); err != nil {
67+
if err := m.initComponentsList(license, rc); err != nil {
6868
return fmt.Errorf("init components: %w", err)
6969
}
7070

7171
if err := m.setStatus(types.StateRunning, ""); err != nil {
7272
return fmt.Errorf("set status: %w", err)
7373
}
7474

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)
7777

7878
return nil
7979
}
8080

81-
func (m *infraManager) initComponentsList(license *kotsv1beta1.License) error {
81+
func (m *infraManager) initComponentsList(license *kotsv1beta1.License, rc runtimeconfig.RuntimeConfig) error {
8282
components := []types.InfraComponent{{Name: K0sComponentName}}
8383

84-
addOns := addons.GetAddOnsForInstall(m.rc, addons.InstallOptions{
84+
addOns := addons.GetAddOnsForInstall(rc, addons.InstallOptions{
8585
IsAirgap: m.airgapBundle != "",
8686
DisasterRecoveryEnabled: license.Spec.IsDisasterRecoverySupported,
8787
})
@@ -99,7 +99,7 @@ func (m *infraManager) initComponentsList(license *kotsv1beta1.License) error {
9999
return nil
100100
}
101101

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) {
103103
defer func() {
104104
if r := recover(); r != nil {
105105
finalErr = fmt.Errorf("panic: %v: %s", r, string(debug.Stack()))
@@ -115,7 +115,7 @@ func (m *infraManager) install(ctx context.Context, license *kotsv1beta1.License
115115
}
116116
}()
117117

118-
_, err := m.installK0s(ctx)
118+
_, err := m.installK0s(ctx, rc)
119119
if err != nil {
120120
return fmt.Errorf("install k0s: %w", err)
121121
}
@@ -130,18 +130,18 @@ func (m *infraManager) install(ctx context.Context, license *kotsv1beta1.License
130130
return fmt.Errorf("create metadata client: %w", err)
131131
}
132132

133-
hcli, err := m.getHelmClient()
133+
hcli, err := m.getHelmClient(rc)
134134
if err != nil {
135135
return fmt.Errorf("create helm client: %w", err)
136136
}
137137
defer hcli.Close()
138138

139-
in, err := m.recordInstallation(ctx, kcli, license)
139+
in, err := m.recordInstallation(ctx, kcli, license, rc)
140140
if err != nil {
141141
return fmt.Errorf("record installation: %w", err)
142142
}
143143

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 {
145145
return fmt.Errorf("install addons: %w", err)
146146
}
147147

@@ -160,7 +160,7 @@ func (m *infraManager) install(ctx context.Context, license *kotsv1beta1.License
160160
return nil
161161
}
162162

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) {
164164
componentName := K0sComponentName
165165

166166
if err := m.setComponentStatus(componentName, types.StateRunning, "Installing"); err != nil {
@@ -187,18 +187,18 @@ func (m *infraManager) installK0s(ctx context.Context) (k0sCfg *k0sv1beta1.Clust
187187
logFn := m.logFn("k0s")
188188

189189
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)
191191
if err != nil {
192192
return nil, fmt.Errorf("create config file: %w", err)
193193
}
194194

195195
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 {
197197
return nil, fmt.Errorf("create systemd unit files: %w", err)
198198
}
199199

200200
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 {
202202
return nil, fmt.Errorf("install cluster: %w", err)
203203
}
204204

@@ -220,7 +220,7 @@ func (m *infraManager) installK0s(ctx context.Context) (k0sCfg *k0sv1beta1.Clust
220220
}
221221

222222
logFn("adding registry to containerd")
223-
registryIP, err := registry.GetRegistryClusterIP(m.rc.ServiceCIDR())
223+
registryIP, err := registry.GetRegistryClusterIP(rc.ServiceCIDR())
224224
if err != nil {
225225
return nil, fmt.Errorf("get registry cluster IP: %w", err)
226226
}
@@ -231,7 +231,7 @@ func (m *infraManager) installK0s(ctx context.Context) (k0sCfg *k0sv1beta1.Clust
231231
return k0sCfg, nil
232232
}
233233

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) {
235235
logFn := m.logFn("metadata")
236236

237237
// get the configured custom domains
@@ -244,7 +244,7 @@ func (m *infraManager) recordInstallation(ctx context.Context, kcli client.Clien
244244
License: license,
245245
ConfigSpec: m.getECConfigSpec(),
246246
MetricsBaseURL: netutils.MaybeAddHTTPS(ecDomains.ReplicatedAppDomain),
247-
RuntimeConfig: m.rc.Get(),
247+
RuntimeConfig: rc.Get(),
248248
EndUserConfig: m.endUserConfig,
249249
})
250250
if err != nil {
@@ -259,7 +259,7 @@ func (m *infraManager) recordInstallation(ctx context.Context, kcli client.Clien
259259
return in, nil
260260
}
261261

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 {
263263
// get the configured custom domains
264264
ecDomains := utils.GetDomains(m.releaseData)
265265

@@ -290,7 +290,7 @@ func (m *infraManager) installAddOns(ctx context.Context, license *kotsv1beta1.L
290290
addons.WithKubernetesClient(kcli),
291291
addons.WithMetadataClient(mcli),
292292
addons.WithHelmClient(hcli),
293-
addons.WithRuntimeConfig(m.rc),
293+
addons.WithRuntimeConfig(rc),
294294
addons.WithProgressChannel(progressChan),
295295
)
296296

@@ -308,7 +308,7 @@ func (m *infraManager) installAddOns(ctx context.Context, license *kotsv1beta1.L
308308
EndUserConfigSpec: m.getEndUserConfigSpec(),
309309
KotsInstaller: func() error {
310310
opts := kotscli.InstallOptions{
311-
RuntimeConfig: m.rc,
311+
RuntimeConfig: rc,
312312
AppSlug: license.Spec.AppSlug,
313313
LicenseFile: m.licenseFile,
314314
Namespace: runtimeconfig.KotsadmNamespace,

api/internal/managers/infra/manager.go

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,13 @@ var _ InfraManager = &infraManager{}
1717
// InfraManager provides methods for managing infrastructure setup
1818
type InfraManager interface {
1919
Get() (*types.Infra, error)
20-
Install(ctx context.Context) error
20+
Install(ctx context.Context, rc runtimeconfig.RuntimeConfig) error
2121
}
2222

2323
// infraManager is an implementation of the InfraManager interface
2424
type infraManager struct {
2525
infra *types.Infra
2626
infraStore Store
27-
rc runtimeconfig.RuntimeConfig
2827
password string
2928
tlsConfig types.TLSConfig
3029
licenseFile string
@@ -38,12 +37,6 @@ type infraManager struct {
3837

3938
type InfraManagerOption func(*infraManager)
4039

41-
func WithRuntimeConfig(rc runtimeconfig.RuntimeConfig) InfraManagerOption {
42-
return func(c *infraManager) {
43-
c.rc = rc
44-
}
45-
}
46-
4740
func WithLogger(logger logrus.FieldLogger) InfraManagerOption {
4841
return func(c *infraManager) {
4942
c.logger = logger
@@ -112,10 +105,6 @@ func NewInfraManager(opts ...InfraManagerOption) *infraManager {
112105
opt(manager)
113106
}
114107

115-
if manager.rc == nil {
116-
manager.rc = runtimeconfig.New(nil)
117-
}
118-
119108
if manager.logger == nil {
120109
manager.logger = logger.NewDiscardLogger()
121110
}

api/internal/managers/infra/manager_mock.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55

66
"github.com/replicatedhq/embedded-cluster/api/types"
7+
"github.com/replicatedhq/embedded-cluster/pkg/runtimeconfig"
78
"github.com/stretchr/testify/mock"
89
)
910

@@ -14,8 +15,8 @@ type MockInfraManager struct {
1415
mock.Mock
1516
}
1617

17-
func (m *MockInfraManager) Install(ctx context.Context) error {
18-
args := m.Called(ctx)
18+
func (m *MockInfraManager) Install(ctx context.Context, rc runtimeconfig.RuntimeConfig) error {
19+
args := m.Called(ctx, rc)
1920
return args.Error(0)
2021
}
2122

api/internal/managers/infra/util.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
ecv1beta1 "github.com/replicatedhq/embedded-cluster/kinds/apis/v1beta1"
1010
"github.com/replicatedhq/embedded-cluster/pkg/helm"
1111
"github.com/replicatedhq/embedded-cluster/pkg/kubeutils"
12+
"github.com/replicatedhq/embedded-cluster/pkg/runtimeconfig"
1213
"github.com/replicatedhq/embedded-cluster/pkg/versions"
1314
"sigs.k8s.io/controller-runtime/pkg/client"
1415
)
@@ -25,13 +26,13 @@ func (m *infraManager) waitForNode(ctx context.Context, kcli client.Client) erro
2526
return nil
2627
}
2728

28-
func (m *infraManager) getHelmClient() (helm.Client, error) {
29+
func (m *infraManager) getHelmClient(rc runtimeconfig.RuntimeConfig) (helm.Client, error) {
2930
airgapChartsPath := ""
3031
if m.airgapBundle != "" {
31-
airgapChartsPath = m.rc.EmbeddedClusterChartsSubDir()
32+
airgapChartsPath = rc.EmbeddedClusterChartsSubDir()
3233
}
3334
hcli, err := helm.NewClient(helm.HelmOptions{
34-
KubeConfig: m.rc.PathToKubeConfig(),
35+
KubeConfig: rc.PathToKubeConfig(),
3536
K0sVersion: versions.K0sVersion,
3637
AirgapPath: airgapChartsPath,
3738
LogFn: m.logFn("helm"),

0 commit comments

Comments
 (0)