Files
..
2026-01-05 05:23:28 +02:00
2026-01-05 05:23:28 +02:00
2026-01-05 05:23:28 +02:00
2026-01-05 05:23:28 +02:00
2026-01-05 05:23:28 +02:00

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:

kustomize build . --enable-helm | kubectl apply -f -

ArgoCD dependencies:

  • dragonfly (database)
  • passmower (auth)
  • traefik
  • #TODO: network...
  • gitea