Skip to content

A Cluster API Provider implementation using docker containers as the infra provider. Cluster API locally for a change!

License

Notifications You must be signed in to change notification settings

newrelic-forks/cluster-api-provider-docker

 
 

Repository files navigation

Cluster API Provider Docker

Manager Container Image

A sample is built and hosted at gcr.io/kubernetes1-226021/manager:latest

External Dependencies

  • go, 1.12+
  • kubectl
  • docker

Building Go binaries

Building Go binaries requires go 1.12+ for go module support.

# required if `cluster-api-provider-docker` was cloned into $GOPATH
export GO111MODULE=on
# build the binaries into ${PWD}/bin
./script/build-binaries.sh

Building the image

Using Gcloud

Make sure gcloud is authenticated and configured.

You also need to set up a google cloud project.

Run: ./scripts/publish-manager.sh

Using Docker

Alternatively, to publish the manager container image to your pre-existing custom container registry, run: REGISTRY=<MY_REGISTRY> ./scripts/publish-manager.sh

NOTE: You should have run docker login to login to your custom container registry.

Trying CAPD

Tested on: Linux, works ok on OS X sometimes

Make sure you have kubectl.

  1. Install capdctl:

    go install ./cmd/capdctl

  2. Start a management kind cluster

    capdctl setup

  3. Set up your kubectl

    export KUBECONFIG="${HOME}/.kube/kind-config-management"

Create a worker cluster

kubectl apply -f examples/simple-cluster.yaml

Interact with a worker cluster

The kubeconfig is on the management cluster in secrets. Grab it and write it to a file:

kubectl get secrets -o jsonpath='{.data.value}' my-cluster-kubeconfig | base64 --decode > ~/.kube/kind-config-my-cluster

Look at the pods in your new worker cluster: kubectl get po --all-namespaces --kubeconfig ~/.kube/kind-config-my-cluster

About

A Cluster API Provider implementation using docker containers as the infra provider. Cluster API locally for a change!

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 80.5%
  • Shell 16.8%
  • Makefile 1.4%
  • Dockerfile 1.1%
  • HCL 0.2%