diff --git a/.github/workflows/stackhpc-pull-request.yml b/.github/workflows/stackhpc-pull-request.yml index 5d71d0f74a..ff2f789725 100644 --- a/.github/workflows/stackhpc-pull-request.yml +++ b/.github/workflows/stackhpc-pull-request.yml @@ -1,238 +1,238 @@ ---- - -concurrency: - group: stackhpc-pull-request-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -name: Pull request -'on': - pull_request: -jobs: - # Detect which files have changed and use this to run jobs conditionally. - # Note that we can't use the workflow-level paths attribute since this - # would skip the workflow entirely, and would prevent us from making the - # aio jobs required to pass (a skip counts as a pass). - check-changes: - runs-on: ubuntu-24.04 - permissions: - pull-requests: read - name: Check changed files - if: github.repository == 'stackhpc/stackhpc-kayobe-config' - needs: - - lint - # - tox - outputs: - aio: ${{ steps.changes.outputs.aio }} - build-kayobe-image: ${{ steps.changes.outputs.build-kayobe-image }} - check-tags: ${{ steps.changes.outputs.check-tags }} - steps: - - name: GitHub Checkout - uses: actions/checkout@v4 - - - name: Check changed files - uses: dorny/paths-filter@v3 - id: changes - with: - # Filters are defined in this file. - filters: .github/path-filters.yml - - tox: - runs-on: ubuntu-24.04 - permissions: {} - strategy: - matrix: - include: - - environment: pep8 - python-version: "3.12" - - environment: releasenotes - python-version: "3.12" - - environment: docs - python-version: "3.12" - name: Tox ${{ matrix.environment }} with Python ${{ matrix.python-version }} - if: github.repository == 'stackhpc/stackhpc-kayobe-config' - steps: - - name: GitHub Checkout ๐Ÿ›Ž - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Setup Python ${{ matrix.python-version }} ๐Ÿ - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - name: Install Tox ๐Ÿ“ฆ - run: pip install tox - - name: Run Tox ${{ matrix.environment }} ๐Ÿงช - run: tox -e ${{ matrix.environment }} - - lint: - runs-on: ubuntu-24.04 - permissions: {} - strategy: - fail-fast: false - matrix: - include: - # NOTE(upgrade): Keep these in sync with Kayobe's supported Ansible and Python versions (see release notes). - - ansible: "2.18" - python: "3.12" - - ansible: "2.17" - python: "3.10" - name: Ansible ${{ matrix.ansible }} lint with Python ${{ matrix.python }} - if: github.repository == 'stackhpc/stackhpc-kayobe-config' - steps: - - name: GitHub Checkout ๐Ÿ›Ž - uses: actions/checkout@v4 - - - name: Setup Python ${{ matrix.python-version }} ๐Ÿ - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python }} - - - name: Install dependencies ๐Ÿ“ฆ - run: | - python -m pip install --upgrade pip - pip install ansible-core==${{ matrix.ansible }}.* ansible-lint -r requirements.txt - - - name: Install Ansible Galaxy collections and roles - run: | - ansible-galaxy collection install -r etc/kayobe/ansible/requirements.yml - ansible-galaxy role install -r etc/kayobe/ansible/requirements.yml - - - name: Linting code ๐Ÿงช - run: | - ansible-lint -v --force-color etc/kayobe/ansible/. - - # A skipped job is treated as success when used as a required status check. - # The registered required status checks refer to the name of the job in the - # called reusable workflow rather than the jobs in this file. The following - # jobs need to run unconditionally to allow GitHub required status checks to - # pass even when there are changed files. The `! failure()` condition runs - # when the parent jobs completed successfully or were skipped. We pass an - # 'if' argument to the called workflow to allow running it conditionally. - - build-kayobe-image: - name: Build Kayobe Image - needs: - - check-changes - uses: ./.github/workflows/stackhpc-build-kayobe-image.yml - with: - if: ${{ needs.check-changes.outputs.build-kayobe-image == 'true' }} - if: github.repository == 'stackhpc/stackhpc-kayobe-config' - - check-tags: - name: Check container image tags - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-check-tags.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - if: ${{ needs.check-changes.outputs.check-tags == 'true' }} - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - all-in-one-ubuntu-noble-ovn: - name: aio (Ubuntu Noble OVN) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: ubuntu - os_release: noble - ssh_username: ubuntu - neutron_plugin: ovn - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - all-in-one-rocky-9-ovs: - name: aio (Rocky 9 OVS) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: rocky - os_release: "9" - ssh_username: cloud-user - neutron_plugin: ovs - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - all-in-one-rocky-9-ovn: - name: aio (Rocky 9 OVN) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: rocky - os_release: "9" - ssh_username: cloud-user - neutron_plugin: ovn - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - # Test two upgrade scenarios: Ubuntu Jammy to Noble OVN and Rocky 9 OVN. - - all-in-one-upgrade-ubuntu-jammy-to-noble-ovn: - name: aio upgrade (Ubuntu Jammy to Noble OVN) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: ubuntu - os_release: jammy - ssh_username: ubuntu - neutron_plugin: ovn - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - upgrade: true - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - all-in-one-upgrade-rocky-9-ovn: - name: aio upgrade (Rocky 9 OVN) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: rocky - os_release: "9" - ssh_username: cloud-user - neutron_plugin: ovn - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - upgrade: true - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - all-in-one-upgrade-rocky-9-ovs: - name: aio upgrade (Rocky 9 OVS) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: rocky - os_release: "9" - ssh_username: cloud-user - neutron_plugin: ovs - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - upgrade: true - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} +# --- + +# concurrency: +# group: stackhpc-pull-request-${{ github.event.pull_request.number || github.ref }} +# cancel-in-progress: true + +# name: Pull request +# 'on': +# pull_request: +# jobs: +# # Detect which files have changed and use this to run jobs conditionally. +# # Note that we can't use the workflow-level paths attribute since this +# # would skip the workflow entirely, and would prevent us from making the +# # aio jobs required to pass (a skip counts as a pass). +# check-changes: +# runs-on: ubuntu-24.04 +# permissions: +# pull-requests: read +# name: Check changed files +# if: github.repository == 'stackhpc/stackhpc-kayobe-config' +# needs: +# - lint +# # - tox +# outputs: +# aio: ${{ steps.changes.outputs.aio }} +# build-kayobe-image: ${{ steps.changes.outputs.build-kayobe-image }} +# check-tags: ${{ steps.changes.outputs.check-tags }} +# steps: +# - name: GitHub Checkout +# uses: actions/checkout@v4 + +# - name: Check changed files +# uses: dorny/paths-filter@v3 +# id: changes +# with: +# # Filters are defined in this file. +# filters: .github/path-filters.yml + +# tox: +# runs-on: ubuntu-24.04 +# permissions: {} +# strategy: +# matrix: +# include: +# - environment: pep8 +# python-version: "3.12" +# - environment: releasenotes +# python-version: "3.12" +# - environment: docs +# python-version: "3.12" +# name: Tox ${{ matrix.environment }} with Python ${{ matrix.python-version }} +# if: github.repository == 'stackhpc/stackhpc-kayobe-config' +# steps: +# - name: GitHub Checkout ๐Ÿ›Ž +# uses: actions/checkout@v4 +# with: +# fetch-depth: 0 +# - name: Setup Python ${{ matrix.python-version }} ๐Ÿ +# uses: actions/setup-python@v5 +# with: +# python-version: ${{ matrix.python-version }} +# - name: Install Tox ๐Ÿ“ฆ +# run: pip install tox +# - name: Run Tox ${{ matrix.environment }} ๐Ÿงช +# run: tox -e ${{ matrix.environment }} + +# lint: +# runs-on: ubuntu-24.04 +# permissions: {} +# strategy: +# fail-fast: false +# matrix: +# include: +# # NOTE(upgrade): Keep these in sync with Kayobe's supported Ansible and Python versions (see release notes). +# - ansible: "2.18" +# python: "3.12" +# - ansible: "2.17" +# python: "3.10" +# name: Ansible ${{ matrix.ansible }} lint with Python ${{ matrix.python }} +# if: github.repository == 'stackhpc/stackhpc-kayobe-config' +# steps: +# - name: GitHub Checkout ๐Ÿ›Ž +# uses: actions/checkout@v4 + +# - name: Setup Python ${{ matrix.python-version }} ๐Ÿ +# uses: actions/setup-python@v4 +# with: +# python-version: ${{ matrix.python }} + +# - name: Install dependencies ๐Ÿ“ฆ +# run: | +# python -m pip install --upgrade pip +# pip install ansible-core==${{ matrix.ansible }}.* ansible-lint -r requirements.txt + +# - name: Install Ansible Galaxy collections and roles +# run: | +# ansible-galaxy collection install -r etc/kayobe/ansible/requirements.yml +# ansible-galaxy role install -r etc/kayobe/ansible/requirements.yml + +# - name: Linting code ๐Ÿงช +# run: | +# ansible-lint -v --force-color etc/kayobe/ansible/. + +# # A skipped job is treated as success when used as a required status check. +# # The registered required status checks refer to the name of the job in the +# # called reusable workflow rather than the jobs in this file. The following +# # jobs need to run unconditionally to allow GitHub required status checks to +# # pass even when there are changed files. The `! failure()` condition runs +# # when the parent jobs completed successfully or were skipped. We pass an +# # 'if' argument to the called workflow to allow running it conditionally. + +# build-kayobe-image: +# name: Build Kayobe Image +# needs: +# - check-changes +# uses: ./.github/workflows/stackhpc-build-kayobe-image.yml +# with: +# if: ${{ needs.check-changes.outputs.build-kayobe-image == 'true' }} +# if: github.repository == 'stackhpc/stackhpc-kayobe-config' + +# check-tags: +# name: Check container image tags +# needs: +# - check-changes +# - build-kayobe-image +# uses: ./.github/workflows/stackhpc-check-tags.yml +# with: +# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} +# if: ${{ needs.check-changes.outputs.check-tags == 'true' }} +# secrets: inherit +# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + +# all-in-one-ubuntu-noble-ovn: +# name: aio (Ubuntu Noble OVN) +# needs: +# - check-changes +# - build-kayobe-image +# uses: ./.github/workflows/stackhpc-all-in-one.yml +# with: +# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} +# os_distribution: ubuntu +# os_release: noble +# ssh_username: ubuntu +# neutron_plugin: ovn +# OS_CLOUD: openstack +# if: ${{ needs.check-changes.outputs.aio == 'true' }} +# secrets: inherit +# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + +# all-in-one-rocky-9-ovs: +# name: aio (Rocky 9 OVS) +# needs: +# - check-changes +# - build-kayobe-image +# uses: ./.github/workflows/stackhpc-all-in-one.yml +# with: +# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} +# os_distribution: rocky +# os_release: "9" +# ssh_username: cloud-user +# neutron_plugin: ovs +# OS_CLOUD: openstack +# if: ${{ needs.check-changes.outputs.aio == 'true' }} +# secrets: inherit +# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + +# all-in-one-rocky-9-ovn: +# name: aio (Rocky 9 OVN) +# needs: +# - check-changes +# - build-kayobe-image +# uses: ./.github/workflows/stackhpc-all-in-one.yml +# with: +# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} +# os_distribution: rocky +# os_release: "9" +# ssh_username: cloud-user +# neutron_plugin: ovn +# OS_CLOUD: openstack +# if: ${{ needs.check-changes.outputs.aio == 'true' }} +# secrets: inherit +# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + +# # Test two upgrade scenarios: Ubuntu Jammy to Noble OVN and Rocky 9 OVN. + +# all-in-one-upgrade-ubuntu-jammy-to-noble-ovn: +# name: aio upgrade (Ubuntu Jammy to Noble OVN) +# needs: +# - check-changes +# - build-kayobe-image +# uses: ./.github/workflows/stackhpc-all-in-one.yml +# with: +# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} +# os_distribution: ubuntu +# os_release: jammy +# ssh_username: ubuntu +# neutron_plugin: ovn +# OS_CLOUD: openstack +# if: ${{ needs.check-changes.outputs.aio == 'true' }} +# upgrade: true +# secrets: inherit +# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + +# all-in-one-upgrade-rocky-9-ovn: +# name: aio upgrade (Rocky 9 OVN) +# needs: +# - check-changes +# - build-kayobe-image +# uses: ./.github/workflows/stackhpc-all-in-one.yml +# with: +# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} +# os_distribution: rocky +# os_release: "9" +# ssh_username: cloud-user +# neutron_plugin: ovn +# OS_CLOUD: openstack +# if: ${{ needs.check-changes.outputs.aio == 'true' }} +# upgrade: true +# secrets: inherit +# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + +# all-in-one-upgrade-rocky-9-ovs: +# name: aio upgrade (Rocky 9 OVS) +# needs: +# - check-changes +# - build-kayobe-image +# uses: ./.github/workflows/stackhpc-all-in-one.yml +# with: +# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} +# os_distribution: rocky +# os_release: "9" +# ssh_username: cloud-user +# neutron_plugin: ovs +# OS_CLOUD: openstack +# if: ${{ needs.check-changes.outputs.aio == 'true' }} +# upgrade: true +# secrets: inherit +# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml new file mode 100644 index 0000000000..25df193e4a --- /dev/null +++ b/zuul.d/jobs.yaml @@ -0,0 +1,11 @@ +--- +- job: + name: alex-kube-test + description: | + Testo + run: zuul.d/playbooks/kube-test/run.yml + timeout: 300 + nodeset: + nodes: + - name: kubernetes-runner-pod-jammy + label: kubernetes-runner-pod-jammy diff --git a/zuul.d/playbooks/kube-test/run.yml b/zuul.d/playbooks/kube-test/run.yml new file mode 100644 index 0000000000..f3fd326282 --- /dev/null +++ b/zuul.d/playbooks/kube-test/run.yml @@ -0,0 +1,39 @@ +--- +- hosts: all + vars: + script_path: "/home/zuul/src/github.com/stackhpc/stackhpc-kayobe-config/etc/kayobe/environments/ci-tenks/automated-deployment.sh" + tasks: + - name: Cat deploy script + shell: + cmd: "cat {{ script_path }}" + executable: /bin/bash + + - name: hostnamectl + shell: + cmd: "hostnamectl" + executable: /bin/bash + + - name: lscpu + shell: + cmd: "lscpu" + executable: /bin/bash + + - name: lsblk + shell: + cmd: "lsblk" + executable: /bin/bash + + - name: free -h + shell: + cmd: "free -h" + executable: /bin/bash + + - name: pwd + shell: + cmd: "pwd" + executable: /bin/bash + + - name: df -h + shell: + cmd: "df -h" + executable: /bin/bash diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index 2551dd112e..485baa1c4a 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -4,6 +4,7 @@ check: jobs: - openstack-tox-pep8 + - alex-kube-test gate: jobs: