Skip to content

Instantly share code, notes, and snippets.

@ngeorger
Created November 12, 2023 05:41
Show Gist options
  • Save ngeorger/4ed8beefd8b1926a04504d23edcaa937 to your computer and use it in GitHub Desktop.
Save ngeorger/4ed8beefd8b1926a04504d23edcaa937 to your computer and use it in GitHub Desktop.
Create a kind cluster with rig.dev instance
#!/usr/bin/env bash
set -e
parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
KIND="${KIND:=kind}"
KUBECT="${KUBECTL:=kubectl --context kind-rig}"
HELM="${HELM:=helm --kube-context kind-rig}"
# Create kind cluster
${KIND} get clusters | grep "^rig$" || \
cat <<EOF | ${KIND} create cluster --name rig --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30000
hostPort: 30000
listenAddress: "127.0.0.1"
protocol: TCP
EOF
# Ensure rig-system namespace exists
${KUBECTL} get namespace rig-system || \
${KUBECTL} create namespace rig-system
# Install docker registry in rig-system namespace
${KUBECTL} apply -n rig-system \
-f "${parent_path}/../../cmd/rig/cmd/dev/kind/registry.yaml"
# Ensure required repositories are available
${HELM} repo list | grep '^jetstack\s*https://charts.jetstack.io\s*$' || \
${HELM} repo add jetstack https://charts.jetstack.io
${HELM} repo list | grep '^metrics-server\s*https://kubernetes-sigs.github.io/metrics-server\s*$' || \
${HELM} repo add metrics-server https://kubernetes-sigs.github.io/metrics-server
${HELM} repo update
# Install cert-manager
${HELM} upgrade --install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.13.0 \
--set installCRDs=true
# Install metrics-server
${HELM} upgrade --install metrics-server metrics-server/metrics-server \
--namespace kube-system \
--set args={--kubelet-insecure-tls}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment