2026-08-18 15:08:03 -07:00
|
|
|
# ArgoCD Helm Values — Bootstrap Mode (SOPS plugin added post-bootstrap)
|
2026-07-23 19:07:02 -07:00
|
|
|
# Chart: https://github.com/argoproj/argo-helm
|
|
|
|
|
|
|
|
|
|
global:
|
|
|
|
|
domain: argocd.riotpiao.com
|
|
|
|
|
|
|
|
|
|
# Server configuration
|
|
|
|
|
server:
|
2026-08-11 21:03:59 -07:00
|
|
|
# Ingress is managed declaratively in k8s/bootstrap/ingress/ingress.yaml
|
|
|
|
|
# (ssl-passthrough) instead of here — two Ingress objects for the same
|
|
|
|
|
# host caused undefined nginx routing behavior (502s). Do not re-enable.
|
2026-07-23 19:07:02 -07:00
|
|
|
ingress:
|
2026-08-11 21:03:59 -07:00
|
|
|
enabled: false
|
2026-07-23 19:07:02 -07:00
|
|
|
|
|
|
|
|
resources:
|
|
|
|
|
requests:
|
|
|
|
|
cpu: 100m
|
|
|
|
|
memory: 256Mi
|
|
|
|
|
limits:
|
|
|
|
|
cpu: 500m
|
|
|
|
|
memory: 1Gi
|
|
|
|
|
|
2026-08-18 15:08:03 -07:00
|
|
|
# Tolerations for control-plane
|
|
|
|
|
tolerations:
|
|
|
|
|
- key: node-role.kubernetes.io/control-plane
|
|
|
|
|
operator: Exists
|
|
|
|
|
effect: NoSchedule
|
|
|
|
|
|
2026-07-23 19:07:02 -07:00
|
|
|
# Repo server configuration
|
|
|
|
|
repoServer:
|
|
|
|
|
resources:
|
|
|
|
|
requests:
|
|
|
|
|
cpu: 100m
|
|
|
|
|
memory: 256Mi
|
|
|
|
|
limits:
|
2026-08-18 15:08:04 -07:00
|
|
|
cpu: 1000m
|
2026-07-23 19:07:02 -07:00
|
|
|
memory: 1Gi
|
|
|
|
|
|
2026-08-18 15:08:03 -07:00
|
|
|
# Tolerations for control-plane
|
|
|
|
|
tolerations:
|
|
|
|
|
- key: node-role.kubernetes.io/control-plane
|
|
|
|
|
operator: Exists
|
|
|
|
|
effect: NoSchedule
|
2026-07-23 19:07:02 -07:00
|
|
|
|
2026-08-12 13:16:15 -07:00
|
|
|
# SOPS decryption is now done natively inside kustomize via the ksops exec
|
|
|
|
|
# generator (see k8s/argocd/secrets/), not a CMP sidecar. The repo-server's
|
|
|
|
|
# own `kustomize build --enable-alpha-plugins --enable-exec` runs ksops, which
|
|
|
|
|
# shells out to sops using the age key at SOPS_AGE_KEY_FILE. Install sops +
|
|
|
|
|
# ksops into a shared emptyDir on PATH; the repo-server container mounts them.
|
|
|
|
|
env:
|
|
|
|
|
- name: SOPS_AGE_KEY_FILE
|
|
|
|
|
value: /sops-age/key.txt
|
|
|
|
|
- name: XDG_CONFIG_HOME
|
|
|
|
|
value: /.config
|
2026-08-18 15:08:04 -07:00
|
|
|
initContainers:
|
2026-08-12 13:16:15 -07:00
|
|
|
- name: install-sops-ksops
|
2026-08-18 15:08:04 -07:00
|
|
|
image: alpine:3.20
|
|
|
|
|
command: [sh, -c]
|
|
|
|
|
args:
|
|
|
|
|
- |
|
2026-08-12 13:16:15 -07:00
|
|
|
set -e
|
|
|
|
|
apk add --no-cache curl tar
|
|
|
|
|
curl -sSL -o /custom-tools/sops \
|
|
|
|
|
https://github.com/getsops/sops/releases/download/v3.9.3/sops-v3.9.3.linux.amd64
|
|
|
|
|
chmod +x /custom-tools/sops
|
|
|
|
|
curl -sSL https://github.com/viaduct-ai/kustomize-sops/releases/download/v4.5.1/ksops_4.5.1_Linux_x86_64.tar.gz \
|
|
|
|
|
| tar -xz -C /custom-tools ksops
|
|
|
|
|
chmod +x /custom-tools/ksops
|
2026-08-18 15:08:04 -07:00
|
|
|
volumeMounts:
|
2026-08-12 13:16:15 -07:00
|
|
|
- mountPath: /custom-tools
|
|
|
|
|
name: custom-tools
|
2026-08-18 15:08:04 -07:00
|
|
|
|
2026-08-12 13:16:15 -07:00
|
|
|
volumeMounts:
|
|
|
|
|
- mountPath: /usr/local/bin/sops
|
|
|
|
|
name: custom-tools
|
|
|
|
|
subPath: sops
|
|
|
|
|
- mountPath: /usr/local/bin/ksops
|
|
|
|
|
name: custom-tools
|
|
|
|
|
subPath: ksops
|
|
|
|
|
- mountPath: /sops-age
|
|
|
|
|
name: sops-age
|
|
|
|
|
readOnly: true
|
2026-08-18 15:08:04 -07:00
|
|
|
|
|
|
|
|
volumes:
|
2026-08-12 13:16:15 -07:00
|
|
|
- name: custom-tools
|
2026-08-18 15:08:04 -07:00
|
|
|
emptyDir: {}
|
|
|
|
|
- name: sops-age
|
|
|
|
|
secret:
|
|
|
|
|
secretName: sops-age
|
|
|
|
|
|
2026-07-23 19:07:02 -07:00
|
|
|
# Controller configuration
|
|
|
|
|
controller:
|
|
|
|
|
resources:
|
|
|
|
|
requests:
|
|
|
|
|
cpu: 200m
|
|
|
|
|
memory: 512Mi
|
|
|
|
|
limits:
|
|
|
|
|
cpu: 1000m
|
|
|
|
|
memory: 2Gi
|
|
|
|
|
|
2026-08-18 15:08:03 -07:00
|
|
|
# Tolerations for control-plane
|
|
|
|
|
tolerations:
|
|
|
|
|
- key: node-role.kubernetes.io/control-plane
|
|
|
|
|
operator: Exists
|
|
|
|
|
effect: NoSchedule
|
|
|
|
|
|
2026-07-23 19:07:02 -07:00
|
|
|
# Application controller configuration
|
|
|
|
|
applicationSet:
|
|
|
|
|
enabled: true
|
|
|
|
|
|
|
|
|
|
# Notifications (optional, for Slack/Discord alerts)
|
|
|
|
|
notifications:
|
|
|
|
|
enabled: false
|
|
|
|
|
|
|
|
|
|
# Redis for caching
|
|
|
|
|
redis:
|
|
|
|
|
enabled: true
|
|
|
|
|
resources:
|
|
|
|
|
requests:
|
|
|
|
|
cpu: 50m
|
|
|
|
|
memory: 64Mi
|
|
|
|
|
limits:
|
|
|
|
|
cpu: 200m
|
|
|
|
|
memory: 256Mi
|
|
|
|
|
|
2026-08-18 15:08:03 -07:00
|
|
|
# ArgoCD configuration
|
2026-07-23 19:07:02 -07:00
|
|
|
configs:
|
|
|
|
|
# Default project allows all repos
|
|
|
|
|
cm:
|
|
|
|
|
admin.enabled: "true"
|
|
|
|
|
application.instanceLabelKey: argocd.argoproj.io/instance
|
2026-08-12 13:16:15 -07:00
|
|
|
# Let every kustomize build run the ksops exec generator.
|
|
|
|
|
kustomize.buildOptions: --enable-alpha-plugins --enable-exec
|
2026-08-13 08:45:20 -07:00
|
|
|
# External URL — required so OIDC redirect URIs are built correctly.
|
|
|
|
|
url: https://argocd.riotpiao.com
|
|
|
|
|
# Local accounts (in addition to Authentik SSO):
|
|
|
|
|
# rock — human admin; can log in with a password AND issue API tokens.
|
|
|
|
|
# cicd — automation-only; apiKey (token) for the CD pipeline, no UI login.
|
|
|
|
|
accounts.rock: apiKey,login
|
|
|
|
|
accounts.cicd: apiKey
|
|
|
|
|
# Authentik OIDC. clientSecret pulled from the argocd `oidc-secret` Secret
|
|
|
|
|
# (created by authentik-provision). The groups claim drives RBAC below.
|
|
|
|
|
oidc.config: |
|
|
|
|
|
name: Authentik
|
|
|
|
|
issuer: https://authentik.riotpiao.com/application/o/argocd/
|
|
|
|
|
clientID: argocd
|
|
|
|
|
clientSecret: $oidc-secret:client-secret
|
|
|
|
|
requestedScopes:
|
|
|
|
|
- openid
|
|
|
|
|
- profile
|
|
|
|
|
- email
|
|
|
|
|
- groups
|
|
|
|
|
requestedIDTokenClaims:
|
|
|
|
|
groups:
|
|
|
|
|
essential: true
|
|
|
|
|
|
2026-07-23 19:07:02 -07:00
|
|
|
params:
|
2026-08-11 21:03:59 -07:00
|
|
|
server.insecure: false
|
2026-07-23 19:07:02 -07:00
|
|
|
|
2026-08-13 08:45:20 -07:00
|
|
|
# RBAC. local `admin` + `rock` + the `cicd` pipeline account all get role:admin;
|
|
|
|
|
# the Authentik `homelab-admins` group (rock is a member) maps to admin so SSO
|
|
|
|
|
# logins are admin too.
|
2026-07-23 19:07:02 -07:00
|
|
|
rbac:
|
|
|
|
|
policy.default: role:readonly
|
|
|
|
|
policy.csv: |
|
|
|
|
|
g, admin, role:admin
|
2026-08-13 08:45:20 -07:00
|
|
|
g, rock, role:admin
|
|
|
|
|
g, cicd, role:admin
|
|
|
|
|
g, homelab-admins, role:admin
|