You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Publish the avd.netclab.dev API as its own Configuration package (#17)
A Function package cannot carry XRDs or Compositions. `xpkg build`
rejects both with "object is not a CRD" -- a Function package takes only
the CRDs describing its input, and this function has none, because the
XRs are its API. So the API this function serves was publishable from
nowhere: not from here, and not from a consumer without copying it.
It is now a second package, built from `apis/` with `apis/crossplane.yaml`
as its metadata and depending on the function. Nothing moves out of this
repo, so `kind-up.sh` and both e2e suites keep exercising the real API
rather than a fixture -- which is the whole reason the API stays where the
lab is.
Three supporting changes:
- The `Function` object is renamed to `netclab-function-avd`, because
that is what Crossplane calls a dependency-installed function
(`<org>-<name>`). The compositions and kind-up.sh follow it, so the dev
cluster now uses the same name a real install does -- previously the
e2e suite exercised a name no consumer would ever have.
- The dev-only Function manifests move from `apis/function/` to `dev/`.
They are not API, and with them under `apis/` the Configuration build
fails outright ("no kind Function is registered"). Out of the package
root, the build needs no --ignore, so a future directory under `apis/`
cannot silently fall out of the package.
- CI builds the Configuration on every PR, and the release publishes it
to GHCR and Upbound under the same version as the function. It is
deliberately not an `xpkg-*` artifact: the publish job globs those into
one multi-platform index, and this package must not join it.
Verified: both packages build, 31 offline tests pass, and the render
manifest and compositions agree on the new function name.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
0 commit comments