Commit bcf3d992 authored by Simon Cornet's avatar Simon Cornet
Browse files

feat: add argocd documentation

parent 43a211de
Loading
Loading
Loading
Loading
Loading

docs/argocd/argocd.md

0 → 100644
+80 −0
Original line number Diff line number Diff line
# ArgoCD

## Install ArgoCD

```bash
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
```

## Get initial admin password

```bash
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
```

## Boostrap the ArgoCD configuration using a Git repository

The manifests for the ArgoCD configuration are stored in a git repository. The repository in this example is located at
`https://gitlab.simoncor.net/kaas/argocd.git` and the path within the repository is `argocd/`.

In this subfolder we have an ArgoCD Application manifest which bootstraps the ArgoCD configuration.
We also have other manifests for configuring ArgoCD ingress configuration and applications.

```bash
kubectl apply -f - <<EOF
---
apiVersion: "argoproj.io/v1alpha1"
kind: "Application"
metadata:
  name: "argocd"
  namespace: "argocd"
spec:
  project: "default"
  source:
    repoURL: "https://gitlab.simoncor.net/kaas/argocd.git"
    path: "argocd/"
    targetRevision: "main"
    directory:
      recurse: true
      jsonnet: {}
  destination:
    server: "https://kubernetes.default.svc"
    namespace: "argocd"
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - "CreateNamespace=true"
EOF
```

## ArgoCD Applications

This is an example of an ArgoCD Application manifest which deploys this MkDocs application.

```yam
---
apiVersion: "argoproj.io/v1alpha1"
kind: "Application"
metadata:
  name: "docs-simoncor-net"
  namespace: "argocd"
spec:
  project: "default"
  source:
    repoURL: "https://gitlab.simoncor.net/kaas/docs-simoncor-net.git"
    path: "manifests/"
    targetRevision: "main"
  destination:
    server: "https://kubernetes.default.svc"
    namespace: "docs-simoncor-net"
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
      enabled: true
    syncOptions:
      - "CreateNamespace=true"
```