From 277020842cac6defe0c7408a65338863e822e519 Mon Sep 17 00:00:00 2001 From: Dean Galvin Date: Wed, 11 Mar 2026 09:30:38 -0400 Subject: [PATCH 1/3] feat(authentik): add git-sync sidecar for custom media assets Add git-sync sidecar to server and worker pods that syncs the assets directory from the homelab repo into /media via sparse checkout. This allows custom branding logos to be managed in git. Co-Authored-By: Claude Opus 4.6 --- .../apps/auth/authentik/app/configmap.yaml | 8 ++++ .../apps/auth/authentik/app/helmrelease.yaml | 48 +++++++++++++++++++ .../auth/authentik/app/kustomization.yaml | 1 + .../apps/auth/authentik/assets/.gitkeep | 0 4 files changed, 57 insertions(+) create mode 100644 kubernetes/apps/auth/authentik/app/configmap.yaml create mode 100644 kubernetes/apps/auth/authentik/assets/.gitkeep diff --git a/kubernetes/apps/auth/authentik/app/configmap.yaml b/kubernetes/apps/auth/authentik/app/configmap.yaml new file mode 100644 index 000000000..7d48d438d --- /dev/null +++ b/kubernetes/apps/auth/authentik/app/configmap.yaml @@ -0,0 +1,8 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: authentik-git-sync-sparse +data: + sparse-checkout: | + kubernetes/apps/auth/authentik/assets diff --git a/kubernetes/apps/auth/authentik/app/helmrelease.yaml b/kubernetes/apps/auth/authentik/app/helmrelease.yaml index 14b17c0ed..7147aee4d 100644 --- a/kubernetes/apps/auth/authentik/app/helmrelease.yaml +++ b/kubernetes/apps/auth/authentik/app/helmrelease.yaml @@ -54,6 +54,30 @@ spec: server: replicas: 2 + volumes: + - name: media + emptyDir: {} + - name: git-sync-sparse + configMap: + name: authentik-git-sync-sparse + volumeMounts: + - name: media + mountPath: /media + extraContainers: + - name: git-sync + image: registry.k8s.io/git-sync/git-sync:v4.4.1 + args: + - --repo=https://github.com/FreekingDean/homelab + - --ref=main + - --root=/media + - --link=current + - --period=60s + - --sparse-checkout-file=/etc/git-sync/sparse-checkout + volumeMounts: + - name: media + mountPath: /media + - name: git-sync-sparse + mountPath: /etc/git-sync ingress: enabled: true ingressClassName: "${INGRESS_CLASS}" @@ -73,6 +97,30 @@ spec: worker: replicas: 2 + volumes: + - name: media + emptyDir: {} + - name: git-sync-sparse + configMap: + name: authentik-git-sync-sparse + volumeMounts: + - name: media + mountPath: /media + extraContainers: + - name: git-sync + image: registry.k8s.io/git-sync/git-sync:v4.4.1 + args: + - --repo=https://github.com/FreekingDean/homelab + - --ref=main + - --root=/media + - --link=current + - --period=60s + - --sparse-checkout-file=/etc/git-sync/sparse-checkout + volumeMounts: + - name: media + mountPath: /media + - name: git-sync-sparse + mountPath: /etc/git-sync metrics: enabled: true serviceMonitor: diff --git a/kubernetes/apps/auth/authentik/app/kustomization.yaml b/kubernetes/apps/auth/authentik/app/kustomization.yaml index a4686e8c0..3733a0173 100644 --- a/kubernetes/apps/auth/authentik/app/kustomization.yaml +++ b/kubernetes/apps/auth/authentik/app/kustomization.yaml @@ -4,3 +4,4 @@ kind: Kustomization resources: - ./helmrelease.yaml - ./pgcluster.yaml + - ./configmap.yaml diff --git a/kubernetes/apps/auth/authentik/assets/.gitkeep b/kubernetes/apps/auth/authentik/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb From 9d14d6d7e2c5a124a4eed6eb21411f22fd91f351 Mon Sep 17 00:00:00 2001 From: Dean Galvin Date: Wed, 11 Mar 2026 09:32:25 -0400 Subject: [PATCH 2/3] feat(authentik): add deanslab logo asset Co-Authored-By: Claude Opus 4.6 --- .../apps/auth/authentik/assets/.gitkeep | 0 .../auth/authentik/assets/deanslab-logo.svg | 88 +++++++++++++++++++ 2 files changed, 88 insertions(+) delete mode 100644 kubernetes/apps/auth/authentik/assets/.gitkeep create mode 100644 kubernetes/apps/auth/authentik/assets/deanslab-logo.svg diff --git a/kubernetes/apps/auth/authentik/assets/.gitkeep b/kubernetes/apps/auth/authentik/assets/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/kubernetes/apps/auth/authentik/assets/deanslab-logo.svg b/kubernetes/apps/auth/authentik/assets/deanslab-logo.svg new file mode 100644 index 000000000..892bbc2a6 --- /dev/null +++ b/kubernetes/apps/auth/authentik/assets/deanslab-logo.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dean's + + + Lab + + + deangalvin.dev + + + + + + + From 9271bae8959d6317710483ad85ef884277ef0670 Mon Sep 17 00:00:00 2001 From: Dean Galvin Date: Wed, 11 Mar 2026 09:36:15 -0400 Subject: [PATCH 3/3] Adds ico --- .../apps/auth/authentik/assets/favicon.ico | Bin 0 -> 4286 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 kubernetes/apps/auth/authentik/assets/favicon.ico diff --git a/kubernetes/apps/auth/authentik/assets/favicon.ico b/kubernetes/apps/auth/authentik/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3bfe0032f7914645a08ac77e2d462765e3def953 GIT binary patch literal 4286 zcmc(j*>79N8O52`CYC7f_ww!}MT)CLQr5oMmgP;9Y}tY1x-i;SX=^Ee#_9Ry^2#JbQFn^Dh@tBA%m z7qyEv8c(>me&Z^>X3TGI-=Ht)w+S;bg8a0GQ*Vr8>G>iGXEYQa*88e_)xgA$Y*bhl zFYz5wpLeAVY3nrGEY7Ck>T!&dCvmv*+)W&toknThK$(3vQzIy!N~85b1EmWFjNAyk z8IJ#SkEUW6+t4w)J&NK*VT;c+yxDlyyYgEj7e;B*K~b7q>l*T>lbCrXim>Yj=(L(G51U!YaH9r<0(G|?KU$@ag;9W zRN80JOJ;#}?0bo^&&+c!bnqp9(uTCP@cROCjfjupM6<6*^D9>fQ8&~_szZx}fHP92MX9)sbAVNXOrog^ z7>jo}kKV0wUUS^DWa@3ccpzV5;q!Yua2%Y`C>lR-(fYKB=FdFnW*8phyBGgsJ!9SW z;7&!=yUm|^Sm$piANP3;nJaV-pY_jbXrTQJP{ZjGw@nEKzKhp^ud!dB0jH5S|fSKo< z?2LEEclB&C!Eu|w@xPQ&m}S0MQL;t-J?O#?)DeduA1sUGzN+KYo8vg~QW<700*krj zG^1UTIx`!=i5JT_{nj{2r_*p;asv=qxooOu z(@$lQDaB#wWG8+8AP;(MSoJ^fvENuoF65Uq72CP3Jd$CuhmIgQOofLabrSc&vaa@S zE6H&Z{sA6*{=pt(ZOk=OYAreSRt@#X9Tb=s)o+_<{>1awnY%UQj;3I0!VWapgB}%j zAU_xSjs^MIhVZM*gF2c|x|sP*4o82H#ndlzSh-tO&%~qf%{~6$IB3E@jE7{H{3KQs zzkx}vFH^tDDt`0F87w|uz{$H66(cj{^AF=e_=ob)=1c!qU$3Ed%|>oMiPA;x-PFQu z;aBhT6NmE<@DKEm@cS=}*=I+QIKuqvkkoyH-{IkYEV}cdlRwY{`I(8N8e?I_IsZBp z@Fho7{DmEexgh+09yG2a2YQHxVe%|of6U*HWG$ZiL%vH=*ZOo44emF#!~IY8@_^qF zhu(RiMT9@tgBBS^j%)e3_ZnFFYZXg3N?5*C?vm8Wvo)Su^Ya?l^d9~`9#X;&)Xv2q z9>KiOMuvDs)6x28N@;Oy3Rd_+Aj{m zFPzY@{t3?l*F2Qxne&T1Vx2sbcZw@I`Tkj^p9fp^M2q`_S|eh}pVZV^mLjLG2gcti zM6t*@w)&c!r~I|1x0Gj#x5v0w#QpOe`!D=15Ag^}XAP8i-p!aA7N#aqSmXJ5J&hFC z@j>}uXkl0mW2eM<#5|K+QxW(@liY@Yo zhLneW;}EQss^nVDF&4>KEA5?Q+Gkqf2Ofg&9GA*@OWpP4zPa=o5Gj#eeq0M-ErieC3ii!Z|>gPQFp-4zxs#rP}(rnSV%tT zjJ28@2h7c2-|o9-kuB#a%OIa~Lhf1BO