Part 3: K3d and Argo CD - 42lan/inception-of-things GitHub Wiki

Install docker

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Install kubectl

curl -LO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

Install k3d

curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash

Create a cluster

sudo k3d cluster create $CLUSTER_NAME --api-port 6443 -p 8080:80@loadbalancer --agents 2

Install argocd

sudo kubectl create namespace argocd
sudo kubectl create namespace dev
curl -OL https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
# tweak install.yaml but not sure for now

      containers:
      - command:
        - argocd-server
        - --insecure ### add this to disable TLS
        env:
        - name: ARGOCD_SERVER_INSECURE
          valueFrom:
sudo kubectl apply -n argocd -f install.yaml

Apply ingress.yaml

sudo kubectl apply -f ingress.yaml -n argocd

Change password

Use https://bcrypt-generator.com/ to generate hash.

sudo kubectl -n argocd patch secret argocd-secret \
  -p '{"stringData": {
    "admin.password": "$2a$12$px3TAQ7CeurPy.dBLjyjD.W6hE9O3wNdpI.OKaoxxDDs1IVMPKd5O",
    "admin.passwordMtime": "'$(date +%FT%T%Z)'"
  }}'
sudo kubectl apply -f project.yaml -n argocd
sudo kubectl apply -f application.yaml -n argocd

Port forwarding

sudo kubectl port-forward --address 0.0.0.0 svc/wil-playground -n dev 8888:8888 > /dev/null 2>&1 & # & at end puts it into the background, can be retrieved with fg