[ 
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]

Reply via email to