From cfbde6aa36375be0eaf367b93f58869069ef6caf Mon Sep 17 00:00:00 2001 From: Samuel K Date: Wed, 13 May 2026 15:18:58 -0500 Subject: [PATCH 1/3] ci: add Linux rootless and rootful Podman entries to e2e test matrix The CI matrix only tested Podman on Windows. Add two new Linux matrix entries (rootless and rootful) that install Podman on ubuntu-latest and run the up-provider-podman e2e tests against real Podman runtimes. --- .github/workflows/pr-ci.yml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 39f8bbadf..91e6edcac 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -305,8 +305,16 @@ jobs: - label: up-provider-podman runner: ubuntu-latest free-disk-space: true - install-kind: true + install-kind: false + requires-secret: false + install-podman: rootless + + - label: up-provider-podman + runner: ubuntu-latest + free-disk-space: true + install-kind: false requires-secret: false + install-podman: rootful - label: up-provider-docker runner: ubuntu-latest @@ -513,6 +521,23 @@ jobs: image: kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a skipClusterLogsExport: true + - name: Install Podman (Linux rootless) + if: matrix.install-podman == 'rootless' && runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y podman + podman info + + - name: Install Podman (Linux rootful) + if: matrix.install-podman == 'rootful' && runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y podman + sudo podman system service --time=0 unix:///run/podman/podman.sock & + sleep 2 + echo "DOCKER_HOST=unix:///run/podman/podman.sock" >> "$GITHUB_ENV" + sudo podman info + - name: remove docker if: matrix.label == 'docker-install' && (matrix.requires-secret == false || needs.can-read-secret.outputs.secret-set == 'true') run: | From 80782b3bc3e0aa5237c2a6a96f0636a66888b42c Mon Sep 17 00:00:00 2001 From: Samuel K Date: Wed, 13 May 2026 15:25:02 -0500 Subject: [PATCH 2/3] fix(ci): forward DOCKER_HOST to sudo and disambiguate Podman job names Pass DOCKER_HOST through sudo env passthrough so rootful Podman socket reaches the test process. Add install-podman mode to job name template for distinct CI display names. Replace sleep with socket poll for rootful service readiness. --- .github/workflows/pr-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 91e6edcac..5109ed984 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -186,7 +186,7 @@ jobs: go test -v -ginkgo.v -timeout 1500s --ginkgo.label-filter="${{ matrix.label }}" integration-tests: - name: Test ${{ matrix.label }} on ${{ matrix.runner }} + name: Test ${{ matrix.label }}${{ matrix.install-podman && format(' ({0})', matrix.install-podman) || '' }} on ${{ matrix.runner }} needs: [can-read-secret, build-cli] strategy: fail-fast: false @@ -534,7 +534,7 @@ jobs: sudo apt-get update sudo apt-get install -y podman sudo podman system service --time=0 unix:///run/podman/podman.sock & - sleep 2 + timeout 10 bash -c 'until [ -S /run/podman/podman.sock ]; do sleep 0.5; done' echo "DOCKER_HOST=unix:///run/podman/podman.sock" >> "$GITHUB_ENV" sudo podman info @@ -570,6 +570,7 @@ jobs: GH_ACCESS_TOKEN="${GH_ACCESS_TOKEN}" \ GH_CREDENTIAL_USERNAME="${GH_CREDENTIAL_USERNAME}" \ KUBECONFIG="${KUBECONFIG:-$HOME/.kube/config}" \ + ${DOCKER_HOST:+DOCKER_HOST="${DOCKER_HOST}"} \ PATH="${PATH}" \ GOROOT="${GOROOT}" \ go test -v -ginkgo.v -timeout 1500s --ginkgo.label-filter="${{ matrix.label }}" From f31778c2fb918e932298345e88714604f8615a47 Mon Sep 17 00:00:00 2001 From: Samuel K Date: Wed, 13 May 2026 17:27:21 -0500 Subject: [PATCH 3/3] fix(ci): use systemd socket activation for rootful Podman in CI The background `podman system service` process didn't create the socket within the 10-second timeout on GitHub Actions runners (exit code 124). Switch to `systemctl enable --now podman.socket` which is the standard way to activate the Podman API socket on systemd-based runners. --- .github/workflows/pr-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 5109ed984..b85b20fc6 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -533,8 +533,8 @@ jobs: run: | sudo apt-get update sudo apt-get install -y podman - sudo podman system service --time=0 unix:///run/podman/podman.sock & - timeout 10 bash -c 'until [ -S /run/podman/podman.sock ]; do sleep 0.5; done' + sudo systemctl enable --now podman.socket + timeout 30 bash -c 'until sudo podman info >/dev/null 2>&1; do sleep 1; done' echo "DOCKER_HOST=unix:///run/podman/podman.sock" >> "$GITHUB_ENV" sudo podman info