All following providers allow a common workflow:
make cluster-up
to create the environmentmake cluster-down
to stop the environmentmake cluster-build
to buildmake cluster-deploy
to (re)deploy the code (no provider support needed)make cluster-sync
to build and (re)deploy the codemake functests
to run the functional tests against KubeVirtcluster/kubectl.sh
to talk to the k8s installation
It is recommended to export the KUBEVIRT_PROVIDER
variable as part of your .bashrc
file.
Allows provisioning k8s cluster based on kubeadm. Supports an arbitrary amount of nodes.
Requires:
- A working go installation
- Nested virtualization enabled
- A running docker daemon
Usage:
export KUBEVIRT_PROVIDER=k8s-1.10.4 # choose this provider
export KUBEVIRT_NUM_NODES=3 # master + two nodes
make cluster-up
Allows provisioning a single-master k8s cluster based on latest upstream k8s code.
Requires:
- A working go installation
- A running docker daemon
Usage:
export KUBEVIRT_PROVIDER=local # choose this provider
make cluster-up
Uses an existing (external) Kubernetes cluster.
Requires:
- A working Kubernetes cluster with properly configured worker nodes.
- A running docker daemon
Usage:
export KUBEVIRT_PROVIDER=external # choose this provider
make cluster-up
- Create a
cluster/$KUBEVIRT_PROVIDER
directory - Create a
cluster/$KUBEVIRT_PROVIDER/provider.sh
files - This file has to contain the functions
up
,build
,down
and_kubectl
- Have a look at
cluster/k8s-1.10.4/provider.sh
for a reference implementation