Add ArgoCD and Gitea for GitOps workflow implementation

- Deploy ArgoCD with Helm for GitOps continuous delivery
  * Configure LoadBalancer and Ingress access on LAN
  * Enable ArgoCD Image Updater for automatic "latest" tag updates
  * Simplified RBAC for single-user homelab environment

- Deploy Gitea as self-hosted Git server for local repositories
  * PostgreSQL backend with NFS persistent storage
  * SSH and HTTP access via MetalLB LoadBalancer
  * Integration guides for ArgoCD GitOps workflows

- Add example ArgoCD Application with auto-image updates
- Include comprehensive migration guides from Helm to GitOps
- Maintain compatibility with existing Helm-based deployments

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
gilgamezh
2025-08-15 16:52:10 +02:00
parent 99e9371969
commit 45dfbfcfbb
5 changed files with 496 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
# ArgoCD configuration for TuringPi K3s cluster
# Simplified setup - no RBAC restrictions for single-user environment
global:
# Set domain for your LAN access
domain: argocd.turing.lan
# Server configuration
server:
# Enable ingress for web UI access
ingress:
enabled: true
controller: generic
ingressClassName: nginx
hostname: argocd.turing.lan
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
# Restrict to LAN access (matching your existing pattern)
nginx.ingress.kubernetes.io/whitelist-source-range: "192.168.0.0/16,10.0.0.0/8,172.16.0.0/12"
# Use LoadBalancer service for direct access via MetalLB
service:
type: LoadBalancer
servicePortHttp: 80
servicePortHttps: 443
# Enable insecure mode since this is a homelab (simpler setup)
extraArgs:
- --insecure
# ApplicationSet controller (for managing multiple apps)
applicationSet:
enabled: true
# Image updater will be installed separately
# This is just the base ArgoCD installation
# Disable HA components for single-node simplicity
redis-ha:
enabled: false
# Use single Redis instance
redis:
enabled: true
# Disable RBAC since you're the only user
rbac:
create: true
# Allow admin access without restrictions
policy.default: role:admin
# No authentication complexity needed for homelab
configs:
secret:
createSecret: true
# Storage for repo data (using your NFS setup)
repoServer:
volumes:
- name: custom-tools
emptyDir: {}
# Monitoring (since you have Prometheus)
prometheus:
enabled: false # Set to true if you want ArgoCD metrics in Prometheus