[
https://issues.apache.org/jira/browse/YUNIKORN-3443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
weichen lai updated YUNIKORN-3443:
----------------------------------
Priority: Minor (was: Major)
> 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
> Priority: Minor
>
> 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]