image-distribution
Enterprise Image Distribution
This repository is the private product repository for AisOpsFlow.
Images
Public compiled images published from this repository:
ghcr.io/<org>/aisopsflow-coreghcr.io/<org>/aisopsflow-runnerghcr.io/<org>/aisopsflow-console
Commercial images published from this repository:
ghcr.io/<org>/aisopsflow-core-commercialghcr.io/<org>/aisopsflow-runner-commercialghcr.io/<org>/aisopsflow-console-commercial
No plugin images are published from this repository.
Source of truth
core/Dockerfilebuilds the Core imagerunner/Dockerfilebuilds the Runner imageconsole/Dockerfilebuilds the Console image- GitHub Actions in
.github/workflows/publish-images.ymlpublishes both public and commercial images to GHCR scripts/validate-runtime-images.shverifies that runtime images contain only runtime assets, not Haskell source/build metadata
Release model
Recommended triggers:
- push tags like
core-v1.2.3andrunner-v1.2.3for component-specific releases - push tags like
console-v1.2.3for console-only releases - push tags like
release-v1.2.3for coordinated full releases - manual
workflow_dispatchfor explicit version andlatestoperations without creating Git tags
Recommended tags on GHCR:
- Core component release:
- input tag:
core-v1.2.3 - published tags:
1.2.3, git sha
- input tag:
- Runner component release:
- input tag:
runner-v1.2.3 - published tags:
1.2.3, git sha
- input tag:
- Console component release:
- input tag:
console-v1.2.3 - published tags:
1.2.3, git sha
- input tag:
- Coordinated release:
- input tag:
release-v1.2.3 - published tags on all images:
1.2.3, git sha,latest
- input tag:
- Manual dispatch:
- inputs:
channel,component, optionalversion, optionalpublish_latest=true - published tags: always git sha, plus the explicit version and
latestwhen requested
- inputs:
Rules:
- Git tag driven
latestis emitted only forrelease-v* - manual
workflow_dispatchmay also emitlatestwhenpublish_latest=true - consumers should pin by digest in production
Public and commercial distribution
Public image channel:
- workflow:
.github/workflows/publish-images.yml - packages:
ghcr.io/<org>/aisopsflow-coreghcr.io/<org>/aisopsflow-runnerghcr.io/<org>/aisopsflow-console
- visibility:
public - public quickstart compose files should reference only these image names
Commercial image channel:
- workflow:
.github/workflows/publish-images.yml - packages:
ghcr.io/<org>/aisopsflow-core-commercialghcr.io/<org>/aisopsflow-runner-commercialghcr.io/<org>/aisopsflow-console-commercial
- visibility:
private - commercial deployment assets should reference only these image names
Feature boundary guidance is documented in docs/content/product/commercial-tiering.md.
Registry permissions
- repository remains private
- GHCR packages remain private
- customers receive pull credentials only for the commercial images they actually use
Public repo boundary
These concerns stay out of this repository’s publish path:
- public plugin SDK docs and helpers
- public plugin catalog manifests
- community plugin images
Those belong in the public aisopsflow-plugin-sdk and aisopsflow-plugin-catalog repositories.
For GitHub repository settings, package visibility, and release operator checks, see docs/content/reference/operations/ghcr-operations-checklist.md.