59 lines
2.0 KiB
Bash
59 lines
2.0 KiB
Bash
#!/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 <cluster> (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/${CLUSTER}/gitea-repo-main.yaml"
|
|
kubectl apply -f "private/${CLUSTER}/main.key"
|
|
}
|
|
|
|
############################################################
|
|
# ArgoCd #
|
|
############################################################
|
|
ArgoCd()
|
|
{
|
|
# Pre-create ConfigMap for repo-server env (must exist before Helm upgrade)
|
|
kubectl create namespace argocd --dry-run=client -o yaml | kubectl apply -f -
|
|
kubectl apply -f cluster-resources/argocd-repo-server-config.yaml
|
|
|
|
# install argocd
|
|
echo "Installing ArgoCD..."
|
|
helm upgrade --install argocd argo-cd \
|
|
--repo https://argoproj.github.io/argo-helm \
|
|
--version "7.8.0" \
|
|
--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
|