| name | image-management |
| description | Container image build, check, push, and manifest management: release-image.yml, buildx, multi-arch amd64 arm64 manifest, helm_image_check.sh, manifests_image_check.sh, skopeo sync, image cache, push_images.sh. Use when image release fails, a new engine image is added, manifest image check fails, or amd64/arm64 platform support is missing.
|
Image Management
This skill covers the full image lifecycle for KubeBlocks and related components: checking, building, pushing, and manifest generation.
Related Files
Workflows
Utils
Call Chain
release-image.yml
└── make push-image / docker buildx
release-image-manifest.yml
└── docker manifest push (docker.io & aliyun)
manifests-charts-image-check.yml
└── manifests_charts_image_check.sh <manifests-file> true
helm release image check:
release-charts.yml ──> helm_image_check.sh .cr-release-packages "kubeblocks|kblib-loadbalancer"
Image Registry Conventions
| Registry | Purpose |
|---|
docker.io/apecloud/... | Default public registry |
apecloud-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/... | Legacy Aliyun registry |
infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/... | New Aliyun registry |
Common Tasks
1. Add a new engine image and verify it
- Declare the image in manifests or chart values.
- Run the image check script:
./.github/utils/manifests_charts_image_check.sh deploy-manifests.yaml true
- If the image is missing, build/push it via
release-image.yml or push it manually.
- Re-run the check until it passes.
2. Fix helm chart image check failures
./.github/utils/helm_image_check.sh .cr-release-packages "kubeblocks|kblib-loadbalancer"
- Common failures: image not pushed, missing arm64 layer, wrong tag.
- The script supports
SKIP_CHECK_IMAGES to exclude known-not-ready images.
3. Push manifest images
./.github/utils/manifests_images_push.sh \
deploy-manifests.yaml \
deploy-values.yaml \
docker.io \
$DOCKER_USER \
$DOCKER_PASSWORD
4. Generate multi-arch manifests
release-image-manifest.yml generates linux/amd64,linux/arm64 manifests and pushes them to docker.io and both Aliyun registries. When modifying:
REMOVE_PREFIX: whether to strip the leading v from the version.
IMG and VERSION: full image name and tag for manifest generation.
5. Pass BuildKit secrets to cached image builds
release-image-cache2.yml supports optional BuildKit secret inputs:
BUILDX_SECRETS: values passed to docker/build-push-action secrets
BUILDX_SECRET_ID: BuildKit secret id for the optional named workflow secret
BUILDX_SECRET_NAME: GitHub Actions secret name to pass as the BuildKit secret
BUILDX_SECRET_FILES: file mappings passed to secret-files
Use secrets: inherit, then set both the BuildKit secret id and the inherited GitHub Actions
secret name:
with:
BUILDX_SECRET_ID: addon_runtime_seed
BUILDX_SECRET_NAME: ADDON_RUNTIME_KEY_SEED
secrets: inherit
Common Commands
./.github/utils/helm_image_check.sh .cr-release-packages "kubeblocks|kblib-loadbalancer"
./.github/utils/manifests_image_check.sh deploy-manifests.yaml
./.github/utils/manifests_charts_image_check.sh deploy-manifests.yaml true
Troubleshooting
helm_image_check.sh reports "image not found"
- Verify the tag exists:
docker manifest inspect <image>.
- If only one architecture exists, check
BUILDX_PLATFORMS in the matching release-image*.yml.
- As a temporary bypass while the image is being published, add the image to
SKIP_CHECK_IMAGES.
manifests_image_check.sh / manifests_charts_image_check.sh fails
- Ensure the manifests file path is correct and the registry is reachable.
- For chart checks, confirm the helm repo has the requested chart version (
helm search repo).
- Check
deploy-values.yaml for enable: false; disabled addons are skipped.
Multi-arch manifest push fails
release-image-manifest.yml pushes to docker.io and both Aliyun registries. If one registry fails,
check the corresponding secrets (DOCKER_REGISTRY_*, ALIYUN_REGISTRY_*, ALIYUN_*_NEW).
- Verify
REMOVE_PREFIX matches the expected tag format.
Image cache workflow not producing cache
release-image-cache*.yml uses buildx cache exporters. Confirm BUILDX_ARGS includes the correct
cache-to/cache-from flags if the caller overrides defaults.
Related Skills