Skip to content

Commit 35c5089

Browse files
author
Steven Hardy
committed
Revert "baremetal: send full ignition to masters"
This doesn't work for IPI baremetal deployments driven via hive, because there are firewall rules that prevent access to the bootstrap MCS from the pod running the installer. This was implemented in: openshift#4427 But we ran into problems making the same approach work for worker machines ref: openshift#4456 We're now looking at other approaches to resolve the network-config requirements driving that work, so switching back to the pointer config for masters seems reasonable, particularly given this issue discovered for hive deployments. Conflicts: pkg/tfvars/baremetal/baremetal.go This reverts commit 98dc381.
1 parent 60810de commit 35c5089

5 files changed

Lines changed: 26 additions & 86 deletions

File tree

data/data/baremetal/main.tf

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,11 @@ module "bootstrap" {
2626
module "masters" {
2727
source = "./masters"
2828

29-
master_count = var.master_count
30-
hosts = var.hosts
31-
properties = var.properties
32-
root_devices = var.root_devices
33-
driver_infos = var.driver_infos
34-
instance_infos = var.instance_infos
35-
master_ignition_url = var.master_ignition_url
36-
master_ignition_url_ca_cert = var.master_ignition_url_ca_cert
37-
master_ignition_url_headers = var.master_ignition_url_headers
29+
master_count = var.master_count
30+
ignition = var.ignition_master
31+
hosts = var.hosts
32+
properties = var.properties
33+
root_devices = var.root_devices
34+
driver_infos = var.driver_infos
35+
instance_infos = var.instance_infos
3836
}

data/data/baremetal/masters/main.tf

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,8 @@ resource "ironic_deployment" "openshift-master-deployment" {
4242
count.index,
4343
)
4444

45-
instance_info = var.instance_infos[count.index]
46-
user_data_url = var.master_ignition_url
47-
user_data_url_ca_cert = var.master_ignition_url_ca_cert
48-
user_data_url_headers = var.master_ignition_url_headers
45+
instance_info = var.instance_infos[count.index]
46+
user_data = var.ignition
4947
}
5048

