Compare commits

...

52 Commits

Author SHA1 Message Date
Gitea Actions Bot ea12ec0807 Auto-update README with current k8s applications
Terraform / Terraform (pull_request) Failing after 5s
Generated by CI/CD workflow on 2026-05-04 17:16:38

This PR updates the README.md file with the current list of applications found in the k8s/ directory structure.
2026-05-04 17:16:38 +00:00
Ultradesu e44cf95bb2 Added oauth2 proxy
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 13s
Check with kubeconform / lint (push) Successful in 21s
Auto-update README / Generate README and Create MR (push) Successful in 32s
2026-05-04 18:15:48 +01:00
Ultradesu df6ab28165 Added oauth2 proxy
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 15s
Check with kubeconform / lint (push) Successful in 16s
Auto-update README / Generate README and Create MR (push) Successful in 11s
2026-05-04 18:12:52 +01:00
Ultradesu 72cbcc3952 Added oauth2 proxy
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 1m3s
Check with kubeconform / lint (push) Successful in 1m7s
Auto-update README / Generate README and Create MR (push) Successful in 28s
2026-05-04 18:06:37 +01:00
Ultradesu 2afe27bfd4 Added keycloak
Check with kubeconform / lint (push) Successful in 12s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 25s
Auto-update README / Generate README and Create MR (push) Successful in 29s
2026-05-04 17:32:30 +01:00
Ultradesu 36eb9495ef Added keycloak
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 16s
Check with kubeconform / lint (push) Successful in 15s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-05-04 17:30:40 +01:00
ab 8e2c4f54c4 Update k8s/core/postgresql/external-secrets.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 15s
Check with kubeconform / lint (push) Successful in 16s
Auto-update README / Generate README and Create MR (push) Successful in 14s
2026-05-04 16:20:18 +00:00
Ultradesu 7a0c536ecc Added kanidm
Check with kubeconform / lint (push) Successful in 14s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 16s
Auto-update README / Generate README and Create MR (push) Successful in 11s
2026-05-04 17:09:49 +01:00
Ultradesu 9c1eba2ad0 Added kanidm
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 14s
Check with kubeconform / lint (push) Successful in 12s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-05-04 17:08:27 +01:00
Ultradesu b9b8463ebf Added kanidm
Check with kubeconform / lint (push) Successful in 16s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 17s
Auto-update README / Generate README and Create MR (push) Successful in 10s
2026-05-04 17:06:23 +01:00
Ultradesu 9fe1df4c1a Added kanidm
Check with kubeconform / lint (push) Successful in 14s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 15s
Auto-update README / Generate README and Create MR (push) Successful in 10s
2026-05-04 17:01:16 +01:00
Ultradesu e62e0c34d7 Added kanidm
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 14s
Check with kubeconform / lint (push) Successful in 25s
Auto-update README / Generate README and Create MR (push) Successful in 10s
2026-05-04 16:58:10 +01:00
Ultradesu 04bd29701e Added kanidm
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 14s
Check with kubeconform / lint (push) Successful in 15s
Auto-update README / Generate README and Create MR (push) Successful in 10s
2026-05-04 16:52:51 +01:00
ab e8638f6813 Update k8s/apps/pasarguard/deployment.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 15s
Check with kubeconform / lint (push) Successful in 16s
Auto-update README / Generate README and Create MR (push) Successful in 10s
2026-05-04 15:19:14 +00:00
ab 3e00c60c75 Update k8s/apps/pasarguard/daemonset.yaml
Check with kubeconform / lint (push) Successful in 11s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 12s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-05-04 15:17:01 +00:00
ab fb17d6fd58 Update k8s/apps/pasarguard/daemonset.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 16s
Check with kubeconform / lint (push) Successful in 21s
Auto-update README / Generate README and Create MR (push) Successful in 11s
2026-05-04 15:16:20 +00:00
ab af2545f20d Update k8s/apps/pasarguard/daemonset.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 14s
Check with kubeconform / lint (push) Successful in 16s
Auto-update README / Generate README and Create MR (push) Successful in 11s
2026-05-04 15:13:08 +00:00
ab bd08eb6caf Update k8s/apps/pasarguard/deployment.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 15s
Check with kubeconform / lint (push) Successful in 16s
Auto-update README / Generate README and Create MR (push) Successful in 17s
2026-05-04 14:26:51 +00:00
Ultradesu ae12c14450 Fixed matrix chat user search
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 16s
Check with kubeconform / lint (push) Successful in 27s
Auto-update README / Generate README and Create MR (push) Successful in 11s
2026-05-04 10:59:40 +01:00
Ultradesu 85d4a03eeb Fixed matrix chat user search
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 29s
Check with kubeconform / lint (push) Successful in 31s
Auto-update README / Generate README and Create MR (push) Successful in 14s
2026-05-04 10:56:35 +01:00
ab 841e661627 moved matrix's TURN and LiveKit to SPB
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 9s
Check with kubeconform / lint (push) Successful in 9s
Auto-update README / Generate README and Create MR (push) Successful in 27s
2026-04-30 13:22:21 +03:00
Ultradesu 2ef2952093 Fix pet image tag
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Check with kubeconform / lint (push) Successful in 7s
Auto-update README / Generate README and Create MR (push) Successful in 7s
2026-04-29 17:57:11 +03:00
Ultradesu 53420017d4 Fix pet image tag
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 7s
Check with kubeconform / lint (push) Successful in 26s
2026-04-29 17:56:22 +03:00
Ultradesu 527686c11f Fix pet image tag
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 7s
2026-04-29 17:55:51 +03:00
Ultradesu 1154b133e6 Fix pet image tag
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-04-29 17:54:38 +03:00
Ultradesu ef5199102e Fix pet image tag
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 7s
2026-04-29 17:53:39 +03:00
Ultradesu 88f0f328d5 Fix pet image tag
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Check with kubeconform / lint (push) Successful in 8s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-04-29 17:51:51 +03:00
Ultradesu 1faf9aecf9 Added petting web site
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Check with kubeconform / lint (push) Successful in 7s
Auto-update README / Generate README and Create MR (push) Successful in 16s
2026-04-29 17:40:54 +03:00
ab cd73f5c6be Added tolerations to upgrade plans
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 8s
Check with kubeconform / lint (push) Successful in 8s
Auto-update README / Generate README and Create MR (push) Successful in 14s
2026-04-29 02:12:29 +03:00
ab f3ec319b97 Update k8s/core/system-upgrade/plan.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Check with kubeconform / lint (push) Successful in 7s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-04-28 22:48:27 +00:00
ab d0b7364e9d pin synapse to master
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Check with kubeconform / lint (push) Successful in 7s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-04-28 20:56:21 +03:00
ab 88194e2149 Fix pasarguard ingress
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 7s
2026-04-28 16:03:08 +03:00
ab 6159e94a64 Update k8s/apps/pasarguard/deployment.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Check with kubeconform / lint (push) Successful in 7s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-04-21 12:04:48 +00:00
ab ce5b76e498 Update k8s/apps/pasarguard/deployment.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Check with kubeconform / lint (push) Successful in 9s
Auto-update README / Generate README and Create MR (push) Successful in 6s
2026-04-21 12:00:03 +00:00
Ultradesu 173d307b2d Fixed gitea
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 6s
Check with kubeconform / lint (push) Successful in 12s
2026-04-20 12:20:13 +03:00
Ultradesu 9db4eb9a0b Fixed gitea
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 12s
Check with kubeconform / lint (push) Successful in 8s
Auto-update README / Generate README and Create MR (push) Successful in 6s
2026-04-20 11:53:36 +03:00
Ultradesu b46dc07dbf Fix zola restart
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 8s
Check with kubeconform / lint (push) Successful in 8s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-04-20 11:42:27 +03:00
Ultradesu 0e933a50d6 Fix zola version
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 13s
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 7s
2026-04-20 11:25:49 +03:00
Ultradesu 7955561b98 Fix zola nodeselector
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 5s
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 5s
2026-04-20 11:22:37 +03:00
Ultradesu 28f6924218 Fix zola ГКД
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 8s
Check with kubeconform / lint (push) Successful in 8s
Auto-update README / Generate README and Create MR (push) Successful in 11s
2026-04-20 11:17:12 +03:00
Ultradesu a2be6f6593 Fix zola mounts
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 19s
Check with kubeconform / lint (push) Successful in 8s
Auto-update README / Generate README and Create MR (push) Successful in 6s
2026-04-20 11:12:12 +03:00
Ultradesu 86817e5c94 Fix zola autostart
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 7s
2026-04-20 11:09:01 +03:00
Ultradesu 16010ea70e Fix zola autostart
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 5s
2026-04-20 11:08:09 +03:00
ab 7d322103cf Merge branch 'main' of ssh://gt.hexor.cy:30022/ab/homelab
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 13s
Check with kubeconform / lint (push) Successful in 58s
Auto-update README / Generate README and Create MR (push) Successful in 11s
2026-04-19 16:22:59 +03:00
ab f7e763b3c2 Added wedding site 2026-04-19 16:22:25 +03:00
Ultradesu 69fff5bc1f Added teamspeak
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 13s
Check with kubeconform / lint (push) Successful in 9s
Auto-update README / Generate README and Create MR (push) Successful in 10s
2026-04-15 12:54:48 +03:00
ab 75a61a1889 Update k8s/games/minecraft/deployments.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 27s
Check with kubeconform / lint (push) Successful in 32s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-04-14 20:12:37 +00:00
ab 06ec36d718 Merge pull request 'Auto-update README with k8s applications' (#293) from auto-update-readme-20260412-115128 into main
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 10s
Reviewed-on: #293
2026-04-12 14:25:45 +00:00
Gitea Actions Bot b9ef38374c Auto-update README with current k8s applications
Terraform / Terraform (pull_request) Successful in 1m42s
Generated by CI/CD workflow on 2026-04-12 11:51:28

This PR updates the README.md file with the current list of applications found in the k8s/ directory structure.
2026-04-12 11:51:28 +00:00
ab 6fb63b7cb9 fixed loki
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 10s
Check with kubeconform / lint (push) Successful in 9s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-04-12 14:50:47 +03:00
ab f56278c907 Update k8s/apps/pasarguard/deployment.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Check with kubeconform / lint (push) Successful in 9s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-04-12 11:38:14 +00:00
ab 1dfbb27bd2 Update k8s/core/cert-manager/issuer.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 13s
Check with kubeconform / lint (push) Successful in 7s
Auto-update README / Generate README and Create MR (push) Successful in 7s
2026-04-11 14:32:52 +00:00
49 changed files with 1166 additions and 84 deletions
+13
View File
@@ -16,9 +16,13 @@ ArgoCD homelab project
| **authentik** | [![authentik](https://ag.hexor.cy/api/badge?name=authentik&revision=true)](https://ag.hexor.cy/applications/argocd/authentik) |
| **cert-manager** | [![cert-manager](https://ag.hexor.cy/api/badge?name=cert-manager&revision=true)](https://ag.hexor.cy/applications/argocd/cert-manager) |
| **external-secrets** | [![external-secrets](https://ag.hexor.cy/api/badge?name=external-secrets&revision=true)](https://ag.hexor.cy/applications/argocd/external-secrets) |
| **gpu** | [![gpu](https://ag.hexor.cy/api/badge?name=gpu&revision=true)](https://ag.hexor.cy/applications/argocd/gpu) |
| **kanidm** | [![kanidm](https://ag.hexor.cy/api/badge?name=kanidm&revision=true)](https://ag.hexor.cy/applications/argocd/kanidm) |
| **keycloak** | [![keycloak](https://ag.hexor.cy/api/badge?name=keycloak&revision=true)](https://ag.hexor.cy/applications/argocd/keycloak) |
| **kube-system-custom** | [![kube-system-custom](https://ag.hexor.cy/api/badge?name=kube-system-custom&revision=true)](https://ag.hexor.cy/applications/argocd/kube-system-custom) |
| **kubernetes-dashboard** | [![kubernetes-dashboard](https://ag.hexor.cy/api/badge?name=kubernetes-dashboard&revision=true)](https://ag.hexor.cy/applications/argocd/kubernetes-dashboard) |
| **longhorn** | [![longhorn](https://ag.hexor.cy/api/badge?name=longhorn&revision=true)](https://ag.hexor.cy/applications/argocd/longhorn) |
| **oauth2-proxy** | [![oauth2-proxy](https://ag.hexor.cy/api/badge?name=oauth2-proxy&revision=true)](https://ag.hexor.cy/applications/argocd/oauth2-proxy) |
| **postgresql** | [![postgresql](https://ag.hexor.cy/api/badge?name=postgresql&revision=true)](https://ag.hexor.cy/applications/argocd/postgresql) |
| **prom-stack** | [![prom-stack](https://ag.hexor.cy/api/badge?name=prom-stack&revision=true)](https://ag.hexor.cy/applications/argocd/prom-stack) |
| **system-upgrade** | [![system-upgrade](https://ag.hexor.cy/api/badge?name=system-upgrade&revision=true)](https://ag.hexor.cy/applications/argocd/system-upgrade) |
@@ -37,6 +41,9 @@ ArgoCD homelab project
| Application | Status |
| :--- | :---: |
| **comfyui** | [![comfyui](https://ag.hexor.cy/api/badge?name=comfyui&revision=true)](https://ag.hexor.cy/applications/argocd/comfyui) |
| **furumi-dev** | [![furumi-dev](https://ag.hexor.cy/api/badge?name=furumi-dev&revision=true)](https://ag.hexor.cy/applications/argocd/furumi-dev) |
| **furumi-server** | [![furumi-server](https://ag.hexor.cy/api/badge?name=furumi-server&revision=true)](https://ag.hexor.cy/applications/argocd/furumi-server) |
| **gitea** | [![gitea](https://ag.hexor.cy/api/badge?name=gitea&revision=true)](https://ag.hexor.cy/applications/argocd/gitea) |
| **greece-notifier** | [![greece-notifier](https://ag.hexor.cy/api/badge?name=greece-notifier&revision=true)](https://ag.hexor.cy/applications/argocd/greece-notifier) |
| **hexound** | [![hexound](https://ag.hexor.cy/api/badge?name=hexound&revision=true)](https://ag.hexor.cy/applications/argocd/hexound) |
@@ -45,6 +52,9 @@ ArgoCD homelab project
| **jellyfin** | [![jellyfin](https://ag.hexor.cy/api/badge?name=jellyfin&revision=true)](https://ag.hexor.cy/applications/argocd/jellyfin) |
| **k8s-secrets** | [![k8s-secrets](https://ag.hexor.cy/api/badge?name=k8s-secrets&revision=true)](https://ag.hexor.cy/applications/argocd/k8s-secrets) |
| **khm** | [![khm](https://ag.hexor.cy/api/badge?name=khm&revision=true)](https://ag.hexor.cy/applications/argocd/khm) |
| **lidarr** | [![lidarr](https://ag.hexor.cy/api/badge?name=lidarr&revision=true)](https://ag.hexor.cy/applications/argocd/lidarr) |
| **matrix** | [![matrix](https://ag.hexor.cy/api/badge?name=matrix&revision=true)](https://ag.hexor.cy/applications/argocd/matrix) |
| **mtproxy** | [![mtproxy](https://ag.hexor.cy/api/badge?name=mtproxy&revision=true)](https://ag.hexor.cy/applications/argocd/mtproxy) |
| **n8n** | [![n8n](https://ag.hexor.cy/api/badge?name=n8n&revision=true)](https://ag.hexor.cy/applications/argocd/n8n) |
| **ollama** | [![ollama](https://ag.hexor.cy/api/badge?name=ollama&revision=true)](https://ag.hexor.cy/applications/argocd/ollama) |
| **paperless** | [![paperless](https://ag.hexor.cy/api/badge?name=paperless&revision=true)](https://ag.hexor.cy/applications/argocd/paperless) |
@@ -55,9 +65,12 @@ ArgoCD homelab project
| **sonarr-stack** | [![sonarr-stack](https://ag.hexor.cy/api/badge?name=sonarr-stack&revision=true)](https://ag.hexor.cy/applications/argocd/sonarr-stack) |
| **stirling-pdf** | [![stirling-pdf](https://ag.hexor.cy/api/badge?name=stirling-pdf&revision=true)](https://ag.hexor.cy/applications/argocd/stirling-pdf) |
| **syncthing** | [![syncthing](https://ag.hexor.cy/api/badge?name=syncthing&revision=true)](https://ag.hexor.cy/applications/argocd/syncthing) |
| **teamspeak** | [![teamspeak](https://ag.hexor.cy/api/badge?name=teamspeak&revision=true)](https://ag.hexor.cy/applications/argocd/teamspeak) |
| **tg-bots** | [![tg-bots](https://ag.hexor.cy/api/badge?name=tg-bots&revision=true)](https://ag.hexor.cy/applications/argocd/tg-bots) |
| **vaultwarden** | [![vaultwarden](https://ag.hexor.cy/api/badge?name=vaultwarden&revision=true)](https://ag.hexor.cy/applications/argocd/vaultwarden) |
| **vpn** | [![vpn](https://ag.hexor.cy/api/badge?name=vpn&revision=true)](https://ag.hexor.cy/applications/argocd/vpn) |
| **web-petting** | [![web-petting](https://ag.hexor.cy/api/badge?name=web-petting&revision=true)](https://ag.hexor.cy/applications/argocd/web-petting) |
| **wedding** | [![wedding](https://ag.hexor.cy/api/badge?name=wedding&revision=true)](https://ag.hexor.cy/applications/argocd/wedding) |
| **xandikos** | [![xandikos](https://ag.hexor.cy/api/badge?name=xandikos&revision=true)](https://ag.hexor.cy/applications/argocd/xandikos) |
</td>
+2
View File
@@ -48,6 +48,8 @@ spec:
value: "true"
- name: GITEA__service__CAPTCHA_TYPE
value: "hcaptcha"
- name: GITEA__webhook__ALLOWED_HOST_LIST
value: "*"
envFrom:
- secretRef:
name: gitea-recapcha-creds
+18 -10
View File
@@ -26,9 +26,9 @@ matrixRTC:
host: livekit.matrix.hexor.cy
sfu:
enabled: true
manualIP: "138.201.61.182"
manualIP: "78.24.180.234"
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
kubernetes.io/hostname: spb.tail2fe2d.ts.net
exposedServices:
rtcTcp:
enabled: true
@@ -45,6 +45,14 @@ matrixRTC:
## Synapse homeserver
synapse:
enabled: true
additional:
0-search-config:
config: |
user_directory:
enabled: true
search_all_users: true
prefer_local_users: true
enable_room_list_search: true
ingress:
host: synapse.matrix.hexor.cy
postgres:
@@ -56,12 +64,12 @@ synapse:
password:
secret: matrix-postgres-creds
secretKey: synapse_db_password
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
media:
storage:
size: 20Gi
maxUploadSize: 100M
# nodeSelector:
# kubernetes.io/hostname: nas.homenet
## Matrix Authentication Service
matrixAuthenticationService:
@@ -88,24 +96,24 @@ matrixAuthenticationService:
1-oidc:
configSecret: matrix-oidc-config
configSecretKey: mas-oidc.yaml
# nodeSelector:
# kubernetes.io/hostname: nas.homenet
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
## Element Web client
elementWeb:
enabled: true
ingress:
host: chat.matrix.hexor.cy
# nodeSelector:
# kubernetes.io/hostname: nas.homenet
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
## Element Admin panel
elementAdmin:
enabled: true
ingress:
host: admin.matrix.hexor.cy
# nodeSelector:
# kubernetes.io/hostname: nas.homenet
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
## Well-known delegation on the base domain (host is derived from serverName)
wellKnownDelegation:
+1
View File
@@ -12,4 +12,5 @@ resources:
- ./telemt-servicemonitor.yaml
- ./service.yaml
- ./secret-reader.yaml
- ./secret-reader-ingress.yaml
# - ./storage.yaml
@@ -0,0 +1,33 @@
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: secret-reader
annotations:
cert-manager.io/cluster-issuer: letsencrypt
spec:
entryPoints:
- websecure
routes:
- match: Host(`secret-reader.hexor.cy`)
kind: Rule
middlewares:
- name: keycloak-auth
namespace: oauth2-proxy
services:
- name: secret-reader
port: 80
tls:
secretName: secret-reader-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: secret-reader-tls
spec:
secretName: secret-reader-tls
issuerRef:
name: letsencrypt
kind: ClusterIssuer
dnsNames:
- secret-reader.hexor.cy
+70 -68
View File
@@ -1,71 +1,5 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: pasarguard-node
labels:
app: pasarguard-node
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pasarguard-node-configmap
labels:
app: pasarguard-node
rules:
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["get", "list", "create", "update", "patch"]
- apiGroups: ["cert-manager.io"]
resources: ["certificates"]
verbs: ["get", "list", "create", "update", "patch", "delete"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["services", "endpoints"]
verbs: ["get", "list", "create", "update", "patch", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: pasarguard-node-configmap
labels:
app: pasarguard-node
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: pasarguard-node-configmap
subjects:
- kind: ServiceAccount
name: pasarguard-node
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: pasarguard-node-reader
labels:
app: pasarguard-node
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: pasarguard-node-reader
labels:
app: pasarguard-node
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: pasarguard-node-reader
subjects:
- kind: ServiceAccount
name: pasarguard-node
namespace: pasarguard
---
image: &image 'pasarguard/node:v0.4.0'
apiVersion: apps/v1
kind: DaemonSet
metadata:
@@ -113,7 +47,7 @@ spec:
mountPath: /scripts
containers:
- name: pasarguard-node
image: 'pasarguard/node:v0.3.0'
image: *image
imagePullPolicy: Always
command:
- /bin/sh
@@ -219,3 +153,71 @@ spec:
configMap:
name: pasarguard-scripts
defaultMode: 0755
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: pasarguard-node
labels:
app: pasarguard-node
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pasarguard-node-configmap
labels:
app: pasarguard-node
rules:
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["get", "list", "create", "update", "patch"]
- apiGroups: ["cert-manager.io"]
resources: ["certificates"]
verbs: ["get", "list", "create", "update", "patch", "delete"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["services", "endpoints"]
verbs: ["get", "list", "create", "update", "patch", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: pasarguard-node-configmap
labels:
app: pasarguard-node
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: pasarguard-node-configmap
subjects:
- kind: ServiceAccount
name: pasarguard-node
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: pasarguard-node-reader
labels:
app: pasarguard-node
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: pasarguard-node-reader
labels:
app: pasarguard-node
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: pasarguard-node-reader
subjects:
- kind: ServiceAccount
name: pasarguard-node
namespace: pasarguard
+5 -1
View File
@@ -1,4 +1,5 @@
---
image: &image 'pasarguard/panel:v3.1.0'
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -34,7 +35,7 @@ spec:
mountPath: /templates/subscription
containers:
- name: pasarguard-web
image: 'pasarguard/panel:latest'
image: *image
imagePullPolicy: Always
envFrom:
- secretRef:
@@ -75,6 +76,9 @@ apiVersion: v1
kind: Service
metadata:
name: pasarguard
annotations:
traefik.ingress.kubernetes.io/service.serversscheme: https
traefik.ingress.kubernetes.io/service.serverstransport: pasarguard-pasarguard-transport@kubernetescrd
spec:
selector:
app: pasarguard
+31
View File
@@ -0,0 +1,31 @@
---
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
name: pasarguard-transport
spec:
insecureSkipVerify: true
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: pasarguard-ingress
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
ingressClassName: traefik
rules:
- host: ps.hexor.cy
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: pasarguard
port:
number: 80
tls:
- secretName: pasarguard-tls
hosts:
- ps.hexor.cy
+1
View File
@@ -9,3 +9,4 @@ resources:
- ./certificate.yaml
- ./configmap-scripts.yaml
- ./servicemonitor.yaml
- ./ingress.yaml
+20
View File
@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: teamspeak
namespace: argocd
spec:
project: apps
destination:
namespace: teamspeak
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/teamspeak
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
+49
View File
@@ -0,0 +1,49 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: teamspeak
labels:
app: teamspeak
spec:
selector:
matchLabels:
app: teamspeak
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: teamspeak
spec:
volumes:
- name: data
persistentVolumeClaim:
claimName: teamspeak-data
containers:
- name: teamspeak
image: 'teamspeak:latest'
env:
- name: TS3SERVER_LICENSE
value: "accept"
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "1000m"
ports:
- name: voice
containerPort: 9987
protocol: UDP
- name: filetransfer
containerPort: 30033
protocol: TCP
- name: serverquery
containerPort: 10011
protocol: TCP
volumeMounts:
- name: data
mountPath: /var/ts3server
+8
View File
@@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- storage.yaml
- deployment.yaml
- service.yaml
+22
View File
@@ -0,0 +1,22 @@
---
apiVersion: v1
kind: Service
metadata:
name: teamspeak
spec:
type: LoadBalancer
selector:
app: teamspeak
ports:
- name: voice
protocol: UDP
port: 9987
targetPort: 9987
- name: filetransfer
protocol: TCP
port: 30033
targetPort: 30033
- name: serverquery
protocol: TCP
port: 10011
targetPort: 10011
+12
View File
@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: teamspeak-data
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 5Gi
+21
View File
@@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: web-petting
namespace: argocd
spec:
project: apps
destination:
namespace: web-petting
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/web-petting
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
+49
View File
@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-petting
labels:
app: web-petting
spec:
replicas: 1
selector:
matchLabels:
app: web-petting
template:
metadata:
labels:
app: web-petting
spec:
nodeSelector:
kubernetes.io/os: linux
volumes:
- name: data
persistentVolumeClaim:
claimName: web-petting-data
containers:
- name: web-petting
image: ultradesu/web-petting:0.1.0
imagePullPolicy: Always
args:
# - "tail"
# - "-F"
# - "/1"
- "web-petting"
- "-l"
- "0.0.0.0:3000"
ports:
- containerPort: 3000
name: http
volumeMounts:
- name: data
mountPath: /data
env:
- name: RUST_LOG
value: "info"
resources:
requests:
memory: "64Mi"
cpu: "50m"
limits:
memory: "128Mi"
cpu: "150m"
+27
View File
@@ -0,0 +1,27 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-petting-tls-ingress
annotations:
ingressClassName: traefik
cert-manager.io/cluster-issuer: letsencrypt
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
acme.cert-manager.io/http01-edit-in-place: "true"
spec:
rules:
- host: pet.hexor.cy
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web-petting
port:
number: 80
tls:
- secretName: web-petting-tls
hosts:
- pet.hexor.cy
+10
View File
@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- deployment.yaml
- service.yaml
- ingress.yaml
- storage.yaml
+15
View File
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: web-petting
labels:
app: web-petting
spec:
type: ClusterIP
selector:
app: web-petting
ports:
- port: 80
targetPort: 3000
protocol: TCP
name: http
+12
View File
@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: web-petting-data
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 10Gi
+20
View File
@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: wedding
namespace: argocd
spec:
project: apps
destination:
namespace: wedding
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/wedding
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
+69
View File
@@ -0,0 +1,69 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wedding
labels:
app: wedding
spec:
replicas: 1
selector:
matchLabels:
app: wedding
template:
metadata:
labels:
app: wedding
spec:
nodeSelector:
kubernetes.io/hostname: spb.tail2fe2d.ts.net
initContainers:
- name: git-clone
image: alpine/git:latest
command:
- sh
- -c
- git clone --depth 1 https://gt.hexor.cy/ab/wedding.git /src
volumeMounts:
- name: source
mountPath: /src
- name: zola-build
image: ghcr.io/getzola/zola:v0.22.1
command:
- /bin/zola
args:
- --root
- /src
- build
- --base-url
- https://wedding.hexor.cy/
- --output-dir
- /public/html
volumeMounts:
- name: source
mountPath: /src
- name: public
mountPath: /public
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- name: public
mountPath: /usr/share/nginx/html
subPath: html
readOnly: true
resources:
requests:
memory: 32Mi
cpu: 10m
limits:
memory: 64Mi
cpu: 100m
volumes:
- name: source
emptyDir: {}
- name: public
emptyDir: {}
+26
View File
@@ -0,0 +1,26 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wedding-tls-ingress
annotations:
ingressClassName: traefik
cert-manager.io/cluster-issuer: letsencrypt
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
acme.cert-manager.io/http01-edit-in-place: "true"
spec:
rules:
- host: wedding.hexor.cy
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: wedding
port:
number: 80
tls:
- secretName: wedding-tls
hosts:
- wedding.hexor.cy
+10
View File
@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- rbac.yaml
- deployment.yaml
- service.yaml
- ingress.yaml
- webhook.yaml
+42
View File
@@ -0,0 +1,42 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: wedding-deployer
namespace: wedding
---
apiVersion: v1
kind: Secret
metadata:
name: wedding-deployer-token
namespace: wedding
annotations:
kubernetes.io/service-account.name: wedding-deployer
type: kubernetes.io/service-account-token
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: wedding-restart
namespace: wedding
rules:
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["get", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: wedding-deployer-restart
namespace: wedding
subjects:
- kind: ServiceAccount
name: wedding-deployer
namespace: wedding
roleRef:
kind: Role
name: wedding-restart
apiGroup: rbac.authorization.k8s.io
+12
View File
@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: Service
metadata:
name: wedding
spec:
selector:
app: wedding
ports:
- port: 80
targetPort: 80
protocol: TCP
+71
View File
@@ -0,0 +1,71 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: webhook-script
data:
serve.sh: |
#!/bin/sh
echo "Webhook server listening on :8080"
while true; do
echo -e "HTTP/1.1 200 OK\r\nContent-Length: 2\r\nConnection: close\r\n\r\nok" \
| nc -l -p 8080 > /dev/null
echo "Received webhook, restarting deployment..."
kubectl rollout restart deployment/wedding
done
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wedding-webhook
labels:
app: wedding-webhook
spec:
replicas: 1
selector:
matchLabels:
app: wedding-webhook
template:
metadata:
labels:
app: wedding-webhook
spec:
nodeSelector:
kubernetes.io/hostname: spb.tail2fe2d.ts.net
serviceAccountName: wedding-deployer
containers:
- name: webhook
image: alpine/k8s:1.32.3
command: ["sh", "/scripts/serve.sh"]
ports:
- containerPort: 8080
protocol: TCP
volumeMounts:
- name: script
mountPath: /scripts
readOnly: true
resources:
requests:
memory: 16Mi
cpu: 5m
limits:
memory: 32Mi
cpu: 50m
volumes:
- name: script
configMap:
name: webhook-script
---
apiVersion: v1
kind: Service
metadata:
name: wedding-webhook
spec:
selector:
app: wedding-webhook
ports:
- port: 8080
targetPort: 8080
protocol: TCP
+1 -1
View File
@@ -21,7 +21,6 @@ spec:
- "*.hexor.ru"
- "*.btwiusearch.net"
- "hexor.ru"
- "hexor.cy"
- "btwiusearch.net"
- dns01:
route53:
@@ -35,4 +34,5 @@ spec:
selector:
dnsZones:
- "*.hexor.cy"
- "hexor.cy"
+21
View File
@@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kanidm
namespace: argocd
spec:
project: core
destination:
namespace: kanidm
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/core/kanidm
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
+12
View File
@@ -0,0 +1,12 @@
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: kanidm-tls
spec:
secretName: kanidm-tls
issuerRef:
name: letsencrypt
kind: ClusterIssuer
dnsNames:
- auth.hexor.cy
+19
View File
@@ -0,0 +1,19 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: kanidm-config
data:
server.toml: |
bindaddress = "[::]:443"
db_path = "/data/kanidm.db"
tls_chain = "/certs/tls.crt"
tls_key = "/certs/tls.key"
domain = "auth.hexor.cy"
origin = "https://auth.hexor.cy"
log_level = "info"
[online_backup]
path = "/data/backups/"
schedule = "00 22 * * *"
versions = 7
+20
View File
@@ -0,0 +1,20 @@
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: kanidm
annotations:
cert-manager.io/cluster-issuer: letsencrypt
spec:
entryPoints:
- websecure
routes:
- match: Host(`auth.hexor.cy`)
kind: Rule
services:
- name: kanidm
port: 443
scheme: https
serversTransport: kanidm-transport
tls:
secretName: kanidm-ingress-tls
+11
View File
@@ -0,0 +1,11 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- configmap.yaml
- certificate.yaml
- statefulset.yaml
- service.yaml
- ingress.yaml
- servers-transport.yaml
+7
View File
@@ -0,0 +1,7 @@
---
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
name: kanidm-transport
spec:
insecureSkipVerify: true
+15
View File
@@ -0,0 +1,15 @@
---
apiVersion: v1
kind: Service
metadata:
name: kanidm
labels:
app: kanidm
spec:
ports:
- name: https
port: 443
targetPort: 443
protocol: TCP
selector:
app: kanidm
+86
View File
@@ -0,0 +1,86 @@
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: kanidm
labels:
app: kanidm
spec:
serviceName: kanidm
replicas: 1
selector:
matchLabels:
app: kanidm
template:
metadata:
labels:
app: kanidm
spec:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
containers:
- name: kanidm
image: kanidm/server:1.9.3
ports:
- containerPort: 443
name: https
protocol: TCP
volumeMounts:
- name: kanidm-data
mountPath: /data
- name: kanidm-config
mountPath: /data/server.toml
subPath: server.toml
readOnly: true
- name: kanidm-tls
mountPath: /certs
readOnly: true
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
readinessProbe:
httpGet:
path: /status
port: 443
scheme: HTTPS
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /status
port: 443
scheme: HTTPS
initialDelaySeconds: 15
periodSeconds: 30
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
runAsUser: 1000
runAsGroup: 1000
volumes:
- name: kanidm-config
configMap:
name: kanidm-config
- name: kanidm-tls
secret:
secretName: kanidm-tls
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
volumeClaimTemplates:
- metadata:
name: kanidm-data
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: longhorn
resources:
requests:
storage: 1Gi
+21
View File
@@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: keycloak
namespace: argocd
spec:
project: core
destination:
namespace: keycloak
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/core/keycloak
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
+41
View File
@@ -0,0 +1,41 @@
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: keycloak-creds
spec:
target:
name: keycloak-creds
deletionPolicy: Delete
template:
type: Opaque
data:
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: |-
{{ .db_password }}
KC_BOOTSTRAP_ADMIN_USERNAME: admin
KC_BOOTSTRAP_ADMIN_PASSWORD: |-
{{ .admin_password }}
data:
- secretKey: db_password
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[18].value
- secretKey: admin_password
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: 9422b636-a91d-40e4-bf98-925b2a3f831d
property: login.password
+14
View File
@@ -0,0 +1,14 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- external-secrets.yaml
helmCharts:
- name: keycloakx
repo: https://codecentric.github.io/helm-charts
version: 7.1.11
releaseName: keycloak
namespace: keycloak
valuesFile: values.yaml
+67
View File
@@ -0,0 +1,67 @@
replicas: 1
image:
repository: quay.io/keycloak/keycloak
tag: "26.5.6"
command:
- "/opt/keycloak/bin/kc.sh"
- "start"
- "--http-port=8080"
- "--hostname-strict=false"
- "--proxy-headers=xforwarded"
extraEnvFrom: |
- secretRef:
name: keycloak-creds
extraEnv: |
- name: KC_HOSTNAME
value: auth.hexor.cy
- name: JAVA_OPTS_APPEND
value: "-Djgroups.dns.query=keycloak-headless.keycloak.svc"
dbchecker:
enabled: true
database:
vendor: postgres
hostname: psql.psql.svc
port: 5432
database: keycloak
existingSecret: keycloak-creds
existingSecretKey: KC_DB_PASSWORD
service:
type: ClusterIP
ingress:
enabled: true
ingressClassName: traefik
annotations:
cert-manager.io/cluster-issuer: letsencrypt
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
rules:
- host: auth.hexor.cy
paths:
- path: /
pathType: Prefix
tls:
- secretName: keycloak-tls
hosts:
- auth.hexor.cy
resources:
requests:
cpu: 200m
memory: 512Mi
limits:
cpu: "1"
memory: 1Gi
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
+21
View File
@@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: oauth2-proxy
namespace: argocd
spec:
project: core
destination:
namespace: oauth2-proxy
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/core/oauth2-proxy
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
@@ -0,0 +1,40 @@
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: oauth2-proxy-creds
spec:
target:
name: oauth2-proxy-creds
deletionPolicy: Delete
template:
type: Opaque
data:
client-id: oauth2-proxy
client-secret: |-
{{ .client_secret }}
cookie-secret: |-
{{ .cookie_secret }}
data:
- secretKey: client_secret
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: e62e8c4d-d538-43b2-a682-9cdf2a5a1165
property: login.password
- secretKey: cookie_secret
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: e62e8c4d-d538-43b2-a682-9cdf2a5a1165
property: fields[0].value
+15
View File
@@ -0,0 +1,15 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- external-secrets.yaml
- middleware.yaml
helmCharts:
- name: oauth2-proxy
repo: https://oauth2-proxy.github.io/manifests
version: 10.4.3
releaseName: oauth2-proxy
namespace: oauth2-proxy
valuesFile: values.yaml
+14
View File
@@ -0,0 +1,14 @@
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: keycloak-auth
spec:
forwardAuth:
address: http://oauth2-proxy.oauth2-proxy.svc:80/oauth2/auth
trustForwardHeader: true
authResponseHeaders:
- X-Auth-Request-User
- X-Auth-Request-Email
- X-Auth-Request-Groups
- Authorization
+51
View File
@@ -0,0 +1,51 @@
replicaCount: 1
config:
existingSecret: oauth2-proxy-creds
configFile: |-
provider = "keycloak-oidc"
provider_display_name = "Keycloak"
oidc_issuer_url = "https://auth.hexor.cy/auth/realms/hexor"
redirect_url = "https://oauth.hexor.cy/oauth2/callback"
email_domains = ["*"]
cookie_domains = [".hexor.cy"]
whitelist_domains = [".hexor.cy"]
cookie_secure = true
cookie_samesite = "lax"
upstreams = ["static://200"]
reverse_proxy = true
set_xauthrequest = true
set_authorization_header = true
pass_access_token = true
pass_authorization_header = true
skip_provider_button = true
code_challenge_method = "S256"
scope = "openid profile email"
ingress:
enabled: true
className: traefik
annotations:
cert-manager.io/cluster-issuer: letsencrypt
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
hosts:
- oauth.hexor.cy
tls:
- secretName: oauth2-proxy-tls
hosts:
- oauth.hexor.cy
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
+13 -1
View File
@@ -135,6 +135,8 @@ spec:
{{ .furumi }}
USER_furumi_dev: |-
{{ .furumi_dev }}
USER_keycloak: |-
{{ .keycloak }}
data:
- secretKey: authentik
sourceRef:
@@ -323,4 +325,14 @@ spec:
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[17].value
- secretKey: keycloak
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[18].value
+1
View File
@@ -22,6 +22,7 @@ loki:
rules_directory: /var/loki/rules
compactor:
retention_enabled: true
delete_request_store: filesystem
limits_config:
reject_old_samples: false
retention_period: 1440h
+6 -2
View File
@@ -7,6 +7,8 @@ metadata:
spec:
concurrency: 1
cordon: true
tolerations:
- operator: Exists
nodeSelector:
matchExpressions:
- key: node-role.kubernetes.io/control-plane
@@ -16,7 +18,7 @@ spec:
serviceAccountName: system-upgrade
upgrade:
image: rancher/k3s-upgrade
version: v1.35.2+k3s1
version: v1.35.4+k3s1
---
# Agent plan
apiVersion: upgrade.cattle.io/v1
@@ -27,6 +29,8 @@ metadata:
spec:
concurrency: 1
cordon: true
tolerations:
- operator: Exists
nodeSelector:
matchExpressions:
- key: node-role.kubernetes.io/control-plane
@@ -39,4 +43,4 @@ spec:
serviceAccountName: system-upgrade
upgrade:
image: rancher/k3s-upgrade
version: v1.35.2+k3s1
version: v1.35.4+k3s1
+1 -1
View File
@@ -35,7 +35,7 @@ spec:
terminationGracePeriodSeconds: 10
containers:
- name: minecraft
image: 'openjdk:8-jdk-alpine'
image: 'eclipse-temurin:8-jdk-ubi10-minimal'
command: ["java"]
args:
- -Xms4G