a28aabae78
NetBox becomes the source of truth for host/interface/IPAM data as part of retiring Cobbler (the ENC already moved to encapi; a kickstart-generation service consuming NetBox comes later and is out of scope here). Adds the netbox app in namespace netbox: - netbox-community helm chart 8.3.40 (appVersion v4.6.5) via the OCI helm-through-kustomize pattern; bundled Postgres and Valkey subcharts disabled in favour of estate-native components. - CNPG Postgres cluster (2 instances) with the standard per-cluster S3 backup stanza (barmanObjectStore -> s3://cnpg-netbox, cephrgw ObjectStoreUser + Bucket, nightly ScheduledBackup at 03:40, 30d retention) and a pgbouncer Pooler (session mode) that NetBox connects through. - Standalone Valkey Deployment (valkey/valkey:8-alpine, AOF-persistent PVC) serving DB 0 = RQ task queue, DB 1 = cache; matches the litellm standalone cache pattern and keeps image control in-estate. - Gateway + HTTPRoute at netbox.k8s.syd1.au.unkin.net (traefik-internal, vault-issuer cert, external-dns), HTTP->HTTPS redirect. - All credentials via VSO VaultStaticSecret (postgres-credentials, netbox-secret-key, netbox-superuser, oauth-credentials); no plain Secrets. - Authentik OIDC SSO (python-social-auth): REMOTE_AUTH wired via chart values, SOCIAL_AUTH_OIDC_* via extraConfig, client secret injected as a YAML fragment from Vault; auto-provisions users on first login. Registers netbox in the platform ApplicationSet and AppProject (destination namespace + chart sourceRepo). Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
70 lines
2.2 KiB
YAML
70 lines
2.2 KiB
YAML
---
|
|
apiVersion: argoproj.io/v1alpha1
|
|
kind: ApplicationSet
|
|
metadata:
|
|
name: platform-apps
|
|
namespace: argocd
|
|
spec:
|
|
generators:
|
|
- git:
|
|
repoURL: https://git.unkin.net/unkin/argocd-apps
|
|
revision: HEAD
|
|
directories:
|
|
- path: apps/overlays/*/authentik
|
|
- path: apps/overlays/*/artifactapi
|
|
- path: apps/overlays/*/bind-system
|
|
- path: apps/overlays/*/bind-internal
|
|
- path: apps/overlays/*/age-api
|
|
- path: apps/overlays/*/cattle-system
|
|
- path: apps/overlays/*/cert-manager
|
|
- path: apps/overlays/*/certificates
|
|
- path: apps/overlays/*/cephrgw-system
|
|
- path: apps/overlays/*/cnpg-system
|
|
- path: apps/overlays/*/consul
|
|
- path: apps/overlays/*/elastic-system
|
|
- path: apps/overlays/*/encapi
|
|
- path: apps/overlays/*/externaldns
|
|
- path: apps/overlays/*/grafana-system
|
|
- path: apps/overlays/*/inteldeviceplugins-system
|
|
- path: apps/overlays/*/jfrog
|
|
- path: apps/overlays/*/kanidm
|
|
- path: apps/overlays/*/netbox
|
|
- path: apps/overlays/*/node-feature-discovery
|
|
- path: apps/overlays/*/pdbmux
|
|
- path: apps/overlays/*/priority-classes
|
|
- path: apps/overlays/*/puppet
|
|
- path: apps/overlays/*/purelb
|
|
- path: apps/overlays/*/reflector-system
|
|
- path: apps/overlays/*/reloader-system
|
|
- path: apps/overlays/*/reposync
|
|
- path: apps/overlays/*/traefik-system
|
|
- path: apps/overlays/*/vm-system
|
|
- path: apps/overlays/*/vpa-system
|
|
- path: apps/overlays/*/vault
|
|
- path: apps/overlays/*/vso-system
|
|
- path: apps/overlays/*/woodpecker
|
|
template:
|
|
metadata:
|
|
name: 'platform-{{path[3]}}' # cluster-app format (e.g., platform-reflector-system)
|
|
spec:
|
|
project: platform
|
|
source:
|
|
repoURL: https://git.unkin.net/unkin/argocd-apps
|
|
targetRevision: HEAD
|
|
path: '{{path}}'
|
|
destination:
|
|
server: https://kubernetes.default.svc
|
|
namespace: '{{path[3]}}' # Use directory name as namespace
|
|
ignoreDifferences:
|
|
- group: ""
|
|
kind: ConfigMap
|
|
name: kanidm-repl-certs
|
|
jsonPointers:
|
|
- /data
|
|
syncPolicy:
|
|
automated:
|
|
prune: true
|
|
selfHeal: true
|
|
syncOptions:
|
|
- ServerSideApply=true
|