5149
data "ironic_introspection" "openshift-master-introspection" {

data/data/baremetal/masters/variables.tf

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ variable "master_count" {
44
default = 3
55
}
66

7+
variable "ignition" {
8+
type = string
9+
description = "The content of the master ignition file"
10+
}
11+
712
variable "hosts" {
813
type = list(map(string))
914
description = "Hardware details for hosts"
@@ -28,18 +33,3 @@ variable "instance_infos" {
2833
type = list(map(string))
2934
description = "Instance information for hosts"
3035
}
31-
32-
variable "master_ignition_url" {
33-
type = string
34-
description = "The URL of the full ignition"
35-
}
36-
37-
variable "master_ignition_url_ca_cert" {
38-
type = string
39-
description = "Root CA cert of the full ignition URL"
40-
}
41-
42-
variable "master_ignition_url_headers" {
43-
type = map(string)
44-
description = "Headers to use when retrieving master_ignition_url"
45-
}

data/data/baremetal/variables-baremetal.tf

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,3 @@ variable "instance_infos" {
5757
type = list(map(string))
5858
description = "Instance information for hosts"
5959
}
60-
61-
variable "master_ignition_url" {
62-
type = string
63-
description = "The URL of the full ignition"
64-
}
65-
66-
variable "master_ignition_url_ca_cert" {
67-
type = string
68-
description = "Root CA cert of the full ignition URL"
69-
}
70-
71-
variable "master_ignition_url_headers" {
72-
type = map(string)
73-
description = "Headers to pass when retrieving master_ignition_url"
74-
}

pkg/tfvars/baremetal/baremetal.go

Lines changed: 12 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import (
99
"path"
1010
"strings"
1111

12-
igntypes "github.com/coreos/ignition/v2/config/v3_2/types"
13-
1412
"github.com/metal3-io/baremetal-operator/pkg/bmc"
1513
"github.com/metal3-io/baremetal-operator/pkg/hardware"
1614
"github.com/openshift/installer/pkg/tfvars/internal/cache"
@@ -28,10 +26,6 @@ type config struct {
2826
IronicUsername string `json:"ironic_username"`
2927
IronicPassword string `json:"ironic_password"`
3028

31-
MasterIgnitionURL string `json:"master_ignition_url,omitempty"`
32-
MasterIgnitionURLCACert string `json:"master_ignition_url_ca_cert,omitempty"`
33-
MasterIgnitionURLHeaders map[string]string `json:"master_ignition_url_headers,omitempty"`
34-
3529
// Data required for control plane deployment - several maps per host, because of terraform's limitations
3630
Hosts []map[string]interface{} `json:"hosts"`
3731
RootDevices []map[string]interface{} `json:"root_devices"`
@@ -174,44 +168,19 @@ func TFVars(libvirtURI, apiVIP, imageCacheIP, bootstrapOSImage, externalBridge,
174168
})
175169
}
176170

177-
var masterIgn igntypes.Config
178-
if err := json.Unmarshal([]byte(ignition), &masterIgn); err != nil {
179-
return nil, err
180-
}
181-
if len(masterIgn.Ignition.Config.Merge) == 0 {
182-
return nil, errors.Wrap(err, "Empty Merge section in master pointer ignition")
183-
}
184-
ignitionURL := *masterIgn.Ignition.Config.Merge[0].Source
185-
if len(masterIgn.Ignition.Security.TLS.CertificateAuthorities) == 0 {
186-
return nil, errors.Wrap(err, "Empty CertificateAuthorities section in master pointer ignition")
187-
}
188-
ignitionURLCACert := strings.TrimPrefix(
189-
*masterIgn.Ignition.Security.TLS.CertificateAuthorities[0].Source,
190-
"data:text/plain;charset=utf-8;base64,")
191-
// To return the same version as the stub config, the MCS requires a
192-
// header, otherwise we get 2.2.0, e.g:
193-
// "Accept: application/vnd.coreos.ignition+json; version=3.1.0"
194-
ignitionURLHeaders := map[string]string{
195-
"Accept": fmt.Sprintf("application/vnd.coreos.ignition+json;version=%s",
196-
masterIgn.Ignition.Version),
197-
}
198-
199171
cfg := &config{
200-
LibvirtURI: libvirtURI,
201-
IronicURI: fmt.Sprintf("http://%s/v1", net.JoinHostPort(apiVIP, "6385")),
202-
InspectorURI: fmt.Sprintf("http://%s/v1", net.JoinHostPort(apiVIP, "5050")),
203-
BootstrapOSImage: bootstrapOSImage,
204-
IronicUsername: ironicUsername,
205-
IronicPassword: ironicPassword,
206-
Hosts: hosts,
207-
Bridges: bridges,
208-
Properties: properties,
209-
DriverInfos: driverInfos,
210-
RootDevices: rootDevices,
211-
InstanceInfos: instanceInfos,
212-
MasterIgnitionURL: ignitionURL,
213-
MasterIgnitionURLCACert: ignitionURLCACert,
214-
MasterIgnitionURLHeaders: ignitionURLHeaders,
172+
LibvirtURI: libvirtURI,
173+
IronicURI: fmt.Sprintf("http://%s/v1", net.JoinHostPort(apiVIP, "6385")),
174+
InspectorURI: fmt.Sprintf("http://%s/v1", net.JoinHostPort(apiVIP, "5050")),
175+
BootstrapOSImage: bootstrapOSImage,
176+
IronicUsername: ironicUsername,
177+
IronicPassword: ironicPassword,
178+
Hosts: hosts,
179+
Bridges: bridges,
180+
Properties: properties,
181+
DriverInfos: driverInfos,
182+
RootDevices: rootDevices,
183+
InstanceInfos: instanceInfos,
215184
}
216185

217186
return json.MarshalIndent(cfg, "", " ")

0 commit comments

Comments
 (0)