#!/usr/bin/env sh set -e k3d cluster create inception-of-things kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml echo ArgoCD is starting... kubectl wait --namespace argocd \ --for=condition=ready pod \ --selector=app.kubernetes.io/name=argocd-server \ --timeout=300s \ 1>/dev/null 2>/dev/null kubectl port-forward svc/argocd-server -n argocd 8080:443 1>/dev/null 2>/dev/null & echo 'ArgoCD is running' SCRIPT_PATH="$(realpath "${BASH_SOURCE[0]}")" SCRIPT_DIR="$(dirname "$SCRIPT_PATH")" kubectl create namespace dev kubectl apply -n argocd -f "$SCRIPT_DIR/../confs/argocd-app.yml" echo 'App is starting...' kubectl wait --namespace dev \ --for=condition=ready pod \ --selector=app.kubernetes.io/name=app-deployment \ --timeout=300s \ 1>/dev/null 2>/dev/null echo 'App imported in ArgoCD' TRAEFIK_IP=$(kubectl get service -n kube-system traefik -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo Traefik ip is : $TRAEFIK_IP if grep -q argo-app.com /etc/hosts; then sudo sed -i "/argo-app.com/d" /etc/hosts fi echo "$TRAEFIK_IP argo-app.com" | sudo tee -a "/etc/hosts" echo App is now reachable at argo-app.com echo echo "=== Login into ArgoCD with: ===" echo Username: admin ADMIN_PASS=$(kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d) echo Password: \'$ADMIN_PASS\' echo "==============================="