-
Setup local Kubernetes with kind https://kind.sigs.k8s.io/
-
Argo CD https://argo-cd.readthedocs.io/en/stable/ to test GitOps project solutions
-
Use modified YAML files to install the ingress controller and Argo CD
-
Script to (re)deploy the complete Kubernetes cluster
-
Argo CD UI: http://localhost/argocd
brew install kindkind create cluster --config kind-config.yamlkubectl apply -f install-ingress-nginx.yamlkubectl create namespace argocd
kubectl apply -n argocd -f install-argocd.yaml
kubectl apply -n argocd -f ingress.yamlkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echokind delete cluster --name argo-cdkind delete cluster --name argo-cd && \
kind create cluster --config kind-config.yaml && \
kubectl apply -f install-ingress-nginx.yaml && \
kubectl wait -n ingress-nginx \
--for=condition=ready pod \
--selector=app.kubernetes.io/component=controller \
--timeout=90s && \
kubectl create namespace argocd && \
kubectl apply -n argocd -f install-argocd.yaml && \
kubectl apply -n argocd -f ingress.yaml && \
kubectl wait -n argocd \
--for=condition=ready pod \
--selector=app.kubernetes.io/name=argocd-server \
--timeout=90s && \
echo ------------------- && \
echo Initial Argo CD credentails: && \
echo User: admin && \
echo Password: $(kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo) && \
open http://localhost/argocdAdd --insecure and --rootpath /argocd --basehref /argocd flags to argocd-server command.
apiVersion: apps/v1
kind: Deployment
metadata:
...
name: argocd-server
spec:
...
template:
...
spec:
...
containers:
- command:
- argocd-server
- --insecure
- --rootpath
- /argocd
- --basehref
- /argocdAdd --enable-ssl-passthrough flag to /nginx-ingress-controller command.
apiVersion: apps/v1
kind: Deployment
metadata:
name: ingress-nginx-controller
...
spec:
...
template:
...
spec:
containers:
- args:
- /nginx-ingress-controller
- ...
- --enable-ssl-passthrough