README ¶
Cluster Federation
Kubernetes Cluster Federation enables users to federate multiple Kubernetes clusters. To know more details about the same please see the user guide.
Deploying Kubernetes Cluster Federation
The prescribed mechanism to deploy Kubernetes Cluster Federation is using kubefed. A complete guide for the same is available at setup cluster federation using kubefed.
Building Kubernetes Cluster Federation
Building cluster federation binaries, which include fcp (short for federation control plane) and kubefed should be as simple as running:
make
A kubernetes like release packages can also be built using:
make quick-release
The 'kubefed
binary can be found in federation-client-*.tar.gz
.
The fcp
binary, which self contains federation-apiserver
and
federation-controller-manager
can be found in federation-server-*.tar.gz
.
federation-server-*.tar.gz
includes fcp-*.tar
, which is the fcp docker
image in the tar format and can be consumed by the kubefed
tool.
A note to the reader
Kubernetes federation code is in a state of flux. Since its incubation, it lived in core kubernetes repo. The same now is maturing into its own placeholder. The process of this movement is not yet complete. It already borrows a lot of code from its earlier parent, especially build infrastructure and utility scripts. This will be cleaned up and simplified. Subsequently we will also concentrate our efforts into cleaning issues and problems reported on existing features, with a focus of moving atleast a subset of all federation features towards GA. Please raise an issue, in case you find problems and we welcome developers to participate in this effort.
Directories ¶
Path | Synopsis |
---|---|
apis
|
|
federation/v1beta1
+k8s:deepcopy-gen=package,register +k8s:conversion-gen=k8s.io/federation/apis/federation +k8s:openapi-gen=true +k8s:defaulter-gen=TypeMeta
|
+k8s:deepcopy-gen=package,register +k8s:conversion-gen=k8s.io/federation/apis/federation +k8s:openapi-gen=true +k8s:defaulter-gen=TypeMeta |
client
|
|
clientset_generated/federation_clientset
This package has the automatically generated clientset.
|
This package has the automatically generated clientset. |
clientset_generated/federation_clientset/fake
This package has the automatically generated fake clientset.
|
This package has the automatically generated fake clientset. |
clientset_generated/federation_clientset/scheme
This package contains the scheme of the automatically generated clientset.
|
This package contains the scheme of the automatically generated clientset. |
clientset_generated/federation_clientset/typed/autoscaling/v1
This package has the automatically generated typed clients.
|
This package has the automatically generated typed clients. |
clientset_generated/federation_clientset/typed/autoscaling/v1/fake
Package fake has the automatically generated clients.
|
Package fake has the automatically generated clients. |
clientset_generated/federation_clientset/typed/batch/v1
This package has the automatically generated typed clients.
|
This package has the automatically generated typed clients. |
clientset_generated/federation_clientset/typed/batch/v1/fake
Package fake has the automatically generated clients.
|
Package fake has the automatically generated clients. |
clientset_generated/federation_clientset/typed/core/v1
This package has the automatically generated typed clients.
|
This package has the automatically generated typed clients. |
clientset_generated/federation_clientset/typed/core/v1/fake
Package fake has the automatically generated clients.
|
Package fake has the automatically generated clients. |
clientset_generated/federation_clientset/typed/extensions/v1beta1
This package has the automatically generated typed clients.
|
This package has the automatically generated typed clients. |
clientset_generated/federation_clientset/typed/extensions/v1beta1/fake
Package fake has the automatically generated clients.
|
Package fake has the automatically generated clients. |
clientset_generated/federation_clientset/typed/federation/v1beta1
This package has the automatically generated typed clients.
|
This package has the automatically generated typed clients. |
clientset_generated/federation_clientset/typed/federation/v1beta1/fake
Package fake has the automatically generated clients.
|
Package fake has the automatically generated clients. |
cluster
|
|
cmd
|
|
fcp
A binary that can morph into all of the other kubernetes binaries.
|
A binary that can morph into all of the other kubernetes binaries. |
federation-apiserver
apiserver is the main api server and master for the cluster.
|
apiserver is the main api server and master for the cluster. |
federation-apiserver/app
Package app does all of the work necessary to create a Kubernetes APIServer by binding together the API, master and APIServer infrastructure.
|
Package app does all of the work necessary to create a Kubernetes APIServer by binding together the API, master and APIServer infrastructure. |
federation-apiserver/app/options
Package options contains flags and options for initializing federation-apiserver.
|
Package options contains flags and options for initializing federation-apiserver. |
User-interface for test-infra/kubetest/e2e.go Equivalent to go get -u k8s.io/test-infra/kubetest && kubetest "${@}"
|
User-interface for test-infra/kubetest/e2e.go Equivalent to go get -u k8s.io/test-infra/kubetest && kubetest "${@}" |
cmd/teststale
teststale checks the staleness of a test binary.
|
teststale checks the staleness of a test binary. |
pkg
|
|
dnsprovider
dnsprovider supplies interfaces for dns service providers (e.g.
|
dnsprovider supplies interfaces for dns service providers (e.g. |
dnsprovider/providers/aws/route53
route53 is the implementation of pkg/dnsprovider interface for AWS Route53
|
route53 is the implementation of pkg/dnsprovider interface for AWS Route53 |
dnsprovider/providers/aws/route53/stubs
internal implements a stub for the AWS Route53 API, used primarily for unit testing purposes
|
internal implements a stub for the AWS Route53 API, used primarily for unit testing purposes |
dnsprovider/providers/coredns
Package coredns is the implementation of pkg/dnsprovider interface for CoreDNS
|
Package coredns is the implementation of pkg/dnsprovider interface for CoreDNS |
dnsprovider/providers/coredns/stubs
Package stubs implements a stub for the EtcdKeysAPI, used primarily for unit testing purposes
|
Package stubs implements a stub for the EtcdKeysAPI, used primarily for unit testing purposes |
dnsprovider/providers/google/clouddns
clouddns is the implementation of pkg/dnsprovider interface for Google Cloud DNS
|
clouddns is the implementation of pkg/dnsprovider interface for Google Cloud DNS |
federation-controller
Package federation_controller contains code for controllers (like the cluster controller).
|
Package federation_controller contains code for controllers (like the cluster controller). |
federation-controller/cluster
Package cluster contains code for syncing cluster
|
Package cluster contains code for syncing cluster |
federation-controller/util
TODO: consider moving it to a more generic package.
|
TODO: consider moving it to a more generic package. |
federation-controller/util/deletionhelper
Package to help federation controllers to delete federated resources from underlying clusters when the resource is deleted from federation control plane.
|
Package to help federation controllers to delete federated resources from underlying clusters when the resource is deleted from federation control plane. |
federation-controller/util/finalizers
Helper functions for manipulating finalizers.
|
Helper functions for manipulating finalizers. |
generated/openapi
openapi generated definitions
|
openapi generated definitions |
kubefed/init
TODO(madhusdancs): 1.
|
TODO(madhusdancs): 1. |
plugin
|
|
pkg/admission/schedulingpolicy
Package schedulingpolicy implements a webhook that queries an external API to obtain scheduling decisions for Federated sources.
|
Package schedulingpolicy implements a webhook that queries an external API to obtain scheduling decisions for Federated sources. |
registry
|
|
test
|
|
e2e/upgrades
Package upgrades provides a framework for testing Kubernetes federation features before, during, and after different types of upgrades.
|
Package upgrades provides a framework for testing Kubernetes federation features before, during, and after different types of upgrades. |