Build a Podman application package (OCI artifact)

For quadlet and container applications, you package your configuration files into an OCI artifact. The Red Hat Edge Manager agent uses the artifact to identify the application type and extract the configuration to the device’s Podman runtime.

About this task

Supported Quadlet types: The Red Hat Edge Manager agent supports the following Quadlet file extensions within an artifact:

  • .container: Defines a containerized service.
  • .volume: Defines a Podman named volume.
  • .network: Defines a container network.
  • .image: Defines a container image (for pre-pulling).
  • .pod: Defines a pod (group of containers).

Procedure

  1. Prepare your application configuration: Create the configuration file required for your chosen format (for example, application.container). Ensure that you define any persistent data requirements by using volumes within these configuration files.
    Note

    To ensure Quadlet services restart automatically after a device reboot, include an [Install] section in your .container file (for example, WantedBy=default.target).

  2. Create the OCI artifact: Use the podman artifact add command to package your configuration.

    For a single file, run:

    podman artifact add quay.io/<your_org>/<your_image_name>:v1 application.container

    For multiple files, bundle them into a compressed archive first. Create the archive:

    tar czf app-bundle.tar.gz application.container config.json

    Add the archive to the artifact:

    podman artifact add quay.io/<your_org>/<your_image_name>:v1 app-bundle.tar.gz
    Note

    Podman version 5.5 or later is required for the artifact command. The Red Hat Edge Manager agent automatically extracts .tar.gz, .tar, and .tgz archives into the application directory on the edge device.

  3. Push the artifact to your registry: Upload the packaged artifact to your OCI-compatible registry:
    podman artifact push quay.io/<your_org>/<your_image_name>:v1