53 lines
1.3 KiB
Markdown
53 lines
1.3 KiB
Markdown
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
|