From efead9f5b298937075e1aa84d8946ab9a997e105 Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Tue, 2 Aug 2022 11:06:47 -0600 Subject: [PATCH] docs/docker-compose: Move to new containers/ dir This work is being mostly replaced by https://github.com/zmc/ceph-devstack. However, since that tool has fairly strict requirements, let's try to preserve the docker-compose functionality. It will still be useful for tests that don't require OSDs. Signed-off-by: Zack Cerza --- .github/workflows/integration.yml | 2 +- .../beanstalk}/alpine/Dockerfile | 0 {docs => containers}/docker-compose/README.md | 0 .../docker-compose/docker-compose.yml | 8 +++--- {docs => containers}/docker-compose/start.sh | 0 .../postgres}/db/01-init.sh | 0 .../testnode-docker-compose}/Dockerfile | 0 .../testnode_start.sh | 0 .../testnode-docker-compose}/testnode_stop.sh | 0 .../testnode-docker-compose}/testnode_sudoers | 0 containers/testnode/Dockerfile | 26 +++++++++++++++++++ containers/testnode/testnode_start.sh | 13 ++++++++++ containers/testnode/testnode_stop.sh | 10 +++++++ containers/testnode/testnode_sudoers | 4 +++ .../teuthology-dev}/.teuthology.yaml | 0 .../teuthology-dev}/Dockerfile | 10 +++---- .../teuthology-dev}/containerized_node.yaml | 0 .../teuthology-dev}/teuthology.sh | 0 18 files changed, 63 insertions(+), 10 deletions(-) rename {beanstalk => containers/beanstalk}/alpine/Dockerfile (100%) rename {docs => containers}/docker-compose/README.md (100%) rename {docs => containers}/docker-compose/docker-compose.yml (91%) rename {docs => containers}/docker-compose/start.sh (100%) rename {docs/docker-compose => containers/postgres}/db/01-init.sh (100%) rename {docs/docker-compose/testnode => containers/testnode-docker-compose}/Dockerfile (100%) rename {docs/docker-compose/testnode => containers/testnode-docker-compose}/testnode_start.sh (100%) rename {docs/docker-compose/testnode => containers/testnode-docker-compose}/testnode_stop.sh (100%) rename {docs/docker-compose/testnode => containers/testnode-docker-compose}/testnode_sudoers (100%) create mode 100644 containers/testnode/Dockerfile create mode 100755 containers/testnode/testnode_start.sh create mode 100755 containers/testnode/testnode_stop.sh create mode 100644 containers/testnode/testnode_sudoers rename {docs/docker-compose/teuthology => containers/teuthology-dev}/.teuthology.yaml (100%) rename {docs/docker-compose/teuthology => containers/teuthology-dev}/Dockerfile (72%) rename {docs/docker-compose/teuthology => containers/teuthology-dev}/containerized_node.yaml (100%) rename {docs/docker-compose/teuthology => containers/teuthology-dev}/teuthology.sh (100%) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 69a55b8773..6761c04f1f 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -9,4 +9,4 @@ jobs: - uses: actions/checkout@v2 - name: Test using docker-compose run: ./start.sh - working-directory: ./docs/docker-compose + working-directory: ./containers/docker-compose diff --git a/beanstalk/alpine/Dockerfile b/containers/beanstalk/alpine/Dockerfile similarity index 100% rename from beanstalk/alpine/Dockerfile rename to containers/beanstalk/alpine/Dockerfile diff --git a/docs/docker-compose/README.md b/containers/docker-compose/README.md similarity index 100% rename from docs/docker-compose/README.md rename to containers/docker-compose/README.md diff --git a/docs/docker-compose/docker-compose.yml b/containers/docker-compose/docker-compose.yml similarity index 91% rename from docs/docker-compose/docker-compose.yml rename to containers/docker-compose/docker-compose.yml index f64d17a546..30cc9fc328 100644 --- a/docs/docker-compose/docker-compose.yml +++ b/containers/docker-compose/docker-compose.yml @@ -15,7 +15,7 @@ services: - APP_DB_PASS=password - APP_DB_NAME=paddles volumes: - - ./db:/docker-entrypoint-initdb.d/ + - ../postgres/db:/docker-entrypoint-initdb.d/:Z ports: - 5432:5432 paddles: @@ -52,13 +52,13 @@ services: ports: - 8081:8081 beanstalk: - build: ../../beanstalk/alpine + build: ../beanstalk/alpine ports: - "11300:11300" teuthology: build: context: ../../ - dockerfile: ./docs/docker-compose/teuthology/Dockerfile + dockerfile: ./containers/teuthology-dev/Dockerfile args: SSH_PRIVKEY_FILE: $SSH_PRIVKEY_FILE depends_on: @@ -76,7 +76,7 @@ services: TEUTH_BRANCH: testnode: build: - context: ./testnode + context: ../testnode-docker-compose dockerfile: ./Dockerfile deploy: replicas: 3 diff --git a/docs/docker-compose/start.sh b/containers/docker-compose/start.sh similarity index 100% rename from docs/docker-compose/start.sh rename to containers/docker-compose/start.sh diff --git a/docs/docker-compose/db/01-init.sh b/containers/postgres/db/01-init.sh similarity index 100% rename from docs/docker-compose/db/01-init.sh rename to containers/postgres/db/01-init.sh diff --git a/docs/docker-compose/testnode/Dockerfile b/containers/testnode-docker-compose/Dockerfile similarity index 100% rename from docs/docker-compose/testnode/Dockerfile rename to containers/testnode-docker-compose/Dockerfile diff --git a/docs/docker-compose/testnode/testnode_start.sh b/containers/testnode-docker-compose/testnode_start.sh similarity index 100% rename from docs/docker-compose/testnode/testnode_start.sh rename to containers/testnode-docker-compose/testnode_start.sh diff --git a/docs/docker-compose/testnode/testnode_stop.sh b/containers/testnode-docker-compose/testnode_stop.sh similarity index 100% rename from docs/docker-compose/testnode/testnode_stop.sh rename to containers/testnode-docker-compose/testnode_stop.sh diff --git a/docs/docker-compose/testnode/testnode_sudoers b/containers/testnode-docker-compose/testnode_sudoers similarity index 100% rename from docs/docker-compose/testnode/testnode_sudoers rename to containers/testnode-docker-compose/testnode_sudoers diff --git a/containers/testnode/Dockerfile b/containers/testnode/Dockerfile new file mode 100644 index 0000000000..016d32117a --- /dev/null +++ b/containers/testnode/Dockerfile @@ -0,0 +1,26 @@ +FROM ubuntu:focal +ENV DEBIAN_FRONTEND=noninteractive +RUN apt update && \ + apt -y install \ + sudo \ + openssh-server \ + hostname \ + curl \ + python3-pip \ + apache2 \ + nfs-kernel-server && \ + apt clean all +COPY testnode_start.sh / +COPY testnode_stop.sh / +COPY testnode_sudoers /etc/sudoers.d/teuthology +RUN \ + ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' && \ + sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config && \ + mkdir -p /root/.ssh && \ + chmod 700 /root/.ssh && \ + useradd -g sudo ubuntu && \ + mkdir -p /home/ubuntu/.ssh && \ + chmod 700 /home/ubuntu/.ssh && \ + chown -R ubuntu /home/ubuntu +EXPOSE 22 +ENTRYPOINT /testnode_start.sh diff --git a/containers/testnode/testnode_start.sh b/containers/testnode/testnode_start.sh new file mode 100755 index 0000000000..d29c3b6d0a --- /dev/null +++ b/containers/testnode/testnode_start.sh @@ -0,0 +1,13 @@ +#!/usr/bin/bash +set -x +echo "$SSH_PUBKEY" > /root/.ssh/authorized_keys +echo "$SSH_PUBKEY" > /home/ubuntu/.ssh/authorized_keys +chown ubuntu /home/ubuntu/.ssh/authorized_keys +payload="{\"name\": \"$(hostname)\", \"machine_type\": \"testnode\", \"up\": true, \"locked\": false, \"os_type\": \"ubuntu\", \"os_version\": \"20.04\"}" +for i in $(seq 1 5); do + echo "attempt $i" + curl -v -f -d "$payload" http://paddles:8080/nodes/ && break + sleep 1 +done +mkdir -p /run/sshd +exec /usr/sbin/sshd -D diff --git a/containers/testnode/testnode_stop.sh b/containers/testnode/testnode_stop.sh new file mode 100755 index 0000000000..2e1044d807 --- /dev/null +++ b/containers/testnode/testnode_stop.sh @@ -0,0 +1,10 @@ +#!/usr/bin/bash +set -x +hostname=$(hostname) +payload="{\"name\": \"$hostname\", \"machine_type\": \"testnode\", \"up\": false}" +for i in $(seq 1 5); do + echo "attempt $i" + curl -s -f -X PUT -d "$payload" http://paddles:8080/nodes/$hostname/ && break + sleep 1 +done +pkill sshd \ No newline at end of file diff --git a/containers/testnode/testnode_sudoers b/containers/testnode/testnode_sudoers new file mode 100644 index 0000000000..35828ad9be --- /dev/null +++ b/containers/testnode/testnode_sudoers @@ -0,0 +1,4 @@ +%sudo ALL=(ALL) NOPASSWD: ALL +# For ansible pipelining +Defaults !requiretty +Defaults visiblepw diff --git a/docs/docker-compose/teuthology/.teuthology.yaml b/containers/teuthology-dev/.teuthology.yaml similarity index 100% rename from docs/docker-compose/teuthology/.teuthology.yaml rename to containers/teuthology-dev/.teuthology.yaml diff --git a/docs/docker-compose/teuthology/Dockerfile b/containers/teuthology-dev/Dockerfile similarity index 72% rename from docs/docker-compose/teuthology/Dockerfile rename to containers/teuthology-dev/Dockerfile index 5587489d17..f350b31dbd 100644 --- a/docs/docker-compose/teuthology/Dockerfile +++ b/containers/teuthology-dev/Dockerfile @@ -28,12 +28,12 @@ RUN \ COPY . /teuthology RUN \ ./bootstrap -COPY docs/docker-compose/teuthology/containerized_node.yaml /teuthology -COPY docs/docker-compose/teuthology/.teuthology.yaml /root -COPY docs/docker-compose/teuthology/teuthology.sh / +COPY containers/teuthology-dev/containerized_node.yaml /teuthology +COPY containers/teuthology-dev/.teuthology.yaml /root +COPY containers/teuthology-dev/teuthology.sh / RUN mkdir -p /etc/ansible -COPY docs/docker-compose/teuthology/ansible_inventory/hosts /etc/ansible/ -COPY docs/docker-compose/teuthology/ansible_inventory/secrets /etc/ansible/ +COPY containers/teuthology-dev/ansible_inventory/hosts /etc/ansible/ +COPY containers/teuthology-dev/ansible_inventory/secrets /etc/ansible/ RUN \ mkdir $HOME/.ssh && \ touch $HOME/.ssh/${SSH_PRIVKEY_FILE} && \ diff --git a/docs/docker-compose/teuthology/containerized_node.yaml b/containers/teuthology-dev/containerized_node.yaml similarity index 100% rename from docs/docker-compose/teuthology/containerized_node.yaml rename to containers/teuthology-dev/containerized_node.yaml diff --git a/docs/docker-compose/teuthology/teuthology.sh b/containers/teuthology-dev/teuthology.sh similarity index 100% rename from docs/docker-compose/teuthology/teuthology.sh rename to containers/teuthology-dev/teuthology.sh -- 2.39.5