Compare commits

...
Author SHA1 Message Date
Renovate Bot a9110aa8fc feat(helm): update chart external-secrets to 0.16.1
e2e / workstation (archlinux) (pull_request) Failing after 6s
e2e / workstation (generic-linux) (pull_request) Failing after 16s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 19s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 21s
Kubeconform / Kubeconform (pull_request) Failing after 16s
Labeler / Labeler (pull_request_target) Successful in 9s
2025-04-17 00:02:39 +00:00
Renovate Bot 3210859573 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.240.1
devcontainer / publish (push) Has been cancelled
renovate / renovate (push) Successful in 2m31s
2025-04-13 00:01:01 +00:00
Renovate Bot a52b325c06 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.238.2
renovate / renovate (push) Successful in 2m1s
devcontainer / publish (push) Has been cancelled
2025-04-12 00:01:04 +00:00
Renovate Bot 15c0f6a3fa fix(github-action): update image ghcr.io/renovatebot/renovate to v39.233.4
devcontainer / publish (push) Has been cancelled
renovate / renovate (push) Successful in 2m11s
2025-04-06 00:01:17 +00:00
Renovate Bot 2cef7ca208 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.233.3
renovate / renovate (push) Successful in 2m11s
devcontainer / publish (push) Has been cancelled
2025-04-05 00:01:23 +00:00
Renovate Bot d01450bf5c fix(github-action): update image ghcr.io/renovatebot/renovate to v39.220.4
Release / Release (push) Has been skipped
renovate / renovate (push) Successful in 2m14s
2025-03-30 00:01:14 +00:00
Renovate Bot 27dc068d64 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.220.3
renovate / renovate (push) Successful in 2m5s
2025-03-29 00:01:21 +00:00
Renovate Bot 4548a3ddb6 fix(github-action): update image ghcr.io/renovatebot/renovate to v39.211.1
renovate / renovate (push) Successful in 2m15s
2025-03-23 00:01:13 +00:00
Renovate Bot 9cfb4cbc22 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.211.0
renovate / renovate (push) Successful in 2m8s
2025-03-22 00:01:15 +00:00
Renovate Bot 9419efc1f9 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.202.0
renovate / renovate (push) Successful in 1m58s
2025-03-15 00:01:36 +00:00
Renovate Bot 30ed5ae646 fix(github-action): update image ghcr.io/renovatebot/renovate to v39.191.1
renovate / renovate (push) Successful in 2m28s
2025-03-09 00:01:06 +00:00
Renovate Bot 11add4e267 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.191.0
renovate / renovate (push) Successful in 1m52s
2025-03-08 00:01:15 +00:00
Renovate Bot 62168a87db feat(github-action): update image ghcr.io/renovatebot/renovate to v39.185.0
renovate / renovate (push) Successful in 2m6s
2025-03-01 00:01:15 +00:00
Renovate Bot 22527f9cf1 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.177.0
renovate / renovate (push) Successful in 1m58s
Release / Release (push) Has been skipped
2025-02-23 00:01:14 +00:00
Renovate Bot 270133a948 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.176.4
renovate / renovate (push) Successful in 1m55s
2025-02-22 00:01:22 +00:00
Renovate Bot 7500b5701f fix(github-action): update image ghcr.io/renovatebot/renovate to v39.170.3
renovate / renovate (push) Successful in 2m0s
2025-02-16 00:01:12 +00:00
Renovate Bot 2e97ec00e4 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.170.1
renovate / renovate (push) Successful in 1m35s
2025-02-15 00:01:24 +00:00
Renovate Bot 50f2186f6e feat(github-action): update image ghcr.io/renovatebot/renovate to v39.164.0
renovate / renovate (push) Successful in 1m50s
2025-02-08 00:01:23 +00:00
Renovate Bot 60ba48e700 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.156.0
renovate / renovate (push) Successful in 2m52s
2025-02-02 00:01:49 +00:00
Renovate Bot a731a82892 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.153.1
renovate / renovate (push) Successful in 2m10s
2025-02-01 00:01:54 +00:00
Renovate Bot 645d2ba7a0 fix(github-action): update image ghcr.io/renovatebot/renovate to v39.133.4
devcontainer / publish (push) Has been cancelled
renovate / renovate (push) Successful in 2m16s
Release / Release (push) Has been skipped
2025-01-26 00:01:43 +00:00
Renovate Bot 38aa8f8e00 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.133.3
renovate / renovate (push) Successful in 2m43s
2025-01-25 00:02:01 +00:00
Renovate Bot 93c35c5dda feat(github-action): update image ghcr.io/renovatebot/renovate to v39.116.0
renovate / renovate (push) Successful in 3m0s
2025-01-19 00:01:50 +00:00
Renovate Bot 79cd490ec0 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.115.3
renovate / renovate (push) Successful in 3m6s
2025-01-18 00:01:33 +00:00
Renovate Bot c648332651 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.105.1
renovate / renovate (push) Successful in 1m59s
2025-01-12 07:01:47 +00:00
Renovate Bot ef4cdff068 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.104.3
renovate / renovate (push) Successful in 2m26s
2025-01-11 19:04:39 +00:00
Renovate Bot 8492973ce5 feat(github-action): update image ghcr.io/allenporter/flux-local to v6.1.1
renovate / renovate (push) Waiting to run
2025-01-11 19:03:30 +00:00
Renovate Bot 392da4700c feat(github-action): update image ghcr.io/renovatebot/renovate to v39.69.2
Release / Release (push) Has been cancelled
renovate / renovate (push) Successful in 3m58s
2024-12-15 07:01:14 +00:00
Renovate Bot 4443e60c2e feat(github-action): update image ghcr.io/renovatebot/renovate to v39.67.0
renovate / renovate (push) Successful in 1m26s
2024-12-14 07:27:39 +00:00
Renovate Bot f4404095d4 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.66.0
renovate / renovate (push) Has been cancelled
2024-12-14 07:01:40 +00:00
Renovate Bot 8d2c9fe12c feat(github-action): update image ghcr.io/renovatebot/renovate to v39.57.1
renovate / renovate (push) Successful in 1m52s
2024-12-08 07:01:08 +00:00
Renovate Bot 528d5b7879 fix(github-action): update image ghcr.io/renovatebot/renovate to v39.56.4
renovate / renovate (push) Successful in 1m15s
2024-12-07 07:01:06 +00:00
dlord 8d897f1509 Merge pull request 'feat(container): update image ghcr.io/onedr0p/postgres-init to v16.6' (#20) from renovate/ghcr.io-onedr0p-postgres-init-16.x into main
renovate / renovate (push) Successful in 1m12s
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/20
Reviewed-by: dlord <dlaccount@icloud.com>
2024-12-06 17:57:19 -07:00
dlord e7762392fd Merge pull request 'chore(deps): update cloudflare to 3.1.1' (#25) from renovate/cloudflare-3.x into main
renovate / renovate (push) Has been cancelled
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/25
2024-12-06 17:56:28 -07:00
dlord b5eee56f36 Merge pull request 'chore(container): update image ghcr.io/onedr0p/radarr-develop to f21d401' (#24) from renovate/ghcr.io-onedr0p-radarr-develop-rolling into main
renovate / renovate (push) Has been cancelled
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/24
2024-12-06 17:56:14 -07:00
dlord c2a2d9e219 Merge pull request 'fix(container): update image docker.io/cloudflare/cloudflared to v2024.11.1' (#13) from renovate/docker.io-cloudflare-cloudflared-2024.x into main
renovate / renovate (push) Has been cancelled
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/13
2024-12-06 17:55:58 -07:00
Renovate Bot 300a88a009 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.56.2
renovate / renovate (push) Has been cancelled
2024-12-07 00:51:04 +00:00
dlord 4575f375c7 Merge pull request 'chore(container): update image ghcr.io/onedr0p/prowlarr-develop to 155e7c7' (#10) from renovate/ghcr.io-onedr0p-prowlarr-develop-rolling into main
renovate / renovate (push) Has been cancelled
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/10
2024-12-06 17:48:56 -07:00
Renovate Bot 60e735598b chore(deps): update cloudflare to 3.1.1
e2e / workstation (archlinux) (pull_request) Failing after 2s
e2e / workstation (generic-linux) (pull_request) Failing after 6s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 9s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 11s
Kubeconform / Kubeconform (pull_request) Failing after 10s
Labeler / Labeler (pull_request) Successful in 6s
2024-12-07 00:48:47 +00:00
dlord 5ccf578e1f Merge pull request 'chore(container): update image ghcr.io/onedr0p/sonarr-develop to 371517b' (#11) from renovate/ghcr.io-onedr0p-sonarr-develop-rolling into main
renovate / renovate (push) Waiting to run
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/11
2024-12-06 17:48:41 -07:00
dlord d0d55ce1a0 Merge pull request 'fix(container): update image ghcr.io/gethomepage/homepage to v0.9.13' (#14) from renovate/ghcr.io-gethomepage-homepage-0.x into main
renovate / renovate (push) Has been cancelled
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/14
2024-12-06 17:47:50 -07:00
dlord 1b9df38253 Merge pull request 'feat(helm): update chart external-secrets to 0.11.0' (#19) from renovate/external-secrets-0.x into main
renovate / renovate (push) Has been cancelled
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/19
2024-12-06 17:47:33 -07:00
Renovate Bot 19569bb989 chore(container): update image ghcr.io/onedr0p/radarr-develop to f21d401
e2e / workstation (archlinux) (pull_request) Failing after 2s
e2e / workstation (generic-linux) (pull_request) Failing after 7s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 10s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 8s
Kubeconform / Kubeconform (pull_request) Failing after 12s
Labeler / Labeler (pull_request) Successful in 8s
2024-12-07 00:46:53 +00:00
dlord 1d17ebf324 Merge pull request 'feat(container): update image redis to v20.4.0' (#21) from renovate/redis-20.x into main
renovate / renovate (push) Has been cancelled
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/21
2024-12-06 17:46:48 -07:00
dlord 5c1f36d994 Merge pull request 'chore(container): update image ghcr.io/onedr0p/plex to 1f28b5e' (#23) from renovate/ghcr.io-onedr0p-plex-rolling into main
renovate / renovate (push) Has been cancelled
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/23
2024-12-06 17:46:08 -07:00
Renovate Bot f468c593da chore(container): update image ghcr.io/onedr0p/prowlarr-develop to 155e7c7
e2e / workstation (archlinux) (pull_request) Failing after 1s
e2e / workstation (generic-linux) (pull_request) Failing after 8s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 8s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 12s
Kubeconform / Kubeconform (pull_request) Failing after 11s
Labeler / Labeler (pull_request) Successful in 9s
2024-12-06 07:01:04 +00:00
Renovate Bot c0cc8039d4 feat(helm): update chart external-secrets to 0.11.0
e2e / workstation (archlinux) (pull_request) Failing after 7s
e2e / workstation (generic-linux) (pull_request) Failing after 21s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 22s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 14s
Kubeconform / Kubeconform (pull_request) Failing after 13s
Labeler / Labeler (pull_request) Successful in 7s
2024-12-03 07:01:11 +00:00
Renovate Bot dc4524e7f3 feat(container): update image redis to v20.4.0
e2e / workstation (archlinux) (pull_request) Failing after 2s
e2e / workstation (generic-linux) (pull_request) Failing after 5s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 9s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 9s
Kubeconform / Kubeconform (pull_request) Failing after 13s
Labeler / Labeler (pull_request) Successful in 10s
2024-12-03 07:01:09 +00:00
Renovate Bot 548804911b chore(container): update image ghcr.io/onedr0p/sonarr-develop to 371517b
e2e / workstation (archlinux) (pull_request) Failing after 2s
e2e / workstation (generic-linux) (pull_request) Failing after 6s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 9s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 9s
Kubeconform / Kubeconform (pull_request) Failing after 13s
Labeler / Labeler (pull_request) Successful in 9s
2024-12-02 07:01:00 +00:00
Renovate Bot 2ee2d3add3 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.42.2
renovate / renovate (push) Successful in 52s
2024-12-01 07:01:21 +00:00
Renovate Bot 8fa730520e chore(container): update image ghcr.io/onedr0p/plex to 1f28b5e
e2e / workstation (archlinux) (pull_request) Failing after 7s
e2e / workstation (generic-linux) (pull_request) Failing after 20s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 23s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 21s
Kubeconform / Kubeconform (pull_request) Failing after 16s
Labeler / Labeler (pull_request) Successful in 7s
2024-12-01 07:01:11 +00:00
Renovate Bot bdbe354545 feat(github-action): update image ghcr.io/renovatebot/renovate to v39.41.0
renovate / renovate (push) Successful in 1m34s
Release / Release (push) Has been skipped
2024-11-30 07:01:50 +00:00
Renovate Bot 49803e8857 feat(container): update image ghcr.io/onedr0p/postgres-init to v16.6
e2e / workstation (archlinux) (pull_request) Failing after 5s
e2e / workstation (generic-linux) (pull_request) Failing after 13s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 15s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 18s
Kubeconform / Kubeconform (pull_request) Failing after 15s
Labeler / Labeler (pull_request) Successful in 8s
2024-11-30 07:01:40 +00:00
Renovate Bot 3a22b1cefa fix(container): update image ghcr.io/gethomepage/homepage to v0.9.13
e2e / workstation (archlinux) (pull_request) Failing after 4s
e2e / workstation (generic-linux) (pull_request) Failing after 12s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 19s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 19s
Kubeconform / Kubeconform (pull_request) Failing after 13s
Labeler / Labeler (pull_request) Successful in 7s
2024-11-30 07:01:17 +00:00
Renovate Bot 9ea71fffea fix(container): update image docker.io/cloudflare/cloudflared to v2024.11.1
e2e / workstation (archlinux) (pull_request) Failing after 5s
e2e / workstation (generic-linux) (pull_request) Failing after 14s
e2e / configure (talos) (pull_request) Has been skipped
Flux Diff / Flux Diff (kubernetes, helmrelease) (pull_request) Failing after 19s
Flux Diff / Flux Diff (kubernetes, kustomization) (pull_request) Failing after 19s
Kubeconform / Kubeconform (pull_request) Failing after 14s
Labeler / Labeler (pull_request) Successful in 7s
2024-11-30 07:01:14 +00:00
Daren Lord b91c67320a homepage: remove services
renovate / renovate (push) Successful in 1m59s
2024-11-27 23:14:12 +00:00
Daren Lord 2c640c7d75 homepage: fix services
renovate / renovate (push) Successful in 36s
2024-11-27 23:08:24 +00:00
Daren Lord e74c2c693b homepage: fix secret name
renovate / renovate (push) Successful in 36s
2024-11-27 23:04:52 +00:00
Daren Lord d6d92c3c69 homepage: add resources
renovate / renovate (push) Successful in 39s
2024-11-27 20:38:28 +00:00
Daren Lord 4c8e267010 add theme-park and homepage
renovate / renovate (push) Successful in 39s
2024-11-27 20:34:15 +00:00
Daren Lord 24bc36a4f7 media: fix plex
renovate / renovate (push) Successful in 41s
2024-11-26 05:01:09 +00:00
Daren Lord c6a1e9b790 media: fix plex
renovate / renovate (push) Successful in 36s
2024-11-26 04:51:39 +00:00
Daren Lord 8d3c028a4f media: fix plex
renovate / renovate (push) Has been cancelled
2024-11-26 04:51:18 +00:00
Daren Lord e8d907f793 media: fix plex
renovate / renovate (push) Successful in 36s
2024-11-26 04:49:16 +00:00
Daren Lord b4030d8a32 media: fix plex
renovate / renovate (push) Successful in 35s
2024-11-26 04:48:00 +00:00
Daren Lord 7fdaa0b28f media: fix plex
renovate / renovate (push) Successful in 33s
2024-11-26 04:45:40 +00:00
Daren Lord 9c5cf0bbd9 media: fix plex
renovate / renovate (push) Successful in 35s
2024-11-26 04:30:24 +00:00
Daren Lord 934057fa4d media: fix plex secret
renovate / renovate (push) Successful in 34s
2024-11-26 04:26:40 +00:00
Daren Lord e870d89db7 media: fix plex secret
renovate / renovate (push) Successful in 35s
2024-11-26 04:18:51 +00:00
Daren Lord 7ad9b24014 media: enable plex, tautilli
renovate / renovate (push) Successful in 34s
2024-11-26 04:10:59 +00:00
Daren Lord 603d28673a overseerr: fix config mount
renovate / renovate (push) Successful in 35s
2024-11-26 04:02:07 +00:00
Daren Lord 6fae4188fb media: add overseerr,plex,tautilli
renovate / renovate (push) Successful in 35s
2024-11-26 03:56:16 +00:00
Daren Lord 85f86545f5 Remove TLS for jellyfin
renovate / renovate (push) Successful in 39s
2024-11-25 04:46:25 +00:00
Daren Lord 540e774b1c jellyfin: fix mounts
renovate / renovate (push) Successful in 35s
2024-11-25 04:27:12 +00:00
Daren Lord 333594ef13 media: add jellyfin
renovate / renovate (push) Successful in 35s
2024-11-25 04:15:17 +00:00
Daren Lord cbcc448cde downloads: Update locations.
renovate / renovate (push) Successful in 34s
2024-11-25 03:55:24 +00:00
Daren Lord 07c13e29bb upgrade sonarr
renovate / renovate (push) Successful in 36s
2024-11-25 03:26:09 +00:00
Daren Lord 168fe1c12a fix sonarr
renovate / renovate (push) Successful in 34s
2024-11-25 03:22:19 +00:00
Daren Lord 29cea6300b downloads: Add sonnar kustomization
renovate / renovate (push) Successful in 35s
2024-11-25 02:54:23 +00:00
Daren Lord d7a58a1705 downloads: Add sonnar kustomization
renovate / renovate (push) Waiting to run
2024-11-25 02:49:14 +00:00
Daren Lord 48f9384155 downloads: Add sonarr
renovate / renovate (push) Waiting to run
2024-11-25 02:40:25 +00:00
Daren Lord 5213be53dd capacitor: fix for rbac, radarr,sabnzbd fix secret
renovate / renovate (push) Waiting to run
2024-11-25 02:20:35 +00:00
Daren Lord 73459b7271 try fixing capacitor
renovate / renovate (push) Waiting to run
2024-11-25 02:13:41 +00:00
Daren Lord 267001f98e Fix image versions
renovate / renovate (push) Waiting to run
2024-11-25 01:58:45 +00:00
Daren Lord 23789f53c2 downloads: fix config mounts
renovate / renovate (push) Waiting to run
2024-11-25 01:51:26 +00:00
Daren Lord 9588ce4aeb sabnzbd: fixes
renovate / renovate (push) Waiting to run
2024-11-25 01:46:56 +00:00
Daren Lord a67cd1b15a sabnzbd: remove authilia
renovate / renovate (push) Successful in 38s
2024-11-23 05:57:21 +00:00
Daren Lord 6670024de6 sabnzbd: fix dependsOn
renovate / renovate (push) Waiting to run
2024-11-23 05:56:03 +00:00
Daren Lord 3e08594b28 sabnzbd: initial commit
renovate / renovate (push) Waiting to run
2024-11-23 05:54:29 +00:00
Daren Lord ffd3870b6f downloads: add sabnzbd
renovate / renovate (push) Waiting to run
2024-11-23 05:44:12 +00:00
Daren Lord 64ebae6504 cluster-secrets: add internal-domain
renovate / renovate (push) Waiting to run
2024-11-23 05:19:41 +00:00
dlord 06ed831299 Merge pull request 'chore(deps): update makejinja to 2.7.0' (#9) from renovate/makejinja-2.x into main
renovate / renovate (push) Waiting to run
Reviewed-on: http://192.168.1.68:3001/infra/home-cluster/pulls/9
Reviewed-by: dlord <dlaccount@icloud.com>
2024-11-22 22:10:34 -07:00
Daren Lord 822b3b7d6b downloads: enable prowlarr
renovate / renovate (push) Waiting to run
2024-11-23 05:07:21 +00:00
Daren Lord d3cd59bdf2 prowlarr: persist config
renovate / renovate (push) Waiting to run
2024-11-23 04:59:53 +00:00
Daren Lord 96f6eb5eb6 prowlarr: remove authialia 2024-11-23 04:58:52 +00:00
Renovate Bot 241f5d80d7 chore(deps): update makejinja to 2.7.0
e2e / workstation (archlinux) (pull_request) Failing after 2s
e2e / workstation (generic-linux) (pull_request) Failing after 6s
e2e / configure (talos) (pull_request) Has been skipped
Labeler / Labeler (pull_request) Successful in 4s
2024-11-16 02:13:04 +00:00
54 changed files with 1762 additions and 88 deletions

No files matched your search

+1 -1
View File
@@ -35,7 +35,7 @@ jobs:
path: default
- name: Diff Resources
uses: docker://ghcr.io/allenporter/flux-local:v6.0.2
uses: docker://ghcr.io/allenporter/flux-local:v6.1.1
with:
args: >-
diff ${{ matrix.resources }}
+1 -1
View File
@@ -10,7 +10,7 @@ on:
jobs:
renovate:
runs-on: ubuntu-latest
container: ghcr.io/renovatebot/renovate:39.17.1
container: ghcr.io/renovatebot/renovate:39.240.1
steps:
- uses: actions/checkout@v4
- run: renovate
@@ -30,7 +30,7 @@ spec:
app:
image:
repository: docker.io/cloudflare/cloudflared
tag: 2024.11.0
tag: 2024.11.1
env:
NO_AUTOUPDATE: true
TUNNEL_CRED_FILE: /etc/cloudflared/creds/credentials.json
@@ -42,11 +42,16 @@ spec:
repository: ghcr.io/gimlet-io/capacitor
tag: v0.4.8@sha256:a80207f52c054dba9e04e8b1ea86e297817ecf05ddbfce249c1f5eaf6ce8c7d8
securityContext:
runAsNonRoot: true
runAsUser: 100
runAsGroup: 101
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
seccompProfile:
type: RuntimeDefault
probes:
startup:
@@ -90,7 +95,7 @@ spec:
enabled: true
className: internal
hosts:
- host: &host "{{ .Release.Name }}.k8s.home.arpa"
- host: &host "{{ .Release.Name }}.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
pathType: Prefix
@@ -1,48 +1,50 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: capacitor
namespace: flux-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: capacitor
rules:
- apiGroups:
- networking.k8s.io
- apps
- ""
resources:
- pods
- pods/log
- ingresses
- deployments
- services
- secrets
- events
- configmaps
verbs:
- get
- watch
- list
- apiGroups:
- source.toolkit.fluxcd.io
- kustomize.toolkit.fluxcd.io
- helm.toolkit.fluxcd.io
resources:
- gitrepositories
- ocirepositories
- buckets
- helmrepositories
- helmcharts
- kustomizations
- helmreleases
verbs:
- get
- watch
- list
- patch # to allow force reconciling by adding an annotation
- apiGroups:
- networking.k8s.io
- apps
- ""
resources:
- pods
- pods/log
- ingresses
- deployments
- services
- secrets
- events
- configmaps
verbs:
- get
- watch
- list
- apiGroups:
- source.toolkit.fluxcd.io
- kustomize.toolkit.fluxcd.io
- helm.toolkit.fluxcd.io
- infra.contrib.fluxcd.io
resources:
- gitrepositories
- ocirepositories
- buckets
- helmrepositories
- helmcharts
- kustomizations
- helmreleases
- terraforms
verbs:
- get
- watch
- list
- patch # to allow force reconciling by adding an annotation
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
@@ -9,7 +9,7 @@ spec:
chart:
spec:
chart: *app
version: 20.2.1
version: 20.4.0
sourceRef:
kind: HelmRepository
name: bitnami
+3 -5
View File
@@ -8,12 +8,10 @@ resources:
# - ./flaresolverr/ks.yaml
# - ./flood/ks.yaml
# - ./lidarr/ks.yaml
# - ./prowlarr/ks.yaml
- ./prowlarr/ks.yaml
- ./radarr/ks.yaml
# - ./readarr/ks.yaml
# - ./sabnzbd/ks.yaml
# - ./sonarr/ks.yaml
# - ./unpackerr/ks.yaml
- ./sabnzbd/ks.yaml
- ./sonarr/ks.yaml
# configMapGenerator:
# - name: authelia-ingress-hv
# namespace: downloads
@@ -24,9 +24,9 @@ spec:
retries: 3
uninstall:
keepHistory: false
valuesFrom:
- kind: ConfigMap
name: authelia-ingress-hv
# valuesFrom:
# - kind: ConfigMap
# name: authelia-ingress-hv
values:
controllers:
prowlarr:
@@ -36,7 +36,7 @@ spec:
init-db:
image:
repository: ghcr.io/onedr0p/postgres-init
tag: 16.4@sha256:e41c745b54485341e00efbd27556f0717623a119f0d5107e5ff831aa1322c76f
tag: 16.6@sha256:35353a77777ee8f634d0f3945f495b4a40065134b8619e0d18bd49b0ee9c855b
envFrom: &envFrom
- secretRef:
name: *app
@@ -44,7 +44,7 @@ spec:
app:
image:
repository: ghcr.io/onedr0p/prowlarr-develop
tag: 1.26.0@sha256:face4aa669a4eb68b041dcf73ed4848cfe8f673826ef3032398a5e267eb1eac0
tag: rolling@sha256:155e7c757880e6afc5933b3060dfaec1c79712caf68031096fd5866ae4a31d0f
env:
TZ: "${TIMEZONE}"
PROWLARR__APP__INSTANCENAME: Prowlarr
@@ -99,8 +99,19 @@ spec:
app:
enabled: true
className: internal
annotations:
external-dns.alpha.kubernetes.io/target: internal.${SECRET_DOMAIN}
gethomepage.dev/enabled: "true"
gethomepage.dev/group: Downloads
gethomepage.dev/name: Prowlarr
gethomepage.dev/icon: prowlarr.png
gethomepage.dev/description: Torrent/NZB Indexer Management
gethomepage.dev/widget.type: prowlarr
gethomepage.dev/widget.url: http://prowlarr.downloads
gethomepage.dev/widget.key: "{{ `{{HOMEPAGE_VAR_PROWLARR_TOKEN}}` }}"
nginx.ingress.kubernetes.io/configuration-snippet: ${THEME_PARK_SNIPPET}
hosts:
- host: &host "{{ .Release.Name }}.k8s.home.arpa"
- host: &host "{{ .Release.Name }}.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
pathType: Prefix
@@ -111,28 +122,11 @@ spec:
- hosts:
- *host
secretName: "{{ .Release.Name }}-tls"
# app:
# className: internal
# annotations:
# external-dns.alpha.kubernetes.io/target: internal.${SECRET_INTERNAL_DOMAIN}
# # gethomepage.dev/enabled: "true"
# # gethomepage.dev/group: Downloads
# # gethomepage.dev/name: Prowlarr
# # gethomepage.dev/icon: prowlarr.png
# # gethomepage.dev/description: Torrent/NZB Indexer Management
# # gethomepage.dev/widget.type: prowlarr
# # gethomepage.dev/widget.url: http://prowlarr.downloads
# # gethomepage.dev/widget.key: "{{ `{{HOMEPAGE_VAR_PROWLARR_TOKEN}}` }}"
# # nginx.ingress.kubernetes.io/configuration-snippet: ${THEME_PARK_SNIPPET}
# hosts:
# - host: "{{ .Release.Name }}.${SECRET_INTERNAL_DOMAIN}"
# paths:
# - path: /
# service:
# identifier: app
# port: http
persistence:
config:
type: emptyDir
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/k3s/config/prowlarr
tmp:
type: emptyDir
+1 -1
View File
@@ -12,7 +12,7 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: cloudnative-pg-cluster
- name: external-secrets
- name: downloads-cifs-pvcs
path: ./kubernetes/apps/downloads/prowlarr/app
prune: true
sourceRef:
@@ -34,7 +34,7 @@ spec:
init-db:
image:
repository: ghcr.io/onedr0p/postgres-init
tag: 16.4@sha256:e41c745b54485341e00efbd27556f0717623a119f0d5107e5ff831aa1322c76f
tag: 16.6@sha256:35353a77777ee8f634d0f3945f495b4a40065134b8619e0d18bd49b0ee9c855b
envFrom: &envFrom
- secretRef:
name: *app
@@ -42,7 +42,7 @@ spec:
app:
image:
repository: ghcr.io/onedr0p/radarr-develop
tag: 5.15.0.9412@sha256:3d922f5f80935c1aadbe49597cb4cd509e2890ca0c01d6778ac54825012fdde4
tag: rolling@sha256:f21d401a2ce6ebf5401c4dc71e3184ece740fff227a6af0ffa1a51fe4af7627c
env:
TZ: "${TIMEZONE}"
RADARR__APP__INSTANCENAME: Radarr
@@ -97,8 +97,19 @@ spec:
app:
enabled: true
className: internal
annotations:
external-dns.alpha.kubernetes.io/target: internal.${SECRET_INTERNAL_DOMAIN}
gethomepage.dev/enabled: "true"
gethomepage.dev/group: Downloads
gethomepage.dev/name: Radarr
gethomepage.dev/icon: radarr.png
gethomepage.dev/description: Movie Downloads
gethomepage.dev/widget.type: radarr
gethomepage.dev/widget.url: http://radarr.downloads
gethomepage.dev/widget.key: "{{ `{{HOMEPAGE_VAR_RADARR_TOKEN}}` }}"
nginx.ingress.kubernetes.io/configuration-snippet: ${THEME_PARK_SNIPPET}
hosts:
- host: &host "{{ .Release.Name }}.k8s.home.arpa"
- host: &host "{{ .Release.Name }}.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
pathType: Prefix
@@ -133,13 +144,17 @@ spec:
# port: http
persistence:
config:
existingClaim: cifs-appdata
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/k3s/config/radarr
tmp:
type: emptyDir
media:
existingClaim: cifs-movies
globalMounts:
- path: /media/movies
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/movies
downloads:
existingClaim: cifs-downloads
advancedMounts:
@@ -0,0 +1,32 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1beta1.json
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: &name sabnzbd
spec:
target:
name: *name
deletionPolicy: Delete
template:
type: Opaque
data:
SABNZBD__API_KEY: "{{ .SABNZBD_API_KEY }}"
SABNZBD__NZB_KEY: "{{ .SABNZBD_NZB_KEY }}"
data:
- secretKey: SABNZBD_API_KEY
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: &secretDatabaseKey f6eb2b25-18a4-4f3f-af8e-38a6ee61787b
property: username
- secretKey: SABNZBD_NZB_KEY
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: *secretDatabaseKey
property: password
@@ -0,0 +1,141 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app sabnzbd
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 3.5.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
# valuesFrom:
# - kind: ConfigMap
# name: authelia-ingress-hv
values:
controllers:
sabnzbd:
annotations:
reloader.stakater.com/auto: "true"
containers:
app:
image:
repository: ghcr.io/onedr0p/sabnzbd
tag: rolling@sha256:86c645db93affcbf01cc2bce2560082bfde791009e1506dba68269b9c50bc341
env:
TZ: "America/Denver"
SABNZBD__PORT: &port 8080
SABNZBD__HOST_WHITELIST_ENTRIES: >-
sabnzbd,
sabnzbd.downloads,
sabnzbd.downloads.svc,
sabnzbd.downloads.svc.cluster,
sabnzbd.downloads.svc.cluster.local,
sabnzbd.${SECRET_INTERNAL_DOMAIN}
envFrom:
- secretRef:
name: *app
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /api?mode=version
port: *port
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
startup:
enabled: false
resources:
requests:
cpu: 300m
memory: 1Gi
limits:
memory: 4Gi
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
defaultPodOptions:
securityContext:
runAsNonRoot: true
runAsUser: 568
runAsGroup: 568
fsGroup: 568
seccompProfile: { type: RuntimeDefault }
service:
app:
controller: *app
ports:
http:
port: *port
ingress:
app:
enabled: true
className: internal
annotations:
external-dns.alpha.kubernetes.io/target: "internal.${SECRET_DOMAIN}"
gethomepage.dev/enabled: "true"
gethomepage.dev/group: Downloads
gethomepage.dev/name: SABnzbd
gethomepage.dev/icon: sabnzbd
gethomepage.dev/widget.type: sabnzbd
gethomepage.dev/widget.url: http://sabnzbd.downloads:8080
gethomepage.dev/widget.key: "{{`{{HOMEPAGE_VAR_SABNZBD_TOKEN}}`}}"
nginx.ingress.kubernetes.io/configuration-snippet: ${THEME_PARK_SNIPPET}
hosts:
- host: &host "{{ .Release.Name }}.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
pathType: Prefix
service:
identifier: app
port: http
tls:
- hosts:
- *host
secretName: "{{ .Release.Name }}-tls"
persistence:
config:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/k3s/config/sabnzbd
tmp:
type: emptyDir
incomplete:
type: emptyDir
applications:
existingClaim: cifs-appdata
globalMounts:
- path: /media/applications
downloads:
existingClaim: cifs-downloads
globalMounts:
- path: /downloads
subPath: sabnzbd
# games:
# existingClaim: cifs-games
# globalMounts:
# - path: /media/games
# misc:
# existingClaim: cifs-misc
# globalMounts:
# - path: /media/misc
@@ -0,0 +1,9 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
# - ../../../../templates/volsync
- ./externalsecret.yaml
- ./helmrelease.yaml
# - ../../../../templates/gatus/guarded
+27
View File
@@ -0,0 +1,27 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app sabnzbd
namespace: flux-system
spec:
targetNamespace: downloads
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: external-secrets
- name: downloads-cifs-pvcs
path: ./kubernetes/apps/downloads/sabnzbd/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app
@@ -0,0 +1,67 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1beta1.json
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: &name sonarr
spec:
target:
name: *name
deletionPolicy: Delete
template:
type: Opaque
data:
# App
SONARR__AUTH__APIKEY: "{{ .SONARR_API_KEY }}"
SONARR__POSTGRES__HOST: &dbHost postgres-rw.databases.svc.cluster.local
SONARR__POSTGRES__PORT: "5432"
SONARR__POSTGRES__USER: &dbUser "{{ .SONARR_POSTGRES_USER }}"
SONARR__POSTGRES__PASSWORD: &dbPass "{{ .SONARR_POSTGRES_PASSWORD }}"
SONARR__POSTGRES__MAINDB: &dbName sonarr_main
# Postgres Init
INIT_POSTGRES_DBNAME: *dbName
INIT_POSTGRES_HOST: *dbHost
INIT_POSTGRES_USER: *dbUser
INIT_POSTGRES_PASS: *dbPass
INIT_POSTGRES_SUPER_PASS: "{{ .POSTGRES_ADMIN_PASS }}"
data:
- secretKey: SONARR_API_KEY
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: &secretApiKey cccf2793-8f91-47da-be0d-63f08cdeda95
property: password
- secretKey: SONARR_POSTGRES_USER
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: &secretDatabaseKey 6fbd4e66-0750-4dea-94b6-b5eb25c77c44
property: username
- secretKey: SONARR_POSTGRES_PASSWORD
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: *secretDatabaseKey
property: password
- secretKey: POSTGRES_ADMIN_USER
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: &secretAdminDatabaseKey 88217883-df53-4c96-aad7-f3b2142382de
property: username
- secretKey: POSTGRES_ADMIN_PASS
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: *secretAdminDatabaseKey
property: password
@@ -0,0 +1,141 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app sonarr
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 3.5.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
sonarr:
annotations:
reloader.stakater.com/auto: "true"
initContainers:
init-db:
image:
repository: ghcr.io/onedr0p/postgres-init
tag: 16.6@sha256:35353a77777ee8f634d0f3945f495b4a40065134b8619e0d18bd49b0ee9c855b
envFrom: &envFrom
- secretRef:
name: *app
containers:
app:
image:
repository: ghcr.io/onedr0p/sonarr-develop
tag: rolling@sha256:371517bc99a5c755bea0c73e8e9fcd23ae436a593fb4a116368947c9c9182977
env:
TZ: "${TIMEZONE}"
SONARR__APP__INSTANCENAME: Sonarr
SONARR__APP__THEME: dark
SONARR__AUTH__METHOD: External
SONARR__AUTH__REQUIRED: DisabledForLocalAddresses
SONARR__LOG__DBENABLED: "False"
SONARR__LOG__LEVEL: info
SONARR__SERVER__PORT: &port 80
SONARR__UPDATE__BRANCH: develop
envFrom: *envFrom
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /ping
port: *port
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 5
readiness: *probes
startup:
enabled: false
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
resources:
requests:
cpu: 10m
memory: 256Mi
limits:
memory: 4Gi
defaultPodOptions:
securityContext:
runAsNonRoot: true
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: OnRootMismatch
seccompProfile: { type: RuntimeDefault }
service:
app:
controller: *app
ports:
http:
port: *port
ingress:
app:
className: internal
annotations:
external-dns.alpha.kubernetes.io/target: internal.${SECRET_DOMAIN}
gethomepage.dev/enabled: "true"
gethomepage.dev/group: Downloads
gethomepage.dev/name: Sonarr
gethomepage.dev/icon: sonarr.png
gethomepage.dev/description: TV Downloads
gethomepage.dev/widget.type: sonarr
gethomepage.dev/widget.url: http://sonarr.downloads
gethomepage.dev/widget.key: "{{ `{{HOMEPAGE_VAR_SONARR_TOKEN}}` }}"
nginx.ingress.kubernetes.io/configuration-snippet: ${THEME_PARK_SNIPPET}
hosts:
- host: &host "{{ .Release.Name }}.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http
tls:
- hosts:
- *host
secretName: "{{ .Release.Name }}-tls"
persistence:
config:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/k3s/config/sonarr
tmp:
type: emptyDir
media:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/shows
downloads:
existingClaim: cifs-downloads
advancedMounts:
sonarr:
app:
- path: /downloads/downloaded_tv
readOnly: false
subPath: sabnzbd/downloaded_tv
- path: /downloads/tv-sonarr
readOnly: false
subPath: flood/tv-sonarr
@@ -0,0 +1,9 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
# - ../../../../templates/volsync
- ./externalsecret.yaml
- ./helmrelease.yaml
# - ../../../../templates/gatus/guarded
+27
View File
@@ -0,0 +1,27 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app sonarr
namespace: flux-system
spec:
targetNamespace: downloads
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: cloudnative-pg-cluster
- name: downloads-cifs-pvcs
path: ./kubernetes/apps/downloads/sonarr/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app
@@ -8,7 +8,7 @@ spec:
chart:
spec:
chart: external-secrets
version: 0.10.5
version: 0.16.1
sourceRef:
kind: HelmRepository
name: external-secrets
@@ -0,0 +1,55 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1beta1.json
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: &name homepage
spec:
target:
name: *name
deletionPolicy: Delete
template:
type: Opaque
data:
# HOMEPAGE_VAR_LIDARR_TOKEN: "{{ .LIDARR_API_KEY }}"
# HOMEPAGE_VAR_OVERSEERR_TOKEN: "{{ .OVERSEERR_API_KEY }}"
# HOMEPAGE_VAR_PLEX_TOKEN: "{{ .PLEX_TOKEN }}"
HOMEPAGE_VAR_PROWLARR_TOKEN: "{{ .PROWLARR_API_KEY }}"
HOMEPAGE_VAR_RADARR_TOKEN: "{{ .RADARR_API_KEY }}"
# HOMEPAGE_VAR_READARR_TOKEN: "{{ .READARR_API_KEY }}"
HOMEPAGE_VAR_SABNZBD_TOKEN: "{{ .SABNZBD_API_KEY }}"
HOMEPAGE_VAR_SONARR_TOKEN: "{{ .SONARR_API_KEY }}"
# HOMEPAGE_VAR_TAUTULLI_TOKEN: "{{ .TAUTULLI_API_KEY }}"
data:
- secretKey: PROWLARR_API_KEY
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: ae9d8486-9279-4790-ac34-64c8922bb414
property: password
- secretKey: RADARR_API_KEY
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: 093af32f-2565-4807-9574-6b6a886a4e03
property: password
- secretKey: SABNZBD_API_KEY
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: f6eb2b25-18a4-4f3f-af8e-38a6ee61787b
property: username
- secretKey: SONARR_API_KEY
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: cccf2793-8f91-47da-be0d-63f08cdeda95
property: password
@@ -0,0 +1,115 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app homepage
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 3.5.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
homepage:
annotations:
configmap.reloader.stakater.com/reload: *app
secret.reloader.stakater.com/reload: *app
containers:
app:
image:
repository: ghcr.io/gethomepage/homepage
tag: v0.9.13@sha256:1504b26bd82523e68adbae8c5a908d1633d02c68c65b62d084d81a6866552db6
env:
TZ: "${TIMEZONE}"
envFrom:
- secretRef:
name: *app
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
memory: 768Mi
defaultPodOptions:
securityContext:
runAsNonRoot: true
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: OnRootMismatch
seccompProfile: { type: RuntimeDefault }
service:
app:
controller: *app
ports:
http:
port: 3000
serviceAccount:
create: true
name: *app
ingress:
app:
className: internal
annotations:
external-dns.alpha.kubernetes.io/target: internal.${SECRET_INTERNAL_DOMAIN}
hosts:
- host: "home.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
pathType: Prefix
service:
identifier: app
port: http
persistence:
logs:
type: emptyDir
globalMounts:
- path: /app/config/logs
config:
type: emptyDir
globalMounts:
- path: /app/config
# services:
# type: secret
# name: *app
# globalMounts:
# - subPath: services.yaml
# path: /app/config/services.yaml
# readOnly: true
configmap:
type: configMap
name: *app
globalMounts:
- subPath: bookmarks.yaml
path: /app/config/bookmarks.yaml
readOnly: true
- subPath: docker.yaml
path: /app/config/docker.yaml
readOnly: true
- subPath: kubernetes.yaml
path: /app/config/kubernetes.yaml
readOnly: true
- subPath: settings.yaml
path: /app/config/settings.yaml
readOnly: true
- subPath: widgets.yaml
path: /app/config/widgets.yaml
readOnly: true
@@ -0,0 +1,19 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./rbac.yaml
- ./externalsecret.yaml
- ./helmrelease.yaml
configMapGenerator:
- name: homepage
files:
- bookmarks.yaml=./resources/bookmarks.yaml
- docker.yaml=./resources/docker.yaml
- kubernetes.yaml=./resources/kubernetes.yaml
# - services.yaml=./resources/services.yaml
- settings.yaml=./resources/settings.yaml
- widgets.yaml=./resources/widgets.yaml
generatorOptions:
disableNameSuffixHash: true
@@ -0,0 +1,50 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: homepage
rules:
- apiGroups:
- ""
resources:
- namespaces
- pods
- nodes
verbs:
- get
- list
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses
verbs:
- get
- list
- apiGroups:
- metrics.k8s.io
resources:
- nodes
- pods
verbs:
- get
- list
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions/status
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: &app homepage
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: homepage
subjects:
- kind: ServiceAccount
name: *app
namespace: default
@@ -0,0 +1,23 @@
- Communicate:
- Discord:
- icon: discord.png
href: "https://discord.com/app"
- Gmail:
- icon: gmail.png
href: "https://mail.kraven.org"
- Google Calendar:
- icon: google-calendar.png
href: "https://calendar.google.com"
- Google Voice:
- icon: google-voice.png
href: "https://voice.google.com"
- Git:
- kubesearch:
- icon: kubernetes-dashboard.png
href: "https://kubesearch.dev/"
- talos-cluster:
- icon: github.png
href: "https://github.com/brunnels/talos-cluster"
- cluster-template:
- icon: github.png
href: "https://github.com/onedr0p/cluster-template"
Whitespace-only changes.
@@ -0,0 +1 @@
mode: cluster
@@ -0,0 +1,23 @@
- Infrastructure:
- Unraid:
icon: unraid
href: http://192.168.1.68
description: Unraid
widget:
type: unraid
url: https//192.168.1.68
username: root
password: dlord781
- Calendar:
- Agenda:
widget:
type: calendar
view: agenda
maxEvents: 20
integrations:
- type: sonarr
service_group: Downloads
service_name: Sonarr
- type: radarr
service_group: Downloads
service_name: Radarr
@@ -0,0 +1,69 @@
title: Dashboard
favicon: "https://raw.githubusercontent.com/brunnels/assets/main/homepage/icons/heimdall.svg"
theme: dark
background:
image: https://images.unsplash.com/photo-1502790671504-542ad42d5189?auto=format&fit=crop&w=2560&q=80
blur: sm
saturate: 50
brightness: 50
opacity: 50
color: slate
headerStyle: clean
providers:
longhorn:
url: http://longhorn-frontend.longhorn-system
layout:
# Automation:
# style: column
# Infrastructure:
# icon: mdi-server
# style: column
# Git:
# icon: mdi-desktop-tower
# style: column
# Storage:
# icon: mdi-desktop-tower
# style: column
# Tools:
# style: column
# Observability:
# icon: mdi-chart-line
# style: row
# columns: 4
# Media:
# icon: mdi-play-circle
# style: row
# columns: 4
# Downloads:
# icon: mdi-download-circle
# style: row
# columns: 4
Home:
style: column
icon: mdi-home-analytics
Git:
style: column
icon: mdi-desktop-tower
Storage:
style: row
columns: 2
icon: mdi-desktop-tower
Calendar:
style: column
icon: mdi-calendar
Media:
style: column
icon: mdi-play-circle
Infrastructure:
style: column
icon: mdi-server
DNS:
style: column
icon: mdi-server
Observability:
style: column
icon: mdi-chart-line
Downloads:
style: row
columns: 3
icon: mdi-download-circle
@@ -0,0 +1,32 @@
- resources:
backend: kubernetes
cpu: true
expanded: true
memory: true
- kubernetes:
cluster:
cpu: true
label: cluster
memory: true
show: true
showLabel: true
nodes:
cpu: true
memory: true
show: false
showLabel: true
- search:
provider: [duckduckgo, google]
target: _blank
- openmeteo:
latitude: "${SECRET_LATITUDE}"
longitude: "${SECRET_LONGITUDE}"
timezone: "${TIMEZONE}"
units: imperial
cache: 15
- datetime:
text_size: l
format:
dateStyle: long
timeStyle: short
hourCycle: h23
+26
View File
@@ -0,0 +1,26 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app homepage
namespace: flux-system
spec:
targetNamespace: default
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: external-secrets
path: ./kubernetes/apps/helpers/homepage/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app
@@ -0,0 +1,8 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./namespace.yaml
- ./homepage/ks.yaml
- ./theme-park/ks.yaml
+8
View File
@@ -0,0 +1,8 @@
---
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/namespace-v1.json
apiVersion: v1
kind: Namespace
metadata:
name: default
labels:
kustomize.toolkit.fluxcd.io/prune: disabled
@@ -0,0 +1,73 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app theme-park
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 3.5.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
theme-park:
replicas: 2
strategy: RollingUpdate
containers:
app:
image:
repository: ghcr.io/onedr0p/theme-park
tag: 1.18.0@sha256:210d8f5d9466df493503184fb076bbf1fb9fbc2b42e273cd4516ac3fd1df7ba2
resources:
requests:
cpu: 10m
memory: 32Mi
limits:
memory: 64Mi
defaultPodOptions:
securityContext:
runAsNonRoot: true
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: OnRootMismatch
seccompProfile: { type: RuntimeDefault }
service:
app:
controller: *app
ports:
http:
port: 8080
ingress:
app:
className: internal
# annotations:
# external-dns.alpha.kubernetes.io/target: external.${SECRET_DOMAIN}
hosts:
- host: "{{ .Release.Name }}.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app.kubernetes.io/name: *app
@@ -0,0 +1,6 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
@@ -0,0 +1,24 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app theme-park
namespace: flux-system
spec:
targetNamespace: default
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/helpers/theme-park/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app
@@ -0,0 +1,128 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app jellyfin
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 3.5.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
maxHistory: 2
install:
createNamespace: true
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
uninstall:
keepHistory: false
values:
defaultPodOptions:
enableServiceLinks: false
securityContext:
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: OnRootMismatch
controllers:
jellyfin:
annotations:
reloader.stakater.com/auto: "true"
containers:
app:
image:
repository: ghcr.io/jellyfin/jellyfin
tag: 10.10.3@sha256:17c3a8d9dddb97789b5f37112840ebf96566442c14d4754193a6c2eb154bc221
env:
DOTNET_SYSTEM_IO_DISABLEFILELOCKING: "true"
JELLYFIN_FFmpeg__probesize: 50000000
JELLYFIN_FFmpeg__analyzeduration: 50000000
JELLYFIN_PublishedServerUrl: &loadBalancerIP ${CLUSTER_LB_JELLYFIN}
TZ: ${TIMEZONE}
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /health
port: &port 8096
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
startup:
enabled: false
resources:
requests:
# gpu.intel.com/i915: 1
cpu: 100m
memory: 512Mi
limits:
# gpu.intel.com/i915: 1
memory: 4Gi
service:
app:
controller: *app
ports:
http:
port: *port
ingress:
app:
enabled: true
className: internal
hosts:
- host: &host "{{ .Release.Name }}.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http
persistence:
config:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/k3s/config/jellyfin
music:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/music
globalMounts:
- path: /var/mnt/vol1/music
photo:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/photos/original
globalMounts:
- path: /var/mnt/vol1/photo
video:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/movies
globalMounts:
- path: /var/mnt/vol1/video
transcode:
enabled: true
type: emptyDir
globalMounts:
- path: /transcode
cache:
enabled: true
type: emptyDir
globalMounts:
- path: /cache
@@ -0,0 +1,6 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
+26
View File
@@ -0,0 +1,26 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app jellyfin
namespace: flux-system
spec:
targetNamespace: media
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: external-secrets
path: ./kubernetes/apps/media/jellyfin/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app
+12
View File
@@ -0,0 +1,12 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./namespace.yaml
- ./jellyfin/ks.yaml
- ./overseerr/ks.yaml
- ./tautulli/ks.yaml
- ./plex/ks.yaml
generatorOptions:
disableNameSuffixHash: true
+8
View File
@@ -0,0 +1,8 @@
---
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/namespace-v1.json
apiVersion: v1
kind: Namespace
metadata:
name: media
labels:
kustomize.toolkit.fluxcd.io/prune: disabled
@@ -0,0 +1,115 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app overseerr
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 3.5.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
overseerr:
annotations:
reloader.stakater.com/auto: "true"
containers:
app:
image:
repository: ghcr.io/sct/overseerr
tag: rolling@sha256:714ea6db2bc007a2262d112bef7eec74972eb33d9c72bddb9cbd98b8742de950
env:
TZ: "${TIMEZONE}"
LOG_LEVEL: "info"
PORT: &port 80
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /api/v1/status
port: *port
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: [ "ALL" ] }
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
memory: 4Gi
defaultPodOptions:
securityContext:
runAsNonRoot: true
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: OnRootMismatch
seccompProfile: { type: RuntimeDefault }
service:
app:
controller: *app
ports:
http:
port: *port
ingress:
app:
className: internal
# annotations:
# external-dns.alpha.kubernetes.io/target: external.${SECRET_DOMAIN}
# gethomepage.dev/enabled: "true"
# gethomepage.dev/group: Media
# gethomepage.dev/name: Overseerr
# gethomepage.dev/icon: overseerr
# gethomepage.dev/description: Media Request Management
# gethomepage.dev/widget.type: overseerr
# gethomepage.dev/widget.url: http://overseerr.media
# gethomepage.dev/widget.key: "{{ `{{HOMEPAGE_VAR_OVERSEERR_TOKEN}}` }}"
hosts:
- host: "requests.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http
persistence:
config:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/k3s/config/overseerr
globalMounts:
- path: /app/config
cache:
storageClass: openebs-hostpath
accessMode: ReadWriteOnce
size: 15Gi
globalMounts:
- path: /app/config/cache
logs:
type: emptyDir
globalMounts:
- path: /app/config/logs
tmp:
type: emptyDir
@@ -0,0 +1,7 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
# - ../../../../templates/gatus/external
+24
View File
@@ -0,0 +1,24 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app overseerr
namespace: flux-system
spec:
targetNamespace: media
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/media/overseerr/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app
@@ -0,0 +1,23 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1beta1.json
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: &name plex
spec:
target:
name: *name
deletionPolicy: Delete
template:
type: Opaque
data:
PLEX_CLAIM: "{{ .PLEX_CLAIM }}"
data:
- secretKey: PLEX_CLAIM
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: &secretApiKey 8406f7ea-46b0-42ed-bcae-a83984d7b6ae
property: password
@@ -0,0 +1,149 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app plex
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 3.5.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
plex:
annotations:
reloader.stakater.com/auto: "true"
containers:
app:
image:
repository: ghcr.io/onedr0p/plex
tag: rolling@sha256:1f28b5e5a964481f80e76db3c986082d2fc3bca2d16d2742704e9adf8349c79c
env:
TZ: "${TIMEZONE}"
ALLOWED_NETWORKS: "${LAN_CIDR},${CLUSTER_CIDR},${SERVICE_CIDR}"
PLEX_ADVERTISE_URL: "http://172.16.10.4:32400,https://plex.${SECRET_INTERNAL_DOMAIN}"
PLEX_PREFERENCE_1: "AllowMediaDeletion=0"
PLEX_PREFERENCE_2: "EnableIPv6=0"
PLEX_PREFERENCE_3: "FriendlyName=LordFamilyFlix"
PLEX_PREFERENCE_4: "LanNetworksBandwidth=${LAN_CIDR}"
envFrom:
- secretRef:
name: *app
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /identity
port: &port 32400
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
resources:
requests:
cpu: 50m
memory: 512Mi
limits:
memory: 4Gi
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
defaultPodOptions:
securityContext:
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
seccompProfile: { type: RuntimeDefault }
service:
app:
controller: *app
type: LoadBalancer
ports:
http:
port: *port
ingress:
app:
className: internal
# annotations:
# external-dns.alpha.kubernetes.io/target: external.${SECRET_DOMAIN}
# gethomepage.dev/enabled: "true"
# gethomepage.dev/group: Media
# gethomepage.dev/name: Plex
# gethomepage.dev/icon: plex
# gethomepage.dev/description: Media Player
# gethomepage.dev/widget.type: plex
# gethomepage.dev/widget.url: http://plex.media:32400
# gethomepage.dev/widget.key: "{{ `{{HOMEPAGE_VAR_PLEX_TOKEN}}` }}"
# nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
# nginx.ingress.kubernetes.io/configuration-snippet: ${THEME_PARK_SNIPPET}
hosts:
- host: "{{ .Release.Name }}.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http
persistence:
config:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/k3s/config/plex
cache:
storageClass: openebs-hostpath
accessMode: ReadWriteOnce
size: 10Gi
globalMounts:
- path: "/config/Library/Application Support/Plex Media Server/Cache"
tmp:
type: emptyDir
transcode:
type: emptyDir
movies:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/movies
globalMounts:
- path: /media/movies
music:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/music
globalMounts:
- path: /media/music
pictures:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/photos/original
globalMounts:
- path: /media/photos
tv:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/shows
globalMounts:
- path: /media/tv
@@ -0,0 +1,7 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
+24
View File
@@ -0,0 +1,24 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app plex
namespace: flux-system
spec:
targetNamespace: media
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/media/plex/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app
@@ -0,0 +1,104 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app tautulli
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 3.5.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
tautulli:
annotations:
reloader.stakater.com/auto: "true"
containers:
app:
image:
repository: ghcr.io/onedr0p/tautulli
tag: rolling@sha256:96285c7e57dc77b790bb934be25d1d18a7c220b0f9e29748f65b2374bbef24c8
env:
TZ: America/Denver
TAUTULLI__PORT: &port 80
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /status
port: *port
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: [ "ALL" ] }
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
memory: 4Gi
defaultPodOptions:
securityContext:
runAsNonRoot: true
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: OnRootMismatch
seccompProfile: { type: RuntimeDefault }
service:
app:
controller: *app
ports:
http:
port: *port
ingress:
app:
className: internal
# annotations:
# external-dns.alpha.kubernetes.io/target: internal.${SECRET_DOMAIN}
# gethomepage.dev/enabled: "true"
# gethomepage.dev/group: Media
# gethomepage.dev/name: Tautulli
# gethomepage.dev/icon: tautulli
# gethomepage.dev/description: Plex Stream Monitoring
# gethomepage.dev/widget.type: tautulli
# gethomepage.dev/widget.url: http://tautulli.media
# gethomepage.dev/widget.key: "{{ `{{HOMEPAGE_VAR_TAUTULLI_TOKEN}}` }}"
hosts:
- host: "{{ .Release.Name }}.${SECRET_INTERNAL_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http
persistence:
config:
enabled: true
type: nfs
server: 192.168.1.68
path: /mnt/user/k3s/config/tautulli
tmp:
type: emptyDir
add-ons:
type: emptyDir
@@ -0,0 +1,7 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
# - ../../../../templates/gatus/guarded
+24
View File
@@ -0,0 +1,24 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app tautulli
namespace: flux-system
spec:
targetNamespace: media
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/media/tautulli/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app
@@ -30,7 +30,7 @@ spec:
app:
image:
repository: docker.io/cloudflare/cloudflared
tag: 2024.11.0
tag: 2024.11.1
env:
NO_AUTOUPDATE: true
TUNNEL_CRED_FILE: /etc/cloudflared/creds/credentials.json
@@ -4,6 +4,7 @@ metadata:
name: cluster-secrets
namespace: flux-system
stringData:
SECRET_INTERNAL_DOMAIN: ENC[AES256_GCM,data:AvYATV6LqEmALp/j1w==,iv:DDf17Gf2ta+UuMysaeTtN92ti0wrz+eAmawwJSZxyQY=,tag:hoarzYqJXEfMWSFRzpOlzw==,type:str]
SECRET_DOMAIN: ENC[AES256_GCM,data:HjoRmQzaP5jG8m1iMc198Q==,iv:1GNInjU80g3lstoVYUY9/pOSh9QnCCmXN44PhZgvOv8=,tag:62X6LxGg9vt1wiW8kf/CsA==,type:str]
SECRET_ACME_EMAIL: ENC[AES256_GCM,data:gG7gLBw7i5xLu1HkOYA8O76WPsc=,iv:d71Ip9lrtZR5FFWvV+NQbP9epP6v9cYM1Ntag6yHWAQ=,tag:ZzljWFeetwVubEuIOljrSA==,type:str]
SECRET_CLOUDFLARE_TUNNEL_ID: ENC[AES256_GCM,data:22ZGxjzd/GM9JscAoadi+f2Y6UKL6BJ16LOpxObPrw+geR6A,iv:9M1HGTCzlDI8bLAUFzYPznzBJueRnc+/tGORIlDJS88=,tag:1aGOpgabBTt+OdJI/7xBnw==,type:str]
@@ -23,8 +24,8 @@ sops:
N1dXTnlOaUNLUjh5SVRCZzlhVUF4Y1EKoLjz8aT2CdHI6URVJheQID4/7DkPfWXB
yG/wM3CEOlnXP5Eyj8X5r/LmCoeBD7LNlAwQ0PGythA3v+LQpat9Uw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-11-18T02:32:55Z"
mac: ENC[AES256_GCM,data:dGBL3bQNdmHZlHpPQUDi5b5kgDWe/dFzS82Xnu1YjwCTMG5ktHzZ7O2NNndAyG670NQD5gFzW1j0HG/pl0CKosD2+9Ly2zew4ROykr7M6/Pk4bcmtMBn/jZbYAF7wJpC+qrXCgJwkLaHMoFN1/Pyy6CeuNhMKc3ykIQ/n35BOWE=,iv:cvlbcWAs+34JOrOwKJa8g7/vwUqXqef/dmt1UEld3LE=,tag:WkHlS08QJfC46cJsUnFsRg==,type:str]
lastmodified: "2024-11-23T05:19:00Z"
mac: ENC[AES256_GCM,data:Hk6SChJVwvvZVbHi4G8biDLrY4gMOfuczt1BHQXx+LEIhN2KDriCIRRL6RT22D41AQ/5rhVb127ZfQXe+WztGK/+do2ED/q8nLwiqWVc3tkpPgVSB4hMHClCJtHh7bSMHP1rtYQElMPopVYPPkzrsK3cC/hNfHJrD1Gy0AJKQaQ=,iv:ydVoJQ36J2RCLBjSak6AfxyVHO//kLWY3hzYukjEdYA=,tag:ISui4EMJb6IWaWh7Se3pFQ==,type:str]
pgp: []
encrypted_regex: ^(data|stringData)$
version: 3.9.1
+11 -1
View File
@@ -5,4 +5,14 @@ metadata:
name: cluster-settings
namespace: flux-system
data:
SETTING_EXAMPLE: Global settings for your cluster go in this file, this file is NOT encrypted
TIMEZONE: "US/Mountain"
CLUSTER_CIDR: "10.96.0.0/16"
SERVICE_CIDR: "172.16.10.0/24"
LAN_CIDR: "10.0.10.0/24"
THEME_PARK_SNIPPET: >
proxy_set_header Accept-Encoding "";
sub_filter '</body>' '<link rel="stylesheet" type="text/css" href="https://theme-park.${SECRET_DOMAIN}/css/base/{{ .Release.Name }}/nord.css"></body>';
sub_filter_once on;
SVC_POSTGRES_ADDR: "10.50.0.24"
SVC_QBITTTORENT_ADDR: "10.50.0.25"
SVC_VPN_ADDR: "10.50.0.26"
+2 -2
View File
@@ -1,4 +1,4 @@
cloudflare==3.1.0
cloudflare==3.1.1
email-validator==2.2.0
makejinja==2.6.2
makejinja==2.7.0
netaddr==1.3.0