Bootkube is a helper tool for launching self-hosted Kubernetes clusters.
When launched, bootkube will act as a temporary Kubernetes control-plane (api-server, scheduler, controller-manager), which operates long enough to bootstrap a replacement self-hosted control-plane.
Additionally, bootkube can be used to generate all of the necessary assets for use in bootstrapping a new cluster. These assets can then be modified to support any additional configuration options.
If you are interested in the design and details see the bootkube design document.
Bootkube has two main commands: render
and start
Bootkube can be used to render all of the assets necessary for bootstrapping a self-hosted Kubernetes cluster. This includes generation of TLS assets, Kubernetes object manifests, and a kubeconfig to connect to the bootstrapped cluster.
To see available options, run:
bootkube render --help
Example:
bootkube render --asset-dir=my-cluster
The resulting assets can be inspected / modified in the generated asset-dir.
To start bootkube use the start
subcommand.
To see available options, run:
bootkube start --help
Example:
bootkube start --asset-dir=my-cluster
First, clone the repo into the proper location in your $GOPATH:
go get -u github.com/coreos/bootkube
cd $GOPATH/src/github.com/coreos/bootkube
Then, to build:
make
And optionally, to install into $GOPATH/bin:
make install
This repository includes scripts for running the Kubernetes conformance tests agains the hack/single-node and hack/multi-node launched clusters.
To run the conformance tests:
make conformance-single
or
make conformance-multi
bootkube is under the Apache 2.0 license. See the LICENSE file for details.