#!/bin/zsh # in case of $'\r': command not found error, run command below first # sed -i 's/\r$//' ./bootstrap.sh CLUSTER="${1:?Usage: ./bootstrap.sh (upc-dev|upc-prod|aks-dev|aks-prod|eks-dev|eks-prod|gke-dev|gke-prod)}" echo "running $0 for cluster: ${CLUSTER}..." # Source cluster config eval $(yq -r 'to_entries[] | "export \(.key)=\"\(.value)\""' "clusters/${CLUSTER}.yaml") echo "Bootstrapping cluster: ${clusterName} (${CLUSTER})..." ############################################################ # Bootstrap # ############################################################ Bootstrap() { ArgoCd # Gitea } ############################################################ # Gitea # ############################################################ Gitea() { echo "Installing secret..." kubectl apply -f private/gitea-repo-main.yaml kubectl apply -f private/main.key } ############################################################ # ArgoCd # ############################################################ ArgoCd() { # install argocd echo "Installing ArgoCD..." helm upgrade --install argocd argo-cd \ --repo https://argoproj.github.io/argo-helm \ --namespace argocd --create-namespace \ --values infra/values/base/argocd-values.yaml \ --values "infra/values/${CLUSTER}/argocd-values.yaml" \ --set notifications.context.clusterName="${clusterName}" \ --timeout 60s --atomic kubectl apply -f "_app-of-apps-${CLUSTER}.yaml" -n argocd } # Bootstrap