Skip to content

Commit 819abff

Browse files
committed
Stop running auxiliary containers with maximum priveleges
None of the Metal3 components actually require --privileged. Instead, disable the SELinux isolation to allow the containers to mount host directories. Also don't expose vbmc to the host networking. For this all to work, stop using a pod for these containers. I'm not sure why we even do that in the first place.
1 parent e20da06 commit 819abff

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

04_setup_ironic.sh

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -171,14 +171,6 @@ for name in ironic ironic-api ironic-conductor ironic-inspector dnsmasq httpd-${
171171
sudo podman ps --all | grep -w " $name$" && sudo podman rm $name -f
172172
done
173173

174-
# Remove existing pod
175-
if sudo podman pod exists ironic-pod ; then
176-
sudo podman pod rm ironic-pod -f
177-
fi
178-
179-
# Create pod
180-
sudo podman pod create -n ironic-pod
181-
182174
IRONIC_IMAGE=${IRONIC_LOCAL_IMAGE:-$IRONIC_IMAGE}
183175

184176
for IMAGE in ${IRONIC_IMAGE} ${VBMC_IMAGE} ${SUSHY_TOOLS_IMAGE} ; do
@@ -205,7 +197,7 @@ fi
205197

206198
# cached images to the bootstrap VM
207199
sudo -E podman pull --authfile "${PULL_SECRET_FILE}" "${IRONIC_IMAGE}" || echo "WARNING: Could not pull latest $IRONIC_IMAGE; will try to use cached images instead"
208-
sudo podman run -d --net host --privileged --name httpd-${PROVISIONING_NETWORK_NAME} --pod ironic-pod \
200+
sudo podman run -d --net host --name httpd-${PROVISIONING_NETWORK_NAME} \
209201
--env PROVISIONING_INTERFACE=${PROVISIONING_NETWORK_NAME} \
210202
-v $IRONIC_DATA_DIR:/shared --entrypoint /bin/runhttpd ${IRONIC_IMAGE}
211203

@@ -214,8 +206,8 @@ if [ -n "${IRONIC_IPA_DOWNLOADER_LOCAL_IMAGE:-}" ];
214206
then
215207
sudo -E podman pull --authfile $PULL_SECRET_FILE $IRONIC_IPA_DOWNLOADER_LOCAL_IMAGE
216208

217-
sudo podman run -d --net host --privileged --name ipa-downloader --pod ironic-pod \
218-
-v $IRONIC_DATA_DIR:/shared ${IRONIC_IPA_DOWNLOADER_LOCAL_IMAGE} /usr/local/bin/get-resource.sh
209+
sudo podman run -d --name ipa-downloader -v $IRONIC_DATA_DIR:/shared \
210+
${IRONIC_IPA_DOWNLOADER_LOCAL_IMAGE} /usr/local/bin/get-resource.sh
219211

220212
# Units have been introduced in 2.x
221213
if printf '2.0.0\n%s\n' "$PODMAN_VERSION" | sort -V -C; then
@@ -242,15 +234,18 @@ if [ "$NODES_PLATFORM" = "libvirt" ]; then
242234
# has told us the process isn't there but sometimes when it
243235
# dies it leaves the file.
244236
sudo rm -f $WORKING_DIR/virtualbmc/vbmc/master.pid
245-
sudo podman run -d --net host --privileged --name vbmc --pod ironic-pod \
246-
-v "$WORKING_DIR/virtualbmc/vbmc":/root/.vbmc -v "/root/.ssh":/root/ssh \
247-
"${VBMC_IMAGE}"
237+
IPMI_PORT_RANGE="$VBMC_BASE_PORT-$VBMC_MAX_PORT"
238+
sudo podman run -d -p 623:623/udp -p $IPMI_PORT_RANGE:$IPMI_PORT_RANGE/udp \
239+
-v "$WORKING_DIR/virtualbmc/vbmc":/root/.vbmc -v "/root/.ssh":/root/ssh \
240+
--security-opt label=disable --name vbmc "${VBMC_IMAGE}"
248241
fi
249242

250243
if ! is_running sushy-tools; then
251-
sudo podman run -d --net host --privileged --name sushy-tools --pod ironic-pod \
252-
-v "$WORKING_DIR/virtualbmc/sushy-tools":/root/sushy -v "/root/.ssh":/root/ssh \
253-
"${SUSHY_TOOLS_IMAGE}"
244+
# Virtual media implementation cannot reach back to the bootstrap VM
245+
# without host networking.
246+
sudo podman run -d --network host --security-opt label=disable --name sushy-tools \
247+
-v "$WORKING_DIR/virtualbmc/sushy-tools":/root/sushy -v "/root/.ssh":/root/ssh \
248+
"${SUSHY_TOOLS_IMAGE}"
254249
fi
255250
fi
256251

0 commit comments

Comments
 (0)