Local cluster with kind¶
If you want to play with the Jumpstarter Controller on your local machine, we recommend running a local Kubernetes cluster on your development machine.
Warning
We do not recommend a local cluster for a production environment such as a lab. Please use a full Kubernetes installation either on-prem or in the cloud.
Kind is a tool for running local Kubernetes clusters using Podman or Docker container “nodes”. You can find more information on the kind website.
Installation¶
Begin by figuring out the LAN ip address that it’s accessible for your docker/podman host, and do:
export IP="LAN accessible address to your docker/podman instance"
Create a kind cluster¶
cat <<EOF > kind_config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
kubeadmConfigPatches:
- |
kind: ClusterConfiguration
apiServer:
extraArgs:
"service-node-port-range": "3000-32767"
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 80 # ingress controller
hostPort: 5080
protocol: TCP
- containerPort: 30010 # grpc nodeport
hostPort: 8082
protocol: TCP
- containerPort: 30011 # grpc router nodeport
hostPort: 8083
protocol: TCP
- containerPort: 443 # minimalistic UI
hostPort: 5443
protocol: TCP
EOF
kind create cluster --config kind_config.yaml
Install Jumpstarter¶
export BASEDOMAIN="jumpstarter.${IP}.nip.io"
export GRPC_ENDPOINT="grpc.${BASEDOMAIN}:8082"
export GRPC_ROUTER_ENDPOINT="router.${BASEDOMAIN}:8083"
helm upgrade jumpstarter --install oci://quay.io/jumpstarter-dev/helm/jumpstarter \
--create-namespace --namespace jumpstarter-lab \
--set global.baseDomain=${BASEDOMAIN} \
--set jumpstarter-controller.grpc.endpoint=${GRPC_ENDPOINT} \
--set jumpstarter-controller.grpc.routerEndpoint=${GRPC_ROUTER_ENDPOINT} \
--set global.metrics.enabled=false \
--set jumpstarter-controller.grpc.nodeport.enabled=true \
--set jumpstarter-controller.grpc.mode=nodeport \
--version=0.5.0