From aea33c4afa3ea8d53a7ed5b0e32c051bba379e40 Mon Sep 17 00:00:00 2001 From: Tim Meusel Date: Fri, 20 Jun 2025 22:27:29 +0200 Subject: [PATCH 1/9] Docker tests: Switch from puppetserver to openvoxserver --- spec/Dockerfile.puppetdb | 2 +- spec/Dockerfile.puppetserver | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/Dockerfile.puppetdb b/spec/Dockerfile.puppetdb index 8469550f3..61faf40fc 100644 --- a/spec/Dockerfile.puppetdb +++ b/spec/Dockerfile.puppetdb @@ -1,4 +1,4 @@ -FROM puppet/puppetdb:7.2.0 +FROM ghcr.io/openvoxproject/openvoxdb:latest # Use our own certs so this doesn't have to wait for puppetserver startup COPY fixtures/ssl/ca.pem /opt/puppetlabs/server/data/puppetdb/certs/certs/ca.pem diff --git a/spec/Dockerfile.puppetserver b/spec/Dockerfile.puppetserver index eeba947eb..ed9fd43f9 100644 --- a/spec/Dockerfile.puppetserver +++ b/spec/Dockerfile.puppetserver @@ -1,4 +1,4 @@ -FROM puppet/puppetserver:edge +FROM ghcr.io/openvoxproject/openvoxserver:latest ARG hostname="boltserver" ENV PUPPETSERVER_HOSTNAME "$hostname" From 39c7b6ac090c4b9b043262da0adc518f09efc8a5 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Tue, 24 Jun 2025 13:03:36 +0200 Subject: [PATCH 2/9] fix: update docker setup --- spec/Dockerfile | 26 +++++++++++++++++++------ spec/Dockerfile.puppetdb | 8 -------- spec/Dockerfile.puppetserver | 22 --------------------- spec/docker-compose.yml | 37 ++++++++++++++++++------------------ 4 files changed, 38 insertions(+), 55 deletions(-) delete mode 100644 spec/Dockerfile.puppetdb delete mode 100644 spec/Dockerfile.puppetserver diff --git a/spec/Dockerfile b/spec/Dockerfile index 8b2a8a47c..8fb9725cc 100644 --- a/spec/Dockerfile +++ b/spec/Dockerfile @@ -1,10 +1,19 @@ -FROM rastasheep/ubuntu-sshd:18.04 +FROM ubuntu:24.04 ARG PUPPET_COLLECTION # Install required packages -RUN apt-get update -RUN apt-get -y install apt-transport-https locales sudo tree wget +RUN apt update && \ + apt install -y --no-install-recommends \ + openssh-server \ + libssl-dev \ + sudo && \ + locales \ + wget \ + apt-transport-https \ + tree && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Set the locale RUN locale-gen en_US.UTF-8 @@ -15,8 +24,8 @@ ENV LANGUAGE=en_US.UTF-8 # Install the puppet-agent package # sudo is important here so puppet is added to the path RUN if [ -n "$PUPPET_COLLECTION" ]; then \ - wget -q https://apt.voxpupuli.org/${PUPPET_COLLECTION}-release-ubuntu18.04.deb \ - && sudo dpkg -i ${PUPPET_COLLECTION}-release-ubuntu18.04.deb \ + && wget -q https://apt.voxpupuli.org/${PUPPET_COLLECTION}-release-ubuntu24.04.deb \ + && sudo dpkg -i ${PUPPET_COLLECTION}-release-bionic.deb \ && sudo apt-get update \ && sudo apt-get -y install openvox-agent ; \ fi @@ -47,4 +56,9 @@ RUN chmod 600 /home/test/.ssh/authorized_keys RUN chown -R test:sudo /home/test # Run the sshd service in the background -CMD [ "/usr/sbin/sshd", "-D" ] +RUN echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config.d/pubkey_auth.conf && \ + echo "LogLevel VERBOSE" >> /etc/ssh/sshd_config.d/log_level.conf + +EXPOSE 22 + +CMD ["/usr/sbin/sshd", "-D", "-e"] diff --git a/spec/Dockerfile.puppetdb b/spec/Dockerfile.puppetdb deleted file mode 100644 index 61faf40fc..000000000 --- a/spec/Dockerfile.puppetdb +++ /dev/null @@ -1,8 +0,0 @@ -FROM ghcr.io/openvoxproject/openvoxdb:latest - -# Use our own certs so this doesn't have to wait for puppetserver startup -COPY fixtures/ssl/ca.pem /opt/puppetlabs/server/data/puppetdb/certs/certs/ca.pem -COPY fixtures/ssl/cert.pem /opt/puppetlabs/server/data/puppetdb/certs/certs/server.crt -COPY fixtures/ssl/key.pem /opt/puppetlabs/server/data/puppetdb/certs/private_keys/pdb.pem -COPY fixtures/ssl/key.pem /opt/puppetlabs/server/data/puppetdb/certs/private_keys/server.key -COPY fixtures/ssl/crl.pem /opt/puppetlabs/server/data/puppetdb/certs/ca/ca_crl.pem diff --git a/spec/Dockerfile.puppetserver b/spec/Dockerfile.puppetserver deleted file mode 100644 index ed9fd43f9..000000000 --- a/spec/Dockerfile.puppetserver +++ /dev/null @@ -1,22 +0,0 @@ -FROM ghcr.io/openvoxproject/openvoxserver:latest - -ARG hostname="boltserver" -ENV PUPPETSERVER_HOSTNAME "$hostname" -ENV PUPPET_STORECONFIGS false -ENV PUPPET_REPORTS log - -# Use our own certs and disable the CA -COPY fixtures/ssl/ca.pem /etc/puppetlabs/puppet/ssl/certs/ca.pem -COPY fixtures/ssl/cert.pem /etc/puppetlabs/puppet/ssl/certs/"$hostname".pem -COPY fixtures/ssl/key.pem /etc/puppetlabs/puppet/ssl/private_keys/"$hostname".pem -COPY fixtures/ssl/crl.pem /etc/puppetlabs/puppet/ssl/crl.pem -COPY fixtures/ssl/ca.cfg /etc/puppetlabs/puppetserver/services.d/ca.cfg - -RUN chown -R puppet:puppet /etc/puppetlabs/puppet/ssl - -RUN /opt/puppetlabs/bin/puppet config set certname "$hostname" -RUN /opt/puppetlabs/bin/puppet config set server "$hostname" - -# Skip the normal bootstrapping and just run puppet-server -ENTRYPOINT ["/opt/puppetlabs/bin/puppetserver"] -CMD ["foreground"] diff --git a/spec/docker-compose.yml b/spec/docker-compose.yml index 19827f3d5..a0bd81f55 100644 --- a/spec/docker-compose.yml +++ b/spec/docker-compose.yml @@ -16,34 +16,33 @@ services: - "20025:22" postgres: - image: postgres:11.11 + image: docker.io/postgres:17-alpine + hostname: postgres environment: - POSTGRES_PASSWORD: puppetdb - POSTGRES_USER: puppetdb - POSTGRES_DB: puppetdb + POSTGRES_DB: openvoxdb + POSTGRES_USER: openvoxdb + POSTGRES_PASSWORD: openvoxdb volumes: - ./fixtures/puppetdb/custom_source:/docker-entrypoint-initdb.d + restart: always - puppetdb: - build: - context: . - dockerfile: Dockerfile.puppetdb - depends_on: - - postgres - - puppetserver + openvoxdb: + image: ghcr.io/openvoxproject/openvoxdb:latest + hostname: pdb environment: - USE_PUPPETSERVER: 'false' CERTNAME: pdb + restart: always ports: - "18081:8081" - puppetserver: - build: - context: . - dockerfile: Dockerfile.puppetserver - image: puppet-server - ports: - - "8140:8140" + openvoxserver: + image: ghcr.io/openvoxproject/openvoxserver:latest + hostname: puppet + environment: + OPENVOXSERVER_HOSTNAME: puppet + restart: always volumes: - ./fixtures/modules:/etc/puppetlabs/code/modules - ./fixtures/bolt_server/projects:/etc/puppetlabs/code/projects + ports: + - 8140:8140 From 6c5258992af8dc2a64dce7618b9ab86fc0149eae Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Tue, 24 Jun 2025 13:07:32 +0200 Subject: [PATCH 3/9] fix: remove typo --- spec/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/Dockerfile b/spec/Dockerfile index 8fb9725cc..7efffd8c5 100644 --- a/spec/Dockerfile +++ b/spec/Dockerfile @@ -7,7 +7,7 @@ RUN apt update && \ apt install -y --no-install-recommends \ openssh-server \ libssl-dev \ - sudo && \ + sudo \ locales \ wget \ apt-transport-https \ From 3c64ea27caf235af43716b9dd0ea8d0b92656a4c Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Tue, 24 Jun 2025 14:02:20 +0200 Subject: [PATCH 4/9] fix: remove typo --- spec/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/Dockerfile b/spec/Dockerfile index 7efffd8c5..19bba7719 100644 --- a/spec/Dockerfile +++ b/spec/Dockerfile @@ -24,7 +24,7 @@ ENV LANGUAGE=en_US.UTF-8 # Install the puppet-agent package # sudo is important here so puppet is added to the path RUN if [ -n "$PUPPET_COLLECTION" ]; then \ - && wget -q https://apt.voxpupuli.org/${PUPPET_COLLECTION}-release-ubuntu24.04.deb \ + wget -q https://apt.voxpupuli.org/${PUPPET_COLLECTION}-release-ubuntu24.04.deb \ && sudo dpkg -i ${PUPPET_COLLECTION}-release-bionic.deb \ && sudo apt-get update \ && sudo apt-get -y install openvox-agent ; \ From 101b1a32a7a0ba45aa8bd759015a7531e74b5c14 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Tue, 24 Jun 2025 14:09:14 +0200 Subject: [PATCH 5/9] fix: fix apt setup --- spec/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/Dockerfile b/spec/Dockerfile index 19bba7719..62bc1f508 100644 --- a/spec/Dockerfile +++ b/spec/Dockerfile @@ -25,9 +25,9 @@ ENV LANGUAGE=en_US.UTF-8 # sudo is important here so puppet is added to the path RUN if [ -n "$PUPPET_COLLECTION" ]; then \ wget -q https://apt.voxpupuli.org/${PUPPET_COLLECTION}-release-ubuntu24.04.deb \ - && sudo dpkg -i ${PUPPET_COLLECTION}-release-bionic.deb \ - && sudo apt-get update \ - && sudo apt-get -y install openvox-agent ; \ + && sudo apt install -y /${PUPPET_COLLECTION}-release-ubuntu24.04.deb \ + && sudo apt update \ + && sudo apt install -y openvox-agent ; \ fi # Add 'bolt' user From 2005b5e9f01de8763a65b13906dc83cc8f70c76f Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Tue, 24 Jun 2025 14:17:22 +0200 Subject: [PATCH 6/9] fix: add useradd --- spec/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/Dockerfile b/spec/Dockerfile index 62bc1f508..c9e279714 100644 --- a/spec/Dockerfile +++ b/spec/Dockerfile @@ -5,6 +5,7 @@ ARG PUPPET_COLLECTION # Install required packages RUN apt update && \ apt install -y --no-install-recommends \ + adduser \ openssh-server \ libssl-dev \ sudo \ From 996fb618e0104c4da249bcf868562d9755af5601 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Tue, 24 Jun 2025 14:53:01 +0200 Subject: [PATCH 7/9] fix: add ca-certificates --- spec/Dockerfile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/spec/Dockerfile b/spec/Dockerfile index c9e279714..fb223c701 100644 --- a/spec/Dockerfile +++ b/spec/Dockerfile @@ -3,18 +3,19 @@ FROM ubuntu:24.04 ARG PUPPET_COLLECTION # Install required packages -RUN apt update && \ - apt install -y --no-install-recommends \ +RUN apt update \ + && apt install -y --no-install-recommends \ adduser \ + ca-certificates \ openssh-server \ libssl-dev \ sudo \ locales \ wget \ apt-transport-https \ - tree && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + tree \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Set the locale RUN locale-gen en_US.UTF-8 From ae3edde97775a4566f3daab706fc56f4ef30b4b8 Mon Sep 17 00:00:00 2001 From: Jesse Reynolds Date: Thu, 7 Aug 2025 20:20:11 +1000 Subject: [PATCH 8/9] restore some changes to spec/docker-compose.yml from 542c698 these were skipped during rebase so manually applied here: - add depends_on openvoxserver to several services - add health check to postgres service --- spec/docker-compose.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/spec/docker-compose.yml b/spec/docker-compose.yml index a0bd81f55..002cb9e76 100644 --- a/spec/docker-compose.yml +++ b/spec/docker-compose.yml @@ -5,6 +5,9 @@ services: container_name: ubuntu_node ports: - "20022:22" + depends_on: + openvoxserver: + condition: service_healthy puppet_7_node: build: @@ -14,6 +17,9 @@ services: container_name: puppet_7_node ports: - "20025:22" + depends_on: + openvoxserver: + condition: service_healthy postgres: image: docker.io/postgres:17-alpine @@ -25,6 +31,11 @@ services: volumes: - ./fixtures/puppetdb/custom_source:/docker-entrypoint-initdb.d restart: always + healthcheck: + test: ["CMD-SHELL", "sh -c 'pg_isready -U openvoxdb -d openvoxdb'"] + interval: 10s + timeout: 3s + retries: 3 openvoxdb: image: ghcr.io/openvoxproject/openvoxdb:latest @@ -34,6 +45,9 @@ services: restart: always ports: - "18081:8081" + depends_on: + openvoxserver: + condition: service_healthy openvoxserver: image: ghcr.io/openvoxproject/openvoxserver:latest From 8d70c04c839a0746464806c2d15d9d45490b75a6 Mon Sep 17 00:00:00 2001 From: Jesse Reynolds Date: Thu, 7 Aug 2025 22:53:22 +1000 Subject: [PATCH 9/9] create /run/sshd in container images so sshd can start --- spec/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/Dockerfile b/spec/Dockerfile index fb223c701..701a90821 100644 --- a/spec/Dockerfile +++ b/spec/Dockerfile @@ -59,7 +59,8 @@ RUN chown -R test:sudo /home/test # Run the sshd service in the background RUN echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config.d/pubkey_auth.conf && \ - echo "LogLevel VERBOSE" >> /etc/ssh/sshd_config.d/log_level.conf + echo "LogLevel VERBOSE" >> /etc/ssh/sshd_config.d/log_level.conf && \ + mkdir /run/sshd EXPOSE 22