diff --git a/aap/playbooks/templates/cloud-init/network-config.j2 b/aap/playbooks/templates/cloud-init/network-config.j2 index c766064..7c9bdbb 100644 --- a/aap/playbooks/templates/cloud-init/network-config.j2 +++ b/aap/playbooks/templates/cloud-init/network-config.j2 @@ -1,9 +1,9 @@ version: 2 ethernets: - enp1s0: + demo0: match: macaddress: "{{ libvirt_domain_mac_address }}" - set-name: enp1s0 + set-name: demo0 addresses: - "{{ libvirt_domain_parameters.ipv4_address }}" gateway4: "{{ libvirt_domain_parameters.ipv4_gateway }}" diff --git a/ansible/templates/cloud-init/network-config.j2 b/ansible/templates/cloud-init/network-config.j2 index c766064..7c9bdbb 100644 --- a/ansible/templates/cloud-init/network-config.j2 +++ b/ansible/templates/cloud-init/network-config.j2 @@ -1,9 +1,9 @@ version: 2 ethernets: - enp1s0: + demo0: match: macaddress: "{{ libvirt_domain_mac_address }}" - set-name: enp1s0 + set-name: demo0 addresses: - "{{ libvirt_domain_parameters.ipv4_address }}" gateway4: "{{ libvirt_domain_parameters.ipv4_gateway }}" diff --git a/bootc/baremetal/Containerfile b/bootc/baremetal/Containerfile new file mode 100644 index 0000000..943e64b --- /dev/null +++ b/bootc/baremetal/Containerfile @@ -0,0 +1,22 @@ +FROM edge-registry.itix.fr/demo-edge-retail/base:latest + +RUN < /dev/null + +function log () { + echo "$@" >&2 +} + +# This script is called by libvirt when a VM is started or stopped. +# It is used to set up and tear down networking for the VM. +# The script takes two arguments: the VM name and the action (start or stop). +VM_NAME="$1" +ACTION="$2" + +# Check if the networking configuration file exists for the VM +if [ ! -f "/etc/libvirt-hooks/${VM_NAME}/iptables" ]; then + log "No networking configuration found for VM '$VM_NAME'. Skipping." + exit 0 +fi + +if [ "$ACTION" = "started" ] || [ "$ACTION" = "reconnect" ] || [ "$ACTION" = "restore" ]; then + log "Setting up networking for VM '$VM_NAME'..." + + # Set up iptables rules + while read -r rule; do + if [ -z "$rule" ]; then + continue + fi + iptables $rule + done < "/etc/libvirt-hooks/${VM_NAME}/iptables" + + log "Networking setup complete for VM '$VM_NAME'." +elif [ "$ACTION" = "stopped" ] || [ "$ACTION" = "disconnect" ]; then + log "Tearing down networking for VM '$VM_NAME'..." + + # Tear down iptables rules + while read -r rule; do + if [ -z "$rule" ]; then + continue + fi + # Replace '-A'/'-I' with '-D' to delete the rule + rule="${rule/-A/-D}" + rule="${rule/-I/-D}" + iptables $rule || log "Warning: Failed to delete iptables rule: iptables $rule" + done < "/etc/libvirt-hooks/${VM_NAME}/iptables" + + log "Networking teardown complete for VM '$VM_NAME'." +else + log "Unknown action '$ACTION'. Supported actions are 'started', 'stopped', 'reconnect', and 'disconnect'." + log "Skipping." +fi + +exit 0 diff --git a/bootc/scenario2/root/etc/libvirt/qemu/networks/autostart/default.xml b/bootc/baremetal/root/etc/libvirt/qemu/networks/autostart/default.xml similarity index 100% rename from bootc/scenario2/root/etc/libvirt/qemu/networks/autostart/default.xml rename to bootc/baremetal/root/etc/libvirt/qemu/networks/autostart/default.xml diff --git a/bootc/scenario2/root/etc/libvirt/qemu/networks/default.xml b/bootc/baremetal/root/etc/libvirt/qemu/networks/default.xml similarity index 100% rename from bootc/scenario2/root/etc/libvirt/qemu/networks/default.xml rename to bootc/baremetal/root/etc/libvirt/qemu/networks/default.xml diff --git a/bootc/scenario3a/root/etc/systemd/system/bootstrap-vm@.service b/bootc/baremetal/root/etc/systemd/system/bootstrap-vm@.service similarity index 78% rename from bootc/scenario3a/root/etc/systemd/system/bootstrap-vm@.service rename to bootc/baremetal/root/etc/systemd/system/bootstrap-vm@.service index edefd2a..902b8cd 100644 --- a/bootc/scenario3a/root/etc/systemd/system/bootstrap-vm@.service +++ b/bootc/baremetal/root/etc/systemd/system/bootstrap-vm@.service @@ -7,13 +7,16 @@ Wants=network-online.target # Only start if the VM root disk does not exist ConditionPathExists=!/var/lib/libvirt/images/%i/root.qcow2 -# Remain started to avoid race conditions -Persistent=true +# Only start if the VM definition file is present +ConditionPathExists=/etc/default/bootstrap-vm-%i.env [Service] Type=oneshot ExecStart=/usr/local/bin/bootstrap-vm.sh %i EnvironmentFile=/etc/default/bootstrap-vm-%i.env +# Remain started to avoid race conditions +RemainAfterExit=true + [Install] WantedBy=multi-user.target diff --git a/bootc/scenario2/root/etc/systemd/system/migrate-vm@.service b/bootc/baremetal/root/etc/systemd/system/migrate-vm@.service similarity index 78% rename from bootc/scenario2/root/etc/systemd/system/migrate-vm@.service rename to bootc/baremetal/root/etc/systemd/system/migrate-vm@.service index c6f87f4..ae88801 100644 --- a/bootc/scenario2/root/etc/systemd/system/migrate-vm@.service +++ b/bootc/baremetal/root/etc/systemd/system/migrate-vm@.service @@ -7,13 +7,16 @@ Wants=network-online.target # Only start if the VM root disk does not exist ConditionPathExists=!/var/lib/libvirt/images/%i/root.qcow2 -# Remain started to avoid race conditions -Persistent=true +# Only start if the VM definition file is present +ConditionPathExists=/etc/default/migrate-vm-%i.env [Service] Type=oneshot ExecStart=/usr/local/bin/migrate-vm.sh %i EnvironmentFile=/etc/default/migrate-vm-%i.env +# Remain started to avoid race conditions +RemainAfterExit=true + [Install] WantedBy=multi-user.target diff --git a/bootc/scenario3a/root/usr/local/bin/bootstrap-vm.sh b/bootc/baremetal/root/usr/local/bin/bootstrap-vm.sh similarity index 100% rename from bootc/scenario3a/root/usr/local/bin/bootstrap-vm.sh rename to bootc/baremetal/root/usr/local/bin/bootstrap-vm.sh diff --git a/bootc/scenario2/root/usr/local/bin/migrate-vm.sh b/bootc/baremetal/root/usr/local/bin/migrate-vm.sh similarity index 100% rename from bootc/scenario2/root/usr/local/bin/migrate-vm.sh rename to bootc/baremetal/root/usr/local/bin/migrate-vm.sh diff --git a/bootc/base/Containerfile b/bootc/base/Containerfile index 344f79d..e159a6e 100644 --- a/bootc/base/Containerfile +++ b/bootc/base/Containerfile @@ -6,15 +6,17 @@ ARG ADMIN_USERNAME=demo \ RUN < - default - - - - - - host - - - - - - - - - - - diff --git a/bootc/scenario4/Containerfile b/bootc/scenario4/Containerfile deleted file mode 100644 index 18e4c0b..0000000 --- a/bootc/scenario4/Containerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM edge-registry.itix.fr/demo-edge-retail/base:latest - -ADD --chown=root:root root / - -RUN < [qcow2-target-image]" + exit 1 +fi + +TARGET_IMAGE="$1" + +OCI_REGISTRY="${TARGET_IMAGE%%/*}" +SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +PROJECT_DIR="$(dirname "$SCRIPT_DIR")" + +if [ ! -f "$PROJECT_DIR/signing-key.pass" ]; then + openssl rand -base64 30 > "$PROJECT_DIR/signing-key.pass" + chmod 600 "$PROJECT_DIR/signing-key.pass" +fi + +if [ ! -f "$PROJECT_DIR/signing-key.pub" ]; then + skopeo generate-sigstore-key --output-prefix "$PROJECT_DIR/signing-key" --passphrase-file "$PROJECT_DIR/signing-key.pass" +fi + +if [ ! -f "/etc/containers/registries.d/${OCI_REGISTRY}.yaml" ]; then + tee "/etc/containers/registries.d/${OCI_REGISTRY}.yaml" > /dev/null < /dev/null && pwd )" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" -if [ ! -f "$PROJECT_DIR/signing-key.pass" ]; then - openssl rand -base64 30 > "$PROJECT_DIR/signing-key.pass" - chmod 600 "$PROJECT_DIR/signing-key.pass" -fi - -if [ ! -f "$PROJECT_DIR/signing-key.pub" ]; then - skopeo generate-sigstore-key --output-prefix "$PROJECT_DIR/signing-key" --passphrase-file "$PROJECT_DIR/signing-key.pass" -fi - -if [ ! -f "/etc/containers/registries.d/${OCI_REGISTRY}.yaml" ]; then - tee "/etc/containers/registries.d/${OCI_REGISTRY}.yaml" > /dev/null < /dev/null - "$SCRIPT_DIR/build.sh" "$TARGET_IMAGE" + "$SCRIPT_DIR/build-image.sh" "$TARGET_IMAGE" + if [[ "$SCENARIO" == "virtualmachine" ]]; then + echo "Building qcow2 image for $TARGET_IMAGE..." + "$SCRIPT_DIR/build-qcow2.sh" "$TARGET_IMAGE" + fi popd > /dev/null fi done diff --git a/bootc/virtualmachine/Containerfile b/bootc/virtualmachine/Containerfile new file mode 100644 index 0000000..b2ecb15 --- /dev/null +++ b/bootc/virtualmachine/Containerfile @@ -0,0 +1,20 @@ +FROM edge-registry.itix.fr/demo-edge-retail/base:latest + +RUN </dev/null; for try in $(seq 0 12); do if ! /bin/true 5<> /dev/tcp/127.0.0.1/5432; then echo "Waiting for PostgreSQL to be available..."; sleep 5; else exit 0; fi; done; exit 1' diff --git a/bootc/scenario1/root/etc/containers/systemd/nextcloud-db.container b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud-db.container similarity index 69% rename from bootc/scenario1/root/etc/containers/systemd/nextcloud-db.container rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud-db.container index cd9d5d7..f118f77 100644 --- a/bootc/scenario1/root/etc/containers/systemd/nextcloud-db.container +++ b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud-db.container @@ -4,7 +4,10 @@ Documentation=https://www.postgresql.org/ After=network.target # Only start if Nextcloud has been configured -ConditionPathExists=/etc/containers/systemd/configs/nextcloud-config.env +ConditionPathExists=/etc/containers/systemd/nextcloud/nextcloud-config.env + +# Start/stop this unit when the target is started/stopped +PartOf=nextcloud.target [Container] ContainerName=nextcloud-db @@ -14,10 +17,10 @@ Image=docker.io/library/postgres:17-alpine Network=host # Environment variables from config -EnvironmentFile=/etc/containers/systemd/configs/nextcloud-db.env +EnvironmentFile=/etc/containers/systemd/nextcloud/nextcloud-db.env # Volume mounts -Volume=/var/lib/postgresql/data:/var/lib/postgresql/data:Z +Volume=/var/lib/postgresql/data-nextcloud:/var/lib/postgresql/data:Z # Health check HealthCmd=pg_isready -U nextcloud -d nextcloud @@ -33,7 +36,7 @@ TimeoutStartSec=120 TimeoutStopSec=30 # Skaffold filesystem + fix permissions -ExecStartPre=install -m 0700 -o 70 -g 70 -d /var/lib/postgresql/data +ExecStartPre=install -m 0700 -o 70 -g 70 -d /var/lib/postgresql/data-nextcloud [Install] WantedBy=nextcloud.target diff --git a/bootc/scenario1/root/etc/containers/systemd/nextcloud-nginx.container b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud-nginx.container similarity index 70% rename from bootc/scenario1/root/etc/containers/systemd/nextcloud-nginx.container rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud-nginx.container index 92e506e..0dfd10c 100644 --- a/bootc/scenario1/root/etc/containers/systemd/nextcloud-nginx.container +++ b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud-nginx.container @@ -4,7 +4,10 @@ Documentation=https://nextcloud.com/ After=network.target # Only start if Nextcloud has been configured -ConditionPathExists=/etc/containers/systemd/configs/nextcloud-config.env +ConditionPathExists=/etc/containers/systemd/nextcloud/nextcloud-config.env + +# Start/stop this unit when the target is started/stopped +PartOf=nextcloud.target [Container] ContainerName=nextcloud-nginx @@ -19,10 +22,10 @@ User=82:82 # Volume mounts Volume=/var/lib/nextcloud/data:/var/www/html:z -Volume=/etc/containers/systemd/configs/nginx.conf:/etc/nginx/nginx.conf:ro +Volume=/etc/containers/systemd/nextcloud/nginx.conf:/etc/nginx/nginx.conf:ro # Health check (equivalent to readiness probe) -HealthCmd=curl -f http://localhost:80/status.php +HealthCmd=curl -f http://localhost:8080/status.php HealthInterval=30s HealthTimeout=10s HealthStartPeriod=30s diff --git a/bootc/scenario1/root/etc/containers/systemd/nextcloud-redis.container b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud-redis.container similarity index 71% rename from bootc/scenario1/root/etc/containers/systemd/nextcloud-redis.container rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud-redis.container index 651366d..3296dda 100644 --- a/bootc/scenario1/root/etc/containers/systemd/nextcloud-redis.container +++ b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud-redis.container @@ -4,7 +4,10 @@ Documentation=https://redis.io/ After=network.target # Only start if Nextcloud has been configured -ConditionPathExists=/etc/containers/systemd/configs/nextcloud-config.env +ConditionPathExists=/etc/containers/systemd/nextcloud/nextcloud-config.env + +# Start/stop this unit when the target is started/stopped +PartOf=nextcloud.target [Container] ContainerName=nextcloud-redis @@ -17,11 +20,11 @@ Network=host Exec=redis-server /usr/local/etc/redis/redis.conf # Environment variables -EnvironmentFile=/etc/containers/systemd/configs/nextcloud-redis.env +EnvironmentFile=/etc/containers/systemd/nextcloud/nextcloud-redis.env # Volume mounts for data persistence Volume=/var/lib/redis:/data:Z -Volume=/etc/containers/systemd/configs/redis.conf:/usr/local/etc/redis/redis.conf:ro +Volume=/etc/containers/systemd/nextcloud/redis.conf:/usr/local/etc/redis/redis.conf:ro # Health check HealthCmd=redis-cli ping | grep -q PONG diff --git a/bootc/scenario1/root/etc/containers/systemd/configs/nextcloud-app.env b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nextcloud-app.env similarity index 100% rename from bootc/scenario1/root/etc/containers/systemd/configs/nextcloud-app.env rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nextcloud-app.env diff --git a/bootc/scenario1/root/etc/containers/systemd/configs/nextcloud-config.env.tmpl b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nextcloud-config.env.tmpl similarity index 100% rename from bootc/scenario1/root/etc/containers/systemd/configs/nextcloud-config.env.tmpl rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nextcloud-config.env.tmpl diff --git a/bootc/scenario1/root/etc/containers/systemd/configs/nextcloud-db.env b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nextcloud-db.env similarity index 100% rename from bootc/scenario1/root/etc/containers/systemd/configs/nextcloud-db.env rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nextcloud-db.env diff --git a/bootc/scenario1/root/etc/containers/systemd/configs/nextcloud-redis.env b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nextcloud-redis.env similarity index 100% rename from bootc/scenario1/root/etc/containers/systemd/configs/nextcloud-redis.env rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nextcloud-redis.env diff --git a/bootc/scenario1/root/etc/containers/systemd/configs/nginx.conf b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nginx.conf similarity index 99% rename from bootc/scenario1/root/etc/containers/systemd/configs/nginx.conf rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nginx.conf index 7c90c28..0e2b16a 100644 --- a/bootc/scenario1/root/etc/containers/systemd/configs/nginx.conf +++ b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/nginx.conf @@ -41,7 +41,7 @@ http { } server { - listen 80; + listen 8080; # set max upload size client_max_body_size 10G; diff --git a/bootc/scenario1/root/etc/containers/systemd/configs/redis-session.ini b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/redis-session.ini similarity index 100% rename from bootc/scenario1/root/etc/containers/systemd/configs/redis-session.ini rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/redis-session.ini diff --git a/bootc/scenario1/root/etc/containers/systemd/configs/redis.conf b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/redis.conf similarity index 100% rename from bootc/scenario1/root/etc/containers/systemd/configs/redis.conf rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/redis.conf diff --git a/bootc/scenario1/root/etc/containers/systemd/configs/www.conf b/flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/www.conf similarity index 100% rename from bootc/scenario1/root/etc/containers/systemd/configs/www.conf rename to flightctl/apps/nextcloud/etc/containers/systemd/nextcloud/www.conf diff --git a/flightctl/apps/nextcloud/etc/flightctl/hooks.d/afterupdating/30-nextcloud.yaml b/flightctl/apps/nextcloud/etc/flightctl/hooks.d/afterupdating/30-nextcloud.yaml new file mode 100644 index 0000000..879bd66 --- /dev/null +++ b/flightctl/apps/nextcloud/etc/flightctl/hooks.d/afterupdating/30-nextcloud.yaml @@ -0,0 +1,5 @@ +- if: + - path: /etc/containers/systemd/nextcloud/nextcloud-config.env + op: [created, updated] + run: /bin/sh -Eeuo pipefail -c 'systemctl enable nextcloud.target ; systemctl restart nextcloud.target' + timeout: 5m diff --git a/flightctl/apps/nextcloud/etc/flightctl/hooks.d/beforeupdating/30-nextcloud.yaml b/flightctl/apps/nextcloud/etc/flightctl/hooks.d/beforeupdating/30-nextcloud.yaml new file mode 100644 index 0000000..e371d48 --- /dev/null +++ b/flightctl/apps/nextcloud/etc/flightctl/hooks.d/beforeupdating/30-nextcloud.yaml @@ -0,0 +1,5 @@ +- if: + - path: /etc/containers/systemd/nextcloud/nextcloud-config.env + op: [removed] + run: /bin/sh -c 'if [ -f /etc/systemd/system/nextcloud.target ]; then systemctl stop nextcloud.target ; systemctl disable nextcloud.target ; fi' + timeout: 5m diff --git a/bootc/scenario1/root/etc/greenboot/check/required.d/30_nextcloud_check.sh b/flightctl/apps/nextcloud/etc/greenboot/check/required.d/30_nextcloud_check.sh similarity index 86% rename from bootc/scenario1/root/etc/greenboot/check/required.d/30_nextcloud_check.sh rename to flightctl/apps/nextcloud/etc/greenboot/check/required.d/30_nextcloud_check.sh index 8d89362..160afcc 100755 --- a/bootc/scenario1/root/etc/greenboot/check/required.d/30_nextcloud_check.sh +++ b/flightctl/apps/nextcloud/etc/greenboot/check/required.d/30_nextcloud_check.sh @@ -1,6 +1,12 @@ #!/bin/bash set -Eeuo pipefail + +if [ ! -f /etc/containers/systemd/nextcloud/nextcloud-config.env ]; then + echo "Nextcloud not configured for this host!" + exit 0 +fi + declare -a container_state=() MAX_ATTEMPTS=60 diff --git a/bootc/scenario1/root/etc/systemd/system/nextcloud.target b/flightctl/apps/nextcloud/etc/systemd/system/nextcloud.target similarity index 100% rename from bootc/scenario1/root/etc/systemd/system/nextcloud.target rename to flightctl/apps/nextcloud/etc/systemd/system/nextcloud.target diff --git a/bootc/scenario4/root/etc/containers/systemd/odoo-app.container b/flightctl/apps/odoo/etc/containers/systemd/odoo-app.container similarity index 84% rename from bootc/scenario4/root/etc/containers/systemd/odoo-app.container rename to flightctl/apps/odoo/etc/containers/systemd/odoo-app.container index 97258fd..a3b1779 100644 --- a/bootc/scenario4/root/etc/containers/systemd/odoo-app.container +++ b/flightctl/apps/odoo/etc/containers/systemd/odoo-app.container @@ -7,11 +7,14 @@ Requires=odoo-init.service odoo-db.service After=odoo-init.service odoo-db.service # Only start if Odoo has been configured -ConditionPathExists=/etc/containers/systemd/configs/odoo-config.env +ConditionPathExists=/etc/containers/systemd/odoo/odoo-config.env # Only start if initialization has completed ConditionPathExists=/var/lib/odoo/initialized +# Start/stop this unit when the target is started/stopped +PartOf=odoo.target + [Container] ContainerName=odoo-app Image=docker.io/library/odoo:17 @@ -40,7 +43,7 @@ TimeoutStartSec=600 TimeoutStopSec=30 # Wait for PostgreSQL to be ready -ExecStartPre=/bin/sh -c 'exec 2>/dev/null; for try in $(seq 0 12); do if ! /bin/true 5<> /dev/tcp/127.0.0.1/5432; then echo "Waiting for PostgreSQL to be available..."; sleep 5; else exit 0; fi; done; exit 1' +ExecStartPre=/bin/sh -c 'exec 2>/dev/null; for try in $(seq 0 12); do if ! /bin/true 5<> /dev/tcp/127.0.0.1/5433; then echo "Waiting for PostgreSQL to be available..."; sleep 5; else exit 0; fi; done; exit 1' [Install] WantedBy=odoo.target diff --git a/bootc/scenario4/root/etc/containers/systemd/odoo-db.container b/flightctl/apps/odoo/etc/containers/systemd/odoo-db.container similarity index 66% rename from bootc/scenario4/root/etc/containers/systemd/odoo-db.container rename to flightctl/apps/odoo/etc/containers/systemd/odoo-db.container index 0d9ca8f..ae18796 100644 --- a/bootc/scenario4/root/etc/containers/systemd/odoo-db.container +++ b/flightctl/apps/odoo/etc/containers/systemd/odoo-db.container @@ -4,7 +4,10 @@ Documentation=https://www.postgresql.org/ After=network.target # Only start if Odoo has been configured -ConditionPathExists=/etc/containers/systemd/configs/odoo-config.env +ConditionPathExists=/etc/containers/systemd/odoo/odoo-config.env + +# Start/stop this unit when the target is started/stopped +PartOf=odoo.target [Container] ContainerName=odoo-db @@ -14,13 +17,13 @@ Image=docker.io/library/postgres:17-alpine Network=host # Environment variables from config -EnvironmentFile=/etc/containers/systemd/configs/odoo-db.env +EnvironmentFile=/etc/containers/systemd/odoo/odoo-db.env # Volume mounts -Volume=/var/lib/postgresql/data:/var/lib/postgresql/data:Z +Volume=/var/lib/postgresql/data-odoo:/var/lib/postgresql/data:Z # Health check -HealthCmd=pg_isready -U odoo -d postgres +HealthCmd=pg_isready -U odoo -d postgres -p 5433 HealthInterval=30s HealthTimeout=10s HealthStartPeriod=60s @@ -33,7 +36,7 @@ TimeoutStartSec=120 TimeoutStopSec=30 # Skaffold filesystem + fix permissions -ExecStartPre=install -m 0700 -o 70 -g 70 -d /var/lib/postgresql/data +ExecStartPre=install -m 0700 -o 70 -g 70 -d /var/lib/postgresql/data-odoo [Install] WantedBy=odoo.target diff --git a/bootc/scenario4/root/etc/containers/systemd/odoo-init.container b/flightctl/apps/odoo/etc/containers/systemd/odoo-init.container similarity index 82% rename from bootc/scenario4/root/etc/containers/systemd/odoo-init.container rename to flightctl/apps/odoo/etc/containers/systemd/odoo-init.container index 159edf6..3ce3afb 100644 --- a/bootc/scenario4/root/etc/containers/systemd/odoo-init.container +++ b/flightctl/apps/odoo/etc/containers/systemd/odoo-init.container @@ -7,11 +7,14 @@ After=odoo-db.service Before=odoo-app.service # Only start if Odoo has been configured -ConditionPathExists=/etc/containers/systemd/configs/odoo-config.env +ConditionPathExists=/etc/containers/systemd/odoo/odoo-config.env # Prevent running if already initialized ConditionPathExists=!/var/lib/odoo/initialized +# Start/stop this unit when the target is started/stopped +PartOf=odoo.target + [Container] ContainerName=odoo-init Image=docker.io/library/odoo:17 @@ -21,7 +24,7 @@ Network=host AddCapability=CAP_NET_BIND_SERVICE # Environment variables from secrets and config -EnvironmentFile=/etc/containers/systemd/configs/odoo-config.env +EnvironmentFile=/etc/containers/systemd/odoo/odoo-config.env # Volume mounts Volume=/etc/odoo:/etc/odoo:ro @@ -45,7 +48,7 @@ ExecStartPost=/bin/touch /var/lib/odoo/initialized ExecStartPre=install -m 0700 -o 101 -g 101 -d /var/lib/odoo/data /var/lib/odoo/addons /var/log/odoo # Wait for PostgreSQL to be ready -ExecStartPre=/bin/sh -c 'exec 2>/dev/null; for try in $(seq 0 12); do if ! /bin/true 5<> /dev/tcp/127.0.0.1/5432; then echo "Waiting for PostgreSQL to be available..."; sleep 5; else exit 0; fi; done; exit 1' +ExecStartPre=/bin/sh -c 'exec 2>/dev/null; for try in $(seq 0 12); do if ! /bin/true 5<> /dev/tcp/127.0.0.1/5433; then echo "Waiting for PostgreSQL to be available..."; sleep 5; else exit 0; fi; done; exit 1' [Install] WantedBy=odoo.target diff --git a/bootc/scenario4/root/etc/containers/systemd/configs/odoo-config.env.tmpl b/flightctl/apps/odoo/etc/containers/systemd/odoo/odoo-config.env.tmpl similarity index 100% rename from bootc/scenario4/root/etc/containers/systemd/configs/odoo-config.env.tmpl rename to flightctl/apps/odoo/etc/containers/systemd/odoo/odoo-config.env.tmpl diff --git a/bootc/scenario4/root/etc/containers/systemd/configs/odoo-db.env b/flightctl/apps/odoo/etc/containers/systemd/odoo/odoo-db.env similarity index 92% rename from bootc/scenario4/root/etc/containers/systemd/configs/odoo-db.env rename to flightctl/apps/odoo/etc/containers/systemd/odoo/odoo-db.env index d77dc61..25c6342 100644 --- a/bootc/scenario4/root/etc/containers/systemd/configs/odoo-db.env +++ b/flightctl/apps/odoo/etc/containers/systemd/odoo/odoo-db.env @@ -3,3 +3,4 @@ POSTGRES_PASSWORD=odoo POSTGRES_DB=postgres POSTGRES_HOST_AUTH_METHOD=scram-sha-256 POSTGRES_INITDB_ARGS=--auth-host=scram-sha-256 +PGPORT=5433 diff --git a/flightctl/apps/odoo/etc/flightctl/hooks.d/afterupdating/30-odoo.yaml b/flightctl/apps/odoo/etc/flightctl/hooks.d/afterupdating/30-odoo.yaml new file mode 100644 index 0000000..f81372f --- /dev/null +++ b/flightctl/apps/odoo/etc/flightctl/hooks.d/afterupdating/30-odoo.yaml @@ -0,0 +1,5 @@ +- if: + - path: /etc/containers/systemd/odoo/odoo-config.env + op: [created, updated] + run: /bin/sh -Eeuo pipefail -c 'systemctl enable odoo.target ; systemctl restart odoo.target' + timeout: 5m diff --git a/flightctl/apps/odoo/etc/flightctl/hooks.d/beforeupdating/30-odoo.yaml b/flightctl/apps/odoo/etc/flightctl/hooks.d/beforeupdating/30-odoo.yaml new file mode 100644 index 0000000..6e33f25 --- /dev/null +++ b/flightctl/apps/odoo/etc/flightctl/hooks.d/beforeupdating/30-odoo.yaml @@ -0,0 +1,5 @@ +- if: + - path: /etc/containers/systemd/odoo/odoo-config.env + op: [removed] + run: /bin/sh -c 'if [ -f /etc/systemd/system/odoo.target ]; then systemctl stop odoo.target ; systemctl disable odoo.target ; fi' + timeout: 5m diff --git a/bootc/scenario4/root/etc/greenboot/check/required.d/30_odoo_check.sh b/flightctl/apps/odoo/etc/greenboot/check/required.d/30_odoo_check.sh similarity index 87% rename from bootc/scenario4/root/etc/greenboot/check/required.d/30_odoo_check.sh rename to flightctl/apps/odoo/etc/greenboot/check/required.d/30_odoo_check.sh index 670fb4f..feeebed 100755 --- a/bootc/scenario4/root/etc/greenboot/check/required.d/30_odoo_check.sh +++ b/flightctl/apps/odoo/etc/greenboot/check/required.d/30_odoo_check.sh @@ -1,6 +1,12 @@ #!/bin/bash set -Eeuo pipefail + +if [ ! -f /etc/containers/systemd/odoo/odoo-config.env ]; then + echo "Odoo not configured for this host!" + exit 0 +fi + declare -a container_state=() MAX_ATTEMPTS=60 diff --git a/bootc/scenario4/root/etc/odoo/init.sh b/flightctl/apps/odoo/etc/odoo/init.sh similarity index 100% rename from bootc/scenario4/root/etc/odoo/init.sh rename to flightctl/apps/odoo/etc/odoo/init.sh diff --git a/bootc/scenario4/root/etc/odoo/odoo.conf b/flightctl/apps/odoo/etc/odoo/odoo.conf similarity index 95% rename from bootc/scenario4/root/etc/odoo/odoo.conf rename to flightctl/apps/odoo/etc/odoo/odoo.conf index 0111273..eace20a 100644 --- a/bootc/scenario4/root/etc/odoo/odoo.conf +++ b/flightctl/apps/odoo/etc/odoo/odoo.conf @@ -3,7 +3,7 @@ addons_path = /mnt/extra-addons data_dir = /var/lib/odoo admin_passwd = $pbkdf2-sha512$600000$G6OU8j7HuBdCyBnDeE/pnQ$rtoycI6N7hJW37qeLLesYPWyfk8HsXD9HnsMtzkkU.pciBgd4bc0kV4Z2mI5cctjRIZf/RTOYAX5BvSjbwMxsA db_host = localhost -db_port = 5432 +db_port = 5433 db_user = odoo db_password = odoo logfile = /var/log/odoo/odoo.log diff --git a/bootc/scenario4/root/etc/systemd/system/odoo.target b/flightctl/apps/odoo/etc/systemd/system/odoo.target similarity index 100% rename from bootc/scenario4/root/etc/systemd/system/odoo.target rename to flightctl/apps/odoo/etc/systemd/system/odoo.target diff --git a/flightctl/apps/vm-nextcloud/etc/flightctl/hooks.d/afterupdating/30-edge-vm.yaml b/flightctl/apps/vm-nextcloud/etc/flightctl/hooks.d/afterupdating/30-edge-vm.yaml new file mode 100644 index 0000000..21a2481 --- /dev/null +++ b/flightctl/apps/vm-nextcloud/etc/flightctl/hooks.d/afterupdating/30-edge-vm.yaml @@ -0,0 +1,5 @@ +- if: + - path: /etc/default/bootstrap-vm-nextcloud.env + op: [created, updated] + run: /bin/sh -Eeuo pipefail -c 'systemctl enable bootstrap-vm@nextcloud.service ; systemctl restart bootstrap-vm@nextcloud.service' + timeout: 5m diff --git a/flightctl/apps/vm-nextcloud/etc/flightctl/hooks.d/beforeupdating/30-edge-vm.yaml b/flightctl/apps/vm-nextcloud/etc/flightctl/hooks.d/beforeupdating/30-edge-vm.yaml new file mode 100644 index 0000000..6f15ae9 --- /dev/null +++ b/flightctl/apps/vm-nextcloud/etc/flightctl/hooks.d/beforeupdating/30-edge-vm.yaml @@ -0,0 +1,5 @@ +- if: + - path: /etc/default/bootstrap-vm-nextcloud.env + op: [removed] + run: /bin/sh -c 'if [ -f /etc/systemd/system/bootstrap-vm@.service ]; then systemctl stop bootstrap-vm@nextcloud.service ; systemctl disable bootstrap-vm@nextcloud.service ; fi' + timeout: 5m diff --git a/bootc/scenario3a/root/etc/greenboot/check/required.d/30_nextcloud_check.sh b/flightctl/apps/vm-nextcloud/etc/greenboot/check/required.d/30_nextcloud_check.sh similarity index 72% rename from bootc/scenario3a/root/etc/greenboot/check/required.d/30_nextcloud_check.sh rename to flightctl/apps/vm-nextcloud/etc/greenboot/check/required.d/30_nextcloud_check.sh index 98312d4..4df2106 100755 --- a/bootc/scenario3a/root/etc/greenboot/check/required.d/30_nextcloud_check.sh +++ b/flightctl/apps/vm-nextcloud/etc/greenboot/check/required.d/30_nextcloud_check.sh @@ -1,6 +1,12 @@ #!/bin/bash set -Eeuo pipefail + +if [ ! -f /etc/default/bootstrap-vm-nextcloud.env ]; then + echo "Virtual Machine 'nextcloud' not configured for this host!" + exit 0 +fi + MAX_ATTEMPTS=60 for (( attempt=1; attempt<=MAX_ATTEMPTS; attempt++ )); do diff --git a/flightctl/fleets.yaml b/flightctl/fleets.yaml index 1f340b2..c0ca49e 100644 --- a/flightctl/fleets.yaml +++ b/flightctl/fleets.yaml @@ -3,116 +3,104 @@ kind: Fleet metadata: annotations: {} labels: - scenario: 'base' - name: base + fleet: 'store-baremetal' + name: store-baremetal spec: selector: matchLabels: - scenario: 'base' - template: - metadata: - labels: - fleet: base - spec: - applications: [] - config: [] - os: - image: edge-registry.itix.fr/demo-edge-retail/base:latest - systemd: - matchPatterns: - - greenboot-healthcheck.service ---- -apiVersion: flightctl.io/v1alpha1 -kind: Fleet -metadata: - annotations: {} - labels: - scenario: 'scenario1' - name: scenario1 -spec: - selector: - matchLabels: - scenario: 'scenario1' + type: 'baremetal' + demo: 'retail' template: metadata: labels: - fleet: scenario1 + fleet: 'store-baremetal' spec: applications: [] os: - image: edge-registry.itix.fr/demo-edge-retail/scenario1:latest + image: edge-registry.itix.fr/demo-edge-retail/baremetal:latest config: - - name: scenario1-config + - name: baremetal-site-config configType: GitConfigProviderSpec gitRef: - path: /flightctl/scenario1/sites/{{ getOrDefault .metadata.labels "site" "default" }}/ + path: /flightctl/fleets/baremetal/sites/{{ getOrDefault .metadata.labels "site" "default" }}/ + repository: demo-edge-retail + targetRevision: main + - name: nextcloud-container + configType: GitConfigProviderSpec + gitRef: + path: /flightctl/apps/nextcloud/ + repository: demo-edge-retail + targetRevision: main + - name: odoo-container + configType: GitConfigProviderSpec + gitRef: + path: /flightctl/apps/odoo/ + repository: demo-edge-retail + targetRevision: main + - name: vm-nextcloud + configType: GitConfigProviderSpec + gitRef: + path: /flightctl/apps/vm-nextcloud/ + repository: demo-edge-retail + targetRevision: main + - name: hyperv-migration + configType: GitConfigProviderSpec + gitRef: + path: /flightctl/apps/hyperv-migration/ repository: demo-edge-retail targetRevision: main systemd: matchPatterns: - - nextcloud-app.service - - nextcloud-db.service - - nextcloud-nginx.service - - nextcloud-redis.service - - greenboot-healthcheck.service ---- -apiVersion: flightctl.io/v1alpha1 -kind: Fleet -metadata: - annotations: {} - labels: - scenario: 'scenario3a' - name: scenario3a -spec: - selector: - matchLabels: - scenario: 'scenario3a' - type: 'baremetal' - template: - metadata: - labels: - fleet: scenario3a - spec: - applications: [] - config: [] - os: - image: edge-registry.itix.fr/demo-edge-retail/scenario3a:latest - systemd: - matchPatterns: - - bootstrap-vm@nextcloud.service - - libvirtd.service - - nftables.service - - greenboot-healthcheck.service + - libvirtd.service + - greenboot-healthcheck.service + - nextcloud-app.service + - nextcloud-db.service + - nextcloud-nginx.service + - nextcloud-redis.service + - odoo-app.service + - odoo-db.service + - odoo-init.service + - bootstrap-vm@nextcloud.service + - migrate-vm@printserver.service --- apiVersion: flightctl.io/v1alpha1 kind: Fleet metadata: annotations: {} labels: - scenario: 'scenario4' - name: scenario4 + fleet: 'store-vm-nextcloud' + name: store-vm-nextcloud spec: selector: matchLabels: - scenario: 'scenario4' + type: 'virtualmachine' + vm.name: 'nextcloud' + demo: 'retail' template: metadata: labels: - fleet: scenario4 + fleet: 'store-vm-nextcloud' spec: applications: [] os: - image: edge-registry.itix.fr/demo-edge-retail/scenario4:latest + image: edge-registry.itix.fr/demo-edge-retail/virtualmachine:latest config: - - name: scenario4-config + - name: vm-nextcloud-site-config + configType: GitConfigProviderSpec + gitRef: + path: /flightctl/fleets/vm-nextcloud/sites/{{ getOrDefault .metadata.labels "site" "default" }}/ + repository: demo-edge-retail + targetRevision: main + - name: nextcloud-container configType: GitConfigProviderSpec gitRef: - path: /flightctl/scenario4/sites/{{ getOrDefault .metadata.labels "site" "default" }}/ + path: /flightctl/apps/nextcloud/ repository: demo-edge-retail targetRevision: main systemd: matchPatterns: - - odoo-app.service - - odoo-db.service - - odoo-init.service - - greenboot-healthcheck.service + - greenboot-healthcheck.service + - nextcloud-app.service + - nextcloud-db.service + - nextcloud-nginx.service + - nextcloud-redis.service diff --git a/flightctl/scenario1/sites/default/etc/motd.d/unconfigured b/flightctl/fleets/baremetal/sites/default/etc/motd.d/unconfigured similarity index 100% rename from flightctl/scenario1/sites/default/etc/motd.d/unconfigured rename to flightctl/fleets/baremetal/sites/default/etc/motd.d/unconfigured diff --git a/flightctl/scenario1/sites/paris-wagram/etc/containers/systemd/configs/nextcloud-config.env b/flightctl/fleets/baremetal/sites/paris-wagram/etc/containers/systemd/nextcloud/nextcloud-config.env similarity index 77% rename from flightctl/scenario1/sites/paris-wagram/etc/containers/systemd/configs/nextcloud-config.env rename to flightctl/fleets/baremetal/sites/paris-wagram/etc/containers/systemd/nextcloud/nextcloud-config.env index 32c81ad..a2a7db9 100644 --- a/flightctl/scenario1/sites/paris-wagram/etc/containers/systemd/configs/nextcloud-config.env +++ b/flightctl/fleets/baremetal/sites/paris-wagram/etc/containers/systemd/nextcloud/nextcloud-config.env @@ -4,9 +4,9 @@ # Nextcloud domain configuration NEXTCLOUD_TRUSTED_DOMAINS=optiplex-7000.itix.fr -OVERWRITEHOST=optiplex-7000.itix.fr +OVERWRITEHOST=optiplex-7000.itix.fr:8080 OVERWRITEPROTOCOL=http -OVERWRITECLIURL=http://optiplex-7000.itix.fr +OVERWRITECLIURL=http://optiplex-7000.itix.fr:8080 # Nextcloud admin credentials NEXTCLOUD_ADMIN_USER=admin diff --git a/flightctl/scenario3a/sites/paris-wagram/etc/containers/systemd/configs/odoo-config.env b/flightctl/fleets/baremetal/sites/paris-wagram/etc/containers/systemd/odoo/odoo-config.env similarity index 100% rename from flightctl/scenario3a/sites/paris-wagram/etc/containers/systemd/configs/odoo-config.env rename to flightctl/fleets/baremetal/sites/paris-wagram/etc/containers/systemd/odoo/odoo-config.env diff --git a/bootc/scenario3a/root/etc/default/bootstrap-vm-nextcloud.env b/flightctl/fleets/baremetal/sites/paris-wagram/etc/default/bootstrap-vm-nextcloud.env similarity index 64% rename from bootc/scenario3a/root/etc/default/bootstrap-vm-nextcloud.env rename to flightctl/fleets/baremetal/sites/paris-wagram/etc/default/bootstrap-vm-nextcloud.env index 0e2e1cd..612db10 100644 --- a/bootc/scenario3a/root/etc/default/bootstrap-vm-nextcloud.env +++ b/flightctl/fleets/baremetal/sites/paris-wagram/etc/default/bootstrap-vm-nextcloud.env @@ -3,6 +3,6 @@ DOMAIN_RAM=8192 DOMAIN_DISK_SIZE=100 DOMAIN_OS_VARIANT=rhel9.6 DOMAIN_MAC_ADDRESS=04:00:00:00:00:01 -FLIGHTCTL_LABELS_OVERRIDE={ "type": "virtualmachine", "vm.name": "nextcloud", "scenario": "scenario1" } -DOMAIN_DISK_SOURCE=edge-registry.itix.fr/demo-edge-retail/scenario1-qcow2:latest +FLIGHTCTL_LABELS_OVERRIDE={ "type": "virtualmachine", "vm.name": "nextcloud" } +DOMAIN_DISK_SOURCE=edge-registry.itix.fr/demo-edge-retail/virtualmachine-qcow2:latest REGISTRY_AUTH_FILE=/etc/ostree/auth.json diff --git a/flightctl/fleets/baremetal/sites/paris-wagram/etc/libvirt-hooks/nextcloud/iptables b/flightctl/fleets/baremetal/sites/paris-wagram/etc/libvirt-hooks/nextcloud/iptables new file mode 100644 index 0000000..ffdff2d --- /dev/null +++ b/flightctl/fleets/baremetal/sites/paris-wagram/etc/libvirt-hooks/nextcloud/iptables @@ -0,0 +1,2 @@ +-t nat -A PREROUTING -p tcp --dport 8080 -d 192.168.2.73 -j DNAT --to-destination 192.168.122.2:8080 +-t filter -I LIBVIRT_FWI -d 192.168.122.2 -p tcp --dport 8080 -m conntrack --ctstate NEW -j ACCEPT diff --git a/flightctl/scenario3a/sites/villeneuve-d-ascq/etc/containers/systemd/configs/odoo-config.env b/flightctl/fleets/baremetal/sites/villeneuve-d-ascq/etc/containers/systemd/odoo/odoo-config.env similarity index 100% rename from flightctl/scenario3a/sites/villeneuve-d-ascq/etc/containers/systemd/configs/odoo-config.env rename to flightctl/fleets/baremetal/sites/villeneuve-d-ascq/etc/containers/systemd/odoo/odoo-config.env diff --git a/flightctl/fleets/baremetal/sites/villeneuve-d-ascq/etc/default/bootstrap-vm-nextcloud.env b/flightctl/fleets/baremetal/sites/villeneuve-d-ascq/etc/default/bootstrap-vm-nextcloud.env new file mode 100644 index 0000000..612db10 --- /dev/null +++ b/flightctl/fleets/baremetal/sites/villeneuve-d-ascq/etc/default/bootstrap-vm-nextcloud.env @@ -0,0 +1,8 @@ +DOMAIN_VCPUS=4 +DOMAIN_RAM=8192 +DOMAIN_DISK_SIZE=100 +DOMAIN_OS_VARIANT=rhel9.6 +DOMAIN_MAC_ADDRESS=04:00:00:00:00:01 +FLIGHTCTL_LABELS_OVERRIDE={ "type": "virtualmachine", "vm.name": "nextcloud" } +DOMAIN_DISK_SOURCE=edge-registry.itix.fr/demo-edge-retail/virtualmachine-qcow2:latest +REGISTRY_AUTH_FILE=/etc/ostree/auth.json diff --git a/bootc/scenario2/root/etc/default/migrate-vm-printserver.env b/flightctl/fleets/baremetal/sites/villeneuve-d-ascq/etc/default/migrate-vm-printserver.env similarity index 100% rename from bootc/scenario2/root/etc/default/migrate-vm-printserver.env rename to flightctl/fleets/baremetal/sites/villeneuve-d-ascq/etc/default/migrate-vm-printserver.env diff --git a/flightctl/fleets/baremetal/sites/villeneuve-d-ascq/etc/libvirt-hooks/nextcloud/iptables b/flightctl/fleets/baremetal/sites/villeneuve-d-ascq/etc/libvirt-hooks/nextcloud/iptables new file mode 100644 index 0000000..54dc95a --- /dev/null +++ b/flightctl/fleets/baremetal/sites/villeneuve-d-ascq/etc/libvirt-hooks/nextcloud/iptables @@ -0,0 +1,2 @@ +-t nat -A PREROUTING -p tcp --dport 8080 -d 192.168.2.75 -j DNAT --to-destination 192.168.122.2:8080 +-t filter -I LIBVIRT_FWI -d 192.168.122.2 -p tcp --dport 8080 -m conntrack --ctstate NEW -j ACCEPT diff --git a/flightctl/scenario3a/sites/default/etc/motd.d/unconfigured b/flightctl/fleets/vm-nextcloud/sites/default/etc/motd.d/unconfigured similarity index 100% rename from flightctl/scenario3a/sites/default/etc/motd.d/unconfigured rename to flightctl/fleets/vm-nextcloud/sites/default/etc/motd.d/unconfigured diff --git a/flightctl/fleets/vm-nextcloud/sites/paris-wagram/etc/containers/systemd/nextcloud/nextcloud-config.env b/flightctl/fleets/vm-nextcloud/sites/paris-wagram/etc/containers/systemd/nextcloud/nextcloud-config.env new file mode 100644 index 0000000..a2a7db9 --- /dev/null +++ b/flightctl/fleets/vm-nextcloud/sites/paris-wagram/etc/containers/systemd/nextcloud/nextcloud-config.env @@ -0,0 +1,16 @@ +## +## Nextcloud Configuration Environment Variables +## + +# Nextcloud domain configuration +NEXTCLOUD_TRUSTED_DOMAINS=optiplex-7000.itix.fr +OVERWRITEHOST=optiplex-7000.itix.fr:8080 +OVERWRITEPROTOCOL=http +OVERWRITECLIURL=http://optiplex-7000.itix.fr:8080 + +# Nextcloud admin credentials +NEXTCLOUD_ADMIN_USER=admin +NEXTCLOUD_ADMIN_PASSWORD=nextcloud + +# Nextcloud server info token +NEXTCLOUD_SERVERINFO_TOKEN=S3cr3t! diff --git a/flightctl/scenario1/sites/villeneuve-d-ascq/etc/containers/systemd/configs/nextcloud-config.env b/flightctl/fleets/vm-nextcloud/sites/villeneuve-d-ascq/etc/containers/systemd/nextcloud/nextcloud-config.env similarity index 76% rename from flightctl/scenario1/sites/villeneuve-d-ascq/etc/containers/systemd/configs/nextcloud-config.env rename to flightctl/fleets/vm-nextcloud/sites/villeneuve-d-ascq/etc/containers/systemd/nextcloud/nextcloud-config.env index eca8888..f24b7c7 100644 --- a/flightctl/scenario1/sites/villeneuve-d-ascq/etc/containers/systemd/configs/nextcloud-config.env +++ b/flightctl/fleets/vm-nextcloud/sites/villeneuve-d-ascq/etc/containers/systemd/nextcloud/nextcloud-config.env @@ -4,9 +4,9 @@ # Nextcloud domain configuration NEXTCLOUD_TRUSTED_DOMAINS=adlink-dlap-4001.itix.fr -OVERWRITEHOST=adlink-dlap-4001.itix.fr +OVERWRITEHOST=adlink-dlap-4001.itix.fr:8080 OVERWRITEPROTOCOL=http -OVERWRITECLIURL=http://adlink-dlap-4001.itix.fr +OVERWRITECLIURL=http://adlink-dlap-4001.itix.fr:8080 # Nextcloud admin credentials NEXTCLOUD_ADMIN_USER=admin diff --git a/flightctl/scenario4/sites/default/etc/motd.d/unconfigured b/flightctl/scenario4/sites/default/etc/motd.d/unconfigured deleted file mode 100644 index af8dfa1..0000000 --- a/flightctl/scenario4/sites/default/etc/motd.d/unconfigured +++ /dev/null @@ -1,6 +0,0 @@ - - -HEADS UP !!! - -This system is not configured ! - diff --git a/flightctl/scenario4/sites/paris-wagram/etc/containers/systemd/configs/odoo-config.env b/flightctl/scenario4/sites/paris-wagram/etc/containers/systemd/configs/odoo-config.env deleted file mode 100644 index b70e44c..0000000 --- a/flightctl/scenario4/sites/paris-wagram/etc/containers/systemd/configs/odoo-config.env +++ /dev/null @@ -1,4 +0,0 @@ -DATABASE=redhat -ADMIN_PASSWORD=R3dH4t! -RIBBON_COLOR=rgba(255,0,0,.6) -RIBBON_NAME=Paris Wagram
({db_name}) diff --git a/flightctl/scenario4/sites/villeneuve-d-ascq/etc/containers/systemd/configs/odoo-config.env b/flightctl/scenario4/sites/villeneuve-d-ascq/etc/containers/systemd/configs/odoo-config.env deleted file mode 100644 index efa44bf..0000000 --- a/flightctl/scenario4/sites/villeneuve-d-ascq/etc/containers/systemd/configs/odoo-config.env +++ /dev/null @@ -1,4 +0,0 @@ -DATABASE=redhat -ADMIN_PASSWORD=R3dH4t! -RIBBON_COLOR=rgba(0,0,255,.6) -RIBBON_NAME=Villeneuve d'Ascq
({db_name}) diff --git a/pxe-boot/install.sh b/pxe-boot/install.sh index c1c945d..50b2fc7 100755 --- a/pxe-boot/install.sh +++ b/pxe-boot/install.sh @@ -42,47 +42,41 @@ function install_directories() { done } - - # This function templates a kickstart file by replacing placeholders with actual values. # The templates are located in the www/ks directory. # The output files are written to /var/www/ks. # The placeholders are in the format expected by envsubst. -# For each template file, eight versions are created: base + scenario{1,2,3a,3b,4,5,6}. -# The output files are named as /var/www/ks/