fix(deps): update module github.com/gophercloud/utils/v2 to v2.0.0-20260824073324-42b9474d09d4 #238
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: devstack | |
| on: | |
| pull_request: | |
| env: | |
| # renovate: datasource=github-releases depName=kubernetes-sigs/external-dns | |
| CI_EXTERNAL_DNS_VERSION: v0.20.0 | |
| OS_CLOUD: devstack-admin-demo | |
| jobs: | |
| external-dns-source-fake: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout external-dns-openstack-webhook | |
| uses: actions/checkout@v7 | |
| - name: Checkout kubernetes-sigs/external-dns | |
| uses: actions/checkout@v7 | |
| with: | |
| repository: kubernetes-sigs/external-dns | |
| path: ./external-dns | |
| ref: ${{ env.CI_EXTERNAL_DNS_VERSION }} | |
| - name: Checkout openstack/devstack | |
| uses: actions/checkout@v7 | |
| with: | |
| repository: openstack/devstack | |
| ref: "stable/2025.2" | |
| path: ./devstack | |
| - name: Set up Go | |
| uses: actions/setup-go@v7 | |
| with: | |
| go-version: "1.27.x" | |
| cache-dependency-path: | | |
| ./go.sum | |
| ./external-dns/go.sum | |
| - name: Install pip | |
| run: python -m pip install --upgrade pip | |
| - name: go build external-dns-openstack-webhook | |
| run: make build | |
| - name: go build external-dns | |
| run: make build | |
| working-directory: ./external-dns | |
| - name: Configure devstack | |
| run: | | |
| cat <<EOF > local.conf | |
| [[local|localrc]] | |
| ADMIN_PASSWORD=secret | |
| DATABASE_PASSWORD=root | |
| RABBIT_PASSWORD=secret | |
| SERVICE_PASSWORD=secret | |
| LOGFILE=/var/tmp/devstack.log | |
| USE_PYTHON3=True | |
| INSTALL_TEMPEST=False | |
| ENABLED_SERVICES=key,mysql,rabbit | |
| ENABLE_HTTPD_MOD_WSGI_SERVICES=True | |
| DESIGNATE_BACKEND_DRIVER=bind9 | |
| enable_plugin designate https://opendev.org/openstack/designate stable/2025.2 | |
| enable_service designate,designate-central,designate-api,designate-zone-manager,designate-mdns,designate-worker,designate-producer | |
| EOF | |
| working-directory: ./devstack | |
| shell: bash | |
| - name: Run stack.sh | |
| run: ./stack.sh | |
| working-directory: ./devstack | |
| - name: Fix Designate root_helper | |
| # root_helper defaults to "sudo designate-rootwrap ..." in designate/conf/base.py. | |
| # designate-rootwrap lives in the devstack venv (/opt/stack/data/venv/bin) which | |
| # is not in sudo's secure_path -> every rndc addzone fails -> zones PENDING->ERROR. | |
| # Insert the absolute path immediately after [DEFAULT] so oslo.config picks it up. | |
| run: | | |
| sudo sed -i '/^\[DEFAULT\]/a root_helper = sudo /opt/stack/data/venv/bin/designate-rootwrap /etc/designate/rootwrap.conf' \ | |
| /etc/designate/designate.conf | |
| shell: bash | |
| - name: Restart Designate | |
| run: sudo systemctl restart "devstack@designate-*.service" | |
| - name: Create zones example.com | |
| run: | | |
| openstack zone create --email admin@example.com example.com. | |
| - name: Wait for zone creation | |
| run: | | |
| while [ "$(openstack zone list -f value --status PENDING)" != "" ]; do date; openstack zone list -f value; sleep 1; done | |
| - name: Start external-dns-openstack-webhook in background | |
| run: | | |
| ./build/bin/external-dns-openstack-webhook >/tmp/external-dns-openstack-webhook.log 2>&1 & | |
| - name: Run external-dns | |
| run: ./build/external-dns --txt-owner-id my-cluster-id --provider webhook --source fake --log-level=debug --once 2>&1 | |
| working-directory: ./external-dns | |
| - name: Show /tmp/external-dns-openstack-webhook.log | |
| run: cat /tmp/external-dns-openstack-webhook.log | |
| - name: Wait for PENDING | |
| run: | | |
| while [ "$(openstack zone list -f value --status PENDING)" != "" ]; do date; openstack zone list -f value; sleep 1; done | |
| - name: Show created entries | |
| run: | | |
| echo "Zones:" | |
| openstack zone list -f value | |
| echo "Recordsets:" | |
| openstack recordset list all -f value | |
| - name: Check created entries | |
| run: | | |
| if [ $(openstack recordset list all -f value | grep -c " TXT ") -ne 10 ]; then exit 1; fi | |
| if [ $(openstack recordset list all -f value | grep -c " A ") -ne 10 ]; then exit 2; fi | |
| - name: Create zone all-projects.test in alt_demo project | |
| run: | | |
| openstack --os-cloud devstack-alt zone create --email admin@example.com all-projects.test. | |
| - name: Wait for all-projects.test zone creation | |
| run: | | |
| while [ "$(openstack --os-cloud devstack-admin zone list -f value --status PENDING --all-projects)" != "" ]; do date; openstack --os-cloud devstack-admin zone list -f value --all-projects; sleep 1; done | |
| - name: Kill external-dns-openstack-webhook | |
| run: pkill -f external-dns-openstack-webhook || true | |
| - name: Start external-dns-openstack-webhook as admin with --all-projects | |
| run: | | |
| OS_CLOUD=devstack-admin ./build/bin/external-dns-openstack-webhook --all-projects --domain-filter all-projects.test >/tmp/external-dns-openstack-webhook-all-projects.log 2>&1 & | |
| for i in $(seq 30); do curl -sf http://127.0.0.1:8888 > /dev/null 2>&1 && break; sleep 1; done | |
| curl -sf http://127.0.0.1:8888 > /dev/null || { cat /tmp/external-dns-openstack-webhook-all-projects.log; exit 1; } | |
| - name: Run external-dns against all-projects.test as admin user | |
| run: ./build/external-dns --txt-owner-id all-projects-cluster-id --provider webhook --source fake --fqdn-template=all-projects.test --log-level=debug --once 2>&1 | |
| working-directory: ./external-dns | |
| - name: Show /tmp/external-dns-openstack-webhook-all-projects.log | |
| run: cat /tmp/external-dns-openstack-webhook-all-projects.log | |
| - name: Check all-projects created entries in all-projects.test | |
| run: | | |
| if [ $(openstack --os-cloud devstack-admin recordset list all-projects.test. --all-projects -f value | grep -c "all-projects-cluster-id") -ne 10 ]; then exit 1; fi |