Skip to content
Kubernetes Federation v2
Branch: master
Clone or download
k8s-ci-robot Merge pull request #682 from gedgar/master
Fix help text typo in enable.go
Latest commit 3e25160 Mar 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Merge pull request #540 from gyliu513/pull-tmp Jan 3, 2019
cmd Remove option to disable leader election Mar 18, 2019
config/enabletypedirectives Determine the comparison field at runtime rather than configuring Feb 19, 2019
docs update document for namespaced federation Mar 21, 2019
hack generate the install yaml Mar 18, 2019
images/federation-v2 Replace controller-manager with hyperfed in Docker image Nov 19, 2018
test e2eLogger: Make the summary a little more useful Mar 22, 2019
vendor Update kube-openapi to include compat fixes required by openshift Mar 13, 2019
.travis.yml Fix usage Mar 7, 2019 Adding Contribution Guideline Jul 26, 2018
LICENSE Initial commit Jan 9, 2018
OWNERS Adding myself as reviewer. Jul 5, 2018
SECURITY_CONTACTS Add SECURITY_CONTACTS to the federation-v2 repo. May 23, 2018 Adopt Kubernetes code of conduct Apr 17, 2018

Build Status Image Repository on Quay

Kubernetes Federation v2

This repo contains an in-progress prototype of some of the foundational aspects of V2 of Kubernetes Federation. The prototype builds on the sync controller (a.k.a. push reconciler) from Federation v1 to iterate on the API concepts laid down in the brainstorming doc and further refined in the architecture doc. Access to both documents is available to members of the kubernetes-sig-multicluster google group.


Federation is configured with two types of information:

  • Type configuration declares which API types federation should handle
  • Cluster configuration declares which clusters federation should target

Propagation refers to the mechanism that distributes resources to federated clusters.

Type configuration has three fundamental concepts:

  • Templates define the representation of a resource common across clusters
  • Placement defines which clusters the resource is intended to appear in
  • Overrides define per-cluster field-level variation to apply to the template

These three abstractions provide a concise representation of a resource intended to appear in multiple clusters. They encode the minimum information required for propagation and are well-suited to serve as the glue between any given propagation mechanism and higher-order behaviors like policy-based placement and dynamic scheduling.

These fundamental concepts provide building blocks that can be used by higher-level APIs:

  • Status collects the status of resources distributed by federation across all federated clusters
  • Policy determines which subset of clusters a resource is allowed to be distributed to
  • Scheduling refers to a decision-making capability that can decide how workloads should be spread across different clusters similar to how a human operator would


Feature Maturity
Push propagation of arbitrary types to remote clusters Alpha
CLI utility (kubefed2) Alpha
Generate Federation APIs without writing code Alpha
Multicluster Service DNS via external-dns Alpha
Multicluster Ingress DNS via external-dns Alpha
Replica Scheduling Preferences Alpha


User Guide

Take a look at our user guide if you are interested in using Federation v2.

Development Guide

Take a look at our development guide if you are interested in contributing.

Code of Conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

You can’t perform that action at this time.