diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 9e9c1463..9fd229d9 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -19,7 +19,7 @@ formats: # Optionally set the version of Python and requirements required to build your docs python: - version: 3.7 + version: 3.8 install: - requirements: doc/requirements.txt - - requirements: requirements.txt + - requirements: requirements-frozen.txt diff --git a/.zuul.yaml b/.zuul.yaml index 092e45db..aa331e00 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -62,6 +62,9 @@ timeout: 900 run: tools/gate/playbooks/build-charts.yaml nodeset: armada-single-node-focal + vars: + HTK_COMMIT: a7cd689280cdbc0acd04a7a1b745941260e8700b + - job: name: armada-chart-build-latest-htk diff --git a/Makefile b/Makefile index 9fab1d5d..36f56ed8 100644 --- a/Makefile +++ b/Makefile @@ -78,14 +78,14 @@ check-tox: exit 2; \ fi -images: check-docker build_armada run_armada +images: check-docker build_armada docs: clean build_docs build_docs: tox -e docs -run_images: run_armada +run_images: build_armada run_armada run_armada: build_armada ./tools/armada_image_run.sh $(IMAGE) diff --git a/images/armada/Dockerfile.ubuntu_bionic b/images/armada/Dockerfile.ubuntu_bionic index 0f9fbf4e..6ccd8cee 100644 --- a/images/armada/Dockerfile.ubuntu_bionic +++ b/images/armada/Dockerfile.ubuntu_bionic @@ -88,7 +88,6 @@ RUN set -ex \ /usr/share/doc-base COPY . ./ -COPY etc/armada /etc/armada # Setting the version explicitly for PBR ENV PBR_VERSION 0.8.0 diff --git a/images/armada/Dockerfile.ubuntu_focal b/images/armada/Dockerfile.ubuntu_focal index e89c1388..b340f403 100644 --- a/images/armada/Dockerfile.ubuntu_focal +++ b/images/armada/Dockerfile.ubuntu_focal @@ -88,7 +88,6 @@ RUN set -ex \ /usr/share/doc-base COPY . ./ -COPY etc/armada /etc/armada # Setting the version explicitly for PBR ENV PBR_VERSION 0.8.0 diff --git a/tools/armada_image_run.sh b/tools/armada_image_run.sh index d9bfba50..1e28cf3b 100755 --- a/tools/armada_image_run.sh +++ b/tools/armada_image_run.sh @@ -16,33 +16,58 @@ set -x IMAGE=$1 -USE_PROXY=${USE_PROXY:-false} -CONTAINER_NAME=armada_test_$(date +%Y%m%d%H%M%s%s) +ARMADA_CONTAINER_NAME=armada_test_$(date +%Y%m%d%H%M%s%s) -docker create \ - -p 8000:8000 \ - --name ${CONTAINER_NAME} ${IMAGE} +function generate_conf { + tox -e genconfig > /dev/null + tox -e genpolicy > /dev/null + ETCDIR=$(mktemp -d)/armada + mkdir -p ${ETCDIR} > /dev/null + cp etc/armada/api-paste.ini ${ETCDIR}/api-paste.ini + cp etc/armada/policy.yaml.sample ${ETCDIR}/policy.yaml + echo ${ETCDIR} +} -docker start ${CONTAINER_NAME} & -sleep 5 +function test_armada { + TMPETC=$1 + docker run \ + -d --name "${ARMADA_CONTAINER_NAME}" --net host \ + -v ${TMPETC}:/etc/armada \ + ${IMAGE} -# If the image build pipeline is running in a pod/docker (docker-in-docker), -# we'll need to exec into the nested container's network namespace to acces the -# armada api. -GOOD="HTTP/1.1 204 No Content" -RESULT="$(curl -i 'http://127.0.0.1:8000/api/v1.0/health' --noproxy '*' | tr '\r' '\n' | head -1)" -if [[ "${RESULT}" != "${GOOD}" ]]; then - if docker exec -t ${CONTAINER_NAME} /bin/bash -c "curl -i 'http://127.0.0.1:8000/api/v1.0/health' --noproxy '*' | tr '\r' '\n' | head -1 "; then - RESULT="${GOOD}" - fi -fi + sleep 10 -docker stop ${CONTAINER_NAME} -docker logs ${CONTAINER_NAME} -docker rm ${CONTAINER_NAME} + RESULT=$(curl --noproxy '*' -i 'http://127.0.0.1:8000/api/v1.0/health' | tr '\r' '\n' | head -1) + GOOD="HTTP/1.1 204 No Content" + if [[ "${RESULT}" != "${GOOD}" ]]; then + if docker exec -t ${CONTAINER_NAME} /bin/bash -c "curl -i 'http://127.0.0.1:8000/api/v1.0/health' --noproxy '*' | tr '\r' '\n' | head -1 "; then + RESULT="${GOOD}" + fi + fi -if [[ ${RESULT} == ${GOOD} ]]; then - exit 0 -else - exit 1 -fi \ No newline at end of file + if [[ ${RESULT} == ${GOOD} ]] + then + RC=0 + else + RC=1 + fi + + docker logs "${ARMADA_CONTAINER_NAME}" + return $RC +} + +function cleanup { + TMPDIR=$1 + docker stop "${ARMADA_CONTAINER_NAME}" + docker rm "${ARMADA_CONTAINER_NAME}" + rm -rf $TMPDIR +} + +TMPETC=$(generate_conf) + +test_armada $TMPETC +RC=$? + +cleanup $TMPETC + +exit $RC diff --git a/tools/gate/playbooks/docker-image-build.yaml b/tools/gate/playbooks/docker-image-build.yaml index 0a6876d5..1f4f8128 100644 --- a/tools/gate/playbooks/docker-image-build.yaml +++ b/tools/gate/playbooks/docker-image-build.yaml @@ -18,6 +18,7 @@ - ensure-docker - ensure-python - ensure-pip + - ensure-tox tasks: - include_vars: vars.yaml @@ -56,6 +57,19 @@ executable: pip3 become: True + + + - name: Run images + when: not publish + shell: | + make run_images + args: + chdir: "{{ zuul.project.src_dir }}" + executable: /bin/bash + become: True + + + - name: Make images when: not publish block: