diff --git a/Support/Multitenancy/ironic-env/03-images-and-run-local-services.sh b/Support/Multitenancy/ironic-env/03-images-and-run-local-services.sh index 2a81506d..2b406d0f 100755 --- a/Support/Multitenancy/ironic-env/03-images-and-run-local-services.sh +++ b/Support/Multitenancy/ironic-env/03-images-and-run-local-services.sh @@ -3,10 +3,7 @@ REGISTRY_NAME="registry" REGISTRY_PORT="5000" IMAGE_NAMES=( # "quay.io/metal3-io/sushy-tools" - "quay.io/metal3-io/ironic-ipa-downloader" - "quay.io/metal3-io/ironic:latest" "quay.io/metal3-io/ironic-client" - "quay.io/metal3-io/keepalived" ) # Attach provisioning and baremetal network interfaces to minikube domain @@ -27,19 +24,17 @@ for NAME in "${IMAGE_NAMES[@]}"; do # Push the image to the local registry podman push --tls-verify=false 127.0.0.1:5000/localimages/"${NAME##*/}" done -podman pull quay.io/metal3-io/keepalived:v0.2.0 -podman tag quay.io/metal3-io/keepalived:v0.2.0 127.0.0.1:5000/localimages/keepalived:latest -podman push --tls-verify=false 127.0.0.1:5000/localimages/keepalived:latest + ./build-sushytools-image-with-fakeipa-changes.sh # Define variables for repeated values -IRONIC_IMAGE="127.0.0.1:5000/localimages/ironic:latest" SUSHY_TOOLS_IMAGE="127.0.0.1:5000/localimages/sushy-tools" # Create directories DIRECTORIES=( "/opt/metal3-dev-env/ironic/virtualbmc" "/opt/metal3-dev-env/ironic/virtualbmc/sushy-tools" + "/opt/metal3-dev-env/ironic/html/images" ) for DIR in "${DIRECTORIES[@]}"; do mkdir -p "$DIR" @@ -53,7 +48,7 @@ podman run -d --net host --name httpd-infra \ -e PROVISIONING_INTERFACE=provisioning \ -e LISTEN_ALL_INTERFACES=false \ --entrypoint /bin/runhttpd \ - "$IRONIC_IMAGE" + quay.io/metal3-io/ironic:latest # Set configuration options cp conf.py "$HOME/sushy-tools/conf.py" diff --git a/Support/Multitenancy/ironic-env/05-apply-manifests.sh b/Support/Multitenancy/ironic-env/05-apply-manifests.sh index 909d9efb..6806d929 100755 --- a/Support/Multitenancy/ironic-env/05-apply-manifests.sh +++ b/Support/Multitenancy/ironic-env/05-apply-manifests.sh @@ -1,6 +1,34 @@ set -e # Apply ironic -kubectl apply -f manifests/ironic.yaml -n baremetal-operator-system +# Clone bmo +git clone https://github.com/metal3-io/baremetal-operator.git + +cd baremetal-operator/ + +# Ironic config file +cat <<'EOF' >ironic-deployment/default/ironic_bmo_configmap.env +HTTP_PORT=6180 +PROVISIONING_IP=172.22.0.2 +DEPLOY_KERNEL_URL=http://172.22.0.2:6180/images/ironic-python-agent.kernel +DEPLOY_RAMDISK_URL=http://172.22.0.2:6180/images/ironic-python-agent.initramfs +IRONIC_ENDPOINT=https://172.22.0.2:6385/v1/ +CACHEURL=http://172.22.0.2/images +IRONIC_FAST_TRACK=true +IRONIC_KERNEL_PARAMS=console=ttyS0 +IRONIC_INSPECTOR_VLAN_INTERFACES=all +PROVISIONING_CIDR=172.22.0.1/24 +PROVISIONING_INTERFACE=ironicendpoint +DHCP_RANGE=172.22.0.10,172.22.0.100 +IRONIC_INSPECTOR_ENDPOINT=http://172.22.0.2:5050/v1/ +RESTART_CONTAINER_CERTIFICATE_UPDATED="false" +IRONIC_RAMDISK_SSH_KEY=ssh-rsa +IRONIC_USE_MARIADB=false +EOF + +# Apply default ironic manifest without tls or authentication for simplicity +kubectl apply -k config/namespace/ +kubectl apply -k ironic-deployment/default + kubectl -n baremetal-operator-system wait --for=condition=available deployment/baremetal-operator-ironic --timeout=300s cat <<'EOF' >ironicclient.sh #!/bin/bash @@ -21,7 +49,7 @@ fi # shellcheck disable=SC2086 sudo podman run --net=host --tls-verify=false \ -v "${MOUNTDIR}:/etc/openstack" --rm \ - -e OS_CLOUD="${OS_CLOUD:-metal3}" "172.22.0.1:5000/localimages/ironic-client" "$@" + -e OS_CLOUD="${OS_CLOUD:-metal3}" 127.0.0.1:5000/localimages/ironic-client "$@" EOF mkdir _clouds_yaml @@ -37,8 +65,6 @@ sudo chmod a+x ironicclient.sh sudo ln -sf "$PWD/ironicclient.sh" "/usr/local/bin/baremetal" # Create ironic node - -mkdir /opt/metal3-dev-env/ironic/html/images || true touch /opt/metal3-dev-env/ironic/html/images/image.qcow2 baremetal node create --driver redfish --driver-info \ diff --git a/Support/Multitenancy/ironic-env/ironicclient.sh b/Support/Multitenancy/ironic-env/ironicclient.sh index 1695cba3..c9ec3cf0 100755 --- a/Support/Multitenancy/ironic-env/ironicclient.sh +++ b/Support/Multitenancy/ironic-env/ironicclient.sh @@ -14,4 +14,4 @@ fi # shellcheck disable=SC2086 sudo podman run --net=host --tls-verify=false \ -v "${MOUNTDIR}:/etc/openstack" --rm \ - -e OS_CLOUD="${OS_CLOUD:-metal3}" "172.22.0.1:5000/localimages/ironic-client" "$@" + -e OS_CLOUD="${OS_CLOUD:-metal3}" 127.0.0.1:5000/localimages/ironic-client "$@" diff --git a/Support/Multitenancy/ironic-env/manifests/ironic.yaml b/Support/Multitenancy/ironic-env/manifests/ironic.yaml deleted file mode 100644 index df6c44db..00000000 --- a/Support/Multitenancy/ironic-env/manifests/ironic.yaml +++ /dev/null @@ -1,143 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - labels: - control-plane: controller-manager - name: baremetal-operator-system ---- -apiVersion: v1 -data: - CACHEURL: http://172.22.0.1/images - DEPLOY_KERNEL_URL: http://172.22.0.2:6180/images/ironic-python-agent.kernel - DEPLOY_RAMDISK_URL: http://172.22.0.2:6180/images/ironic-python-agent.initramfs - DHCP_RANGE: 172.22.0.10,172.22.0.100 - HTTP_PORT: "6180" - INSPECTOR_REVERSE_PROXY_SETUP: "false" - IRONIC_ENDPOINT: http://172.22.0.2:6385/v1/ - IRONIC_FAST_TRACK: "true" - IRONIC_INSPECTOR_ENDPOINT: http://172.22.0.2:5050/v1/ - IRONIC_KERNEL_PARAMS: console=ttyS0 - LISTEN_ALL_INTERFACES: '"false"' - PROVISIONING_CIDR: "24" - PROVISIONING_INTERFACE: ironicendpoint - PROVISIONING_IP: 172.22.0.2 - RESTART_CONTAINER_CERTIFICATE_UPDATED: "false" -kind: ConfigMap -metadata: - name: baremetal-operator-ironic-bmo-configmap-kf5k84ff8c - namespace: baremetal-operator-system ---- -apiVersion: v1 -data: - password: Y2hhbmdlbWU= -kind: Secret -metadata: - name: baremetal-operator-mariadb-password-ftkgc8tmkc - namespace: baremetal-operator-system -type: Opaque ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: baremetal-operator-ironic - namespace: baremetal-operator-system -spec: - minReadySeconds: 10 - replicas: 1 - selector: - matchLabels: - name: ironic - strategy: - type: Recreate - template: - metadata: - labels: - name: ironic - spec: - containers: - - envFrom: - - configMapRef: - name: baremetal-operator-ironic-bmo-configmap-kf5k84ff8c - image: 172.22.0.1:5000/localimages/keepalived - name: ironic-endpoint-keepalived - securityContext: - capabilities: - add: - - NET_ADMIN - - NET_RAW - - command: - - /bin/rundnsmasq - envFrom: - - configMapRef: - name: baremetal-operator-ironic-bmo-configmap-kf5k84ff8c - image: 172.22.0.1:5000/localimages/ironic - imagePullPolicy: Always - name: ironic-dnsmasq - securityContext: - capabilities: - add: - - NET_ADMIN - - NET_RAW - volumeMounts: - - mountPath: /shared - name: ironic-data-volume - - command: - - /bin/runironic - env: - - name: MARIADB_PASSWORD - valueFrom: - secretKeyRef: - key: password - name: baremetal-operator-mariadb-password-ftkgc8tmkc - envFrom: - - configMapRef: - name: baremetal-operator-ironic-bmo-configmap-kf5k84ff8c - image: 172.22.0.1:5000/localimages/ironic - imagePullPolicy: Always - name: ironic - volumeMounts: - - mountPath: /shared - name: ironic-data-volume - - command: - - /bin/runlogwatch.sh - image: 172.22.0.1:5000/localimages/ironic - imagePullPolicy: Always - name: ironic-log-watch - volumeMounts: - - mountPath: /shared - name: ironic-data-volume - - command: - - /bin/runironic-inspector - envFrom: - - configMapRef: - name: baremetal-operator-ironic-bmo-configmap-kf5k84ff8c - image: 172.22.0.1:5000/localimages/ironic - imagePullPolicy: Always - name: ironic-inspector - - command: - - /bin/runhttpd - envFrom: - - configMapRef: - name: baremetal-operator-ironic-bmo-configmap-kf5k84ff8c - image: 172.22.0.1:5000/localimages/ironic - imagePullPolicy: Always - name: ironic-httpd - volumeMounts: - - mountPath: /shared - name: ironic-data-volume - hostNetwork: true - initContainers: - - command: - - /usr/local/bin/get-resource.sh - envFrom: - - configMapRef: - name: baremetal-operator-ironic-bmo-configmap-kf5k84ff8c - image: 172.22.0.1:5000/localimages/ironic-ipa-downloader - imagePullPolicy: Always - name: ironic-ipa-downloader - volumeMounts: - - mountPath: /shared - name: ironic-data-volume - volumes: - - emptyDir: {} - name: ironic-data-volume