Image promotion and catalog publication
Publish image build artifacts to the Red Hat Edge Manager Software Catalog by creating an ImagePromotion resource. The promotion copies registry references and export artifacts into a CatalogItem version so operators can deploy from the catalog without entering OCI image references manually.
Build, promote, and deploy
The integrated workflow connects Image Builder and the Software Catalog:
- An administrator configures trusted base images on OCI repositories. See Configuring trusted base images on an OCI repository in the Additional resources section.
- You create an
ImageBuildand optionalImageExporttasks by using the simplified workflow or the CLI. See Building images with the simplified workflow in the Additional resources section. - You publish the build to the catalog. Enable Publish to Software Catalog when you create the build in the web console, or create an
ImagePromotionafter the build completes. - The service waits for required artifacts, publishes catalog metadata, and moves the promotion through lifecycle states until it reaches
CompletedorFailed. - Operators browse catalog items in the Software Catalog and deploy or update devices and fleets. See Using the Software Catalog in the Additional resources section.
You can also synchronize catalog definitions from Git by using a catalog ResourceSync. Git-synchronized catalogs and image-promoted catalog items can coexist. For Git-based catalog administration, see Managing a catalog repository on the CLI in the Additional resources section.
Default catalog
Every organization receives a default catalog automatically when the organization is first provisioned. You can publish image builds to this catalog without creating a Catalog resource first. Verify that the catalog exists by running flightctl get catalog/default.
Promotion lifecycle states
An ImagePromotion moves through the following phases in status.phase:
| Phase | Description |
|---|---|
|
|
The promotion is created but one or more required export formats or build artifacts are not yet available. The service re-evaluates the promotion when the referenced |
|
|
All required artifacts are available and the service is writing catalog item metadata. |
|
|
Publication succeeded. The catalog item version is available in the Software Catalog (subject to catalog lifecycle and channel configuration). |
|
|
Publication failed, for example because the referenced image build failed or catalog writes were denied. |
|
|
An attempt to append export formats failed. Fix the underlying issue; the service can retry amendment automatically when conditions allow. |
When you append export formats to an existing promotion (amendment), the service sets status.lastAmendedAt and might move the promotion back through Publishing toward Completed.
Catalog targets
In spec.target, choose one of the following target types:
- New catalog item: Creates a new
CatalogItemin the selected catalog with the version and artifact references from the promotion. - Existing catalog item: Adds a new version entry to an existing
CatalogItem, preserving version history on the same item (for example1.0.01.1.0).
New promotions assign the published catalog item version to the testing channel automatically. You cannot choose a different channel in an ImagePromotion manifest. Plan channel promotion separately if your organization uses multiple channels in catalog definitions.
Role-based access
Catalog publication is gated through ImagePromotion:
- Users with the Operator, OrgAdmin, or Admin role can create, read, update, and delete
ImagePromotionresources and can create new image build versions. - Direct
create,update,patch, anddeleteoperations oncatalogsandcatalogitemsare reserved for Admin and OrgAdmin roles (not Operator).
If Operator accounts require direct catalog write access, see Restoring catalog write access for Operator accounts in the Additional resources section.
Rebuild and version lineage
To produce a new image version from an existing build, use the flightctl new-version command or the New version action in the web console. The service copies the parent build specification and records lineage in the flightctl.io/new-version-from annotation. An optional publish step prefills the catalog name, catalog item name, incremented version, and replaces from the parent’s last successful promotion. See Creating a new image version and Publishing an image build to the Software Catalog in the Additional resources section.