No description
  • Go 82.2%
  • Shell 7.7%
  • Makefile 5.2%
  • Smarty 4.9%
Find a file
mawu f56a2c818f
All checks were successful
ci-main / test (push) Successful in 54s
chore: migrate Go module path to edp.buildth.ing/devfw-cicd
Replace gitlab.devops.telekom.de/ipcei-cis/infra/kcp-fabric-provider
with edp.buildth.ing/devfw-cicd/kcp-fabric-provider in go.mod.
2026-05-21 09:06:14 +02:00
.forgejo/workflows ci: set nodeID=ci in helm render to satisfy required value 2026-05-20 20:51:08 +02:00
api/networking/v1alpha1 chore: gofmt api types 2026-05-20 20:47:55 +02:00
chart chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
docs docs: add ADR-0035 cross-cluster connectivity abstraction 2026-05-20 20:53:52 +02:00
hack chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
internal chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
.gitignore chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
.goreleaser.yaml chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
Dockerfile.goreleaser chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
go.mod chore: migrate Go module path to edp.buildth.ing/devfw-cicd 2026-05-21 09:06:14 +02:00
go.sum chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
LICENSE chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
main.go chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
Makefile ci: set nodeID=ci in helm render to satisfy required value 2026-05-20 20:51:08 +02:00
NOTICE chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
README.md chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00
renovate.json chore: initial scaffold (plan-12 M0 prep) 2026-05-20 16:18:59 +02:00

kcp-fabric-provider

CI

Provider-agnostic cross-cluster connectivity layer for Edge Connect.

This repo publishes the networking.edge-connect.eu/v1alpha1 APIExport (FabricClass, ConnectivityFabric, ExposedService) and ships the fabric-controller core that selects a fabric driver per ConnectivityFabric, gates membership on substrate feasibility, aggregates status, and orders finaliser cleanup. The per-technology fabric drivers (Cilium, Skupper, Submariner, MCS-API) live in their own sibling repos.

Role in the platform

Plane Component Repo
API publisher (kcp-provider) fabric-controller (this repo) + admission/conversion webhooks kcp-fabric-provider
Fabric driver: Cilium cilium-provider kcp-cilium-mesh-provider
Fabric driver: Skupper TBD kcp-skupper-provider (planned)
Fabric driver: Submariner TBD kcp-submariner-provider (planned)
Fabric driver: MCS-API TBD kcp-mcs-api-provider (planned)
In-CI stub driver (D12) internal/stub/ (this repo)

The core never imports a real driver package. INV-06 is enforced by hack/check-no-provider-imports.sh in CI.

See plan 12 for the binding decisions, milestone map, and invariant matrix.

Layout

api/networking/v1alpha1/   FabricClass, ConnectivityFabric, ExposedService Go types
cmd/                       (reserved for sub-binaries if split out later)
internal/controller/       reconcilers: selection, gating, status aggregation, finalizer ordering
internal/dispatch/         label-based dispatch (selected-provider=<driver>)
internal/stub/             D12 in-CI stub driver — proves abstraction holds against >1 provider
internal/webhook/          admission webhook + ClusterMeshBinding conversion webhook
hack/                      CI lint scripts (INV-06 import boundary)
chart/                     Helm chart for OCI release
docs/                      ADR mirrors, architecture, deployment, developer-guide, C4 L3

Quickstart (development)

make tidy        # go mod tidy
make build       # builds bin/kcp-fabric-provider
make test        # unit tests
make vet         # go vet
make lint-imports  # INV-06 boundary check
make helm-lint   # helm lint chart

Release

Tag v* on master triggers two Forgejo Actions workflows in parallel:

  • release.yaml — GoReleaser builds the multi-arch binary, Trivy-scans, pushes the OCI image to edp.buildth.ing/devfw-cicd/kcp-fabric-provider:<version>.
  • release-charts.yaml — Helm lints + packages + pushes the chart to oci://edp.buildth.ing/devfw-cicd/kcp-fabric-provider:<version>. Chart version and appVersion are stamped from the tag at package time.

Status

Scaffold (pre-v0.1.0). No production releases yet. See plan 12 §8 milestones M0M3.5 for the phase-1 deliverables this repo is the home of.