Skip to content

Latest commit

 

History

History
52 lines (44 loc) · 1.42 KB

README.md

File metadata and controls

52 lines (44 loc) · 1.42 KB

Federation

A Kubernetes controller that utilizes MCP-over-XDS protocol to configure mesh-federation in Istio.

The API allows to export services to remote peers using label selectors. An exported service is available in the importing cluster without any additional routing configuration. Controllers use gRPC protocol to exchange exported services, and cross-cluster connections between controllers are secured with Istio mTLS.

Motivation

In this deployment model, independent meshes deployed in different clusters can connect services without configuring access to the k8s api-server in remote clusters. This allows to achieve multi-cluster connectivity for meshes managed by different teams in different clusters.

Development

Prerequisites

  1. Go 1.22+
  2. protoc 3.19.0+
  3. protoc-gen-go v1.30.0+
  4. protoc-get-golang-deepcopy

Commands

  1. Compile controller:
    make
  2. Run unit tests:
    make test
  3. Build image:
    HUB=quay.io/maistra-dev TAG=test make docker-build
  4. Push image:
    HUB=quay.io/maistra-dev TAG=test make docker-push
  5. Run e2e tests:
    make e2e
  6. Run e2e tests with specific Istio version and custom controller image:
    HUB=quay.io/maistra-dev TAG=test ISTIO_VERSION=1.23.0 make e2e
  7. Re-run e2e tests without setting-up KinD clusters:
    make e2e-test