Skip to content

Add artifact quadlet unit type support #26624

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Odilhao
Copy link
Contributor

@Odilhao Odilhao commented Jul 12, 2025

RFE: Add artifact quadlet unit type #25778

Does this PR introduce a user-facing change?

Yes

Quadlets - Add support for Artifact Unit Type

@openshift-ci openshift-ci bot added the do-not-merge/release-note-label-needed Enforce release-note requirement, even if just None label Jul 12, 2025
Copy link
Contributor

openshift-ci bot commented Jul 12, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Odilhao
Once this PR has been reviewed and has the lgtm label, please assign luap99 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@Odilhao Odilhao force-pushed the artifact-quadlet-implementation branch 4 times, most recently from 304daa3 to 96aeafe Compare July 12, 2025 23:04
RFE: Add artifact quadlet unit type containers#25778

Signed-off-by: Odilon Sousa <[email protected]>
@Odilhao Odilhao force-pushed the artifact-quadlet-implementation branch from 96aeafe to 206628c Compare July 12, 2025 23:17
Copy link

[NON-BLOCKING] Packit jobs failed. @containers/packit-build please check. Everyone else, feel free to ignore.

@openshift-ci openshift-ci bot added release-note and removed do-not-merge/release-note-label-needed Enforce release-note requirement, even if just None labels Jul 13, 2025
Copy link
Contributor

@ygalblum ygalblum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution.
OK for the code. Some comments about the documentation and supporting non-existing flags.
As for tests, first, they are not being called, you need to add them to https://github.com/containers/podman/blob/main/test/e2e/quadlet_test.go.
In addition, add a test case that involves a dependency where a container mounts an artifact pulled via an .artifact unit (see this:

Entry("Container - Mount", "mount.container", []string{"basic.image", "basic.volume"}),
for example)

Comment on lines +2080 to +2082
### WARNING: Experimental Unit

This unit is considered experimental and still in development. Inputs, options, and outputs are all subject to change.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is that? Is it because podman artifact is at this state?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I just added the same text from the artifact section in podman


| **[Artifact] options** | **podman artifact equivalent** |
|---------------------------------------------|--------------------------------------------------------|
| Arch=aarch64 | --arch=aarch64 |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the code for podma artifact pull, I don't see the support for the following flags

  • arch
  • os
  • variant
  • policy


Using artifact units allows containers to depend on artifacts being automatically pulled. This is
particularly useful for managing artifacts that containers need to mount or access.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should mention that the Artifact key is required


Valid options for `[Artifact]` are listed below:

| **[Artifact] options** | **podman artifact equivalent** |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be podman artifact pull equivalent?

@@ -2179,6 +2306,14 @@ IPRange=172.16.0.0/28
Label=org.test.Key=value
```

Example `test.artifact`:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please also add a usage example. Where would test.artifact be used?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants