Dual-stack support #213
Reference in New Issue
Block a user
No description provided.
Delete Branch "mchiappero/Factory:dual-stack"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Dual stack changes, opening mainly as I need some automated build.
0bc2daef56
to412c22c5dc
412c22c5dc
to5488424be6
81f7820063
to84c10d362d
84c10d362d
to64dbd45461
c508493bd6
to39cc72476a
39cc72476a
to3075872a0c
3075872a0c
toe6481eb220
e6481eb220
to653a8e5b2c
653a8e5b2c
to1eb9fd6318
1eb9fd6318
tof98d3d5c1e
f98d3d5c1e
toa3096005fa
a3096005fa
to84174e428c
84174e428c
to8630cca617
8630cca617
todbc8e0975b
dbc8e0975b
tobb815874ae
9c526f084e
tof260540edb
f260540edb
to3b51a9d144
WIP: dual-stackto dual-stackOkay, I think it's good to go now, if you could PTAL... There are only a couple of things I would like to explore, that is, 1) the use of IRONIC_URL_HOSTNAME in ironic.conf for CONDUCTOR_HOST and host_ip when available 2) the use of ::1 when we have IRONIC_IPV6 for ProxyPass in Apache.
Other than that, I have a few manual tests I would like to run before being reasonably safe it's all right, but it's starting to look good to me, so take a look and let me know if there is anything that doesn't look good to you.
On a side note, setting the LISTEN_ALL_INTERFACES to false requires a change for the liveness and readiness probes... I wonder if we should let the user choose if to bind on localhost in addition to the provisioning/hostname IP(s). What do you think?
Oh, and need to reword a few commit messages.
3b51a9d144
to54357a748a
54357a748a
to6dd551f7db
6dd551f7db
toe5f765ec69
LGTM overall, few things need attention, would be nice to have a matching PR upstream, so that we keep in sync as much as possible.
@@ -24,3 +24,3 @@
#!ArchExclusiveLine: aarch64
RUN if [ "$(uname -m)" = "aarch64" ];then \
zypper --installroot /installroot --non-interactive install --no-recommends python311-devel python311 python311-pip python311-sushy-oem-idrac python311-proliantutils python311-sushy python311-pyinotify python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic; \
zypper --installroot /installroot --non-interactive install --no-recommends python311-devel python311 python311-pip python311-sushy-oem-idrac python311-proliantutils python311-sushy python311-pyinotify python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi ipcalc ipmitool iproute2 bind-utils procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic; \
nit: might be easier to maintain by having a first RUN instruction with all packages common for the two architectures, then a RUN line for each architecture with arch-specific items
Or a variable pulled by both, to avoid unnecessary layers in the container.
The layers here are in first stage container, and OBS will not be able to follow a variable here, so better split in two here
@@ -43,4 +124,1 @@
local interface="provisioning"
if [[ -n "${PROVISIONING_IP}" ]]; then
We may want to keep this kind of behavior of setting the interface from the IP as this information is used by PXE setup.
It still works that way, the interface name is derived at wait_for_interface_or_ip now from the PROVISIONING_IP (fixing a lookup at a point where the IP might not be present anyway) and set into PROVISIONING_INTERFACE . What changes is the use of "provisioning" as default value, which will result in an obscure error when looking it up on the system: it's best to fail cleanly.
That being said, since PROVISIONING_INTERFACE is an input, it should not be changed, it's one of the many hints of how little design and thinking it has gone through these scripts.
@nbelouin @steven.hardy Regarding the VirtualHost directive for the Ironic API, I wonder if it shouldn't include any IRONIC_EXTERNAL_IP or IRONIC_EXTERNAL_HTTP_URL. If so... it has always been buggy then?
Edit: I mean, listen to ALL, but Ironic API that should be reachable by both the provisioning network (either by hostname or IPs) and the BMC one (either by hostname or IPs). Unfortunately Ironic can have many different combinations and corner cases...
dual-stackto Dual-stack supporte5f765ec69
toe2d38a867c