项目文件夹

文件
Asim Aslam aaa03f89e3
goreleaser / goreleaser (push) Has been cancelled
deploy/kubernetes: embed CRDs instead of duplicating them (#4845)
The CRD manifests were kept in two places — real YAML under config/crd/
(for kubectl apply) and byte-identical const strings in manifests.go
(for the Go CRDManifests map) — which will silently drift.

Make config/crd/*.yaml the single source of truth and go:embed it;
CRDManifests now reads the embedded bytes. Drops ~120 lines of
duplicated YAML, no behavior change (still stdlib-only, tests unchanged).


Claude-Session: https://claude.ai/code/session_01CmdEY7pYmV5zzwCjNJ4ykL

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-12 16:53:53 +01:00
..
2026-07-12 13:01:09 +01:00
2026-07-12 13:01:09 +01:00

Kubernetes deployment foundation (alpha)

This package is the first opt-in Kubernetes foundation for the Go Micro lifecycle: Service, Agent, and Flow resources. It is intentionally experimental and additive. Nothing in the Go Micro runtime installs these resources or changes production defaults.

What is included

  • Alpha CRD manifests in config/crd/ for agents.micro.dev, services.micro.dev, and flows.micro.dev.
  • A small dependency-free mapper that turns a desired Go Micro resource into the Kubernetes Deployment shape an operator reconciliation loop will own.
  • Unit tests that validate the structural CRD fragments and dry-run the Agent-to-Deployment mapping.

Local validation

go test ./deploy/kubernetes

If you have a Kubernetes cluster and kubectl available, you can also perform a server-side dry run of the CRDs:

kubectl apply --dry-run=server -f deploy/kubernetes/config/crd/

The manifests are v1alpha1; expect the API shape to evolve before this becomes a production operator.