Skip to content

Instantly share code, notes, and snippets.

@doc4child
Forked from jwsy/k3d_rancher.ps1
Last active March 11, 2021 03:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save doc4child/f01802e23f356317ea964d28f32209b7 to your computer and use it in GitHub Desktop.
Save doc4child/f01802e23f356317ea964d28f32209b7 to your computer and use it in GitHub Desktop.
Script
# Default env vars
$env:CLUSTER_NAME="k3d-rancher"
$env:RANCHER_SERVER_HOSTNAME="rancher.doc4child.com"
$env:KUBECONFIG_FILE="${env:CLUSTER_NAME}.yaml"
date
# Get kubectl and helm
choco list --local-only
choco install kubernetes-cli -y
choco install kubernetes-helm -y
# install wget
choco install wget -y
# Get k3d
wget https://github.com/rancher/k3d/releases/download/v4.2.0/k3d-windows-amd64.exe
Set-Alias -Name k3d -Value .\k3d-windows-amd64.exe
k3d cluster stop $env:CLUSTER_NAME
k3d cluster delete $env:CLUSTER_NAME
# Create the cluster
k3d cluster create $env:CLUSTER_NAME --api-port 6550 --servers 1 --port 7443:443@loadbalancer --wait
k3d cluster list
k3d kubeconfig get ${env:CLUSTER_NAME} > $env:KUBECONFIG_FILE
$env:KUBECONFIG=($env:KUBECONFIG_FILE)
kubectl get nodes
# https://rancher.com/docs/rancher/v2.x/en/installation/k8s-install/helm-rancher/
# Install cert-manager with helm
helm repo add jetstack https://charts.jetstack.io
helm repo update
kubectl create namespace cert-manager
helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v1.0.4 --set installCRDs=true --wait
kubectl -n cert-manager rollout status deploy/cert-manager
date
# Install Rancher
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm repo update
kubectl create namespace cattle-system
helm install rancher rancher-latest/rancher --namespace cattle-system --set hostname=${env:RANCHER_SERVER_HOSTNAME} --wait
kubectl -n cattle-system rollout status deploy/rancher
date
# Optionally purge your Docker env
# docker rm -f $(docker ps -qa)
# docker network prune -f
# docker volume prune -
# docker system prune -a -f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment