Skip to content

Commit 330aa38

Browse files
committed
inject ClusterInfo into CaBundle asset
1 parent a11a5fc commit 330aa38

File tree

2 files changed

+105
-5
lines changed

2 files changed

+105
-5
lines changed

pkg/asset/agent/mirror/cabundle.go

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99

1010
"github.com/openshift/installer/pkg/asset"
1111
"github.com/openshift/installer/pkg/asset/agent"
12+
"github.com/openshift/installer/pkg/asset/agent/joiner"
13+
"github.com/openshift/installer/pkg/asset/agent/workflow"
1214
"github.com/openshift/installer/pkg/asset/manifests"
1315
)
1416

@@ -33,27 +35,44 @@ func (*CaBundle) Name() string {
3335
// the asset.
3436
func (*CaBundle) Dependencies() []asset.Asset {
3537
return []asset.Asset{
38+
&workflow.AgentWorkflow{},
39+
&joiner.ClusterInfo{},
3640
&agent.OptionalInstallConfig{},
3741
}
3842
}
3943

4044
// Generate generates the Mirror Registries certificate file from install-config.
4145
func (i *CaBundle) Generate(dependencies asset.Parents) error {
46+
agentWorkflow := &workflow.AgentWorkflow{}
47+
clusterInfo := &joiner.ClusterInfo{}
4248
installConfig := &agent.OptionalInstallConfig{}
43-
dependencies.Get(installConfig)
44-
if !installConfig.Supplied {
45-
return nil
49+
dependencies.Get(installConfig, agentWorkflow, clusterInfo)
50+
51+
var additionalTrustBundle string
52+
53+
switch agentWorkflow.Workflow {
54+
case workflow.AgentWorkflowTypeInstall:
55+
if !installConfig.Supplied {
56+
return nil
57+
}
58+
additionalTrustBundle = installConfig.Config.AdditionalTrustBundle
59+
60+
case workflow.AgentWorkflowTypeAddNodes:
61+
additionalTrustBundle = clusterInfo.UserCaBundle
62+
63+
default:
64+
return fmt.Errorf("AgentWorkflowType value not supported: %s", agentWorkflow.Workflow)
4665
}
4766

48-
if installConfig.Config.AdditionalTrustBundle == "" {
67+
if additionalTrustBundle == "" {
4968
i.File = &asset.File{
5069
Filename: CaBundleFilename,
5170
Data: []byte{},
5271
}
5372
return nil
5473
}
5574

56-
return i.parseCertificates(installConfig.Config.AdditionalTrustBundle)
75+
return i.parseCertificates(additionalTrustBundle)
5776
}
5877

5978
func (i *CaBundle) parseCertificates(certs string) error {

pkg/asset/agent/mirror/cabundle_test.go

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import (
1111

1212
"github.com/openshift/installer/pkg/asset"
1313
"github.com/openshift/installer/pkg/asset/agent"
14+
"github.com/openshift/installer/pkg/asset/agent/joiner"
15+
"github.com/openshift/installer/pkg/asset/agent/workflow"
1416
"github.com/openshift/installer/pkg/asset/installconfig"
1517
"github.com/openshift/installer/pkg/asset/mock"
1618
"github.com/openshift/installer/pkg/types"
@@ -27,12 +29,16 @@ func TestCaBundle_Generate(t *testing.T) {
2729
{
2830
name: "missing-config",
2931
dependencies: []asset.Asset{
32+
&workflow.AgentWorkflow{Workflow: workflow.AgentWorkflowTypeInstall},
33+
&joiner.ClusterInfo{},
3034
&agent.OptionalInstallConfig{},
3135
},
3236
},
3337
{
3438
name: "default",
3539
dependencies: []asset.Asset{
40+
&workflow.AgentWorkflow{Workflow: workflow.AgentWorkflowTypeInstall},
41+
&joiner.ClusterInfo{},
3642
&agent.OptionalInstallConfig{
3743
Supplied: true,
3844
AssetBase: installconfig.AssetBase{
@@ -48,6 +54,8 @@ func TestCaBundle_Generate(t *testing.T) {
4854
{
4955
name: "additional-trust-bundle",
5056
dependencies: []asset.Asset{
57+
&workflow.AgentWorkflow{Workflow: workflow.AgentWorkflowTypeInstall},
58+
&joiner.ClusterInfo{},
5159
&agent.OptionalInstallConfig{
5260
Supplied: true,
5361
AssetBase: installconfig.AssetBase{
@@ -103,6 +111,79 @@ A0Mj0TLtcTdtaJFoOrnQuD/k0/1d+cMiYGTSaT5XK/unARqGEMd4BlWPh5P3SflV
103111
S655uiFW5AX2wDVUcQEDCOiEn6SI9DTt5oQjWPMxPf+rEyfQ2f1QwVez7cyr6Qc5
104112
OIUk31HnM/Fj
105113
-----END CERTIFICATE-----
114+
`,
115+
},
116+
117+
{
118+
name: "add-nodes command - missing-config",
119+
dependencies: []asset.Asset{
120+
&workflow.AgentWorkflow{Workflow: workflow.AgentWorkflowTypeAddNodes},
121+
&joiner.ClusterInfo{},
122+
&agent.OptionalInstallConfig{},
123+
},
124+
},
125+
{
126+
name: "add-nodes command - default",
127+
dependencies: []asset.Asset{
128+
&workflow.AgentWorkflow{Workflow: workflow.AgentWorkflowTypeAddNodes},
129+
&joiner.ClusterInfo{
130+
Namespace: "cluster-0",
131+
},
132+
&agent.OptionalInstallConfig{},
133+
},
134+
},
135+
{
136+
name: "add-nodes command - additional-trust-bundle",
137+
dependencies: []asset.Asset{
138+
&workflow.AgentWorkflow{Workflow: workflow.AgentWorkflowTypeAddNodes},
139+
&joiner.ClusterInfo{
140+
Namespace: "cluster-0",
141+
UserCaBundle: `-----BEGIN CERTIFICATE-----
142+
MIIDZTCCAk2gAwIBAgIURbA8lR+5xlJZUoOXK66AHFWd3uswDQYJKoZIhvcNAQEL
143+
BQAwQjELMAkGA1UEBhMCWFgxFTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UE
144+
CgwTRGVmYXVsdCBDb21wYW55IEx0ZDAeFw0yMjA3MDgxOTUzMTVaFw0yMjA4MDcx
145+
OTUzMTVaMEIxCzAJBgNVBAYTAlhYMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAa
146+
BgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
147+
DwAwggEKAoIBAQCroH9c2PLWI0O/nBrmKtS2IuReyWaR0DOMJY7C/vc12l9zlH0D
148+
xTOUfEtdqRktjVsUn1vIIiFakxd0QLIPcMyKplmbavIBUQp+MZr0pNVX+lwcctbA
149+
7FVHEnbWYNVepoV7kZkTVvMXAqFylMXU4gDmuZzIxhVMMxjialJNED+3ngqvX4w3
150+
4q4KSk1ytaHGwjREIErwPJjv5PK48KVJL2nlCuA+tbxu1r8eVkOUvZlxAuNNXk/U
151+
mf3QX5EiUlTtsmRAct6fIUT3jkrsHSS/tZ66EYJ9Q0OBoX2lL/Msmi27OQvA7uYn
152+
uqYlwJzU43tCsiip9E9z/UrLcMYyXx3oPJyPAgMBAAGjUzBRMB0GA1UdDgQWBBTI
153+
ahE8DDT4T1vta6cXVVaRjnel0zAfBgNVHSMEGDAWgBTIahE8DDT4T1vta6cXVVaR
154+
jnel0zAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCQbsMtPFkq
155+
PxwOAIds3IoupuyIKmsF32ECEH/OlS+7Sj7MUJnGTQrwgjrsVS5sl8AmnGx4hPdL
156+
VX98nEcKMNkph3Hkvh4EvgjSfmYGUXuJBcYU5jqNQrlrGv37rEf5FnvdHV1F3MG8
157+
A0Mj0TLtcTdtaJFoOrnQuD/k0/1d+cMiYGTSaT5XK/unARqGEMd4BlWPh5P3SflV
158+
/Vy2hHlMpv7OcZ8yaAI3htENZLus+L5kjHWKu6dxlPHKu6ef5k64su2LTNE07Vr9
159+
S655uiFW5AX2wDVUcQEDCOiEn6SI9DTt5oQjWPMxPf+rEyfQ2f1QwVez7cyr6Qc5
160+
OIUk31HnM/Fj
161+
-----END CERTIFICATE-----
162+
`,
163+
},
164+
&agent.OptionalInstallConfig{},
165+
},
166+
expectedConfig: `-----BEGIN CERTIFICATE-----
167+
MIIDZTCCAk2gAwIBAgIURbA8lR+5xlJZUoOXK66AHFWd3uswDQYJKoZIhvcNAQEL
168+
BQAwQjELMAkGA1UEBhMCWFgxFTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UE
169+
CgwTRGVmYXVsdCBDb21wYW55IEx0ZDAeFw0yMjA3MDgxOTUzMTVaFw0yMjA4MDcx
170+
OTUzMTVaMEIxCzAJBgNVBAYTAlhYMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAa
171+
BgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
172+
DwAwggEKAoIBAQCroH9c2PLWI0O/nBrmKtS2IuReyWaR0DOMJY7C/vc12l9zlH0D
173+
xTOUfEtdqRktjVsUn1vIIiFakxd0QLIPcMyKplmbavIBUQp+MZr0pNVX+lwcctbA
174+
7FVHEnbWYNVepoV7kZkTVvMXAqFylMXU4gDmuZzIxhVMMxjialJNED+3ngqvX4w3
175+
4q4KSk1ytaHGwjREIErwPJjv5PK48KVJL2nlCuA+tbxu1r8eVkOUvZlxAuNNXk/U
176+
mf3QX5EiUlTtsmRAct6fIUT3jkrsHSS/tZ66EYJ9Q0OBoX2lL/Msmi27OQvA7uYn
177+
uqYlwJzU43tCsiip9E9z/UrLcMYyXx3oPJyPAgMBAAGjUzBRMB0GA1UdDgQWBBTI
178+
ahE8DDT4T1vta6cXVVaRjnel0zAfBgNVHSMEGDAWgBTIahE8DDT4T1vta6cXVVaR
179+
jnel0zAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCQbsMtPFkq
180+
PxwOAIds3IoupuyIKmsF32ECEH/OlS+7Sj7MUJnGTQrwgjrsVS5sl8AmnGx4hPdL
181+
VX98nEcKMNkph3Hkvh4EvgjSfmYGUXuJBcYU5jqNQrlrGv37rEf5FnvdHV1F3MG8
182+
A0Mj0TLtcTdtaJFoOrnQuD/k0/1d+cMiYGTSaT5XK/unARqGEMd4BlWPh5P3SflV
183+
/Vy2hHlMpv7OcZ8yaAI3htENZLus+L5kjHWKu6dxlPHKu6ef5k64su2LTNE07Vr9
184+
S655uiFW5AX2wDVUcQEDCOiEn6SI9DTt5oQjWPMxPf+rEyfQ2f1QwVez7cyr6Qc5
185+
OIUk31HnM/Fj
186+
-----END CERTIFICATE-----
106187
`,
107188
},
108189
}

0 commit comments

Comments
 (0)