Replace docker by podman for quick-start
Change-Id: Ic6ea0e350e7a6aae656823b4294e49ee871b3329 Depends-On: https://review.opendev.org/c/zuul/zuul-jobs/+/883593
This commit is contained in:
parent
c1b0a00c60
commit
0e3756bd5c
|
@ -389,9 +389,9 @@
|
|||
nodeset: ubuntu-jammy
|
||||
- zuul-stream-functional-6
|
||||
- zuul-nox-remote
|
||||
# - zuul-quick-start:
|
||||
# requires: nodepool-container-image
|
||||
# dependencies: zuul-upload-image
|
||||
- zuul-quick-start:
|
||||
requires: nodepool-container-image
|
||||
dependencies: zuul-upload-image
|
||||
- zuul-nox-zuul-client
|
||||
- zuul-build-python-release
|
||||
promote:
|
||||
|
|
|
@ -10,6 +10,12 @@ services:
|
|||
- CANONICAL_WEB_URL=http://localhost:8080/
|
||||
networks:
|
||||
- zuul
|
||||
volumes:
|
||||
- "gerrit-etc:/var/gerrit/etc"
|
||||
- "gerrit-db:/var/gerrit/db"
|
||||
- "gerrit-git:/var/gerrit/git"
|
||||
- "gerrit-index:/var/gerrit/index"
|
||||
- "gerrit-cache:/var/gerrit/cache"
|
||||
gerritconfig:
|
||||
image: quay.io/zuul-ci/zuul-executor
|
||||
environment:
|
||||
|
@ -24,6 +30,7 @@ services:
|
|||
- "./playbooks/:/var/playbooks/:z"
|
||||
- "certs:/var/certs:z"
|
||||
- "../../../tools/:/var/zuul-tools/:z"
|
||||
- "lib-zuul-executor:/var/lib/zuul:z"
|
||||
# NOTE(pabelanger): Be sure to update this line each time we change the
|
||||
# default version of ansible for Zuul.
|
||||
command: "/usr/local/lib/zuul/ansible/6/bin/ansible-playbook /var/playbooks/setup.yaml"
|
||||
|
@ -36,6 +43,8 @@ services:
|
|||
- "./playbooks/:/var/playbooks/:z"
|
||||
- "certs:/var/certs:z"
|
||||
- "./zoo.cfg:/conf/zoo.cfg:z"
|
||||
- "zk-data:/data"
|
||||
- "zk-datalog:/datalog"
|
||||
command: "sh -c '/var/playbooks/wait-to-start-certs.sh && zkServer.sh start-foreground'"
|
||||
networks:
|
||||
- zuul
|
||||
|
@ -48,11 +57,12 @@ services:
|
|||
MYSQL_PASSWORD: secret
|
||||
# Work around slow db startup when writing TZINFO data.
|
||||
MYSQL_INITDB_SKIP_TZINFO: 1
|
||||
volumes:
|
||||
- "lib-mysql:/var/lib/mysql"
|
||||
networks:
|
||||
- zuul
|
||||
scheduler:
|
||||
depends_on:
|
||||
- gerritconfig
|
||||
- zk
|
||||
- mysql
|
||||
environment:
|
||||
|
@ -72,6 +82,7 @@ services:
|
|||
- "./playbooks/:/var/playbooks/:z"
|
||||
- "sshkey:/var/ssh:z"
|
||||
- "certs:/var/certs:z"
|
||||
- "lib-zuul-scheduler:/var/lib/zuul"
|
||||
networks:
|
||||
- zuul
|
||||
web:
|
||||
|
@ -90,6 +101,7 @@ services:
|
|||
- "${ZUUL_TUTORIAL_CONFIG:-./etc_zuul/}:/etc/zuul/:z"
|
||||
- "./playbooks/:/var/playbooks/:z"
|
||||
- "certs:/var/certs:z"
|
||||
- "lib-zuul-web:/var/lib/zuul"
|
||||
networks:
|
||||
- zuul
|
||||
executor:
|
||||
|
@ -108,6 +120,7 @@ services:
|
|||
- "sshkey:/var/ssh:z"
|
||||
- "logs:/srv/static/logs:z"
|
||||
- "certs:/var/certs:z"
|
||||
- "lib-zuul-executor:/var/lib/zuul:z"
|
||||
command: "sh -c '/var/playbooks/wait-to-start-certs.sh && zuul-executor -f'"
|
||||
networks:
|
||||
- zuul
|
||||
|
@ -156,6 +169,17 @@ volumes:
|
|||
nodessh:
|
||||
logs:
|
||||
certs:
|
||||
lib-zuul-scheduler:
|
||||
lib-zuul-web:
|
||||
lib-zuul-executor:
|
||||
zk-data:
|
||||
zk-datalog:
|
||||
lib-mysql:
|
||||
gerrit-etc:
|
||||
gerrit-db:
|
||||
gerrit-git:
|
||||
gerrit-index:
|
||||
gerrit-cache:
|
||||
|
||||
networks:
|
||||
zuul:
|
||||
|
|
|
@ -17,7 +17,7 @@ but this tutorial does not address that.
|
|||
Update /etc/hosts
|
||||
-----------------
|
||||
|
||||
The Zuul containers will use the internal docker network to connect to
|
||||
The Zuul containers will use the internal container network to connect to
|
||||
keycloak, but you will use a mapped port to access it in your web
|
||||
browser. There is no way to have Zuul use the internal hostname when
|
||||
it validates the token yet redirect your browser to `localhost` to
|
||||
|
@ -46,16 +46,16 @@ that we can update Zuul's configuration to add authentication.
|
|||
.. code-block:: shell
|
||||
|
||||
cd zuul/doc/source/examples
|
||||
sudo -E docker-compose -p zuul-tutorial stop
|
||||
sudo -E podman-compose -p zuul-tutorial stop
|
||||
|
||||
Restart the containers with a new Zuul configuration.
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
cd zuul/doc/source/examples
|
||||
ZUUL_TUTORIAL_CONFIG="./keycloak/etc_zuul/" sudo -E docker-compose -p zuul-tutorial up -d
|
||||
ZUUL_TUTORIAL_CONFIG="./keycloak/etc_zuul/" sudo -E podman-compose -p zuul-tutorial up -d
|
||||
|
||||
This tells docker-compose to use these Zuul `config files
|
||||
This tells podman-compose to use these Zuul `config files
|
||||
<https://opendev.org/zuul/zuul/src/branch/master/doc/source/examples/keycloak>`_.
|
||||
|
||||
Start Keycloak
|
||||
|
@ -67,7 +67,7 @@ with this command:
|
|||
.. code-block:: shell
|
||||
|
||||
cd zuul/doc/source/examples/keycloak
|
||||
sudo -E docker-compose -p zuul-tutorial-keycloak up -d
|
||||
sudo -E podman-compose -p zuul-tutorial-keycloak up -d
|
||||
|
||||
Once Keycloak is running, you can visit the web interface at
|
||||
http://localhost:8082/
|
||||
|
|
|
@ -12,7 +12,7 @@ projects from merging broken code.
|
|||
|
||||
This tutorial is entirely self-contained and may safely be run on a
|
||||
workstation. The only requirements are a network connection, the
|
||||
ability to run Docker containers, and at least 2GiB of RAM.
|
||||
ability to run containers, and at least 2GiB of RAM.
|
||||
|
||||
This tutorial supplies a working Gerrit for code review, though the
|
||||
concepts you will learn apply equally to GitHub.
|
||||
|
@ -33,31 +33,24 @@ Before you start, ensure that some needed packages are installed.
|
|||
|
||||
# Red Hat / CentOS:
|
||||
|
||||
sudo yum install epel-release
|
||||
sudo yum update
|
||||
sudo yum install docker docker-compose git python-pip
|
||||
sudo pip install git-review
|
||||
sudo yum install podman git python3
|
||||
sudo python3 -m pip install git-review podman-compose
|
||||
|
||||
# Fedora:
|
||||
|
||||
sudo dnf install docker docker-compose git git-review
|
||||
sudo dnf install podman git python3
|
||||
sudo python3 -m pip install git-review podman-compose
|
||||
|
||||
# OpenSuse:
|
||||
|
||||
sudo zypper install docker docker-compose git
|
||||
sudo python3 -m pip install git-review
|
||||
sudo zypper install podman git python3
|
||||
sudo python3 -m pip install git-review podman-compose
|
||||
|
||||
# Ubuntu / Debian:
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install docker-compose docker.io git python3-pip
|
||||
sudo python3 -m pip install git-review
|
||||
|
||||
# Start and Enable the docker service on Fedora / CentOS
|
||||
# Red Hat / OpenSuse / Ubuntu / Debian:
|
||||
|
||||
sudo systemctl enable docker.service
|
||||
sudo systemctl start docker.service
|
||||
sudo apt-get install podman git python3-pip
|
||||
sudo python3 -m pip install git-review podman-compose
|
||||
|
||||
|
||||
Clone the Zuul repository:
|
||||
|
@ -67,22 +60,22 @@ Clone the Zuul repository:
|
|||
git clone https://opendev.org/zuul/zuul
|
||||
|
||||
Then cd into the directory containing this document, and run
|
||||
docker-compose in order to start Zuul, Nodepool and Gerrit.
|
||||
podman-compose in order to start Zuul, Nodepool and Gerrit.
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
cd zuul/doc/source/examples
|
||||
sudo -E docker-compose -p zuul-tutorial up
|
||||
podman-compose -p zuul-tutorial up
|
||||
|
||||
For reference, the files in that directory are also `browsable on the web
|
||||
<https://opendev.org/zuul/zuul/src/branch/master/doc/source/examples>`_.
|
||||
|
||||
All of the services will be started with debug-level logging sent to
|
||||
the standard output of the terminal where docker-compose is running.
|
||||
the standard output of the terminal where podman-compose is running.
|
||||
You will see a considerable amount of information scroll by, including
|
||||
some errors. Zuul will immediately attempt to connect to Gerrit and
|
||||
begin processing, even before Gerrit has fully initialized. The
|
||||
docker composition includes scripts to configure Gerrit and create an
|
||||
podman composition includes scripts to configure Gerrit and create an
|
||||
account for Zuul. Once this has all completed, the system should
|
||||
automatically connect, stabilize and become idle. When this is
|
||||
complete, you will have the following services running:
|
||||
|
|
|
@ -26,16 +26,16 @@ that we can update Zuul's configuration to enable tracing.
|
|||
.. code-block:: shell
|
||||
|
||||
cd zuul/doc/source/examples
|
||||
sudo -E docker-compose -p zuul-tutorial stop
|
||||
sudo -E podman-compose -p zuul-tutorial stop
|
||||
|
||||
Restart the containers with a new Zuul configuration.
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
cd zuul/doc/source/examples
|
||||
ZUUL_TUTORIAL_CONFIG="./tracing/etc_zuul/" sudo -E docker-compose -p zuul-tutorial up -d
|
||||
ZUUL_TUTORIAL_CONFIG="./tracing/etc_zuul/" sudo -E podman-compose -p zuul-tutorial up -d
|
||||
|
||||
This tells docker-compose to use these Zuul `config files
|
||||
This tells podman-compose to use these Zuul `config files
|
||||
<https://opendev.org/zuul/zuul/src/branch/master/doc/source/examples/tracing>`_.
|
||||
The only change compared to the quick-start is to add a
|
||||
:attr:`tracing` section to ``zuul.conf``:
|
||||
|
@ -59,7 +59,7 @@ with this command:
|
|||
.. code-block:: shell
|
||||
|
||||
cd zuul/doc/source/examples/tracing
|
||||
sudo -E docker-compose -p zuul-tutorial-tracing up -d
|
||||
sudo -E podman-compose -p zuul-tutorial-tracing up -d
|
||||
|
||||
You can visit http://localhost:16686/search to verify it is running.
|
||||
|
||||
|
|
|
@ -1,44 +1,44 @@
|
|||
# Stop the basic tutorial
|
||||
- name: Run docker-compose down
|
||||
- name: Run podman-compose down
|
||||
when: not local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial stop
|
||||
cmd: podman-compose -p zuul-tutorial stop
|
||||
chdir: src/opendev.org/zuul/zuul/doc/source/examples
|
||||
|
||||
- name: Run docker-compose down
|
||||
- name: Run podman-compose down
|
||||
when: local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial stop
|
||||
cmd: podman-compose -p zuul-tutorial stop
|
||||
chdir: ../../doc/source/examples
|
||||
|
||||
# Restart with the new config
|
||||
- name: Run docker-compose up
|
||||
- name: Run podman-compose up
|
||||
when: not local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial up -d
|
||||
cmd: podman-compose -p zuul-tutorial up -d
|
||||
chdir: src/opendev.org/zuul/zuul/doc/source/examples
|
||||
environment:
|
||||
ZUUL_TUTORIAL_CONFIG: "./keycloak/etc_zuul/"
|
||||
|
||||
- name: Run docker-compose up
|
||||
- name: Run podman-compose up
|
||||
when: local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial up -d
|
||||
cmd: podman-compose -p zuul-tutorial up -d
|
||||
chdir: ../../doc/source/examples
|
||||
environment:
|
||||
ZUUL_TUTORIAL_CONFIG: "./keycloak/etc_zuul/"
|
||||
|
||||
# Start keycloak
|
||||
- name: Run docker-compose up
|
||||
- name: Run podman-compose up
|
||||
when: not local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial-keycloak up -d
|
||||
cmd: podman-compose -p zuul-tutorial-keycloak up -d
|
||||
chdir: src/opendev.org/zuul/zuul/doc/source/examples/keycloak
|
||||
|
||||
- name: Run docker-compose up
|
||||
- name: Run podman-compose up
|
||||
when: local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial-keycloak up -d
|
||||
cmd: podman-compose -p zuul-tutorial-keycloak up -d
|
||||
chdir: ../../doc/source/examples/keycloak
|
||||
|
||||
# Verify that Zuul runs with the new config
|
||||
|
|
|
@ -5,20 +5,21 @@
|
|||
state: directory
|
||||
path: "{{ ansible_user_dir }}/logs"
|
||||
mode: 0755
|
||||
- name: Save docker log files
|
||||
become: true
|
||||
- name: Save podman log files
|
||||
shell: |
|
||||
docker logs zuul-tutorial_gerrit_1 > {{ ansible_user_dir }}/logs/gerrit.log 2>&1
|
||||
docker logs zuul-tutorial_gerritconfig_1 > {{ ansible_user_dir }}/logs/gerritconfig.log 2>&1
|
||||
docker logs zuul-tutorial_zk_1 > {{ ansible_user_dir }}/logs/zk.log 2>&1
|
||||
docker logs zuul-tutorial_mysql_1 > {{ ansible_user_dir }}/logs/mysql.log 2>&1
|
||||
docker logs zuul-tutorial_scheduler_1 > {{ ansible_user_dir }}/logs/scheduler.log 2>&1
|
||||
docker logs zuul-tutorial_web_1 > {{ ansible_user_dir }}/logs/web.log 2>&1
|
||||
docker logs zuul-tutorial_executor_1 > {{ ansible_user_dir }}/logs/executor.log 2>&1
|
||||
docker logs zuul-tutorial_node_1 > {{ ansible_user_dir }}/logs/node.log 2>&1
|
||||
docker logs zuul-tutorial_launcher_1 > {{ ansible_user_dir }}/logs/launcher.log 2>&1
|
||||
docker logs zuul-tutorial_logs_1 > {{ ansible_user_dir }}/logs/logs.log 2>&1
|
||||
- name: Copy docker log files to executor
|
||||
set +e
|
||||
podman logs zuul-tutorial_gerrit_1 > {{ ansible_user_dir }}/logs/gerrit.log 2>&1
|
||||
podman logs zuul-tutorial_gerritconfig_1 > {{ ansible_user_dir }}/logs/gerritconfig.log 2>&1
|
||||
podman logs zuul-tutorial_zk_1 > {{ ansible_user_dir }}/logs/zk.log 2>&1
|
||||
podman logs zuul-tutorial_mysql_1 > {{ ansible_user_dir }}/logs/mysql.log 2>&1
|
||||
podman logs zuul-tutorial_scheduler_1 > {{ ansible_user_dir }}/logs/scheduler.log 2>&1
|
||||
podman logs zuul-tutorial_web_1 > {{ ansible_user_dir }}/logs/web.log 2>&1
|
||||
podman logs zuul-tutorial_executor_1 > {{ ansible_user_dir }}/logs/executor.log 2>&1
|
||||
podman logs zuul-tutorial_node_1 > {{ ansible_user_dir }}/logs/node.log 2>&1
|
||||
podman logs zuul-tutorial_launcher_1 > {{ ansible_user_dir }}/logs/launcher.log 2>&1
|
||||
podman logs zuul-tutorial_logs_1 > {{ ansible_user_dir }}/logs/logs.log 2>&1
|
||||
exit 0
|
||||
- name: Copy podman log files to executor
|
||||
synchronize:
|
||||
mode: pull
|
||||
src: "{{ ansible_user_dir }}/logs/"
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
- hosts: all
|
||||
roles:
|
||||
- ensure-pip
|
||||
- name: ensure-docker
|
||||
use_upstream_docker: false
|
||||
docker_compose_install: true
|
||||
- ensure-podman
|
||||
- use-buildset-registry
|
||||
|
|
|
@ -30,20 +30,20 @@
|
|||
ssh_agent: "{{ ssh_agent_new }}"
|
||||
when: ssh_public_key is not defined or ssh_public_key == ''
|
||||
|
||||
- name: Run docker-compose up
|
||||
- name: Run podman-compose up
|
||||
when: not local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial up -d
|
||||
cmd: podman-compose -p zuul-tutorial up -d
|
||||
chdir: src/opendev.org/zuul/zuul/doc/source/examples
|
||||
|
||||
- name: Run docker-compose up
|
||||
- name: Run podman-compose up
|
||||
when: local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial up -d
|
||||
cmd: podman-compose -p zuul-tutorial up -d
|
||||
chdir: ../../doc/source/examples
|
||||
|
||||
- name: Print list of images
|
||||
command: docker image ls --all --digests --no-trunc
|
||||
command: podman image ls --all --digests --no-trunc
|
||||
|
||||
- name: Wait for Gerrit to start
|
||||
wait_for:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
- block:
|
||||
- name: Install git-review
|
||||
command: python3 -m pip install git-review
|
||||
command: python3 -m pip install git-review podman-compose
|
||||
become: true
|
||||
when: not local
|
||||
|
||||
|
|
|
@ -1,44 +1,44 @@
|
|||
# Stop the basic tutorial
|
||||
- name: Run docker-compose down
|
||||
- name: Run podman-compose down
|
||||
when: not local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial stop
|
||||
cmd: podman-compose -p zuul-tutorial stop
|
||||
chdir: src/opendev.org/zuul/zuul/doc/source/examples
|
||||
|
||||
- name: Run docker-compose down
|
||||
- name: Run podman-compose down
|
||||
when: local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial stop
|
||||
cmd: podman-compose -p zuul-tutorial stop
|
||||
chdir: ../../doc/source/examples
|
||||
|
||||
# Restart with the new config
|
||||
- name: Run docker-compose up
|
||||
- name: Run podman-compose up
|
||||
when: not local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial up -d
|
||||
cmd: podman-compose -p zuul-tutorial up -d
|
||||
chdir: src/opendev.org/zuul/zuul/doc/source/examples
|
||||
environment:
|
||||
ZUUL_TUTORIAL_CONFIG: "./tracing/etc_zuul/"
|
||||
|
||||
- name: Run docker-compose up
|
||||
- name: Run podman-compose up
|
||||
when: local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial up -d
|
||||
cmd: podman-compose -p zuul-tutorial up -d
|
||||
chdir: ../../doc/source/examples
|
||||
environment:
|
||||
ZUUL_TUTORIAL_CONFIG: "./tracing/etc_zuul/"
|
||||
|
||||
# Start Jaeger
|
||||
- name: Run docker-compose up
|
||||
- name: Run podman-compose up
|
||||
when: not local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial-tracing up -d
|
||||
cmd: podman-compose -p zuul-tutorial-tracing up -d
|
||||
chdir: src/opendev.org/zuul/zuul/doc/source/examples/tracing
|
||||
|
||||
- name: Run docker-compose up
|
||||
- name: Run podman-compose up
|
||||
when: local
|
||||
shell:
|
||||
cmd: docker-compose -p zuul-tutorial-tracing up -d
|
||||
cmd: podman-compose -p zuul-tutorial-tracing up -d
|
||||
chdir: ../../doc/source/examples/tracing
|
||||
|
||||
# Verify that Zuul runs with the new config
|
||||
|
|
Loading…
Reference in New Issue