Skip to content

chore(catalog): add version field to release-2.2 modules - #60

Merged
JLCode-tech merged 1 commit into
release/2.2from
fix/catalog-add-module-version-2.2
May 13, 2026
Merged

chore(catalog): add version field to release-2.2 modules#60
JLCode-tech merged 1 commit into
release/2.2from
fix/catalog-add-module-version-2.2

Conversation

@JLCode-tech

Copy link
Copy Markdown
Owner

Summary

Adds the required version field to every non-legacy entry in catalog/releases/release-2.2-official.json so the 8 auto-generated transition blueprints validate against Forge's BlueprintModuleDisplayMetadata schema and become importable.

  • Forge requires modules[*].version (Pydantic str, no default) — missing today, so all 8 release-2.2 blueprints sync as validation_state = invalid.
  • Each version mirrors module.version from the module's own bnkforge.pack.json (or module.json where the pack doesn't exist yet).
  • state: legacy entries (bnk-vlans, bnk-gateway-ext, gateway, routes, bnk-netpolicy, bnk-secpolicy) are intentionally skipped — they haven't migrated to module-metadata/v2alpha1 and don't have version-bearing packs yet.

Modules touched

Path Version State
k8s/bnk-prerequisites 1.0.0 active
k8s/cert-manager 3.1.0 active
k8s/network-setup 2.0.0 active
k8s/bnk-namespaces 2.0.0 deprecated
bnk/flo 2.0.0 active
bnk/cneinstance 2.0.0 active
bnk/bnk-gatewayclass 2.1.0 active
bnk/far-setup 2.0.0 deprecated

Test plan

  • Merge to release/2.2
  • In Forge: Settings → Blueprint SourcesSync on bnk-forge-modules
  • Verify 8 release-2.2 blueprints (bnk-gatewayclass, cneinstance, far-setup, flo, bnk-namespaces, bnk-prerequisites, cert-manager, network-setup) flip to validation_state = valid
  • Click Import on one to confirm no manifest error

Follow-ups

  • Two of the 8 modules (k8s/bnk-prerequisites, bnk/far-setup) currently lack a bnkforge.pack.json — version sourced from module.json instead. Consider creating proper pack JSONs in a separate PR.
  • Legacy bnk/* modules (vlans, gateway, routes, netpolicy, secpolicy, gateway-ext) still need migration to module-metadata/v2alpha1 before they can be added to the manifest.

🤖 Generated with Claude Code

Forge's blueprint schema (BlueprintModuleDisplayMetadata.version) requires
a version string on every entry in official_modules[]. Without it, the
8 auto-generated transition blueprints in release/2.2 sync as
validation_state=invalid and can't be imported.

Each version mirrors the module's own module.version (sourced from its
bnkforge.pack.json where present, falling back to module.json). state:legacy
entries are intentionally skipped — they haven't migrated to
module-metadata/v2alpha1 yet and don't have version-bearing packs.

Co-Authored-By: Claude <noreply@anthropic.com>
@JLCode-tech
JLCode-tech merged commit 6de49b6 into release/2.2 May 13, 2026
2 checks passed
JLCode-tech added a commit that referenced this pull request May 13, 2026
…GRATION.md (#61)

* feat(shared-layer): scope bnk-forge-modules to cloud-agnostic k8s prereqs

Combines stages 1 and 2 of the migration to a per-cloud blueprint
repo architecture (see MIGRATION.md):

- Create k8s/bnk-prerequisites/bnkforge.pack.json (v2alpha1 schema).
  This was the only "active" shared module missing a pack JSON; the
  PR #60 catalog-version fix had to source its version from module.json
  as a fallback. Now sourced from the pack directly.

- Add k8s/bnk-cert-issuer to release-2.2-official.json. The module has
  a working pack and is silently depended on by cert-manager,
  network-setup, and bnk-prerequisites — but wasn't listed in the
  catalog, so Forge never generated a transition blueprint for it.
  Adding it as an active first-class entry.

- Add MIGRATION.md at the repo root. Documents the target architecture
  (per-cloud repos modelled on jgruberf5/bnk-forge-ibm-roks-cluster),
  what stays here (shared cloud-agnostic k8s layer), what moves out
  (FLO, CNEInstance, network-setup vendor per-cloud), what retires
  (bnk-namespaces, far-setup, bnk-gateway-ext), and the phased plan.

- Bump VERSION to 2.2-rev.29.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(bnk-prerequisites): use 'user' source for cne_pull_secret (CI)

Validator allows source in {user, module, auto} only. project_secret
isn't a valid value — sensitive secrets use source=user + sensitive=true,
and Forge lets the deploy form bind it to a project secret.

Bump VERSION to 2.2-rev.30.

* fix(bnk-cert-issuer): add module.json + per-entry engine override

bnk-cert-issuer is a pure-manifest module (no .tf code) rendered by the
backend Python engine. The release validator previously required every
active entry to match the release-level execution_engine (opentofu),
which would have forced a misleading engine value on this module.

Changes:
- scripts/validate_module_metadata.py: allow per-entry execution.engine
  override; falls back to release.execution_engine when entry doesn't
  specify one. Backwards compatible for all 24 existing packs.
- catalog/releases/release-2.2-official.json: declare
  execution.engine = kubernetes on the bnk-cert-issuer entry.
- k8s/bnk-cert-issuer/module.json: new file, mirrors the existing pack
  with engine=kubernetes / deploy_models=[kubernetes_manifest].
- VERSION: 2.2-rev.30 -> 2.2-rev.31.

Both pack and release-manifest validators pass locally.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
@JLCode-tech
JLCode-tech deleted the fix/catalog-add-module-version-2.2 branch May 13, 2026 22:01
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