89 lines
2.1 KiB
Markdown
89 lines
2.1 KiB
Markdown
# 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
|
|
```
|
|
|
|
## Update ArgoCD
|
|
|
|
```yaml
|
|
kubectl apply -n argocd \
|
|
--server-side \
|
|
--force-conflicts \
|
|
-f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
|
|
```
|
|
|
|
## ArgoCD Applications
|
|
|
|
This is an example of an ArgoCD Application manifest which deploys this MkDocs application.
|
|
|
|
```yaml
|
|
---
|
|
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"
|
|
```
|