Most applications in our Kubernetes cluster are managed by ArgoCD. Most notably operators are NOT managed by ArgoCD. ## Managing applications Update apps (see TODO below): ``` for j in asterisk bind camtiler etherpad freescout gitea grafana hackerspace nextcloud nyancat rosdump traefik wiki wildduck; do cat << EOF >> applications/$j.yaml --- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: $j namespace: argocd annotations: # Works with only Kustomize and Helm. Kustomize is easy, see https://github.com/argoproj-labs/argocd-image-updater/tree/master/manifests/base for an example. argocd-image-updater.argoproj.io/image-list: TODO:^2 # semver 2.*.* argocd-image-updater.argoproj.io/write-back-method: git spec: project: k-space.ee source: repoURL: 'git@git.k-space.ee:k-space/kube.git' path: $j targetRevision: HEAD destination: server: 'https://kubernetes.default.svc' namespace: $j syncPolicy: automated: prune: true syncOptions: - CreateNamespace=true EOF done find applications -name "*.yaml" -exec kubectl apply -n argocd -f {} \; ``` ## Cold start Normally ArgoCD deploys itself. Deploy ArgoCD out-of-bounds: ```bash kustomize build . --enable-helm | kubectl apply -f - ``` ArgoCD dependencies: - dragonfly (database) - passmower (auth) - traefik - #TODO: network... - gitea