diff --git a/roles/ensure-zookeeper/README.rst b/roles/ensure-zookeeper/README.rst index b7ebeb8eb..df07e556d 100644 --- a/roles/ensure-zookeeper/README.rst +++ b/roles/ensure-zookeeper/README.rst @@ -18,3 +18,9 @@ Install and start zookeeper using the upsteam release. :default: true Setup a tmpfs for data directory. + +.. zuul:rolevar:: zookeeper_use_eatmydata + :default: false + + Uses "eatmydata" so that fsync returns immediately. May be useful + for testing, but never use this in production. diff --git a/roles/ensure-zookeeper/defaults/main.yaml b/roles/ensure-zookeeper/defaults/main.yaml index d7065d479..9cf911567 100644 --- a/roles/ensure-zookeeper/defaults/main.yaml +++ b/roles/ensure-zookeeper/defaults/main.yaml @@ -4,4 +4,5 @@ _zookeeper_install_version: "{% if zookeeper_version == 'latest' %}{{ _zookeeper zookeeper_use_tls: false zookeeper_use_tmpfs: true +zookeeper_use_eatmydata: false zookeeper_ca_dir: "/opt/zookeeper/ca" diff --git a/roles/ensure-zookeeper/tasks/Debian-12.yaml b/roles/ensure-zookeeper/tasks/Debian-12.yaml index 390cb161e..c3e35e709 100644 --- a/roles/ensure-zookeeper/tasks/Debian-12.yaml +++ b/roles/ensure-zookeeper/tasks/Debian-12.yaml @@ -28,8 +28,13 @@ filename: debian-testing become: true -- name: Install JDK - apt: - name: default-jdk-headless +- name: Set package list + set_fact: + packages: + - default-jdk-headless + - "{{ 'eatmydata' if zookeeper_use_eatmydata else False }}" +- name: Install packages + package: + name: "{{ packages | select | list }}" state: present become: true diff --git a/roles/ensure-zookeeper/tasks/Debian.yaml b/roles/ensure-zookeeper/tasks/Debian.yaml index feb16ea90..718c3b7ae 100644 --- a/roles/ensure-zookeeper/tasks/Debian.yaml +++ b/roles/ensure-zookeeper/tasks/Debian.yaml @@ -1,5 +1,10 @@ -- name: Install JDK +- name: Set package list + set_fact: + packages: + - default-jdk-headless + - "{{ 'eatmydata' if zookeeper_use_eatmydata else False }}" +- name: Install packages package: - name: default-jdk-headless + name: "{{ packages | select | list }}" state: present become: true diff --git a/roles/ensure-zookeeper/tasks/main.yaml b/roles/ensure-zookeeper/tasks/main.yaml index 04a2fc43e..8f8117156 100644 --- a/roles/ensure-zookeeper/tasks/main.yaml +++ b/roles/ensure-zookeeper/tasks/main.yaml @@ -68,5 +68,5 @@ become: true - name: Start Zookeeper - command: /opt/zookeeper/bin/zkServer.sh start + command: "{{ 'eatmydata' if zookeeper_use_eatmydata else '' }} /opt/zookeeper/bin/zkServer.sh start" become: true diff --git a/zuul-tests.d/general-roles-jobs.yaml b/zuul-tests.d/general-roles-jobs.yaml index 1dae96cda..86e36a82d 100644 --- a/zuul-tests.d/general-roles-jobs.yaml +++ b/zuul-tests.d/general-roles-jobs.yaml @@ -793,6 +793,122 @@ - name: ubuntu-noble label: ubuntu-noble +- job: + name: zuul-jobs-test-ensure-zookeeper-tmpfs + description: Test the ensure-zookeeper roles with tmpfs + parent: zuul-jobs-test-ensure-zookeeper + vars: + zookeeper_use_tmpfs: true + tags: debuntu-platforms + +- job: + name: zuul-jobs-test-ensure-zookeeper-tmpfs-debian-bookworm + description: Test the ensure-zookeeper roles with tmpfs on debian-bookworm + parent: zuul-jobs-test-ensure-zookeeper-tmpfs + tags: auto-generated + nodeset: + nodes: + - name: debian-bookworm + label: debian-bookworm + +- job: + name: zuul-jobs-test-ensure-zookeeper-tmpfs-debian-bullseye + description: Test the ensure-zookeeper roles with tmpfs on debian-bullseye + parent: zuul-jobs-test-ensure-zookeeper-tmpfs + tags: auto-generated + nodeset: + nodes: + - name: debian-bullseye + label: debian-bullseye + +- job: + name: zuul-jobs-test-ensure-zookeeper-tmpfs-ubuntu-focal + description: Test the ensure-zookeeper roles with tmpfs on ubuntu-focal + parent: zuul-jobs-test-ensure-zookeeper-tmpfs + tags: auto-generated + nodeset: + nodes: + - name: ubuntu-focal + label: ubuntu-focal + +- job: + name: zuul-jobs-test-ensure-zookeeper-tmpfs-ubuntu-jammy + description: Test the ensure-zookeeper roles with tmpfs on ubuntu-jammy + parent: zuul-jobs-test-ensure-zookeeper-tmpfs + tags: auto-generated + nodeset: + nodes: + - name: ubuntu-jammy + label: ubuntu-jammy + +- job: + name: zuul-jobs-test-ensure-zookeeper-tmpfs-ubuntu-noble + description: Test the ensure-zookeeper roles with tmpfs on ubuntu-noble + parent: zuul-jobs-test-ensure-zookeeper-tmpfs + tags: auto-generated + nodeset: + nodes: + - name: ubuntu-noble + label: ubuntu-noble + +- job: + name: zuul-jobs-test-ensure-zookeeper-eatmydata + description: Test the ensure-zookeeper roles with eatmydata + parent: zuul-jobs-test-ensure-zookeeper + vars: + zookeeper_use_eatmydata: true + tags: debuntu-platforms + +- job: + name: zuul-jobs-test-ensure-zookeeper-eatmydata-debian-bookworm + description: Test the ensure-zookeeper roles with eatmydata on debian-bookworm + parent: zuul-jobs-test-ensure-zookeeper-eatmydata + tags: auto-generated + nodeset: + nodes: + - name: debian-bookworm + label: debian-bookworm + +- job: + name: zuul-jobs-test-ensure-zookeeper-eatmydata-debian-bullseye + description: Test the ensure-zookeeper roles with eatmydata on debian-bullseye + parent: zuul-jobs-test-ensure-zookeeper-eatmydata + tags: auto-generated + nodeset: + nodes: + - name: debian-bullseye + label: debian-bullseye + +- job: + name: zuul-jobs-test-ensure-zookeeper-eatmydata-ubuntu-focal + description: Test the ensure-zookeeper roles with eatmydata on ubuntu-focal + parent: zuul-jobs-test-ensure-zookeeper-eatmydata + tags: auto-generated + nodeset: + nodes: + - name: ubuntu-focal + label: ubuntu-focal + +- job: + name: zuul-jobs-test-ensure-zookeeper-eatmydata-ubuntu-jammy + description: Test the ensure-zookeeper roles with eatmydata on ubuntu-jammy + parent: zuul-jobs-test-ensure-zookeeper-eatmydata + tags: auto-generated + nodeset: + nodes: + - name: ubuntu-jammy + label: ubuntu-jammy + +- job: + name: zuul-jobs-test-ensure-zookeeper-eatmydata-ubuntu-noble + description: Test the ensure-zookeeper roles with eatmydata on ubuntu-noble + parent: zuul-jobs-test-ensure-zookeeper-eatmydata + tags: auto-generated + nodeset: + nodes: + - name: ubuntu-noble + label: ubuntu-noble + - job: name: zuul-jobs-test-update-json-file description: Test the json edit role @@ -903,6 +1019,16 @@ - zuul-jobs-test-ensure-zookeeper-ubuntu-focal - zuul-jobs-test-ensure-zookeeper-ubuntu-jammy - zuul-jobs-test-ensure-zookeeper-ubuntu-noble + - zuul-jobs-test-ensure-zookeeper-tmpfs-debian-bookworm + - zuul-jobs-test-ensure-zookeeper-tmpfs-debian-bullseye + - zuul-jobs-test-ensure-zookeeper-tmpfs-ubuntu-focal + - zuul-jobs-test-ensure-zookeeper-tmpfs-ubuntu-jammy + - zuul-jobs-test-ensure-zookeeper-tmpfs-ubuntu-noble + - zuul-jobs-test-ensure-zookeeper-eatmydata-debian-bookworm + - zuul-jobs-test-ensure-zookeeper-eatmydata-debian-bullseye + - zuul-jobs-test-ensure-zookeeper-eatmydata-ubuntu-focal + - zuul-jobs-test-ensure-zookeeper-eatmydata-ubuntu-jammy + - zuul-jobs-test-ensure-zookeeper-eatmydata-ubuntu-noble - zuul-jobs-test-update-json-file - zuul-jobs-test-stage-output - zuul-jobs-test-fetch-translation-output