Skip to content

feat(images): vendor Image CRs from kube-workspaces/image-catalog - #4

Merged
flaccid merged 1 commit into
mainfrom
feature/image-catalog-integration
Aug 25, 2026
Merged

feat(images): vendor Image CRs from kube-workspaces/image-catalog#4
flaccid merged 1 commit into
mainfrom
feature/image-catalog-integration

Conversation

@flaccid

@flaccid flaccid commented Aug 25, 2026

Copy link
Copy Markdown
Member

Summary

Image CR manifests are no longer authored in this repo. The 38 images previously hand-maintained in images.yaml now live upstream in kube-workspaces/image-catalog (one file per image), and are vendored here at a pinned release (IMAGE_CATALOG_VERSION=v0.1.0).

Changes

  • Makefile: new sync-images/check-images targets (mirrors the existing sync-helm-crds/check-helm-crds pattern). Removed the now-obsolete pull-images/push-images targets and pull-images.py — they round-tripped images.yaml against a live cluster, which no longer makes sense once the file is vendored, not hand-authored.
  • images.yaml: re-vendored from image-catalog@v0.1.0. Semantically identical to before (same 38 images; verified via a scripted diff) — just reordered, plus a catalog.kubeworkspaces.io/example: "true" annotation on the 5 images that back the Helm chart's curated defaults.
  • Helm chart: replaced the hardcoded 5-image list in values.yaml with two booleans:
    • installExampleImages (default true): installs the curated 5-image subset from the vendored files/images-examples.yaml
    • installCatalogImages (default false): installs the full vendored catalog (files/images-catalog.yaml) instead; takes precedence over installExampleImages to avoid rendering duplicate CRs
    • the images: values list still layers custom/additional images on top of whichever catalog setting is active
  • Helm unit tests: cover both booleans, their precedence, and layering with custom images (14 new/updated cases, all passing)
  • scripts/validate.sh: added full-image-catalog/no-image-catalog render cases to the kubeconform matrix
  • helm-publish.yaml: runs make check-images alongside make check-helm-crds
  • Docs: README.md, AGENTS.md, CONTRIBUTING.md, docs/domains.md updated to describe the new source of truth and sync workflow
  • Chart.yaml: version bumped 0.2.3 → 0.3.0

Testing

  • bash scripts/validate.sh: 85/85 checks passed (was 81/81 before this change)
  • helm unittest helm/kube-workspaces/: 56/56 tests passed across all suites
  • helm lint helm/kube-workspaces/: clean
  • Verified helm template produces 5 documents by default, 38 with installCatalogImages=true, 0 with both booleans false, and correctly layers custom images: on top without duplicates
  • Verified the re-vendored images.yaml is semantically identical to the pre-migration version (same 38 images, same fields) via a scripted comparison

Related

Image CR manifests are no longer authored in this repo. The 38 images
previously hand-maintained in images.yaml now live upstream in
kube-workspaces/image-catalog, one file per image, and are vendored
here at a pinned release (IMAGE_CATALOG_VERSION=v0.1.0).

deploy changes:
- Makefile: add sync-images/check-images targets (mirrors the existing
  sync-helm-crds/check-helm-crds pattern), remove the now-obsolete
  pull-images/push-images targets and pull-images.py
- images.yaml: re-vendored from image-catalog@v0.1.0 (semantically
  identical to before — same 38 images, just reordered, plus an
  annotation on the 5 curated examples)
- helm chart: replace the hardcoded 5-image values.yaml list with two
  new booleans:
    - installExampleImages (default true): install the curated 5-image
      subset from the vendored files/images-examples.yaml
    - installCatalogImages (default false): install the full vendored
      catalog (files/images-catalog.yaml) instead; takes precedence
      over installExampleImages to avoid duplicate CRs
  the images: values list still layers custom/additional images on
  top of whichever catalog setting is active
- helm unit tests: cover both booleans, precedence, and layering with
  custom images
- validate.sh: add full-image-catalog/no-image-catalog render cases to
  the kubeconform matrix
- helm-publish.yaml: run check-images alongside check-helm-crds
- docs: README, AGENTS.md, CONTRIBUTING.md, docs/domains.md updated
- Chart.yaml version bumped to 0.3.0 [feature/image-catalog-integration]
@flaccid
flaccid force-pushed the feature/image-catalog-integration branch from 5226b45 to cd7b599 Compare August 25, 2026 05:02
@flaccid
flaccid merged commit 7a52bb7 into main Aug 25, 2026
6 checks passed
@flaccid
flaccid deleted the feature/image-catalog-integration branch August 25, 2026 05:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant