weichen lai created YUNIKORN-3443:
-------------------------------------
Summary: Support Podman in release tools for building images and
validation
Key: YUNIKORN-3443
URL: https://issues.apache.org/jira/browse/YUNIKORN-3443
Project: Apache YuniKorn
Issue Type: Improvement
Components: release
Reporter: weichen lai
h3. Motivation
Currently, the release scripts and tools in {{yunikorn-release}} are tightly
coupled with Docker:
# {{release-tools/build-image.py}} explicitly searches for and invokes
{{docker}} ({{cmd = get_cmd("docker")}}) for logging in, pushing images, and
managing multi-arch manifests ({{docker manifest}}).
# {{release-top-level-artifacts/validate_cluster.sh}} checks for Docker daemon
availability using {{docker version | grep "^Server:"}} and uses {{kind load
docker-image}} to preload images into the Kind cluster.
Following the work in YUNIKORN-3441 introducing Podman support for local builds
and E2E testing in {{yunikorn-k8shim}}, developers and release managers who
work in Podman-only environments (or rootless container setups) still cannot
run release packaging, image builds, or cluster validation smoothly without a
Docker daemon.
We should extend Podman support to {{yunikorn-release}}.
h3. Proposed Changes
# *Container Engine Abstraction in {{release-tools/build-image.py}}*:
** Auto-detect container engine ({{docker}} preferred, fallback to {{podman}}),
or support configuring via CLI flag (e.g., {{--engine}}) / environment variable
({{DOCKER}}).
** Add explicit registry target ({{docker.io}}) during {{login}} command to
ensure compatibility with Podman CLI:
{{[cmd, "login", "docker.io", "--username", ..., "--password", ...]}}
** Ensure {{podman manifest}} commands ({{create}}, {{add}}/{{--amend}}, {{push
--purge}}) work seamlessly alongside {{docker manifest}}.
# *Adapt {{release-top-level-artifacts/validate_cluster.sh}} for Podman*:
** Replace the daemon-specific check ({{docker version | grep "^Server:"}})
with {{${DOCKER} info &> /dev/null}}, which works for both Docker and
daemonless Podman.
** Sideload images into Kind using {{kind load image-archive}} via temporary
tarballs when Podman is used.
** Set {{KIND_EXPERIMENTAL_PROVIDER=podman}} when running under Podman.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]