This repo hosts the federation CRDs, controllers, and HTTP/mTLS server split out of the enterprise controller.
- Go 1.25.4+, Docker, Helm 3.16+, controller-gen in
$PATH. go mod tidyuses areplaceto the enterprise repo at commit112c9c0c7d67. Swap therequire github.com/external-secrets/external-secrets v0.0.0-20251122115546-112c9c0c7d67to a tagged version and drop thereplaceonce a published tag exists.
- Build:
make build(binary atbin/federation). - Unit tests:
make test(setsGOFLAGS=-mod=mod). - CRDs:
make crdsregeneratesconfig/crds/basesand the chart CRDs are kept underdeploy/charts/federation/crds/. - Docker image:
make docker-build IMAGE=ghcr.io/<repo>/federation-server:<tag>. - Helm chart:
make helm-lintandmake helm-package(outputs todist/). - Release:
make release-snapshotlocally or use the tag-triggered GitHub Action (.github/workflows/release.yaml) which runs GoReleaser (archives, image build withskip_push, Helm chart package).
- Compatibility matrix lives in
docs/compatibility.mdwith the machine-readable source indocs/compatibility.json(consumed by CI). - Run locally:
make contract-test(defaults toMATRIX_INDEX=0fromdocs/compatibility.json). Override withCORE_CHART,CORE_VERSION,FED_CHART, orFED_VERSIONto test other pairs. - CI workflow:
.github/workflows/contract.yamlcreates a kind cluster, installs the enterprise chart and this federation chart per the matrix, and waits for controllers/CRDs to become ready.
- Federation controllers:
pkg/enterprise/controllers/federation/** - Federation server + deps/store/auth:
pkg/enterprise/federation/** - APIs:
apis/enterprise/federation/**(including identity) - CRDs:
config/crds/bases/*federation*, identity CRDs - Samples:
config/samples/federation/** - Helm chart:
deploy/charts/federation/**
- The federation generator remains in the core repo; this binary exposes the federation server and controllers only.
- Flags mirror the in-tree wiring:
--server-port,--server-tls-port,--enable-federation-tls,--controller-class,--enable-flood-gate,--spire-agent-socket-path, metrics/probe addresses, and leader election.