-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
needs-triageIndicates an issue lacks a `triage/foo` label and requires one.Indicates an issue lacks a `triage/foo` label and requires one.
Description
It is quite common that a separate out of band (OOB) network is used for BMCs. This can make it tricky to use virtualmedia with Ironic when deployed by IrSO. I want to support the following configuration:
- Provisioning network: 192.168.0.0/24 - no VLAN. Provisioning IP belongs here, dnsmasq provides DHCP here.
- OOB network: 192.168.1.0/24 - VLAN 2. No DHCP. BMCs live here. Ironic needs access to this network to communicate with them. IRONIC_HTTP_URL belongs here since the BMCs need to access virtualmedia through it.
Before IrSO, I have been using IRONIC_HTTP_URL to achieve this. I am not sure if it is the "correct" way, but it works. I simply make sure that the node where Ironic runs has an IP assigned that I can use and set the variable to it. Our keepalived image only supports a single IP currently so I have been doing it in other ways. However, I am hoping that we could add this also as a feature there.
I do not have a complete design ready in my head, but here is something as a discussion starter:
apiVersion: ironic.metal3.io/v1alpha1
kind: Ironic
metadata:
name: ironic
namespace: baremetal-operator-system
spec:
networking:
dhcp:
rangeBegin: "192.168.0.200"
rangeEnd: "192.168.0.220"
networkCIDR: "192.168.0.0/24"
interface: "eth0"
ipAddress: "192.168.0.100"
ipAddressManager: "keepalived"
imageServerIpAddress: "192.168.1.50" # new field
# imageServerPort: 80 # already implemented
# imageServerTLSPort: 443 # already implemented
keepalived: # new struct, requires support in keepalived scripts
- ipAddress: 192.168.0.100
interface: "eth0"
- ipAddress: 192.168.1.50
interface: "eth1"
# keepalivedOverrideConfig: | # alternative escape hatch
# vrrp_instance V_1 {
# state MASTER
# ...Metadata
Metadata
Assignees
Labels
needs-triageIndicates an issue lacks a `triage/foo` label and requires one.Indicates an issue lacks a `triage/foo` label and requires one.