You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support Let's Encrypt certs for Ironic HTTPS vmedia server
Add optional lzBmcHostname variable so that publicly trusted certificates
(e.g. Let's Encrypt) can be used for the Ironic HTTPS vmedia server.
Let's Encrypt only issues DNS SANs, not IP SANs, so the previous
requirement that the cert SAN cover lzBmcIP was incompatible with LE.
When lzBmcHostname is set, IRONIC_EXTERNAL_IP is set to the hostname
instead of lzBmcIP, producing vmedia URLs of the form
https://<hostname>:6183/... that the BMC can resolve via DNS. The
PROVISIONING_IP (used by Apache for socket binding) remains lzBmcIP.
Cert SAN validation in validations.sh is updated to check against the
hostname when set, falling back to lzBmcIP for the existing IP-SAN flow.
generate_ironic_cert.sh also emits a DNS+IP SAN when a hostname is
configured, keeping CI self-signed certs working in both modes.
Signed-off-by: Rafa Porres Molina <rporresm@redhat.com>
Assisted-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/CONFIGURATION_REFERENCE.md
+22-1Lines changed: 22 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -233,6 +233,25 @@ lzBmcIP: 100.64.1.10
233
233
- ISO will be served at `http://{{ lzBmcIP }}/assisted/agent.x86_64.iso`
234
234
- Ensure HTTP server (Apache/Nginx) is running on this host
235
235
236
+
#### `lzBmcHostname`
237
+
238
+
**Description**: DNS hostname for the LZ BMC interface. Optional. When set, Ironic constructs HTTPS vmedia URLs using this hostname instead of `lzBmcIP`.
239
+
240
+
**Type**: String (DNS hostname)
241
+
242
+
**Required**: No. Set this when using publicly trusted TLS certificates (e.g. Let's Encrypt) for the Ironic vmedia server. Let's Encrypt only issues DNS SANs, not IP SANs, so the certificate SAN must match a hostname rather than an IP address.
243
+
244
+
**Example**:
245
+
```yaml
246
+
lzBmcHostname: mirror.example.com
247
+
```
248
+
249
+
**Notes**:
250
+
- The hostname must resolve to `lzBmcIP` from the BMC network
251
+
- When set, `ironicHTTPSCertificate` must have a DNS SAN matching this hostname
252
+
- When not set, the IP-based flow is used and `ironicHTTPSCertificate` must have an IP SAN matching `lzBmcIP`
253
+
- `PROVISIONING_IP`(used for Apache binding) always remains `lzBmcIP`; only the vmedia URL changes
254
+
236
255
#### `defaultNtpServers`
237
256
238
257
**Description**: Optional list of additional NTP server addresses for cluster nodes. When not set, the cluster uses its default NTP sources.
@@ -1098,7 +1117,9 @@ instead of plain HTTP.
1098
1117
**Type**: String (PEM format)
1099
1118
1100
1119
**Required**: Yes, when HTTPS vmedia is desired. Must be provided together
1101
-
with `ironicHTTPSKey`. The certificate SAN must cover `lzBmcIP`.
1120
+
with `ironicHTTPSKey`. The certificate SAN must cover `lzBmcHostname`
1121
+
(DNS SAN, for publicly trusted certs such as Let's Encrypt) or `lzBmcIP`
1122
+
(IP SAN, for private CA certs) depending on which is configured.
0 commit comments