https://github.com/rowi1de/argocd
(Outdated )GitOps Repository with ArgoCD, Traefik, Sealed Secrets etc.
https://github.com/rowi1de/argocd
argocd gitops k8s
Last synced: 6 months ago
JSON representation
(Outdated )GitOps Repository with ArgoCD, Traefik, Sealed Secrets etc.
- Host: GitHub
- URL: https://github.com/rowi1de/argocd
- Owner: rowi1de
- License: apache-2.0
- Created: 2022-05-13T22:50:34.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-08-31T16:28:48.000Z (over 1 year ago)
- Last Synced: 2025-08-21T12:27:20.630Z (7 months ago)
- Topics: argocd, gitops, k8s
- Language: HCL
- Homepage: https://argocd.robert-wiesner.de/
- Size: 101 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Cluster
- Cluster Repository for GitOps Deploy of Infrastructure
- It will deploy:
- [ArgoCD](https://argo-cd.readthedocs.io/en/stable/)
- [Traefik](https://doc.traefik.io/traefik/)
- [Traefik SSO for Google](https://github.com/thomseddon/traefik-forward-auth)
- [Cert Manager](https://cert-manager.io/docs/)
- [Bitnami sealed-secrets](https://github.com/bitnami-labs/sealed-secrets)
# Initial Setup
- Install [direnv](https://direnv.net/) if you don't have
## Google GKE Cluster (WIP!)
- Using a private cluster on Google Cloud GKE
- Code taken from [Neutrollized/free-tier-gke](https://github.com/Neutrollized/free-tier-gke) for almost free cluster
- `cd gke && direnv allow` will create a project in GKE
## Terraform (WIP!)
- Check [terraform.tfvars](./gke/terraform/terraform.tfvars) for default
- `cd terraform && direnv allow` will create cluster
## Bootstrap GitOps Cluster
- Execute [bootstrap.sh](bootstrap/bootstrap.sh) to install ArgoCD
- After initial Bootstrap app-of-apps will be synced by ArgoCD as well [](https://argocd.robert-wiesner.de/applications/app-of-apps)
- ArgoCD will also manage itself after bootstrap [](https://argocd.robert-wiesner.de/applications/argocd)
- Note:
- Please update ArgoCD admin password or disable the user
- Traefik Dashboard has "admin/admin" by default:
```shell
echo $(htpasswd -n admin) | kubectl create secret generic traefik-basic-auth -n traefik --dry-run=client \
--from-file=users=/dev/stdin -o yaml \
| kubeseal --controller-namespace infrastructure --controller-name sealed-secrets -o yaml \
>! infrastructure/ingress/traefik-basic-auth-sealed.yaml
```
## ArgoCD
| **App** | **Status** |
|----------------|------------|
| app-of-apps |[](https://argocd.robert-wiesner.de/applications/app-of-apps) |
| argocd | [](https://argocd.robert-wiesner.de/applications/argocd) |
| projects | [](https://argocd.robert-wiesner.de/applications/projects) |
| apps | [](https://argocd.robert-wiesner.de/applications/apps) |
| infrastructure | [](https://argocd.robert-wiesner.de/applications/infrastructure) |
## Upgrade ArgoCD
- argocd can be upgraded by changing the [helm chart](https://artifacthub.io/packages/helm/argo/argocd) versions in [Chart.yml](bootstrap/argocd-app-of-apps/templates/argoCd.yaml)
# Debug
- If you messed up Traefik or ArgoCD config, you can always port-forward:
- `kubectl port-forward $(kubectl get pods --selector "app.kubernetes.io/name=traefik" --output=name -n traefik) 9000:9000 -n traefik`
- `kubectl port-forward svc/argocd-server -n argocd 8080:443`
# TODOs
- [ ] Infrastructure is not templated
- [X] Google SSO for ArgoCD