Files
argocd-apps/argocd/applicationsets/media.yaml
T
unkin-agent 5ea193b957
ci/woodpecker/pr/vector-test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
mediamark: deploy the media marking app
Adds the mediamark app (Go single binary) to the media project: an
oauth2-proxy-fronted service that reads the shared mediastore CephFS tree
and talks to the adult-tier sonarr/radarr through arrproxy's hash routes.

- Add apps/base/mediamark: namespace, VaultAuth, three VaultStaticSecrets,
  static mediastore PV/PVC, the app Deployment, oauth2-proxy
  ConfigMap/Deployment, two Services, and the internal + external
  Gateway/HTTPRoute pairs.
- Run the app as 1000:1000 so it owns files on the shared media tree
  (hardlink/rename safe), with a read-only root filesystem, all caps
  dropped and no service-account token.
- Project the sonarr/radarr API keys as one file per app under
  /etc/mediamark/keys, mirroring arrproxy's keys projection, with reloader
  annotations on both secrets.
- Front both mediamark.unkin.net (traefik-external, reflected LE wildcard)
  and mediamark.k8s.syd1.au.unkin.net (traefik-internal, vault-issuer) with
  one oauth2-proxy using a relative redirect URL, gated on
  akP-mediamark-user and passing X-Forwarded-Groups to the app.
- Append mediamark to the wildcard-unkin-net reflector namespace lists and
  register the app in the media ApplicationSet and AppProject.
2026-08-29 23:24:24 +10:00

36 lines
876 B
YAML

---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: media-apps
namespace: argocd
spec:
generators:
- git:
repoURL: https://git.unkin.net/unkin/argocd-apps
revision: HEAD
directories:
- path: apps/overlays/*/fafflix
- path: apps/overlays/*/cheeztv
- path: apps/overlays/*/arrstack
- path: apps/overlays/*/watchstate
- path: apps/overlays/*/mediamark
template:
metadata:
name: 'media-{{path[3]}}'
spec:
project: media
source:
repoURL: https://git.unkin.net/unkin/argocd-apps
targetRevision: HEAD
path: '{{path}}'
destination:
server: https://kubernetes.default.svc
namespace: '{{path[3]}}'
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- ServerSideApply=true