Add option to remove DHCP from Ironic 88/4688/1
authorTodd Malsbary <todd.malsbary@intel.com>
Mon, 7 Feb 2022 23:06:28 +0000 (15:06 -0800)
committerTodd Malsbary <todd.malsbary@intel.com>
Tue, 15 Feb 2022 16:38:34 +0000 (08:38 -0800)
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: Icafa480355b7378b09fcd59d9af1c11f070b6bf8

deploy/ironic/icn-no-dhcp/kustomization.yaml [new file with mode: 0644]
deploy/ironic/icn-no-dhcp/remove-dnsmasq-patch.json [new file with mode: 0644]
deploy/ironic/ironic.sh
user_config.sh

diff --git a/deploy/ironic/icn-no-dhcp/kustomization.yaml b/deploy/ironic/icn-no-dhcp/kustomization.yaml
new file mode 100644 (file)
index 0000000..71d5d27
--- /dev/null
@@ -0,0 +1,12 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+namespace: capm3-system
+
+resources:
+- ../icn
+
+patchesJson6902:
+- path: remove-dnsmasq-patch.json
+  target:
+    kind: Deployment
+    name: capm3-ironic
diff --git a/deploy/ironic/icn-no-dhcp/remove-dnsmasq-patch.json b/deploy/ironic/icn-no-dhcp/remove-dnsmasq-patch.json
new file mode 100644 (file)
index 0000000..0260b91
--- /dev/null
@@ -0,0 +1,3 @@
+[
+    { "op": "remove", "path": "/spec/template/spec/containers/0" }
+]
index f8bc2f8..5325d61 100755 (executable)
@@ -8,6 +8,7 @@ source $LIBDIR/logging.sh
 source $LIBDIR/common.sh
 
 NAMEPREFIX="capm3"
+ENABLE_DHCP="${IRONIC_ENABLE_DHCP:-yes}"
 
 trap err_exit ERR
 function err_exit {
@@ -31,7 +32,11 @@ function build_source {
 
 function deploy {
     fetch_image
-    kustomize build ${SCRIPTDIR}/icn | kubectl apply -f -
+    local layer="${SCRIPTDIR}/icn"
+    if [[ ${ENABLE_DHCP} != "yes" ]]; then
+       layer="${SCRIPTDIR}/icn-no-dhcp"
+    fi
+    kustomize build ${layer} | kubectl apply -f -
     kubectl wait --for=condition=Available --timeout=600s deployment/${NAMEPREFIX}-ironic -n ${NAMEPREFIX}-system
 }
 
index 50c654e..f4193e8 100644 (file)
@@ -3,5 +3,9 @@
 #Ironic Metal3 settings for provisioning network
 export IRONIC_INTERFACE="enp4s0f3"
 
+#Ironic Metal3 setting to disable DHCP server for provisioning network
+#The DHCP server is not necessary when all machines can be provisioned with virtual media
+export IRONIC_ENABLE_DHCP="yes"
+
 #Use a registry mirror for downloading container images
 export DOCKER_REGISTRY_MIRRORS=""