From 0f371c894b2cfd364d8abf1f2eeabdb9ab7a8e08 Mon Sep 17 00:00:00 2001
From: Gruber <43826031+gruberdev@users.noreply.github.com>
Date: Tue, 3 Sep 2024 00:28:32 -0300
Subject: [PATCH] Complete rehaul (#460)
* [rehaul] added components directory
* [rehaul] improved networking argocd section
* [rehaul] improved monitoring argocd section
* [rehaul] improved mlops argocd section
* [rehaul] removed matrix argocd section
* [rehaul] improved home argocd section
* [rehaul] improved data argocd section
* [rehaul] improved argocd base files
* [rehaul] improved projects argocd section
* [rehaul] improved services argocd section
* [rehaul] improved utilities argocd section
* [rehaul] improved argocd overlay section
* [rehaul] added mayastor files
* [rehaul] removed metabase from data apps
* [rehaul] changed sc from iscsi to mayastor
* [rehaul] added mysql-operator
* [rehaul] improved postgres-related operator resources
* [rehaul] removed matrix-related PVCs
* [rehaul] renamed repoURL reference
* [rehaul] removed kustomize components @rss-hub
* [rehaul] improved home-assistant related resources
* [rehaul] added 4get service related resources
* [rehaul] removed deprecated service resources
* [rehaul] removed utilities related resources
* [rehaul] improved CI GHA validation steps
* [rehaul] improved nvidia cluster driver
* [rehaul] removed deprecated services
* [rehaul] removed networking related resources
* [rehaul] removed rss related services
* [rehaul] fixed yaml linter error
* [rehaul] updated readme docs URIs
* [rehaul] removed GHA linters to check URis readme
* [rehaul] fixed README docs typo
* [rehaul] removed deprecated services from README docs
* [rehaul] removed reloader annotations
* [rehaul] updated mlops resources
* [rehaul] updated utilities related resources
* [rehaul] updated tailscale related resources
* [rehaul] removed RSS services
* [rehaul] updated cert-manager related resources
* [rehaul] updated tailscale related resources
* [rehaul] updated README description
* [rehaul] updated PVCs storage
---
.../workflows/{auto-prs.yml => auto-prs.yaml} | 0
.github/workflows/gitleaks.yaml | 14 +
.github/workflows/linters.yaml | 6 -
.../{tailscale.yml => tailscale.yaml} | 0
README.md | 118 ++---
apps/argocd/Dockerfile | 10 +-
apps/argocd/README.md | 66 ++-
apps/argocd/base/core/private.yaml | 2 +-
apps/argocd/base/data/cloudnative.yaml | 28 +-
apps/argocd/base/data/kustomization.yaml | 6 +-
apps/argocd/base/data/minio.yaml | 43 ++
.../base/{matrix/dbs.yaml => data/mysql.yaml} | 23 +-
apps/argocd/base/data/redis.yaml | 25 +-
apps/argocd/base/data/storage.yaml | 21 +-
apps/argocd/base/home/external-mic.yaml | 7 +-
apps/argocd/base/home/frigate.yaml | 5 -
apps/argocd/base/home/go2rtc.yaml | 33 ++
apps/argocd/base/home/ha.yaml | 27 +-
apps/argocd/base/home/kustomization.yaml | 16 +-
apps/argocd/base/home/openwakeword.yaml | 21 +-
apps/argocd/base/home/piper.yaml | 21 +-
apps/argocd/base/home/satellite.yaml | 6 -
apps/argocd/base/home/whisper.yaml | 19 +-
apps/argocd/base/ingress.yaml | 21 +
apps/argocd/base/matrix/dendrite.yaml | 31 --
apps/argocd/base/matrix/discord.yaml | 33 --
apps/argocd/base/matrix/element.yaml | 31 --
apps/argocd/base/matrix/instagram.yaml | 33 --
apps/argocd/base/matrix/linkedin.yaml | 33 --
apps/argocd/base/matrix/proxies.yaml | 31 --
apps/argocd/base/matrix/signal.yaml | 31 --
apps/argocd/base/matrix/steam.yaml | 31 --
apps/argocd/base/matrix/synapse.yaml | 351 -------------
apps/argocd/base/matrix/telegram.yaml | 31 --
apps/argocd/base/matrix/whats.yaml | 33 --
apps/argocd/base/mlops/chroma.yaml | 91 ----
apps/argocd/base/mlops/discord-bot.yaml | 34 --
apps/argocd/base/mlops/k8sgpt.yaml | 58 ---
apps/argocd/base/mlops/kustomization.yaml | 4 +-
apps/argocd/base/mlops/localai.yaml | 31 +-
apps/argocd/base/mlops/memory-plugin.yaml | 34 --
apps/argocd/base/mlops/milvus.yaml | 3 +
apps/argocd/base/mlops/qdrant.yaml | 114 -----
apps/argocd/base/mlops/sillytavern.yaml | 40 ++
apps/argocd/base/mlops/turbopilot.yaml | 33 --
apps/argocd/base/mlops/wandb.yaml | 31 --
apps/argocd/base/monitoring/botkube.yaml | 427 ----------------
.../base/monitoring/kube-prometheus.yaml | 10 +-
apps/argocd/base/monitoring/kuma.yaml | 21 +-
.../kustomization.yaml | 8 +-
apps/argocd/base/monitoring/nextdns.yaml | 10 +-
apps/argocd/base/monitoring/nvidia.yaml | 116 -----
apps/argocd/base/monitoring/unifi-poller.yaml | 14 +-
apps/argocd/base/networking/cert-manager.yaml | 204 ++------
apps/argocd/base/networking/external-dns.yaml | 97 ++++
.../base/networking/external-dns/README.md | 1 -
.../networking/external-dns/cloudflare.yaml | 134 -----
.../base/networking/external-dns/nextdns.yaml | 128 -----
apps/argocd/base/networking/issuer.yaml | 12 +-
apps/argocd/base/networking/kube-vip.yaml | 26 +-
.../argocd/base/networking/kustomization.yaml | 13 +-
.../argocd/base/networking/nginx-ingress.yaml | 26 +-
.../base/networking/tailscale-operator.yaml | 14 +-
apps/argocd/base/networking/tailscale.yaml | 31 --
.../base/networking/unifi-controller.yaml | 26 +-
apps/argocd/base/projects/apps.yaml | 4 -
apps/argocd/base/projects/kustomization.yaml | 12 +
apps/argocd/base/projects/matrix.yaml | 20 -
apps/argocd/base/projects/monitoring.yaml | 4 +-
apps/argocd/base/projects/networking.yaml | 2 +
.../services/{ofx-exporter.yaml => 4get.yaml} | 23 +-
apps/argocd/base/services/actual.yaml | 21 +-
apps/argocd/base/services/archivebox.yaml | 33 --
apps/argocd/base/services/coder.yaml | 42 ++
apps/argocd/base/services/feedpushr.yaml | 34 --
apps/argocd/base/services/gitea-utils.yaml | 33 --
apps/argocd/base/services/gitea.yaml | 163 +-----
apps/argocd/base/services/grocy.yaml | 33 --
apps/argocd/base/services/homepage.yaml | 10 +-
apps/argocd/base/services/jupyterlab.yaml | 34 --
apps/argocd/base/services/kustomization.yaml | 17 +-
apps/argocd/base/services/librex.yaml | 34 --
apps/argocd/base/services/metabase.yaml | 34 --
.../sealed.yaml => services/miniflux.yaml} | 12 +-
apps/argocd/base/services/mlops.yaml | 31 --
apps/argocd/base/services/rss-hub.yaml | 34 --
apps/argocd/base/services/s3.yaml | 41 ++
apps/argocd/base/services/squid.yaml | 33 --
.../{home/wyze.yaml => services/touito.yaml} | 12 +-
apps/argocd/base/services/wallabag.yaml | 40 --
apps/argocd/base/services/wger.yaml | 32 --
apps/argocd/base/styles-cm.yaml | 69 +++
apps/argocd/base/svc-monitors.yaml | 77 +++
apps/argocd/base/utilities/agones.yaml | 283 +++++++++++
apps/argocd/base/utilities/chaos.yaml | 225 --------
apps/argocd/base/utilities/cpu-booster.yaml | 36 ++
apps/argocd/base/utilities/crossplane.yaml | 57 ---
apps/argocd/base/utilities/descheduler.yaml | 15 +-
apps/argocd/base/utilities/eraser.yaml | 14 +-
.../base/utilities/external-secrets.yaml | 47 ++
apps/argocd/base/utilities/gfd.yaml | 114 -----
apps/argocd/base/utilities/kube-fledged.yaml | 95 +---
apps/argocd/base/utilities/kured.yaml | 32 --
apps/argocd/base/utilities/kustomization.yaml | 16 +-
apps/argocd/base/utilities/nvidia.yaml | 39 ++
apps/argocd/base/utilities/reflector.yaml | 21 +-
apps/argocd/base/utilities/reloader.yaml | 47 --
apps/argocd/base/utilities/snapshot.yaml | 56 --
apps/argocd/base/utilities/wavy.yaml | 33 --
apps/argocd/kustomization.yaml | 301 +++++------
.../argocd-applicationset-controller.yaml | 16 +
apps/argocd/overlay/argocd-cm.yaml | 48 +-
apps/argocd/overlay/argocd-dex.yaml | 25 +
apps/argocd/overlay/argocd-metrics.yaml | 304 +++++++++++
.../argocd-notification-controller.yaml | 20 +
.../overlay/argocd-notifications-cm.yaml | 45 ++
apps/argocd/overlay/argocd-rbac.yaml | 2 +-
.../overlay/argocd-repo-deployment.yaml | 140 +++--
apps/argocd/overlay/argocd-svc.yaml | 6 +
apps/argocd/overlay/cloudflared-cm.yaml | 14 -
apps/components/ignore-ip/kustomization.yaml | 20 +
apps/components/ignore/kustomization.yaml | 14 +
.../lb/internal}/certificate.yaml | 8 +-
.../lb/internal}/ingress.yaml | 15 +-
.../components/lb/internal/kustomization.yaml | 110 ++++
apps/components/lb/internal/svc.yaml | 13 +
apps/components/lb/kustomization.yaml | 6 +
.../resources/large/kustomization.yaml | 17 +
.../resources/medium/kustomization.yaml | 17 +
.../resources/small/kustomization.yaml | 17 +
.../components/tailscale/ingress/ingress.yaml | 19 +
.../tailscale/ingress/kustomization.yaml | 38 ++
.../tailscale/ingress}/svc.yaml | 10 +-
apps/data/mayastor/README.md | 27 +-
apps/data/mayastor/pool.yaml | 8 +
apps/data/mayastor/provisioner.yaml | 21 +
apps/data/mayastor/snapshot.yaml | 8 +
apps/data/metabase/README.md | 1 -
apps/data/metabase/base/cm.yaml | 21 -
apps/data/metabase/base/db.yaml | 27 -
apps/data/metabase/base/deployment.yaml | 45 --
apps/data/metabase/base/pvc.yaml | 11 -
apps/data/metabase/base/svc.yaml | 15 -
apps/data/metabase/kustomization.yaml | 30 --
apps/data/minio/README.md | 1 -
apps/data/mysql/app.yaml | 70 +++
apps/data/mysql/crd/kustomization.yaml | 7 +
.../base => data/mysql}/kustomization.yaml | 5 +-
.../cloudnative/default/backup-sechedule.yaml | 9 +
.../postgres/cloudnative/default/cluster.yaml | 38 ++
.../cloudnative/default/example-creds.yaml} | 0
.../cloudnative/default}/kustomization.yaml | 9 +-
.../cloudnative/default/monitoring.yaml | 12 +
.../postgres/cloudnative/kustomization.yaml | 481 ++----------------
apps/data/postgres/exporter/cm.yaml | 11 -
apps/data/postgres/exporter/deployment.yaml | 39 --
.../data/postgres/exporter/kustomization.yaml | 6 -
apps/data/redis/kustomization.yaml | 6 +-
apps/data/storage/base/actual.yaml | 2 +-
apps/data/storage/base/adguard.yaml | 4 +-
apps/data/storage/base/archivebox.yaml | 2 +-
apps/data/storage/base/beets.yaml | 2 +-
apps/data/storage/base/change.yaml | 15 +-
apps/data/storage/base/feedpushr.yaml | 2 +-
apps/data/storage/base/finances.yaml | 2 +-
apps/data/storage/base/ganymede.yaml | 6 +-
apps/data/storage/base/gitea.yaml | 4 +-
apps/data/storage/base/grocy.yaml | 2 +-
apps/data/storage/base/home/frigate.yaml | 6 +-
apps/data/storage/base/home/ha.yaml | 17 +-
.../data/storage/base/home/kustomization.yaml | 2 +
apps/data/storage/base/home/openwakeword.yaml | 4 +-
apps/data/storage/base/home/piper.yaml | 4 +-
.../storage/base/home/restreamer.yaml} | 13 +-
.../{postgres/ha.yaml => home/web2rtc.yaml} | 7 +-
apps/data/storage/base/home/whisper.yaml | 2 +-
apps/data/storage/base/home/wyze.yaml | 6 +-
apps/data/storage/base/jellyfin.yaml | 4 +-
apps/data/storage/base/jupyterlab.yaml | 2 +-
apps/data/storage/base/kuma.yaml | 2 +-
apps/data/storage/base/librex.yaml | 2 +-
apps/data/storage/base/lidarr.yaml | 2 +-
apps/data/storage/base/links.yaml | 12 -
apps/data/storage/base/local-ai.yaml | 2 +-
apps/data/storage/base/matrix/bridges.yaml | 12 -
apps/data/storage/base/matrix/discord.yaml | 25 -
apps/data/storage/base/matrix/instagram.yaml | 25 -
apps/data/storage/base/matrix/linkedin.yaml | 25 -
apps/data/storage/base/matrix/messenger.yaml | 12 -
apps/data/storage/base/matrix/signal.yaml | 12 -
apps/data/storage/base/matrix/skype.yaml | 12 -
apps/data/storage/base/matrix/steam.yaml | 12 -
apps/data/storage/base/matrix/telegram.yaml | 12 -
apps/data/storage/base/matrix/whats.yaml | 12 -
apps/data/storage/base/media.yaml | 18 +-
apps/data/storage/base/milvus.yaml | 2 +-
.../{matrix/synapse.yaml => mixpost.yaml} | 16 +-
apps/data/storage/base/n8n.yaml | 2 +-
apps/data/storage/base/postgres/bridges.yaml | 12 -
apps/data/storage/base/postgres/ganymede.yaml | 12 -
apps/data/storage/base/postgres/synapse.yaml | 12 -
apps/data/storage/base/snapshot/iscsi.yaml | 4 +-
apps/data/storage/base/tanoshi.yaml | 4 +-
apps/data/storage/base/taskwarrior.yaml | 4 +-
.../{postgres/wallabag.yaml => touito.yaml} | 8 +-
apps/data/storage/base/transfer.yaml | 25 +
apps/data/storage/base/turbopilot.yaml | 2 +-
apps/data/storage/base/unifi-poller.yaml | 4 +-
apps/data/storage/base/unifi.yaml | 23 +-
apps/data/storage/base/wallabag.yaml | 4 +-
apps/data/storage/base/wger.yaml | 4 +-
.../base/{postgres/n8n.yaml => yacy.yaml} | 6 +-
apps/data/storage/kustomization.yaml | 52 +-
apps/home/ha/README.md | 52 +-
.../ha/add-ons}/kustomization.yaml | 4 +-
apps/home/ha/add-ons/tailscale.yaml | 10 +
apps/home/ha/base/certificate.yaml | 4 +-
apps/home/ha/base/db.yaml | 44 --
apps/home/ha/base/deployment.yaml | 28 +-
apps/home/ha/base/ingress.yaml | 31 +-
apps/home/ha/base/kustomization.yaml | 17 +-
apps/home/ha/base/svc.yaml | 47 +-
apps/home/ha/db/kustomization.yaml | 46 ++
apps/home/ha/kustomization.yaml | 14 +-
apps/home/wyze/README.md | 1 -
apps/home/wyze/base/cm.yaml | 29 --
apps/home/wyze/base/deployment.yaml | 91 ----
apps/home/wyze/base/kustomization.yaml | 7 -
apps/home/wyze/base/secret.yaml | 10 -
apps/home/wyze/base/svc.yaml | 36 --
apps/home/wyze/kustomization.yaml | 22 -
apps/matrix/Dockerfile | 5 -
apps/matrix/README.md | 1 -
apps/matrix/bridges/discord/README.md | 1 -
apps/matrix/bridges/discord/cm.yaml | 66 ---
apps/matrix/bridges/discord/deployment.yaml | 122 -----
.../matrix/bridges/discord/kustomization.yaml | 20 -
apps/matrix/bridges/discord/svc.yaml | 16 -
apps/matrix/bridges/instagram/README.md | 1 -
apps/matrix/bridges/instagram/cm.yaml | 170 -------
apps/matrix/bridges/instagram/deployment.yaml | 117 -----
.../bridges/instagram/kustomization.yaml | 20 -
apps/matrix/bridges/instagram/svc.yaml | 16 -
apps/matrix/bridges/linkedin/README.md | 1 -
apps/matrix/bridges/linkedin/cm.yaml | 146 ------
apps/matrix/bridges/linkedin/deployment.yaml | 115 -----
.../bridges/linkedin/kustomization.yaml | 20 -
apps/matrix/bridges/linkedin/svc.yaml | 15 -
apps/matrix/bridges/signal/README.md | 1 -
apps/matrix/bridges/signal/cm.yaml | 137 -----
apps/matrix/bridges/signal/deployment.yaml | 152 ------
apps/matrix/bridges/signal/kustomization.yaml | 20 -
apps/matrix/bridges/signal/svc.yaml | 15 -
apps/matrix/bridges/steam/README.md | 15 -
apps/matrix/bridges/steam/cm.yaml | 19 -
apps/matrix/bridges/steam/deployment.yaml | 143 ------
apps/matrix/bridges/steam/kustomization.yaml | 20 -
apps/matrix/bridges/steam/svc.yaml | 15 -
apps/matrix/bridges/telegram/README.md | 1 -
apps/matrix/bridges/telegram/cm.yaml | 257 ----------
apps/matrix/bridges/telegram/deployment.yaml | 156 ------
.../bridges/telegram/kustomization.yaml | 20 -
apps/matrix/bridges/telegram/svc.yaml | 15 -
apps/matrix/bridges/whatsapp/cm.yaml | 194 -------
apps/matrix/bridges/whatsapp/deployment.yaml | 119 -----
.../bridges/whatsapp/kustomization.yaml | 20 -
apps/matrix/bridges/whatsapp/svc.yaml | 16 -
apps/matrix/databases/README.md | 1 -
apps/matrix/databases/base/certificate.yaml | 12 -
apps/matrix/databases/base/cm.yaml | 7 -
apps/matrix/databases/base/ingress.yaml | 26 -
apps/matrix/databases/base/kustomization.yaml | 10 -
apps/matrix/databases/base/matrix.yaml | 50 --
apps/matrix/databases/base/redis.yaml | 50 --
apps/matrix/databases/base/secret.yaml | 29 --
apps/matrix/databases/base/svc.yaml | 19 -
apps/matrix/databases/kustomization.yaml | 9 -
apps/matrix/dendrite/README.md | 1 -
apps/matrix/dendrite/base/certificate.yaml | 12 -
apps/matrix/dendrite/base/cm.yaml | 7 -
apps/matrix/dendrite/base/deployment.yaml | 152 ------
apps/matrix/dendrite/base/ingress.yaml | 26 -
apps/matrix/dendrite/base/jobs.yaml | 86 ----
apps/matrix/dendrite/base/kustomization.yaml | 11 -
apps/matrix/dendrite/base/postgres.yaml | 45 --
apps/matrix/dendrite/base/secret.yaml | 166 ------
apps/matrix/dendrite/base/svc.yaml | 35 --
apps/matrix/dendrite/kustomization.yaml | 19 -
apps/matrix/element/base/cm.yaml | 60 ---
apps/matrix/element/base/deployment.yaml | 53 --
apps/matrix/element/base/svc.yaml | 15 -
apps/matrix/element/kustomization.yaml | 34 --
apps/matrix/proxies/kustomization.yaml | 50 --
.../proxies/overlay/cloudflared-cm.yaml | 14 -
.../kube-prometheus/kustomization.yaml | 1 -
apps/networking/adguard/Allowlist.txt | 23 -
apps/networking/adguard/README.md | 1 -
apps/networking/adguard/base/cm.yaml | 241 ---------
apps/networking/adguard/base/deployment.yaml | 105 ----
.../adguard/base/kustomization.yaml | 8 -
apps/networking/adguard/base/secret.yaml | 9 -
apps/networking/adguard/base/svc-monitor.yaml | 16 -
apps/networking/adguard/base/svc.yaml | 37 --
apps/networking/adguard/kustomization.yaml | 19 -
.../networking/certmanager/clusterIssuer.yaml | 9 +
.../certmanager/crds/kustomization.yaml | 7 +
.../networking/certmanager/kustomization.yaml | 1 +
apps/networking/cloudflared/README.md | 1 -
apps/networking/cloudflared/cm.yaml | 26 -
apps/networking/cloudflared/deployment.yaml | 59 ---
.../networking/cloudflared/kustomization.yaml | 8 -
apps/networking/squid/README.md | 1 -
apps/networking/squid/base/certificate.yaml | 12 -
apps/networking/squid/base/cm.yaml | 17 -
apps/networking/squid/base/deployment.yaml | 56 --
apps/networking/squid/base/ingress.yaml | 26 -
apps/networking/squid/base/kustomization.yaml | 8 -
apps/networking/squid/base/svc.yaml | 18 -
apps/networking/squid/kustomization.yaml | 9 -
apps/networking/tailscale/README.md | 6 +
apps/networking/tailscale/cr.yaml | 11 -
apps/networking/tailscale/kustomization.yaml | 6 -
.../tailscale/operator/base/cr.yaml | 65 ++-
.../tailscale/operator/base/crb.yaml | 11 +-
.../tailscale/operator/base/deployment.yaml | 18 +-
.../operator/base/ingress-class.yaml | 8 +
.../operator/base/kustomization.yaml | 1 +
.../tailscale/operator/base/rb.yaml | 26 +-
.../tailscale/operator/base/role.yaml | 38 +-
.../tailscale/operator/base/sa.yaml | 9 +-
.../tailscale/operator/base/secret.yaml | 4 +-
.../operator/crds/kustomization.yaml | 11 +
.../tailscale/operator/kustomization.yaml | 9 +-
.../tailscale/operator/resources/dns.yaml | 10 +
.../tailscale/operator/resources/egress.yaml | 9 +
.../operator/resources}/kustomization.yaml | 6 +-
.../tailscale/operator/resources/macbook.yaml | 10 +
.../operator/resources/subnet-router.yaml | 29 ++
apps/networking/tailscale/patch.yaml | 41 --
apps/networking/tailscale/rb.yaml | 11 -
apps/networking/tailscale/sa.yaml | 4 -
.../unifi/controller/kustomization.yaml | 3 -
apps/services/4get/README.md | 1 +
apps/services/4get/base/cm.yaml | 15 +
apps/services/4get/base/deployment.yaml | 23 +
.../4get}/base/kustomization.yaml | 1 -
.../{archivebox => 4get}/kustomization.yaml | 16 +-
apps/services/archivebox/README.md | 1 -
.../services/archivebox/base/certificate.yaml | 12 -
apps/services/archivebox/base/cm.yaml | 8 -
apps/services/archivebox/base/deployment.yaml | 79 ---
apps/services/archivebox/base/ingress.yaml | 26 -
.../archivebox/base/kustomization.yaml | 8 -
apps/services/archivebox/base/svc.yaml | 18 -
apps/services/gitea/kustomization.yaml | 3 -
apps/services/grocy/README.md | 1 -
apps/services/grocy/base/cm.yaml | 9 -
apps/services/grocy/base/deployment.yaml | 45 --
apps/services/grocy/base/svc.yaml | 18 -
apps/services/grocy/kustomization.yaml | 19 -
apps/services/jupyter/README.md | 1 -
apps/services/jupyter/base/certificate.yaml | 12 -
apps/services/jupyter/base/cm.yaml | 19 -
apps/services/jupyter/base/cr.yaml | 11 -
apps/services/jupyter/base/deployment.yaml | 57 ---
apps/services/jupyter/base/ingress.yaml | 26 -
apps/services/jupyter/base/kustomization.yaml | 13 -
apps/services/jupyter/base/rb.yaml | 27 -
apps/services/jupyter/base/role.yaml | 12 -
apps/services/jupyter/base/sa.yaml | 4 -
apps/services/jupyter/base/secret.yaml | 9 -
apps/services/jupyter/base/svc.yaml | 18 -
apps/services/jupyter/kustomization.yaml | 19 -
apps/services/librex/README.md | 1 -
apps/services/librex/base/cm.yaml | 15 -
apps/services/librex/base/deployment.yaml | 37 --
apps/services/librex/base/ingress.yaml | 28 -
apps/services/librex/base/kustomization.yaml | 8 -
apps/services/librex/base/svc.yaml | 18 -
apps/services/librex/kustomization.yaml | 19 -
apps/services/mlops/chatbot-ui/README.md | 1 -
.../mlops/chatbot-ui/base/certificate.yaml | 12 -
apps/services/mlops/chatbot-ui/base/cm.yaml | 9 -
.../mlops/chatbot-ui/base/deployment.yaml | 36 --
.../mlops/chatbot-ui/base/ingress.yaml | 27 -
.../mlops/chatbot-ui/base/kustomization.yaml | 8 -
apps/services/mlops/chatbot-ui/base/svc.yaml | 34 --
.../mlops/chatbot-ui/kustomization.yaml | 8 -
apps/services/mlops/discord-bot/README.md | 1 -
apps/services/mlops/discord-bot/base/cm.yaml | 7 -
.../mlops/discord-bot/base/deployment.yaml | 40 --
.../mlops/discord-bot/base/secret.yaml | 17 -
.../mlops/discord-bot/kustomization.yaml | 19 -
apps/services/mlops/kustomization.yaml | 6 -
apps/services/mlops/langflow/README.md | 1 -
.../mlops/langflow/base/certificate.yaml | 12 -
apps/services/mlops/langflow/base/cm.yaml | 11 -
.../mlops/langflow/base/deployment.yaml | 36 --
.../services/mlops/langflow/base/ingress.yaml | 26 -
.../mlops/langflow/base/kustomization.yaml | 8 -
apps/services/mlops/langflow/base/svc.yaml | 20 -
.../mlops/langflow/kustomization.yaml | 8 -
apps/services/mlops/local-ai/README.md | 1 -
.../mlops/local-ai/base/certificate.yaml | 12 -
apps/services/mlops/local-ai/base/cm.yaml | 18 -
.../mlops/local-ai/base/deployment.yaml | 63 ---
.../services/mlops/local-ai/base/ingress.yaml | 26 -
.../mlops/local-ai/base/kustomization.yaml | 8 -
apps/services/mlops/local-ai/base/svc.yaml | 34 --
.../mlops/local-ai/kustomization.yaml | 23 -
.../mlops/local-ai/models/chronos.yaml | 45 --
apps/services/mlops/local-ai/models/e5.yaml | 16 -
.../mlops/local-ai/models/embeddings.yaml | 15 -
.../mlops/local-ai/models/hermes.yaml | 45 --
.../services/mlops/local-ai/models/index.yaml | 124 -----
.../local-ai/models/llama2-complete.yaml | 43 --
.../mlops/local-ai/models/llama2.yaml | 45 --
.../mlops/local-ai/models/mythos.yaml | 50 --
apps/services/mlops/local-ai/models/orca.yaml | 48 --
.../mlops/local-ai/models/startup.yaml | 6 -
.../mlops/local-ai/models/whisper.yaml | 18 -
.../mlops/local-ai/models/wizard.yaml | 52 --
.../mlops/local-ai/models/wizardcode.yaml | 50 --
apps/services/mlops/matrix-bot/README.md | 1 -
apps/services/mlops/matrix-bot/base/cm.yaml | 20 -
.../mlops/matrix-bot/base/deployment.yaml | 39 --
.../mlops/matrix-bot/base/secret.yaml | 8 -
.../mlops/matrix-bot/kustomization.yaml | 9 -
apps/services/mlops/memory-plugin/README.md | 1 -
.../services/mlops/memory-plugin/base/cm.yaml | 10 -
.../mlops/memory-plugin/base/deployment.yaml | 38 --
.../memory-plugin/base/kustomization.yaml | 7 -
.../mlops/memory-plugin/base/secret.yaml | 9 -
.../mlops/memory-plugin/base/svc.yaml | 15 -
.../mlops/memory-plugin/kustomization.yaml | 32 --
.../memory-plugin/overlay/cloudflared-cm.yaml | 14 -
apps/services/mlops/milvus/README.md | 1 -
apps/services/mlops/milvus/kustomization.yaml | 27 -
.../milvus/overlay/milvus-deployment.yaml | 62 ---
.../mlops/milvus/overlay/milvus-job.yaml | 33 --
.../milvus/overlay/namespace-delete.yaml | 5 -
apps/services/mlops/turbopilot/README.md | 1 -
.../mlops/turbopilot/base/certificate.yaml | 12 -
apps/services/mlops/turbopilot/base/cm.yaml | 12 -
.../mlops/turbopilot/base/deployment.yaml | 97 ----
.../mlops/turbopilot/base/ingress.yaml | 26 -
.../mlops/turbopilot/base/kustomization.yaml | 8 -
apps/services/mlops/turbopilot/base/svc.yaml | 34 --
.../mlops/turbopilot/kustomization.yaml | 18 -
apps/services/mlops/wandb/README.md | 1 -
.../mlops/wandb/base/certificate.yaml | 12 -
apps/services/mlops/wandb/base/cm.yaml | 11 -
.../services/mlops/wandb/base/deployment.yaml | 115 -----
.../mlops/wandb/base/kustomization.yaml | 9 -
apps/services/mlops/wandb/base/secret.yaml | 14 -
apps/services/mlops/wandb/base/svc.yaml | 33 --
apps/services/mlops/wandb/kustomization.yaml | 19 -
apps/services/proxitok/README.md | 1 -
apps/services/rss/README.md | 1 -
apps/services/rss/feedpushr/README.md | 1 -
apps/services/rss/feedpushr/base/cm.yaml | 26 -
.../rss/feedpushr/base/deployment.yaml | 50 --
.../rss/feedpushr/base/kustomization.yaml | 7 -
apps/services/rss/feedpushr/base/secret.yaml | 9 -
apps/services/rss/feedpushr/base/svc.yaml | 18 -
.../services/rss/feedpushr/kustomization.yaml | 19 -
apps/services/rss/hub/README.md | 1 -
apps/services/rss/hub/base/certificate.yaml | 12 -
apps/services/rss/hub/base/cm.yaml | 19 -
apps/services/rss/hub/base/deployment.yaml | 74 ---
apps/services/rss/hub/base/ingress.yaml | 26 -
apps/services/rss/hub/base/kustomization.yaml | 9 -
apps/services/rss/hub/base/redis.yaml | 27 -
apps/services/rss/hub/base/svc.yaml | 19 -
apps/services/rss/hub/kustomization.yaml | 16 -
apps/services/transfer/base/ingress.yaml | 26 -
apps/services/transfer/kustomization.yaml | 19 -
apps/services/wallabag/README.md | 1 -
apps/services/wallabag/base/cm.yaml | 20 -
apps/services/wallabag/base/db.yaml | 36 --
apps/services/wallabag/base/deployment.yaml | 60 ---
.../services/wallabag/base/kustomization.yaml | 8 -
apps/services/wallabag/base/secret.yaml | 13 -
apps/services/wallabag/base/svc.yaml | 18 -
apps/services/wallabag/kustomization.yaml | 19 -
apps/services/wger/README.md | 1 -
apps/services/wger/base/certificate.yaml | 12 -
apps/services/wger/base/cm.yaml | 74 ---
apps/services/wger/base/db.yaml | 42 --
apps/services/wger/base/deployment.yaml | 82 ---
apps/services/wger/base/ingress.yaml | 26 -
apps/services/wger/base/kustomization.yaml | 11 -
apps/services/wger/base/redis.yaml | 27 -
apps/services/wger/base/secret.yaml | 13 -
apps/services/wger/base/svc.yaml | 17 -
apps/services/wger/kustomization.yaml | 10 -
.../services/wger/overlay/cloudflared-cm.yaml | 14 -
apps/utilities/crossplane/README.md | 1 -
apps/utilities/crossplane/kustomization.yaml | 89 ----
apps/utilities/descheduler/README.md | 21 +-
apps/utilities/descheduler/kustomization.yaml | 31 +-
apps/utilities/kube-fledged/README.md | 1 +
.../utilities/kube-fledged/kustomization.yaml | 93 ++++
apps/utilities/kured/README.md | 1 +
apps/utilities/kured/kustomization.yaml | 3 -
apps/utilities/nvidia/README.md | 1 +
apps/utilities/nvidia/kustomization.yaml | 61 +++
apps/utilities/nvidia/patch.yaml | 26 +
apps/utilities/nvidia/runtimeclass.yaml | 5 +
apps/utilities/sealed-secrets/README.md | 1 -
.../sealed-secrets/base/kustomization.yaml | 4 -
.../sealed-secrets/kustomization.yaml | 12 -
.../sealed-secrets/overlay/deployment.yaml | 45 --
.../utilities/sealed-secrets/overlay/svc.yaml | 14 -
apps/utilities/wavy/README.md | 64 ---
apps/utilities/wavy/kustomization.yaml | 27 -
.../wavy/overlay/namespace-delete.yaml | 5 -
apps/utilities/wavy/overlay/patch-crb.yaml | 15 -
apps/utilities/wavy/overlay/patch-deploy.yaml | 41 --
apps/utilities/wavy/overlay/patch-job.yaml | 30 --
apps/utilities/wavy/overlay/patch-rb.yaml | 16 -
tasks/argocd.yaml | 4 +-
522 files changed, 3434 insertions(+), 12999 deletions(-)
rename .github/workflows/{auto-prs.yml => auto-prs.yaml} (100%)
create mode 100644 .github/workflows/gitleaks.yaml
rename .github/workflows/{tailscale.yml => tailscale.yaml} (100%)
create mode 100644 apps/argocd/base/data/minio.yaml
rename apps/argocd/base/{matrix/dbs.yaml => data/mysql.yaml} (55%)
create mode 100644 apps/argocd/base/home/go2rtc.yaml
create mode 100644 apps/argocd/base/ingress.yaml
delete mode 100644 apps/argocd/base/matrix/dendrite.yaml
delete mode 100644 apps/argocd/base/matrix/discord.yaml
delete mode 100644 apps/argocd/base/matrix/element.yaml
delete mode 100644 apps/argocd/base/matrix/instagram.yaml
delete mode 100644 apps/argocd/base/matrix/linkedin.yaml
delete mode 100644 apps/argocd/base/matrix/proxies.yaml
delete mode 100644 apps/argocd/base/matrix/signal.yaml
delete mode 100644 apps/argocd/base/matrix/steam.yaml
delete mode 100644 apps/argocd/base/matrix/synapse.yaml
delete mode 100644 apps/argocd/base/matrix/telegram.yaml
delete mode 100644 apps/argocd/base/matrix/whats.yaml
delete mode 100644 apps/argocd/base/mlops/chroma.yaml
delete mode 100644 apps/argocd/base/mlops/discord-bot.yaml
delete mode 100644 apps/argocd/base/mlops/k8sgpt.yaml
delete mode 100644 apps/argocd/base/mlops/memory-plugin.yaml
delete mode 100644 apps/argocd/base/mlops/qdrant.yaml
create mode 100644 apps/argocd/base/mlops/sillytavern.yaml
delete mode 100644 apps/argocd/base/mlops/turbopilot.yaml
delete mode 100644 apps/argocd/base/mlops/wandb.yaml
delete mode 100644 apps/argocd/base/monitoring/botkube.yaml
rename apps/argocd/base/{networking/external-dns => monitoring}/kustomization.yaml (59%)
delete mode 100644 apps/argocd/base/monitoring/nvidia.yaml
create mode 100644 apps/argocd/base/networking/external-dns.yaml
delete mode 100644 apps/argocd/base/networking/external-dns/README.md
delete mode 100644 apps/argocd/base/networking/external-dns/cloudflare.yaml
delete mode 100644 apps/argocd/base/networking/external-dns/nextdns.yaml
delete mode 100644 apps/argocd/base/networking/tailscale.yaml
create mode 100644 apps/argocd/base/projects/kustomization.yaml
delete mode 100644 apps/argocd/base/projects/matrix.yaml
rename apps/argocd/base/services/{ofx-exporter.yaml => 4get.yaml} (51%)
delete mode 100644 apps/argocd/base/services/archivebox.yaml
create mode 100644 apps/argocd/base/services/coder.yaml
delete mode 100644 apps/argocd/base/services/feedpushr.yaml
delete mode 100644 apps/argocd/base/services/gitea-utils.yaml
delete mode 100644 apps/argocd/base/services/grocy.yaml
delete mode 100644 apps/argocd/base/services/jupyterlab.yaml
delete mode 100644 apps/argocd/base/services/librex.yaml
delete mode 100644 apps/argocd/base/services/metabase.yaml
rename apps/argocd/base/{utilities/sealed.yaml => services/miniflux.yaml} (68%)
delete mode 100644 apps/argocd/base/services/mlops.yaml
delete mode 100644 apps/argocd/base/services/rss-hub.yaml
create mode 100644 apps/argocd/base/services/s3.yaml
delete mode 100644 apps/argocd/base/services/squid.yaml
rename apps/argocd/base/{home/wyze.yaml => services/touito.yaml} (65%)
delete mode 100644 apps/argocd/base/services/wallabag.yaml
delete mode 100644 apps/argocd/base/services/wger.yaml
create mode 100644 apps/argocd/base/svc-monitors.yaml
create mode 100644 apps/argocd/base/utilities/agones.yaml
delete mode 100644 apps/argocd/base/utilities/chaos.yaml
create mode 100644 apps/argocd/base/utilities/cpu-booster.yaml
delete mode 100644 apps/argocd/base/utilities/crossplane.yaml
create mode 100644 apps/argocd/base/utilities/external-secrets.yaml
delete mode 100644 apps/argocd/base/utilities/gfd.yaml
delete mode 100644 apps/argocd/base/utilities/kured.yaml
create mode 100644 apps/argocd/base/utilities/nvidia.yaml
delete mode 100644 apps/argocd/base/utilities/reloader.yaml
delete mode 100644 apps/argocd/base/utilities/snapshot.yaml
delete mode 100644 apps/argocd/base/utilities/wavy.yaml
create mode 100644 apps/argocd/overlay/argocd-applicationset-controller.yaml
create mode 100644 apps/argocd/overlay/argocd-dex.yaml
create mode 100644 apps/argocd/overlay/argocd-metrics.yaml
create mode 100644 apps/argocd/overlay/argocd-notification-controller.yaml
create mode 100644 apps/argocd/overlay/argocd-notifications-cm.yaml
delete mode 100644 apps/argocd/overlay/cloudflared-cm.yaml
create mode 100644 apps/components/ignore-ip/kustomization.yaml
create mode 100644 apps/components/ignore/kustomization.yaml
rename apps/{services/librex/base => components/lb/internal}/certificate.yaml (58%)
rename apps/{services/mlops/wandb/base => components/lb/internal}/ingress.yaml (58%)
create mode 100644 apps/components/lb/internal/kustomization.yaml
create mode 100644 apps/components/lb/internal/svc.yaml
create mode 100644 apps/components/lb/kustomization.yaml
create mode 100644 apps/components/resources/large/kustomization.yaml
create mode 100644 apps/components/resources/medium/kustomization.yaml
create mode 100644 apps/components/resources/small/kustomization.yaml
create mode 100644 apps/components/tailscale/ingress/ingress.yaml
create mode 100644 apps/components/tailscale/ingress/kustomization.yaml
rename apps/{data/postgres/exporter => components/tailscale/ingress}/svc.yaml (50%)
create mode 100644 apps/data/mayastor/pool.yaml
create mode 100644 apps/data/mayastor/provisioner.yaml
create mode 100644 apps/data/mayastor/snapshot.yaml
delete mode 100644 apps/data/metabase/README.md
delete mode 100644 apps/data/metabase/base/cm.yaml
delete mode 100644 apps/data/metabase/base/db.yaml
delete mode 100644 apps/data/metabase/base/deployment.yaml
delete mode 100644 apps/data/metabase/base/pvc.yaml
delete mode 100644 apps/data/metabase/base/svc.yaml
delete mode 100644 apps/data/metabase/kustomization.yaml
delete mode 100644 apps/data/minio/README.md
create mode 100644 apps/data/mysql/app.yaml
create mode 100644 apps/data/mysql/crd/kustomization.yaml
rename apps/{services/grocy/base => data/mysql}/kustomization.yaml (65%)
create mode 100644 apps/data/postgres/cloudnative/default/backup-sechedule.yaml
create mode 100644 apps/data/postgres/cloudnative/default/cluster.yaml
rename apps/{matrix/element/README.md => data/postgres/cloudnative/default/example-creds.yaml} (100%)
rename apps/data/{metabase/base => postgres/cloudnative/default}/kustomization.yaml (53%)
create mode 100644 apps/data/postgres/cloudnative/default/monitoring.yaml
delete mode 100644 apps/data/postgres/exporter/cm.yaml
delete mode 100644 apps/data/postgres/exporter/deployment.yaml
delete mode 100644 apps/data/postgres/exporter/kustomization.yaml
rename apps/{networking/adguard/base/pvc.yaml => data/storage/base/home/restreamer.yaml} (58%)
rename apps/data/storage/base/{postgres/ha.yaml => home/web2rtc.yaml} (66%)
delete mode 100644 apps/data/storage/base/links.yaml
delete mode 100644 apps/data/storage/base/matrix/bridges.yaml
delete mode 100644 apps/data/storage/base/matrix/discord.yaml
delete mode 100644 apps/data/storage/base/matrix/instagram.yaml
delete mode 100644 apps/data/storage/base/matrix/linkedin.yaml
delete mode 100644 apps/data/storage/base/matrix/messenger.yaml
delete mode 100644 apps/data/storage/base/matrix/signal.yaml
delete mode 100644 apps/data/storage/base/matrix/skype.yaml
delete mode 100644 apps/data/storage/base/matrix/steam.yaml
delete mode 100644 apps/data/storage/base/matrix/telegram.yaml
delete mode 100644 apps/data/storage/base/matrix/whats.yaml
rename apps/data/storage/base/{matrix/synapse.yaml => mixpost.yaml} (57%)
delete mode 100644 apps/data/storage/base/postgres/bridges.yaml
delete mode 100644 apps/data/storage/base/postgres/ganymede.yaml
delete mode 100644 apps/data/storage/base/postgres/synapse.yaml
rename apps/data/storage/base/{postgres/wallabag.yaml => touito.yaml} (57%)
create mode 100644 apps/data/storage/base/transfer.yaml
rename apps/data/storage/base/{postgres/n8n.yaml => yacy.yaml} (66%)
rename apps/{services/mlops/matrix-bot/base => home/ha/add-ons}/kustomization.yaml (64%)
create mode 100644 apps/home/ha/add-ons/tailscale.yaml
delete mode 100644 apps/home/ha/base/db.yaml
create mode 100644 apps/home/ha/db/kustomization.yaml
delete mode 100644 apps/home/wyze/README.md
delete mode 100644 apps/home/wyze/base/cm.yaml
delete mode 100644 apps/home/wyze/base/deployment.yaml
delete mode 100644 apps/home/wyze/base/kustomization.yaml
delete mode 100644 apps/home/wyze/base/secret.yaml
delete mode 100644 apps/home/wyze/base/svc.yaml
delete mode 100644 apps/home/wyze/kustomization.yaml
delete mode 100644 apps/matrix/Dockerfile
delete mode 100644 apps/matrix/README.md
delete mode 100644 apps/matrix/bridges/discord/README.md
delete mode 100644 apps/matrix/bridges/discord/cm.yaml
delete mode 100644 apps/matrix/bridges/discord/deployment.yaml
delete mode 100644 apps/matrix/bridges/discord/kustomization.yaml
delete mode 100644 apps/matrix/bridges/discord/svc.yaml
delete mode 100644 apps/matrix/bridges/instagram/README.md
delete mode 100644 apps/matrix/bridges/instagram/cm.yaml
delete mode 100644 apps/matrix/bridges/instagram/deployment.yaml
delete mode 100644 apps/matrix/bridges/instagram/kustomization.yaml
delete mode 100644 apps/matrix/bridges/instagram/svc.yaml
delete mode 100644 apps/matrix/bridges/linkedin/README.md
delete mode 100644 apps/matrix/bridges/linkedin/cm.yaml
delete mode 100644 apps/matrix/bridges/linkedin/deployment.yaml
delete mode 100644 apps/matrix/bridges/linkedin/kustomization.yaml
delete mode 100644 apps/matrix/bridges/linkedin/svc.yaml
delete mode 100644 apps/matrix/bridges/signal/README.md
delete mode 100644 apps/matrix/bridges/signal/cm.yaml
delete mode 100644 apps/matrix/bridges/signal/deployment.yaml
delete mode 100644 apps/matrix/bridges/signal/kustomization.yaml
delete mode 100644 apps/matrix/bridges/signal/svc.yaml
delete mode 100644 apps/matrix/bridges/steam/README.md
delete mode 100644 apps/matrix/bridges/steam/cm.yaml
delete mode 100644 apps/matrix/bridges/steam/deployment.yaml
delete mode 100644 apps/matrix/bridges/steam/kustomization.yaml
delete mode 100644 apps/matrix/bridges/steam/svc.yaml
delete mode 100644 apps/matrix/bridges/telegram/README.md
delete mode 100644 apps/matrix/bridges/telegram/cm.yaml
delete mode 100644 apps/matrix/bridges/telegram/deployment.yaml
delete mode 100644 apps/matrix/bridges/telegram/kustomization.yaml
delete mode 100644 apps/matrix/bridges/telegram/svc.yaml
delete mode 100644 apps/matrix/bridges/whatsapp/cm.yaml
delete mode 100644 apps/matrix/bridges/whatsapp/deployment.yaml
delete mode 100644 apps/matrix/bridges/whatsapp/kustomization.yaml
delete mode 100644 apps/matrix/bridges/whatsapp/svc.yaml
delete mode 100644 apps/matrix/databases/README.md
delete mode 100644 apps/matrix/databases/base/certificate.yaml
delete mode 100644 apps/matrix/databases/base/cm.yaml
delete mode 100644 apps/matrix/databases/base/ingress.yaml
delete mode 100644 apps/matrix/databases/base/kustomization.yaml
delete mode 100644 apps/matrix/databases/base/matrix.yaml
delete mode 100644 apps/matrix/databases/base/redis.yaml
delete mode 100644 apps/matrix/databases/base/secret.yaml
delete mode 100644 apps/matrix/databases/base/svc.yaml
delete mode 100644 apps/matrix/databases/kustomization.yaml
delete mode 100644 apps/matrix/dendrite/README.md
delete mode 100644 apps/matrix/dendrite/base/certificate.yaml
delete mode 100644 apps/matrix/dendrite/base/cm.yaml
delete mode 100644 apps/matrix/dendrite/base/deployment.yaml
delete mode 100644 apps/matrix/dendrite/base/ingress.yaml
delete mode 100644 apps/matrix/dendrite/base/jobs.yaml
delete mode 100644 apps/matrix/dendrite/base/kustomization.yaml
delete mode 100644 apps/matrix/dendrite/base/postgres.yaml
delete mode 100644 apps/matrix/dendrite/base/secret.yaml
delete mode 100644 apps/matrix/dendrite/base/svc.yaml
delete mode 100644 apps/matrix/dendrite/kustomization.yaml
delete mode 100644 apps/matrix/element/base/cm.yaml
delete mode 100644 apps/matrix/element/base/deployment.yaml
delete mode 100644 apps/matrix/element/base/svc.yaml
delete mode 100644 apps/matrix/element/kustomization.yaml
delete mode 100644 apps/matrix/proxies/kustomization.yaml
delete mode 100644 apps/matrix/proxies/overlay/cloudflared-cm.yaml
delete mode 100644 apps/networking/adguard/Allowlist.txt
delete mode 100644 apps/networking/adguard/README.md
delete mode 100644 apps/networking/adguard/base/cm.yaml
delete mode 100644 apps/networking/adguard/base/deployment.yaml
delete mode 100644 apps/networking/adguard/base/kustomization.yaml
delete mode 100644 apps/networking/adguard/base/secret.yaml
delete mode 100644 apps/networking/adguard/base/svc-monitor.yaml
delete mode 100644 apps/networking/adguard/base/svc.yaml
delete mode 100644 apps/networking/adguard/kustomization.yaml
create mode 100644 apps/networking/certmanager/crds/kustomization.yaml
delete mode 100644 apps/networking/cloudflared/README.md
delete mode 100644 apps/networking/cloudflared/cm.yaml
delete mode 100644 apps/networking/cloudflared/deployment.yaml
delete mode 100644 apps/networking/cloudflared/kustomization.yaml
delete mode 100644 apps/networking/squid/README.md
delete mode 100644 apps/networking/squid/base/certificate.yaml
delete mode 100644 apps/networking/squid/base/cm.yaml
delete mode 100644 apps/networking/squid/base/deployment.yaml
delete mode 100644 apps/networking/squid/base/ingress.yaml
delete mode 100644 apps/networking/squid/base/kustomization.yaml
delete mode 100644 apps/networking/squid/base/svc.yaml
delete mode 100644 apps/networking/squid/kustomization.yaml
delete mode 100644 apps/networking/tailscale/cr.yaml
delete mode 100644 apps/networking/tailscale/kustomization.yaml
create mode 100644 apps/networking/tailscale/operator/base/ingress-class.yaml
create mode 100644 apps/networking/tailscale/operator/crds/kustomization.yaml
create mode 100644 apps/networking/tailscale/operator/resources/dns.yaml
create mode 100644 apps/networking/tailscale/operator/resources/egress.yaml
rename apps/{services/mlops/discord-bot/base => networking/tailscale/operator/resources}/kustomization.yaml (61%)
create mode 100644 apps/networking/tailscale/operator/resources/macbook.yaml
create mode 100644 apps/networking/tailscale/operator/resources/subnet-router.yaml
delete mode 100644 apps/networking/tailscale/patch.yaml
delete mode 100644 apps/networking/tailscale/rb.yaml
delete mode 100644 apps/networking/tailscale/sa.yaml
create mode 100644 apps/services/4get/README.md
create mode 100644 apps/services/4get/base/cm.yaml
create mode 100644 apps/services/4get/base/deployment.yaml
rename apps/{matrix/element => services/4get}/base/kustomization.yaml (90%)
rename apps/services/{archivebox => 4get}/kustomization.yaml (51%)
delete mode 100644 apps/services/archivebox/README.md
delete mode 100644 apps/services/archivebox/base/certificate.yaml
delete mode 100644 apps/services/archivebox/base/cm.yaml
delete mode 100644 apps/services/archivebox/base/deployment.yaml
delete mode 100644 apps/services/archivebox/base/ingress.yaml
delete mode 100644 apps/services/archivebox/base/kustomization.yaml
delete mode 100644 apps/services/archivebox/base/svc.yaml
delete mode 100644 apps/services/grocy/README.md
delete mode 100644 apps/services/grocy/base/cm.yaml
delete mode 100644 apps/services/grocy/base/deployment.yaml
delete mode 100644 apps/services/grocy/base/svc.yaml
delete mode 100644 apps/services/grocy/kustomization.yaml
delete mode 100644 apps/services/jupyter/README.md
delete mode 100644 apps/services/jupyter/base/certificate.yaml
delete mode 100644 apps/services/jupyter/base/cm.yaml
delete mode 100644 apps/services/jupyter/base/cr.yaml
delete mode 100644 apps/services/jupyter/base/deployment.yaml
delete mode 100644 apps/services/jupyter/base/ingress.yaml
delete mode 100644 apps/services/jupyter/base/kustomization.yaml
delete mode 100644 apps/services/jupyter/base/rb.yaml
delete mode 100644 apps/services/jupyter/base/role.yaml
delete mode 100644 apps/services/jupyter/base/sa.yaml
delete mode 100644 apps/services/jupyter/base/secret.yaml
delete mode 100644 apps/services/jupyter/base/svc.yaml
delete mode 100644 apps/services/jupyter/kustomization.yaml
delete mode 100644 apps/services/librex/README.md
delete mode 100644 apps/services/librex/base/cm.yaml
delete mode 100644 apps/services/librex/base/deployment.yaml
delete mode 100644 apps/services/librex/base/ingress.yaml
delete mode 100644 apps/services/librex/base/kustomization.yaml
delete mode 100644 apps/services/librex/base/svc.yaml
delete mode 100644 apps/services/librex/kustomization.yaml
delete mode 100644 apps/services/mlops/chatbot-ui/README.md
delete mode 100644 apps/services/mlops/chatbot-ui/base/certificate.yaml
delete mode 100644 apps/services/mlops/chatbot-ui/base/cm.yaml
delete mode 100644 apps/services/mlops/chatbot-ui/base/deployment.yaml
delete mode 100644 apps/services/mlops/chatbot-ui/base/ingress.yaml
delete mode 100644 apps/services/mlops/chatbot-ui/base/kustomization.yaml
delete mode 100644 apps/services/mlops/chatbot-ui/base/svc.yaml
delete mode 100644 apps/services/mlops/chatbot-ui/kustomization.yaml
delete mode 100644 apps/services/mlops/discord-bot/README.md
delete mode 100644 apps/services/mlops/discord-bot/base/cm.yaml
delete mode 100644 apps/services/mlops/discord-bot/base/deployment.yaml
delete mode 100644 apps/services/mlops/discord-bot/base/secret.yaml
delete mode 100644 apps/services/mlops/discord-bot/kustomization.yaml
delete mode 100644 apps/services/mlops/kustomization.yaml
delete mode 100644 apps/services/mlops/langflow/README.md
delete mode 100644 apps/services/mlops/langflow/base/certificate.yaml
delete mode 100644 apps/services/mlops/langflow/base/cm.yaml
delete mode 100644 apps/services/mlops/langflow/base/deployment.yaml
delete mode 100644 apps/services/mlops/langflow/base/ingress.yaml
delete mode 100644 apps/services/mlops/langflow/base/kustomization.yaml
delete mode 100644 apps/services/mlops/langflow/base/svc.yaml
delete mode 100644 apps/services/mlops/langflow/kustomization.yaml
delete mode 100644 apps/services/mlops/local-ai/README.md
delete mode 100644 apps/services/mlops/local-ai/base/certificate.yaml
delete mode 100644 apps/services/mlops/local-ai/base/cm.yaml
delete mode 100644 apps/services/mlops/local-ai/base/deployment.yaml
delete mode 100644 apps/services/mlops/local-ai/base/ingress.yaml
delete mode 100644 apps/services/mlops/local-ai/base/kustomization.yaml
delete mode 100644 apps/services/mlops/local-ai/base/svc.yaml
delete mode 100644 apps/services/mlops/local-ai/kustomization.yaml
delete mode 100644 apps/services/mlops/local-ai/models/chronos.yaml
delete mode 100644 apps/services/mlops/local-ai/models/e5.yaml
delete mode 100644 apps/services/mlops/local-ai/models/embeddings.yaml
delete mode 100644 apps/services/mlops/local-ai/models/hermes.yaml
delete mode 100644 apps/services/mlops/local-ai/models/index.yaml
delete mode 100644 apps/services/mlops/local-ai/models/llama2-complete.yaml
delete mode 100644 apps/services/mlops/local-ai/models/llama2.yaml
delete mode 100644 apps/services/mlops/local-ai/models/mythos.yaml
delete mode 100644 apps/services/mlops/local-ai/models/orca.yaml
delete mode 100644 apps/services/mlops/local-ai/models/startup.yaml
delete mode 100644 apps/services/mlops/local-ai/models/whisper.yaml
delete mode 100644 apps/services/mlops/local-ai/models/wizard.yaml
delete mode 100644 apps/services/mlops/local-ai/models/wizardcode.yaml
delete mode 100644 apps/services/mlops/matrix-bot/README.md
delete mode 100644 apps/services/mlops/matrix-bot/base/cm.yaml
delete mode 100644 apps/services/mlops/matrix-bot/base/deployment.yaml
delete mode 100644 apps/services/mlops/matrix-bot/base/secret.yaml
delete mode 100644 apps/services/mlops/matrix-bot/kustomization.yaml
delete mode 100644 apps/services/mlops/memory-plugin/README.md
delete mode 100644 apps/services/mlops/memory-plugin/base/cm.yaml
delete mode 100644 apps/services/mlops/memory-plugin/base/deployment.yaml
delete mode 100644 apps/services/mlops/memory-plugin/base/kustomization.yaml
delete mode 100644 apps/services/mlops/memory-plugin/base/secret.yaml
delete mode 100644 apps/services/mlops/memory-plugin/base/svc.yaml
delete mode 100644 apps/services/mlops/memory-plugin/kustomization.yaml
delete mode 100644 apps/services/mlops/memory-plugin/overlay/cloudflared-cm.yaml
delete mode 100644 apps/services/mlops/milvus/README.md
delete mode 100644 apps/services/mlops/milvus/kustomization.yaml
delete mode 100644 apps/services/mlops/milvus/overlay/milvus-deployment.yaml
delete mode 100644 apps/services/mlops/milvus/overlay/milvus-job.yaml
delete mode 100644 apps/services/mlops/milvus/overlay/namespace-delete.yaml
delete mode 100644 apps/services/mlops/turbopilot/README.md
delete mode 100644 apps/services/mlops/turbopilot/base/certificate.yaml
delete mode 100644 apps/services/mlops/turbopilot/base/cm.yaml
delete mode 100644 apps/services/mlops/turbopilot/base/deployment.yaml
delete mode 100644 apps/services/mlops/turbopilot/base/ingress.yaml
delete mode 100644 apps/services/mlops/turbopilot/base/kustomization.yaml
delete mode 100644 apps/services/mlops/turbopilot/base/svc.yaml
delete mode 100644 apps/services/mlops/turbopilot/kustomization.yaml
delete mode 100644 apps/services/mlops/wandb/README.md
delete mode 100644 apps/services/mlops/wandb/base/certificate.yaml
delete mode 100644 apps/services/mlops/wandb/base/cm.yaml
delete mode 100644 apps/services/mlops/wandb/base/deployment.yaml
delete mode 100644 apps/services/mlops/wandb/base/kustomization.yaml
delete mode 100644 apps/services/mlops/wandb/base/secret.yaml
delete mode 100644 apps/services/mlops/wandb/base/svc.yaml
delete mode 100644 apps/services/mlops/wandb/kustomization.yaml
delete mode 100644 apps/services/proxitok/README.md
delete mode 100644 apps/services/rss/README.md
delete mode 100644 apps/services/rss/feedpushr/README.md
delete mode 100644 apps/services/rss/feedpushr/base/cm.yaml
delete mode 100644 apps/services/rss/feedpushr/base/deployment.yaml
delete mode 100644 apps/services/rss/feedpushr/base/kustomization.yaml
delete mode 100644 apps/services/rss/feedpushr/base/secret.yaml
delete mode 100644 apps/services/rss/feedpushr/base/svc.yaml
delete mode 100644 apps/services/rss/feedpushr/kustomization.yaml
delete mode 100644 apps/services/rss/hub/README.md
delete mode 100644 apps/services/rss/hub/base/certificate.yaml
delete mode 100644 apps/services/rss/hub/base/cm.yaml
delete mode 100644 apps/services/rss/hub/base/deployment.yaml
delete mode 100644 apps/services/rss/hub/base/ingress.yaml
delete mode 100644 apps/services/rss/hub/base/kustomization.yaml
delete mode 100644 apps/services/rss/hub/base/redis.yaml
delete mode 100644 apps/services/rss/hub/base/svc.yaml
delete mode 100644 apps/services/rss/hub/kustomization.yaml
delete mode 100644 apps/services/transfer/base/ingress.yaml
delete mode 100644 apps/services/transfer/kustomization.yaml
delete mode 100644 apps/services/wallabag/README.md
delete mode 100644 apps/services/wallabag/base/cm.yaml
delete mode 100644 apps/services/wallabag/base/db.yaml
delete mode 100644 apps/services/wallabag/base/deployment.yaml
delete mode 100644 apps/services/wallabag/base/kustomization.yaml
delete mode 100644 apps/services/wallabag/base/secret.yaml
delete mode 100644 apps/services/wallabag/base/svc.yaml
delete mode 100644 apps/services/wallabag/kustomization.yaml
delete mode 100644 apps/services/wger/README.md
delete mode 100644 apps/services/wger/base/certificate.yaml
delete mode 100644 apps/services/wger/base/cm.yaml
delete mode 100644 apps/services/wger/base/db.yaml
delete mode 100644 apps/services/wger/base/deployment.yaml
delete mode 100644 apps/services/wger/base/ingress.yaml
delete mode 100644 apps/services/wger/base/kustomization.yaml
delete mode 100644 apps/services/wger/base/redis.yaml
delete mode 100644 apps/services/wger/base/secret.yaml
delete mode 100644 apps/services/wger/base/svc.yaml
delete mode 100644 apps/services/wger/kustomization.yaml
delete mode 100644 apps/services/wger/overlay/cloudflared-cm.yaml
delete mode 100644 apps/utilities/crossplane/README.md
delete mode 100644 apps/utilities/crossplane/kustomization.yaml
create mode 100644 apps/utilities/kube-fledged/README.md
create mode 100644 apps/utilities/kube-fledged/kustomization.yaml
create mode 100644 apps/utilities/kured/README.md
create mode 100644 apps/utilities/nvidia/README.md
create mode 100644 apps/utilities/nvidia/kustomization.yaml
create mode 100644 apps/utilities/nvidia/patch.yaml
create mode 100644 apps/utilities/nvidia/runtimeclass.yaml
delete mode 100644 apps/utilities/sealed-secrets/README.md
delete mode 100644 apps/utilities/sealed-secrets/base/kustomization.yaml
delete mode 100644 apps/utilities/sealed-secrets/kustomization.yaml
delete mode 100644 apps/utilities/sealed-secrets/overlay/deployment.yaml
delete mode 100644 apps/utilities/sealed-secrets/overlay/svc.yaml
delete mode 100644 apps/utilities/wavy/README.md
delete mode 100644 apps/utilities/wavy/kustomization.yaml
delete mode 100644 apps/utilities/wavy/overlay/namespace-delete.yaml
delete mode 100644 apps/utilities/wavy/overlay/patch-crb.yaml
delete mode 100644 apps/utilities/wavy/overlay/patch-deploy.yaml
delete mode 100644 apps/utilities/wavy/overlay/patch-job.yaml
delete mode 100644 apps/utilities/wavy/overlay/patch-rb.yaml
diff --git a/.github/workflows/auto-prs.yml b/.github/workflows/auto-prs.yaml
similarity index 100%
rename from .github/workflows/auto-prs.yml
rename to .github/workflows/auto-prs.yaml
diff --git a/.github/workflows/gitleaks.yaml b/.github/workflows/gitleaks.yaml
new file mode 100644
index 000000000..aad3cc0b4
--- /dev/null
+++ b/.github/workflows/gitleaks.yaml
@@ -0,0 +1,14 @@
+name: Gitleaks
+on: [pull_request]
+
+jobs:
+ scan:
+ name: gitleaks
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - uses: gitleaks/gitleaks-action@v2
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/linters.yaml b/.github/workflows/linters.yaml
index 778bbb2f8..703ed72c2 100644
--- a/.github/workflows/linters.yaml
+++ b/.github/workflows/linters.yaml
@@ -15,9 +15,3 @@ jobs:
with:
config_file: .yamllint
- run: echo ${{ steps.yaml-lint.outputs.logfile }}
- markdown-link-check:
- name: Check for broken URIs on README
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
diff --git a/.github/workflows/tailscale.yml b/.github/workflows/tailscale.yaml
similarity index 100%
rename from .github/workflows/tailscale.yml
rename to .github/workflows/tailscale.yaml
diff --git a/README.md b/README.md
index 714264ac6..1ee7acc7e 100644
--- a/README.md
+++ b/README.md
@@ -6,9 +6,6 @@
Homelab
-
- Gitops managed k3s cluster
-
@@ -28,7 +25,6 @@
> | [ArgoCD][argocd-uri] | `Git` | [More details][homelab-argocd] | ![][argocd-core] | ![][argo-badge] |
> | [CertManager][service-certmanager] | `Networking` | [More details][homelab-certmanager] | ![][argocd-certmanager] | ![][certmanager-badge] |
> | [Changedetection.io][change-uri] | `Services` | [More details][homelab-change] | ![][argocd-change] | ![][change-badge] |
-> | [Crossplane][crossplane-uri] | `GitOps` | [More details][homelab-crossplane] | ![][argocd-crossplane] | ![][crossplane-badge] |
> | [External-DNS][service-externaldns] | `Networking` | [More details][homelab-externaldns] | ![][argocd-externaldns] | ![][externaldns-badge] |
> | [Hashicorp's Vault][vault-uri] | `Security` | [Chart values][homelab-vault] | ![][argocd-vault] | ![][vault-badge] |
> | [Home Assistant][service-ha] | `Smart Home` | [More details][homelab-ha] | ![][argocd-ha] | ![][ha-badge] |
@@ -38,11 +34,8 @@
> | [n8n][n8n-uri] | `Services` | [More details][homelab-n8n] | ![][argocd-n8n] | ![][n8n-badge] |
> | [Redis Operator][redis-uri] | `Databases` | [More details][homelab-redis] | ![][argocd-redis] | ![][redis-badge] |
> | [Unifi Controller][unifi-uri] | `Networking` | [More details][homelab-unifi] | ![][argocd-unifi] | ![][unifi-badge] |
-> | [Unifi Poller][poller-uri] | `Monitoring` | [More details][homelab-poller] | ![][argocd-poller] | ![][poller-badge] |
> | [Uptime Kuma][kuma-uri] | `Monitoring` | [More details][homelab-kuma] | ![][argocd-kuma] | ![][kuma-badge] |
-> | [Wyze API Bridge][service-wyze] | `Smart Home` | [More details][homelab-wyze] | ![][argocd-wyze] | ![][wyze-badge] |
> | [Tailscale-operator][tail-uri] | `Networking` | [More details][homelab-tailscale] | ![][argocd-tailscale] |![][tailscale-badge] |
-> | [Cloudflared (as proxies)][cf-uri] | `Networking` | [More details][homelab-cloudflared] | | ![][cfd-badge] |
---
@@ -229,8 +204,6 @@
[homelab-kubevip]: https://github.com/gruberdev/homelab/tree/main/apps/networking/kube-vip
[homelab-rssgen]: https://github.com/gruberdev/homelab/tree/main/apps/services/rss/gen
[homelab-chatgpt]: https://github.com/gruberdev/homelab/tree/main/apps/services/chatgpt/discord-bot
-[homelab-p-chatgpt]: https://github.com/gruberdev/homelab/tree/main/apps/services/chatgpt/memory-plugin
-[homelab-milvus]: https://github.com/gruberdev/homelab/blob/main/apps/argocd/base/mlops/milvus.yaml
[homelab-sonarr]: https://github.com/gruberdev/homelab/tree/main/apps/services/media/sonarr
[homelab-prowlarr]: https://github.com/gruberdev/homelab/tree/main/apps/services/media/prowlarr
[homelab-rsshub]: https://github.com/gruberdev/homelab/tree/main/apps/services/rss/hub
@@ -247,52 +220,51 @@
-[argocd-kube]: https://argo.gruber.dev.br/api/badge?name=kube-prometheus
-[argocd-nvidia]: https://argo.gruber.dev.br/api/badge?name=nvidia
-[argocd-nfs]: https://argo.gruber.dev.br/api/badge?name=nfs-provisioner
-[argocd-crossplane]: https://argo.gruber.dev.br/api/badge?name=crossplane
-[argocd-ha]: https://argo.gruber.dev.br/api/badge?name=homeassistant
-[argocd-democratic-csi]: https://argo.gruber.dev.br/api/badge?name=longhorn
-[argocd-kuma]: https://argo.gruber.dev.br/api/badge?name=uptime-kuma
-[argocd-grocy]: https://argo.gruber.dev.br/api/badge?name=grocy
-[argocd-adguard]:https://argo.gruber.dev.br/api/badge?name=adguard
-[argocd-unifi-controller]: https://argo.gruber.dev.br/api/badge?name=unifi-controller
-[argocd-core]: https://argo.gruber.dev.br/api/badge?name=argocd
-[argocd-n8n]: https://argo.gruber.dev.br/api/badge?name=n8n-service
-[argocd-vault]: https://argo.gruber.dev.br/api/badge?name=vault
-[argocd-ha]: https://argo.gruber.dev.br/api/badge?name=homeassistant
-[argocd-wyze]: https://argo.gruber.dev.br/api/badge?name=wyze
-[argocd-redis]: https://argo.gruber.dev.br/api/badge?name=redis
-[argocd-matrix]: https://argo.gruber.dev.br/api/badge?name=synapse
-[argocd-mysql]: https://argo.gruber.dev.br/api/badge?name=mysql-operator
-[argocd-changedetection]: https://argo.gruber.dev.br/api/badge?name=changedetection
-[argocd-tailscale]: https://argo.gruber.dev.br/api/badge?name=tailscale
-[argocd-chatgpt]: https://argo.gruber.dev.br/api/badge?name=discord-bot-gpt
-[argocd-gitea]: https://argo.gruber.dev.br/api/badge?name=gitea
-[argocd-p-chatgpt]: https://argo.gruber.dev.br/api/badge?name=memory-plugin-gpt
-[argocd-milvus]: https://argo.gruber.dev.br/api/badge?name=milvus-operator
-[argocd-mongo]: https://argo.gruber.dev.br/api/badge?name=mongodb-operator
-[argocd-wavy]: https://argo.gruber.dev.br/api/badge?name=wavy
-[argocd-poller]: https://argo.gruber.dev.br/api/badge?name=unifi-poller
-[argocd-rss-gen]: https://argo.gruber.dev.br/api/badge?name=rss-gen
-[argocd-rss-hub]: https://argo.gruber.dev.br/api/badge?name=rss-hub
-[argocd-feedpushr]: https://argo.gruber.dev.br/api/badge?name=feedpushr
-[argocd-change]: https://argo.gruber.dev.br/api/badge?name=changedetection
-[argocd-beets]: https://argo.gruber.dev.br/api/badge?name=beets
-[argocd-lidarr]: https://argo.gruber.dev.br/api/badge?name=lidarr
-[argocd-metabase]: https://argo.gruber.dev.br/api/badge?name=metabase
-[argocd-kubevip]: https://argo.gruber.dev.br/api/badge?name=kube-vip
-[argocd-prowlarr]: https://argo.gruber.dev.br/api/badge?name=prowlarr
-[argocd-sonarr]: https://argo.gruber.dev.br/api/badge?name=sonarr
-[argocd-jellyfin]: https://argo.gruber.dev.br/api/badge?name=jellyfin
-[argocd-wallabag]: https://argo.gruber.dev.br/api/badge?name=wallabag
-[argocd-crossplane]: https://argo.gruber.dev.br/api/badge?name=crossplane
-[argocd-tailscale]: https://argo.gruber.dev.br/api/badge?name=tailscale-operator
-[argocd-agones]: https://argo.gruber.dev.br/api/badge?name=agones
-[argocd-gpu-exporter]: https://argo.gruber.dev.br/api/badge?name=nvidia-exporter
-[argocd-externaldns]: https://argo.gruber.dev.br/api/badge?name=external-dns-cloudflare
-[argocd-certmanager]: https://argo.gruber.dev.br/api/badge?name=certmanager
-[argocd-unifi]: https://argo.gruber.dev.br/api/badge?name=unifi-controller
+[argocd-kube]: https://argo.raptor-beta.ts.net/api/badge?name=kube-prometheus
+[argocd-nvidia]: https://argo.raptor-beta.ts.net/api/badge?name=nvidia
+[argocd-nfs]: https://argo.raptor-beta.ts.net/api/badge?name=nfs-provisioner
+[argocd-crossplane]: https://argo.raptor-beta.ts.net/api/badge?name=crossplane
+[argocd-ha]: https://argo.raptor-beta.ts.net/api/badge?name=homeassistant
+[argocd-kuma]: https://argo.raptor-beta.ts.net/api/badge?name=uptime-kuma
+[argocd-grocy]: https://argo.raptor-beta.ts.net/api/badge?name=grocy
+[argocd-adguard]:https://argo.raptor-beta.ts.net/api/badge?name=adguard
+[argocd-unifi-controller]: https://argo.raptor-beta.ts.net/api/badge?name=unifi-controller
+[argocd-core]: https://argo.raptor-beta.ts.net/api/badge?name=argocd
+[argocd-n8n]: https://argo.raptor-beta.ts.net/api/badge?name=n8n-service
+[argocd-vault]: https://argo.raptor-beta.ts.net/api/badge?name=vault
+[argocd-ha]: https://argo.raptor-beta.ts.net/api/badge?name=homeassistant
+[argocd-wyze]: https://argo.raptor-beta.ts.net/api/badge?name=wyze
+[argocd-redis]: https://argo.raptor-beta.ts.net/api/badge?name=redis
+[argocd-matrix]: https://argo.raptor-beta.ts.net/api/badge?name=synapse
+[argocd-mysql]: https://argo.raptor-beta.ts.net/api/badge?name=mysql-operator
+[argocd-changedetection]: https://argo.raptor-beta.ts.net/api/badge?name=changedetection
+[argocd-tailscale]: https://argo.raptor-beta.ts.net/api/badge?name=tailscale-operator
+[argocd-chatgpt]: https://argo.raptor-beta.ts.net/api/badge?name=discord-bot-gpt
+[argocd-gitea]: https://argo.raptor-beta.ts.net/api/badge?name=gitea
+[argocd-p-chatgpt]: https://argo.raptor-beta.ts.net/api/badge?name=memory-plugin-gpt
+[argocd-milvus]: https://argo.raptor-beta.ts.net/api/badge?name=milvus-operator
+[argocd-mongo]: https://argo.raptor-beta.ts.net/api/badge?name=mongodb-operator
+[argocd-wavy]: https://argo.raptor-beta.ts.net/api/badge?name=wavy
+[argocd-poller]: https://argo.raptor-beta.ts.net/api/badge?name=unifi-poller
+[argocd-rss-gen]: https://argo.raptor-beta.ts.net/api/badge?name=rss-gen
+[argocd-rss-hub]: https://argo.raptor-beta.ts.net/api/badge?name=rss-hub
+[argocd-feedpushr]: https://argo.raptor-beta.ts.net/api/badge?name=feedpushr
+[argocd-change]: https://argo.raptor-beta.ts.net/api/badge?name=changedetection
+[argocd-beets]: https://argo.raptor-beta.ts.net/api/badge?name=beets
+[argocd-lidarr]: https://argo.raptor-beta.ts.net/api/badge?name=lidarr
+[argocd-metabase]: https://argo.raptor-beta.ts.net/api/badge?name=metabase
+[argocd-kubevip]: https://argo.raptor-beta.ts.net/api/badge?name=kubevip
+[argocd-prowlarr]: https://argo.raptor-beta.ts.net/api/badge?name=prowlarr
+[argocd-sonarr]: https://argo.raptor-beta.ts.net/api/badge?name=sonarr
+[argocd-jellyfin]: https://argo.raptor-beta.ts.net/api/badge?name=jellyfin
+[argocd-wallabag]: https://argo.raptor-beta.ts.net/api/badge?name=wallabag
+[argocd-crossplane]: https://argo.raptor-beta.ts.net/api/badge?name=crossplane
+[argocd-tailscale]: https://argo.raptor-beta.ts.net/api/badge?name=tailscale-operator
+[argocd-agones]: https://argo.raptor-beta.ts.net/api/badge?name=agones
+[argocd-gpu-exporter]: https://argo.raptor-beta.ts.net/api/badge?name=nvidia-exporter
+[argocd-externaldns]: https://argo.raptor-beta.ts.net/api/badge?name=external-dns-cloudflare
+[argocd-certmanager]: https://argo.raptor-beta.ts.net/api/badge?name=certmanager
+[argocd-unifi]: https://argo.raptor-beta.ts.net/api/badge?name=unifi-controller
diff --git a/apps/argocd/Dockerfile b/apps/argocd/Dockerfile
index 6f3b7dc84..c90861328 100644
--- a/apps/argocd/Dockerfile
+++ b/apps/argocd/Dockerfile
@@ -1,8 +1,8 @@
-ARG HELM_VERSION=3.12.3
-ARG ALPINE_VERSION=3.18.3
-ARG ARGOCD_VERSION=2.8.3
-ARG VAULT_PLUGIN_VERSION=1.16.1
+ARG HELM_VERSION=3.15.2
+ARG ALPINE_VERSION=3.20.1
+ARG ARGOCD_VERSION=2.11.3
+ARG VAULT_PLUGIN_VERSION=1.18.1
FROM alpine/helm:${HELM_VERSION} as helm
FROM alpine:${ALPINE_VERSION} as temp
@@ -19,7 +19,7 @@ USER root
RUN apt-get update && \
apt-get install -y \
- curl && \
+ curl && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
diff --git a/apps/argocd/README.md b/apps/argocd/README.md
index 21ce14e5d..47ca1d4ce 100644
--- a/apps/argocd/README.md
+++ b/apps/argocd/README.md
@@ -1,38 +1,48 @@
-
-
-
-
-
+
+
+
+
+
+
+
-### Description
+ ### Description
-> ArgoCD is a continuous delivery tool for Kubernetes that helps you keep your applications in sync with the desired state that you have defined in git. It uses a declarative configuration file to specify the desired state of your applications, and it continuously monitors the live state of your applications to ensure that they match the desired state.
->
-> With ArgoCD, you can easily manage and automate the deployment of your applications, making it easy to keep your applications up-to-date and consistent across different environments.
+ > ArgoCD is a continuous delivery tool for Kubernetes that helps you keep your applications in sync with the desired state that you have defined in git. It uses a declarative configuration file to specify the desired state of your applications, and it continuously monitors the live state of your applications to ensure that they match the desired state.
+ >
+ > With ArgoCD, you can easily manage and automate the deployment of your applications, making it easy to keep your applications up-to-date and consistent across different environments.
-### Reasons I chose ArgoCD over Flux
+ ### Reasons I chose ArgoCD over Flux
-> - ArgoCD features a user-friendly web-based User Interface (UI) designed to facilitate the viewing and management of application states, promoting efficient team collaboration.
-> - It implements fine-grained permission control, extending access rights to both internal and external resources within its control plane, offering enhanced security and resource management.
-> - The provision of an Application Programming Interface (API) in ArgoCD allows for seamless integration with various tools and systems. This enhances workflow automation capabilities in continuous delivery and fosters interoperability with other Argo-branded tools.
-> - The synchronization capabilities of ArgoCD include comprehensive health checks, ensuring reliable data reporting for application deployment status. Compared to FluxCD, ArgoCD's self-healing features are more extensive. It should be noted that FluxCD's sync hooks are limited to supporting Helm charts exclusively.
->
-> **In summary, ArgoCD presents a comprehensive and feature-intensive solution for the management and automation of Kubernetes-based application deployments.**
+ > - ArgoCD features a user-friendly web-based User Interface (UI) designed to facilitate the viewing and management of application states, promoting efficient team collaboration.
+ > - It implements fine-grained permission control, extending access rights to both internal and external resources within its control plane, offering enhanced security and resource management.
+ > - The provision of an Application Programming Interface (API) in ArgoCD allows for seamless integration with various tools and systems. This enhances workflow automation capabilities in continuous delivery and fosters interoperability with other Argo-branded tools.
+ > - The synchronization capabilities of ArgoCD include comprehensive health checks, ensuring reliable data reporting for application deployment status. Compared to FluxCD, ArgoCD's self-healing features are more extensive. It should be noted that FluxCD's sync hooks are limited to supporting Helm charts exclusively.
+ >
+ > **In summary, ArgoCD presents a comprehensive and feature-intensive solution for the management and automation of Kubernetes-based application deployments.**
-
+
-### Relevant Links
+ ### Relevant Links
-- [Website][website-uri]
-- [Official Documentation][docs-uri]
-- [Awesome ArgoCD][awesome-uri]
+ - [Website][website-uri]
+ - [Official Documentation][docs-uri]
+ - [Awesome ArgoCD][awesome-uri]
-### Instructions for deployment
+ ### Instructions for deployment
-```bash
-task argocd:install
-```
+ ```bash
+ task argocd:install
+ # Or
+ kubectl apply -k github.com/gruberdev/homelab/apps/argocd
+ ```
-[website-uri]: https://argoproj.github.io/cd/
-[docs-uri]: https://argo-cd.readthedocs.io/en/stable/
-[awesome-uri]: https://github.com/terrytangyuan/awesome-argo
+ ## Important notes
+
+ - I am currently integrating Vault with ArgoCD to manage my secrets.
+ - Presently, it operates in non-HA mode, but I plan to transition to HA mode in the future.
+ - This is a self-managed instance, where all modifications, including updates to its versioning and configurations for the app-of-apps projects, are handled via GitOps.
+
+ [website-uri]: https://argoproj.github.io/cd/
+ [docs-uri]: https://argo-cd.readthedocs.io/en/stable/
+ [awesome-uri]: https://github.com/terrytangyuan/awesome-argo
diff --git a/apps/argocd/base/core/private.yaml b/apps/argocd/base/core/private.yaml
index ca5d3bd2b..ee1b1c4a7 100644
--- a/apps/argocd/base/core/private.yaml
+++ b/apps/argocd/base/core/private.yaml
@@ -5,7 +5,7 @@ metadata:
spec:
project: core
source:
- repoURL: 'https://github.com/gruberdev/private.git'
+ repoURL: 'https://github.com/gruberdev/homelab.git'
path: meta
targetRevision: main
destination:
diff --git a/apps/argocd/base/data/cloudnative.yaml b/apps/argocd/base/data/cloudnative.yaml
index 4efd8d2cc..b5d3792e5 100644
--- a/apps/argocd/base/data/cloudnative.yaml
+++ b/apps/argocd/base/data/cloudnative.yaml
@@ -15,16 +15,32 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: false
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
syncOptions:
- - Validate=false
- - CreateNamespace=true
- - PrunePropagationPolicy=foreground
- - ServerSideApply=true
- - Prune=true
+ - CreateNamespace=true
+ - ServerSideApply=true
+ - Prune=true
retry:
limit: 5
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/cloudnative-pg/cloudnative-pg
+ - name: "Official documentation:"
+ value: >-
+ https://cloudnative-pg.io/docs
+ - name: "Helm chart location:"
+ value: >-
+ https://github.com/cloudnative-pg/charts/tree/main/charts/cloudnative-pg
+ - name: "Container registry:"
+ value: >-
+ https://github.com/cloudnative-pg/cloudnative-pg/pkgs/container/cloudnative-pg
diff --git a/apps/argocd/base/data/kustomization.yaml b/apps/argocd/base/data/kustomization.yaml
index 140780a97..32fb56d1d 100644
--- a/apps/argocd/base/data/kustomization.yaml
+++ b/apps/argocd/base/data/kustomization.yaml
@@ -4,9 +4,11 @@ kind: Kustomization
resources:
- cloudnative.yaml
- redis.yaml
+- minio.yaml
- storage.yaml
+- mysql.yaml
namespace: argocd
-commonLabels:
- app.kubernetes.io/category: data
+commonAnnotations:
+ argocd.argoproj.io/sync-wave: "1"
diff --git a/apps/argocd/base/data/minio.yaml b/apps/argocd/base/data/minio.yaml
new file mode 100644
index 000000000..8656d1547
--- /dev/null
+++ b/apps/argocd/base/data/minio.yaml
@@ -0,0 +1,43 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: minio-operator
+spec:
+ project: cluster
+ source:
+ repoURL: 'https://github.com/gruberdev/homelab.git'
+ path: apps/data/minio
+ targetRevision: main
+ destination:
+ namespace: minio-operator
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ - CreateNamespace=true
+ retry:
+ limit: 10
+ backoff:
+ duration: 20s
+ factor: 2
+ maxDuration: 15m
+ info:
+ - name: 'Github Repository:'
+ value: >-
+ https://github.com/minio/operator
+ - name: 'Official Documentation:'
+ value: >-
+ https://min.io/docs/minio/kubernetes/upstream/
+ - name: 'CRD Examples:'
+ value: >-
+ https://github.com/minio/operator/tree/master/examples/kustomization
diff --git a/apps/argocd/base/matrix/dbs.yaml b/apps/argocd/base/data/mysql.yaml
similarity index 55%
rename from apps/argocd/base/matrix/dbs.yaml
rename to apps/argocd/base/data/mysql.yaml
index 8271bb624..11790e684 100644
--- a/apps/argocd/base/matrix/dbs.yaml
+++ b/apps/argocd/base/data/mysql.yaml
@@ -1,33 +1,32 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
- name: matrix-databases
+ name: mysql-operator
spec:
- project: matrix
+ project: cluster
source:
repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/databases
+ path: apps/data/mysql
targetRevision: main
destination:
- namespace: matrix1
+ namespace: mysql-operator
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
- allowEmpty: false
managedNamespaceMetadata:
labels:
prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
syncOptions:
- - Validate=false
- - CreateNamespace=true
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - CreateNamespace=true
+ - ServerSideApply=true
+ - Prune=true
retry:
- limit: 5
+ limit: 10
backoff:
duration: 20s
factor: 2
diff --git a/apps/argocd/base/data/redis.yaml b/apps/argocd/base/data/redis.yaml
index f4cb6d110..29510f964 100644
--- a/apps/argocd/base/data/redis.yaml
+++ b/apps/argocd/base/data/redis.yaml
@@ -15,20 +15,29 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: false
managedNamespaceMetadata:
labels:
prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
syncOptions:
- - Validate=false
- - CreateNamespace=true
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - ServerSideApply=true
+ - CreateNamespace=true
+ - ServerSideApply=true
+ - Prune=true
retry:
- limit: 10
+ limit: 5
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: 'Github Repository:'
+ value: >-
+ https://github.com/OT-CONTAINER-KIT/redis-operator
+ - name: 'Helm chart Github repository:'
+ value: >-
+ hhttps://github.com/OT-CONTAINER-KIT/helm-charts
+ - name: 'Helm chart example values:'
+ value: >-
+ https://github.com/OT-CONTAINER-KIT/helm-charts/tree/main/charts/redis-operator
diff --git a/apps/argocd/base/data/storage.yaml b/apps/argocd/base/data/storage.yaml
index 878e77260..152794ee1 100644
--- a/apps/argocd/base/data/storage.yaml
+++ b/apps/argocd/base/data/storage.yaml
@@ -12,18 +12,21 @@ spec:
name: in-cluster
syncPolicy:
automated:
- prune: false
- selfHeal: false
- allowEmpty: true
+ prune: true
+ selfHeal: true
syncOptions:
- - Validate=false
- - PrunePropagationPolicy=foreground
- - PruneLast=false
- - ApplyOutOfSyncOnly=true
- - Prune=false
+ - ServerSideApply=true
+ - Prune=true
retry:
- limit: 1
+ limit: 5
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: 'Mayastor Storage Class Github repository:'
+ value: >-
+ https://github.com/openebs/mayastor
+ - name: 'Mayastor OpenEBS Official Documentation:'
+ value: >-
+ https://openebs.io/docs/user-guides/replicated-storage-user-guide/replicated-pv-mayastor/rs-installation
diff --git a/apps/argocd/base/home/external-mic.yaml b/apps/argocd/base/home/external-mic.yaml
index 379c042c9..36fa5bd19 100644
--- a/apps/argocd/base/home/external-mic.yaml
+++ b/apps/argocd/base/home/external-mic.yaml
@@ -2,17 +2,12 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: external-mic
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: apps
source:
- repoURL: "https://github.com/gruberdev/homelab.git"
+ repoURL: https://github.com/gruberdev/homelab.git
path: apps/home/external-mic
targetRevision: main
- kustomize:
- commonLabels:
- app.kubernetes.io/category: home
destination:
namespace: homeassistant
name: in-cluster
diff --git a/apps/argocd/base/home/frigate.yaml b/apps/argocd/base/home/frigate.yaml
index 5a7d23ad2..fb450ad71 100644
--- a/apps/argocd/base/home/frigate.yaml
+++ b/apps/argocd/base/home/frigate.yaml
@@ -2,17 +2,12 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: frigate
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: apps
source:
repoURL: "https://github.com/gruberdev/homelab.git"
path: apps/home/frigate
targetRevision: main
- kustomize:
- commonLabels:
- app.kubernetes.io/category: home
destination:
namespace: homeassistant
name: in-cluster
diff --git a/apps/argocd/base/home/go2rtc.yaml b/apps/argocd/base/home/go2rtc.yaml
new file mode 100644
index 000000000..0cc69ae95
--- /dev/null
+++ b/apps/argocd/base/home/go2rtc.yaml
@@ -0,0 +1,33 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: go2rtc
+spec:
+ project: apps
+ source:
+ repoURL: "https://github.com/gruberdev/homelab.git"
+ path: apps/home/go2rtc
+ targetRevision: main
+ destination:
+ namespace: homeassistant
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ retry:
+ limit: 10
+ backoff:
+ duration: 20s
+ factor: 2
+ maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/AlexxIT/go2rtc/
+ - name: "Official documentation:"
+ value: >-
+ https://github.com/AlexxIT/go2rtc/?tab=readme-ov-file#source-rtsp
diff --git a/apps/argocd/base/home/ha.yaml b/apps/argocd/base/home/ha.yaml
index 9e1c95418..515d04d15 100644
--- a/apps/argocd/base/home/ha.yaml
+++ b/apps/argocd/base/home/ha.yaml
@@ -15,17 +15,34 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: true
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- Prune=true
- ServerSideApply=true
+ - CreateNamespace=true
retry:
limit: 5
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ ignoreDifferences:
+ - group: ""
+ kind: "Service"
+ jsonPointers:
+ - /spec/externalName
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/home-assistant/core
+ - name: "Docker registry:"
+ value: >-
+ https://hub.docker.com/r/homeassistant/home-assistant/tags
+ - name: "Official documentation:"
+ value: >-
+ https://www.home-assistant.io/docs/configuration
diff --git a/apps/argocd/base/home/kustomization.yaml b/apps/argocd/base/home/kustomization.yaml
index b2dfd9c71..3b93b0c26 100644
--- a/apps/argocd/base/home/kustomization.yaml
+++ b/apps/argocd/base/home/kustomization.yaml
@@ -1,13 +1,13 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- - ha.yaml
- - openwakeword.yaml
- - piper.yaml
- - whisper.yaml
- - frigate.yaml
- - wyze.yaml
- - external-mic.yaml
- - satellite.yaml
+- ha.yaml
+# - frigate.yaml
+# - go2rtc.yaml
+# - openwakeword.yaml
+# - piper.yaml
+# - whisper.yaml
+# - satellite.yaml
+# - external-mic.yaml
namespace: argocd
diff --git a/apps/argocd/base/home/openwakeword.yaml b/apps/argocd/base/home/openwakeword.yaml
index 0a0e84dd0..48b2acd51 100644
--- a/apps/argocd/base/home/openwakeword.yaml
+++ b/apps/argocd/base/home/openwakeword.yaml
@@ -2,12 +2,10 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: openwakeword
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: apps
source:
- repoURL: "https://github.com/gruberdev/homelab.git"
+ repoURL: https://github.com/gruberdev/homelab.git
path: apps/home/openwakeword
targetRevision: main
destination:
@@ -17,17 +15,22 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: true
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- Prune=true
- ServerSideApply=true
retry:
- limit: 5
+ limit: 10
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/dscripka/openWakeWord
+ - name: "Wyoming Github Repository:"
+ value: >-
+ https://github.com/rhasspy/wyoming-openwakeword
+ - name: "Homelab documentation:"
+ value: >-
+ https://github.com/gruberdev/homelab/tree/main/apps/home/openwakeword
diff --git a/apps/argocd/base/home/piper.yaml b/apps/argocd/base/home/piper.yaml
index ccea38c07..1e719309f 100644
--- a/apps/argocd/base/home/piper.yaml
+++ b/apps/argocd/base/home/piper.yaml
@@ -2,12 +2,10 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: piper
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: apps
source:
- repoURL: "https://github.com/gruberdev/homelab.git"
+ repoURL: https://github.com/gruberdev/homelab.git
path: apps/home/piper
targetRevision: main
destination:
@@ -17,17 +15,22 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: true
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- Prune=true
- ServerSideApply=true
retry:
- limit: 5
+ limit: 10
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/rhasspy/piper
+ - name: "Wyoming Github Repository:"
+ value: >-
+ https://github.com/rhasspy/wyoming-piper
+ - name: "Homelab documentation:"
+ value: >-
+ https://github.com/gruberdev/homelab/tree/main/apps/home/piper
diff --git a/apps/argocd/base/home/satellite.yaml b/apps/argocd/base/home/satellite.yaml
index 3cf834e4e..2fd53452b 100644
--- a/apps/argocd/base/home/satellite.yaml
+++ b/apps/argocd/base/home/satellite.yaml
@@ -2,18 +2,12 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: satellite
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: apps
source:
repoURL: "https://github.com/gruberdev/homelab.git"
path: apps/home/satellite
targetRevision: main
- kustomize:
- commonLabels:
- app.kubernetes.io/app: satellite
- app.kubernetes.io/category: home
destination:
namespace: homeassistant
name: in-cluster
diff --git a/apps/argocd/base/home/whisper.yaml b/apps/argocd/base/home/whisper.yaml
index 9c337000d..e7ece7e3d 100644
--- a/apps/argocd/base/home/whisper.yaml
+++ b/apps/argocd/base/home/whisper.yaml
@@ -2,8 +2,6 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: whisper
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: apps
source:
@@ -17,17 +15,22 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: true
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- Prune=true
- ServerSideApply=true
retry:
- limit: 5
+ limit: 10
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/openai/whisper
+ - name: "Wyoming Github Repository:"
+ value: >-
+ https://github.com/rhasspy/wyoming-faster-whisper
+ - name: "Homelab documentation:"
+ value: >-
+ https://github.com/gruberdev/homelab/tree/main/apps/home/whisper
diff --git a/apps/argocd/base/ingress.yaml b/apps/argocd/base/ingress.yaml
new file mode 100644
index 000000000..6f0b932c8
--- /dev/null
+++ b/apps/argocd/base/ingress.yaml
@@ -0,0 +1,21 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: argo
+ annotations:
+ tailscale.com/funnel: "true"
+spec:
+ rules:
+ - http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: argocd-server
+ port:
+ number: 80
+ ingressClassName: tailscale
+ tls:
+ - hosts:
+ - argo
diff --git a/apps/argocd/base/matrix/dendrite.yaml b/apps/argocd/base/matrix/dendrite.yaml
deleted file mode 100644
index 19623b826..000000000
--- a/apps/argocd/base/matrix/dendrite.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: dendrite
-spec:
- project: matrix
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/dendrite
- targetRevision: main
- destination:
- namespace: matrix1
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/matrix/discord.yaml b/apps/argocd/base/matrix/discord.yaml
deleted file mode 100644
index 7109f1beb..000000000
--- a/apps/argocd/base/matrix/discord.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: discord-bridge
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: matrix
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/bridges/discord
- targetRevision: main
- destination:
- namespace: matrix1
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/matrix/element.yaml b/apps/argocd/base/matrix/element.yaml
deleted file mode 100644
index cb7be7fa8..000000000
--- a/apps/argocd/base/matrix/element.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: element
-spec:
- project: matrix
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/element
- targetRevision: main
- destination:
- namespace: matrix
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: -1
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/matrix/instagram.yaml b/apps/argocd/base/matrix/instagram.yaml
deleted file mode 100644
index 082680788..000000000
--- a/apps/argocd/base/matrix/instagram.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: instagram-bridge
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: matrix
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/bridges/instagram
- targetRevision: main
- destination:
- namespace: matrix1
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/matrix/linkedin.yaml b/apps/argocd/base/matrix/linkedin.yaml
deleted file mode 100644
index e14ad9818..000000000
--- a/apps/argocd/base/matrix/linkedin.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: linkedin-bridge
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: matrix
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/bridges/linkedin
- targetRevision: main
- destination:
- namespace: matrix1
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/matrix/proxies.yaml b/apps/argocd/base/matrix/proxies.yaml
deleted file mode 100644
index 7f58c9822..000000000
--- a/apps/argocd/base/matrix/proxies.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: proxies
-spec:
- project: matrix
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/proxies
- targetRevision: main
- destination:
- namespace: matrix
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: -1
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/matrix/signal.yaml b/apps/argocd/base/matrix/signal.yaml
deleted file mode 100644
index e30aa63d9..000000000
--- a/apps/argocd/base/matrix/signal.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: signal-bridge
-spec:
- project: matrix
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/bridges/signal
- targetRevision: main
- destination:
- namespace: matrix
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: -1
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/matrix/steam.yaml b/apps/argocd/base/matrix/steam.yaml
deleted file mode 100644
index f5a2bf2bd..000000000
--- a/apps/argocd/base/matrix/steam.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: steam-bridge
-spec:
- project: matrix
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/bridges/steam
- targetRevision: main
- destination:
- namespace: matrix
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: -1
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/matrix/synapse.yaml b/apps/argocd/base/matrix/synapse.yaml
deleted file mode 100644
index 11f1a7939..000000000
--- a/apps/argocd/base/matrix/synapse.yaml
+++ /dev/null
@@ -1,351 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: synapse
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: matrix
- source:
- repoURL: https://gitlab.com/ananace/charts.git
- targetRevision: master
- path: charts/matrix-synapse
- helm:
- releaseName: matrix
- values: |
- image:
- repository: matrixdotorg/synapse
- # tag: ''
- pullPolicy: IfNotPresent
- serverName: 'matrix.gruber.dev.br'
- publicServerName: 'matrix.gruber.dev.br'
- signingkey:
- job:
- enabled: false
- existingSecret: matrix-signingkey
- existingSecretKey: signing.key
- config:
- publicBaseurl: 'https://matrix.gruber.dev.br'
- reportStats: false
- enableRegistration: true
- registrationSharedSecret:
- macaroonSecretKey:
- trustedKeyServers:
- - server_name: matrix.org
- extraListeners: []
- extraConfig:
- enable_registration_without_verification: true
- app_service_config_files:
- - /bridges/whatsapp.yaml
- - /instagram/instagram.yaml
- - /linkedin/linkedin.yaml
- extraSecrets: {}
- synapse:
- strategy:
- type: Recreate
- annotations:
- prometheus.io/scrape: "true"
- prometheus.io/path: "/_synapse/metrics"
- prometheus.io/port: "9090"
- reloader.stakater.com/auto: "true"
- labels: {}
- nodeSelector:
- kubernetes.io/hostname: node-one
- extraEnv: []
- extraVolumes:
- - name: bridges
- persistentVolumeClaim:
- claimName: bridge-config-storage
- - name: instagram-bridge
- persistentVolumeClaim:
- claimName: registration-instagram-matrix
- - name: linkedin-bridge
- persistentVolumeClaim:
- claimName: registration-linkedin-matrix
- extraVolumeMounts:
- - name: bridges
- mountPath: /bridges
- - name: instagram-bridge
- mountPath: /instagram
- - name: linkedin-bridge
- mountPath: /linkedin
- extraCommands: []
- podSecurityContext:
- fsGroup: 0
- runAsGroup: 0
- runAsUser: 0
- securityContext:
- runAsNonRoot: false
- runAsUser: 0
- resources:
- limits:
- cpu: 800m
- memory: 1500Mi
- requests:
- cpu: 300m
- memory: 500Mi
- livenessProbe:
- httpGet:
- path: /health
- port: http
- periodSeconds: 15
- initialDelaySeconds: 45
- readinessProbe:
- httpGet:
- path: /health
- port: http
- periodSeconds: 5
- initialDelaySeconds: 10
- tolerations: []
- affinity: {}
- workers:
- default:
- replicaCount: 1
- strategy:
- type: Recreate
- annotations:
- prometheus.io/scrape: "true"
- prometheus.io/path: "/_synapse/metrics"
- prometheus.io/port: "9090"
- reloader.stakater.com/auto: "true"
- extraEnv: []
- volumes:
- - name: bridges
- persistentVolumeClaim:
- claimName: bridge-config-storage
- - name: instagram-bridge
- persistentVolumeClaim:
- claimName: registration-instagram-matrix
- - name: linkedin-bridge
- persistentVolumeClaim:
- claimName: registration-linkedin-matrix
- volumeMounts:
- - name: bridges
- mountPath: /bridges
- - name: instagram-bridge
- mountPath: /instagram
- - name: linkedin-bridge
- mountPath: /linkedin
- podSecurityContext: {}
- securityContext: {}
- resources:
- limits:
- cpu: 850m
- memory: 1500Mi
- requests:
- cpu: 250m
- memory: 512Mi
- livenessProbe:
- httpGet:
- path: /health
- port: metrics
- periodSeconds: 15
- initialDelaySeconds: 45
- readinessProbe:
- httpGet:
- path: /health
- port: metrics
- periodSeconds: 5
- initialDelaySeconds: 10
- startupProbe:
- failureThreshold: 6
- httpGet:
- path: /health
- port: metrics
- initialDelaySeconds: 120
- tolerations: []
- affinity: {}
- generic_worker:
- enabled: true
- generic: true
- listeners: [client, federation]
- csPaths:
- ## Sync requests
- - "/_matrix/client/(r0|v3)/sync$"
- - "/_matrix/client/(api/v1|r0|v3)/events$"
- - "/_matrix/client/(api/v1|r0|v3)/initialSync$"
- - "/_matrix/client/(api/v1|r0|v3)/rooms/[^/]+/initialSync$"
- ## Client API requests
- - "/_matrix/client/(api/v1|r0|v3|unstable)/createRoom$"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/publicRooms$"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/joined_members$"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/context/"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/members$"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state$"
- - "/_matrix/client/v1/rooms/.*/hierarchy$"
- - "/_matrix/client/unstable/org.matrix.msc2716/rooms/.*/batch_send$"
- - "/_matrix/client/unstable/im.nheko.summary/rooms/.*/summary$"
- - "/_matrix/client/(r0|v3|unstable)/account/3pid$"
- - "/_matrix/client/(r0|v3|unstable)/account/whoami$"
- - "/_matrix/client/(r0|v3|unstable)/devices$"
- - "/_matrix/client/versions$"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/voip/turnServer$"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/event/"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/joined_rooms$"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/search$"
- - "/_matrix/client/(r0|v3|unstable)/keys/query$"
- - "/_matrix/client/(r0|v3|unstable)/keys/changes$"
- - "/_matrix/client/(r0|v3|unstable)/keys/claim$"
- - "/_matrix/client/(r0|v3|unstable)/room_keys/"
- ## Registration/login requests
- - "/_matrix/client/(api/v1|r0|v3|unstable)/login$"
- - "/_matrix/client/(r0|v3|unstable)/register$"
- - "/_matrix/client/v1/register/m.login.registration_token/validity$"
- ## Event sending requests
- - "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/redact"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/send"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state/"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/(join|invite|leave|ban|unban|kick)$"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/join/"
- - "/_matrix/client/(api/v1|r0|v3|unstable)/profile/"
- ## User directory search requests
- - "/_matrix/client/(r0|v3|unstable)/user_directory/search"
- ## Worker event streams
- ## See https://matrix-org.github.io/synapse/latest/workers.html#stream-writers
- ##
- ## The typing event stream
- - "/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/typing"
- ## The to_device event stream
- - "/_matrix/client/(r0|v3|unstable)/sendToDevice/"
- ## The account_data event stream
- - "/_matrix/client/(r0|v3|unstable)/.*/tags"
- - "/_matrix/client/(r0|v3|unstable)/.*/account_data"
- ## The receipts event stream
- - "/_matrix/client/(r0|v3|unstable)/rooms/.*/receipt"
- - "/_matrix/client/(r0|v3|unstable)/rooms/.*/read_markers"
- ## The presence event stream
- - "/_matrix/client/(api/v1|r0|v3|unstable)/presence/"
- pusher:
- enabled: false
- appservice:
- enabled: false
- federation_sender:
- enabled: false
- media_repository:
- enabled: false
- listeners: [media]
- csPaths:
- - "/_matrix/media/.*"
- - "/_synapse/admin/v1/purge_media_cache$"
- - "/_synapse/admin/v1/room/.*/media"
- - "/_synapse/admin/v1/user/.*/media"
- - "/_synapse/admin/v1/media/"
- - "/_synapse/admin/v1/quarantine_media/"
- - "/_synapse/admin/v1/users/.*/media$"
- paths:
- - "/_matrix/media/.*"
- user_dir:
- enabled: false
- listeners: [client]
- csPaths:
- - "/_matrix/client/(api/v1|r0|v3|unstable)/user_directory/search$"
- frontend_proxy:
- enabled: false
- listeners: [client]
- csPaths:
- - "/_matrix/client/(api/v1|r0|v3|unstable)/keys/upload"
- wellknown:
- enabled: false
- replicaCount: 1
- # Lighttpd does not bind on IPv6 by default, although this is required in
- # Ipv6-only clusters.
- useIpv6: true
- ## The host and port combo to serve on .well-known/matrix/server.
- ##
- server: {}
- # m.server: matrix.example.com:443
- ## Data to serve on .well-known/matrix/client.
- ##
- client: {}
- # m.homeserver:
- # base_url: https://matrix.example.com
- ## Extra data objects to serve under .well-known/matrix/
- ## Dictionaries will be JSON converted, plain strings will be served as they are
- ##
- extraData: {}
- ## MSC1929 example;
- # support:
- # admins:
- # - matrix_id: '@admin:example.com'
- # email_address: 'admin@example.com'
- # role: 'admin'
- # support_page: 'https://example.com/support'
- ## A custom htdocs path, useful when running another image.
- ##
- htdocsPath: /var/www/localhost/htdocs
- image:
- repository: m4rcu5/lighttpd
- tag: latest
- pullPolicy: IfNotPresent
- podSecurityContext: {}
- securityContext: {}
- resources: {}
- tolerations: []
- affinity: {}
- postgresql:
- enabled: false
- externalPostgresql:
- host: db-matrix.matrix1.svc.cluster.local
- port: 5432
- user: synapse
- existingSecret: synapse.db-matrix.credentials.postgresql.acid.zalan.do
- existingSecretPasswordKey: password
- database: matrix
- sslmode: require
- extraArgs: {}
- redis:
- enabled: false
- externalRedis:
- host: matrix-redis.matrix1.svc.cluster.local
- port: 6379
- existingSecret: synapse-redis
- existingSecretPasswordKey: passkey
- persistence:
- enabled: true
- existingClaim: synapse-data
- storageClass: "iscsi"
- accessMode: ReadWriteOnce
- size: 15Gi
- volumePermissions:
- enabled: true
- uid: 0
- gid: 0
- image:
- repository: alpine
- tag: latest
- pullPolicy: IfNotPresent
- resources:
- limits:
- cpu: 150m
- memory: 400Mi
- requests:
- cpu: 100m
- memory: 200Mi
- service:
- type: ClusterIP
- port: 8008
- targetPort: http
- ingress:
- enabled: false
-
- destination:
- namespace: matrix1
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=background
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 5s
- factor: 2
- maxDuration: 3m
diff --git a/apps/argocd/base/matrix/telegram.yaml b/apps/argocd/base/matrix/telegram.yaml
deleted file mode 100644
index 645deb592..000000000
--- a/apps/argocd/base/matrix/telegram.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: telegram-bridge
-spec:
- project: matrix
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/bridges/telegram
- targetRevision: main
- destination:
- namespace: matrix
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: -1
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/matrix/whats.yaml b/apps/argocd/base/matrix/whats.yaml
deleted file mode 100644
index 653d3b98b..000000000
--- a/apps/argocd/base/matrix/whats.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: whatsapp-bridge
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: matrix
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/matrix/bridges/whatsapp
- targetRevision: main
- destination:
- namespace: matrix1
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/mlops/chroma.yaml b/apps/argocd/base/mlops/chroma.yaml
deleted file mode 100644
index ec6d9fc1d..000000000
--- a/apps/argocd/base/mlops/chroma.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: chroma
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: https://github.com/amikos-tech/chromadb-chart.git
- targetRevision: d5b9b61
- path: charts/chromadb-chart
- helm:
- releaseName: chroma
- values: |
- replicaCount: 1
- image:
- # repository: ghcr.io/chroma-core/chroma
- repository: ghcr.io/amikos-tech/chromadb-chart/chroma
- pullPolicy: Always
- imagePullSecrets: [ ]
- nameOverride: ""
- fullnameOverride: ""
- serviceAccount:
- create: true
- annotations: { }
- name: ""
- service:
- type: ClusterIP
- resources:
- limits:
- cpu: 1500m
- memory: 2048Mi
- requests:
- cpu: 500m
- memory: 512Mi
- autoscaling:
- enabled: false
- nodeSelector: { }
- podSpec:
- terminationGracePeriodSeconds: 5
- securityContext: { }
- annotations: { }
- initContainers: [ ]
- readinessProbe:
- failureThreshold: 20
- timeoutSeconds: 10
- periodSeconds: 5
- livenessProbe:
- failureThreshold: 40
- timeoutSeconds: 10
- periodSeconds: 5
- startupProbe:
- failureThreshold: 1000
- periodSeconds: 5
- initialDelaySeconds: 10
- chromadb:
- apiVersion: "0.4.3"
- allowReset: true
- isPersistent: true
- persistDirectory: /index_data
- logConfigFileLocation: config/log_config.yaml
- anonymizedTelemetry: false
- corsAllowOrigins:
- - "*"
- apiImpl: "chromadb.api.segment.SegmentAPI"
- serverHost: "0.0.0.0"
- serverHttpPort: 8000
- dataVolumeSize: "15Gi"
- dataVolumeStorageClass: "iscsi"
- destination:
- namespace: mlops
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=false
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 3
- backoff:
- duration: 60s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/mlops/discord-bot.yaml b/apps/argocd/base/mlops/discord-bot.yaml
deleted file mode 100644
index af7b768bd..000000000
--- a/apps/argocd/base/mlops/discord-bot.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: discord-bot-gpt
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/mlops/discord-bot
- targetRevision: main
- destination:
- namespace: mlops
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - Replace=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/mlops/k8sgpt.yaml b/apps/argocd/base/mlops/k8sgpt.yaml
deleted file mode 100644
index d7792dbe0..000000000
--- a/apps/argocd/base/mlops/k8sgpt.yaml
+++ /dev/null
@@ -1,58 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: k8sgpt
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: https://charts.k8sgpt.ai/
- chart: k8sgpt-operator
- targetRevision: 0.0.28
- helm:
- releaseName: k8sgpt
- values: |
- deployment:
- image:
- repository: ghcr.io/k8sgpt-ai/k8sgpt
- tag: v0.3.13
- imagePullPolicy: Always
- env:
- model: "gpt-3.5-turbo"
- backend: "openai"
- resources:
- limits:
- cpu: 550m
- memory: 512Mi
- requests:
- cpu: 120m
- memory: 156Mi
- secret:
- secretKey:
- service:
- type: ClusterIP
- annotations: {}
- serviceMonitor:
- enabled: false
- destination:
- namespace: mlops
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: false
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 10
- backoff:
- duration: 30s
- factor: 2
- maxDuration: 60m
diff --git a/apps/argocd/base/mlops/kustomization.yaml b/apps/argocd/base/mlops/kustomization.yaml
index b8d3ea764..b727fa364 100644
--- a/apps/argocd/base/mlops/kustomization.yaml
+++ b/apps/argocd/base/mlops/kustomization.yaml
@@ -3,6 +3,8 @@ kind: Kustomization
resources:
#- milvus.yaml
- - localai.yaml
+ # - localai.yaml
+ # - discord-bot.yaml
+- sillytavern.yaml
namespace: argocd
diff --git a/apps/argocd/base/mlops/localai.yaml b/apps/argocd/base/mlops/localai.yaml
index 0de6ef6b6..036b97498 100644
--- a/apps/argocd/base/mlops/localai.yaml
+++ b/apps/argocd/base/mlops/localai.yaml
@@ -2,13 +2,11 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: local-ai
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
- project: apps
+ project: mlops
source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/mlops/local-ai
+ repoURL: "https://github.com/gruberdev/homelab.git"
+ path: apps/mlops/local-ai
targetRevision: main
destination:
namespace: mlops
@@ -17,17 +15,26 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: true
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - Prune=true
+ - ServerSideApply=true
+ - CreateNamespace=true
retry:
limit: 5
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/mudler/LocalAI
+ - name: "Official Documentation:"
+ value: >-
+ https://localai.io/
diff --git a/apps/argocd/base/mlops/memory-plugin.yaml b/apps/argocd/base/mlops/memory-plugin.yaml
deleted file mode 100644
index 45521fcfe..000000000
--- a/apps/argocd/base/mlops/memory-plugin.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: memory-plugin-gpt
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/mlops/memory-plugin
- targetRevision: main
- destination:
- namespace: chatgpt
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - Replace=true
- retry:
- limit: 5
- backoff:
- duration: 60s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/mlops/milvus.yaml b/apps/argocd/base/mlops/milvus.yaml
index 379b85017..ff935aaf5 100644
--- a/apps/argocd/base/mlops/milvus.yaml
+++ b/apps/argocd/base/mlops/milvus.yaml
@@ -21,6 +21,9 @@ spec:
managedNamespaceMetadata:
labels:
prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
syncOptions:
- Validate=false
- CreateNamespace=true
diff --git a/apps/argocd/base/mlops/qdrant.yaml b/apps/argocd/base/mlops/qdrant.yaml
deleted file mode 100644
index c513c2364..000000000
--- a/apps/argocd/base/mlops/qdrant.yaml
+++ /dev/null
@@ -1,114 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: qdrant
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: https://qdrant.github.io/qdrant-helm
- chart: qdrant
- targetRevision: 0.7.6
- helm:
- releaseName: qdrant
- values: |
- replicaCount: 1
- image:
- repository: qdrant/qdrant
- pullPolicy: IfNotPresent
- tag: v1.4.1
- args:
- - ./config/initialize.sh
- service:
- type: ClusterIP
- ports:
- - name: http
- port: 6333
- targetPort: 6333
- protocol: TCP
- checksEnabled: true
- - name: grpc
- port: 6334
- targetPort: 6334
- protocol: TCP
- checksEnabled: false
- - name: p2p
- port: 6335
- targetPort: 6335
- protocol: TCP
- checksEnabled: false
- ingress:
- enabled: false
- livenessProbe:
- enabled: false
- initialDelaySeconds: 5
- periodSeconds: 5
- timeoutSeconds: 1
- failureThreshold: 6
- successThreshold: 1
- readinessProbe:
- enabled: false
- initialDelaySeconds: 5
- periodSeconds: 5
- timeoutSeconds: 1
- failureThreshold: 6
- successThreshold: 1
- startupProbe:
- enabled: false
- initialDelaySeconds: 10
- periodSeconds: 5
- timeoutSeconds: 1
- failureThreshold: 30
- successThreshold: 1
- resources:
- limits:
- cpu: 300m
- memory: 512Mi
- requests:
- cpu: 100m
- memory: 128Mi
- persistence:
- accessModes:
- - ReadWriteOnce
- size: 10Gi
- storageClassName: iscsi
- snapshotRestoration:
- enabled: false
- config:
- cluster:
- enabled: true
- p2p:
- port: 6335
- consensus:
- tick_period_ms: 100
- updateConfigurationOnChange: true
- metrics:
- enabled: true
- serviceMonitor:
- enabled: true
- scrapeInterval: 30s
- scrapeTimeout: 10s
- targetPort: rest
- targetPath: /metrics
- destination:
- namespace: mlops
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=false
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 3
- backoff:
- duration: 60s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/mlops/sillytavern.yaml b/apps/argocd/base/mlops/sillytavern.yaml
new file mode 100644
index 000000000..5ad70ddcd
--- /dev/null
+++ b/apps/argocd/base/mlops/sillytavern.yaml
@@ -0,0 +1,40 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: sillytavern
+spec:
+ project: mlops
+ source:
+ repoURL: "https://github.com/gruberdev/homelab.git"
+ path: apps/mlops/sillytavern
+ targetRevision: main
+ destination:
+ namespace: mlops
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ - CreateNamespace=true
+ retry:
+ limit: 5
+ backoff:
+ duration: 20s
+ factor: 2
+ maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/mudler/LocalAI
+ - name: "Official Documentation:"
+ value: >-
+ https://localai.io/
diff --git a/apps/argocd/base/mlops/turbopilot.yaml b/apps/argocd/base/mlops/turbopilot.yaml
deleted file mode 100644
index 2c7e268d5..000000000
--- a/apps/argocd/base/mlops/turbopilot.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: turbopilot
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/mlops/turbopilot
- targetRevision: main
- destination:
- namespace: mlops
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/mlops/wandb.yaml b/apps/argocd/base/mlops/wandb.yaml
deleted file mode 100644
index 539c1f1c3..000000000
--- a/apps/argocd/base/mlops/wandb.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: wandb
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/mlops/wandb
- targetRevision: main
- destination:
- namespace: mlops
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 10
- backoff:
- duration: 60s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/monitoring/botkube.yaml b/apps/argocd/base/monitoring/botkube.yaml
deleted file mode 100644
index 6061fafc2..000000000
--- a/apps/argocd/base/monitoring/botkube.yaml
+++ /dev/null
@@ -1,427 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: botkube
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: monitoring
- source:
- repoURL: https://charts.botkube.io
- chart: botkube
- targetRevision: v1.8.0
- helm:
- releaseName: botkube
- values: |
- actions:
- describe-created-resource:
- bindings:
- executors:
- - k8s-default-tools
- sources:
- - k8s-create-events
- command: kubectl describe {{ .Event.TypeMeta.Kind | lower }}{{ if .Event.Namespace
- }} -n {{ .Event.Namespace }}{{ end }} {{ .Event.Name }}
- displayName: Describe created resource
- enabled: false
- show-logs-on-error:
- bindings:
- executors:
- - k8s-default-tools
- sources:
- - k8s-err-with-logs-events
- command: kubectl logs {{ .Event.TypeMeta.Kind | lower }}/{{ .Event.Name }} -n
- {{ .Event.Namespace }}
- displayName: Show logs on error
- enabled: false
- aliases:
- k:
- command: kubectl
- displayName: Kubectl alias
- kc:
- command: kubectl
- displayName: Kubectl alias
- analytics:
- disable: true
- communications:
- default-group:
- discord:
- botID:
- channels:
- default:
- bindings:
- executors:
- - k8s-default-tools
- sources:
- - k8s-err-events
- - k8s-recommendation-events
- id:
- notification:
- disabled: false
- enabled: true
- token:
- elasticsearch:
- enabled: false
- mattermost:
- enabled: false
- socketSlack:
- enabled: false
- teams:
- enabled: false
- webhook:
- enabled: false
- config:
- provider:
- endpoint: https://api.botkube.io/graphql
- configWatcher:
- enabled: true
- image:
- pullPolicy: IfNotPresent
- registry: ghcr.io
- repository: kubeshop/k8s-sidecar
- tag: ignore-initial-events
- initialSyncTimeout: 0
- tmpDir: /tmp/watched-cfg/
- containerSecurityContext:
- allowPrivilegeEscalation: false
- privileged: false
- readOnlyRootFilesystem: true
- executors:
- k8s-default-tools:
- botkube/helm:
- config:
- defaultNamespace: default
- helmCacheDir: /tmp/helm/.cache
- helmConfigDir: /tmp/helm/
- helmDriver: secret
- context:
- defaultNamespace: default
- rbac:
- group:
- static:
- values:
- - botkube-plugins-default
- type: Static
- enabled: false
- botkube/kubectl:
- config:
- defaultNamespace: default
- context:
- defaultNamespace: default
- rbac:
- group:
- static:
- values:
- - botkube-plugins-default
- type: Static
- enabled: false
- extraEnv:
- - name: LOG_LEVEL_SOURCE_BOTKUBE_KUBERNETES
- value: debug
- image:
- pullPolicy: IfNotPresent
- registry: ghcr.io
- repository: kubeshop/botkube
- tag: v1.0.0
- ingress:
- create: false
- kubeconfig:
- base64Config:
- enabled: true
- plugins:
- cacheDir: /tmp
- repositories:
- botkube:
- url: https://github.com/kubeshop/botkube/releases/download/v1.0.0/plugins-index.yaml
- podSecurityPolicy:
- enabled: false
- rbac:
- create: true
- rules:
- - apiGroups:
- - '*'
- resources:
- - '*'
- verbs:
- - get
- - watch
- - list
- staticGroupName: botkube-plugins-default
- replicaCount: 1
- resources:
- limits:
- cpu: 200m
- memory: 350Mi
- requests:
- cpu: 100m
- memory: 128Mi
- securityContext:
- runAsGroup: 101
- runAsUser: 101
- service:
- name: metrics
- port: 2112
- targetPort: 2112
- serviceAccount:
- create: true
- serviceMonitor:
- enabled: false
- interval: 10s
- path: /metrics
- port: metrics
- settings:
- clusterName: not-configured
- healthPort: 2114
- lifecycleServer:
- enabled: true
- port: 2113
- log:
- disableColors: false
- level: info
- persistentConfig:
- runtime:
- configMap:
- name: botkube-runtime-config
- fileName: _runtime_state.yaml
- startup:
- configMap:
- name: botkube-startup-config
- fileName: _startup_state.yaml
- systemConfigMap:
- name: botkube-system
- upgradeNotifier: true
- sources:
- k8s-all-events:
- botkube/kubernetes:
- config:
- event:
- types:
- - create
- - delete
- - error
- filters:
- nodeEventsChecker: true
- objectAnnotationChecker: true
- namespaces:
- include:
- - .*
- resources:
- - type: v1/pods
- - type: v1/services
- - type: networking.k8s.io/v1/ingresses
- - type: v1/nodes
- - type: v1/namespaces
- - type: v1/persistentvolumes
- - type: v1/persistentvolumeclaims
- - type: v1/configmaps
- - type: rbac.authorization.k8s.io/v1/roles
- - type: rbac.authorization.k8s.io/v1/rolebindings
- - type: rbac.authorization.k8s.io/v1/clusterrolebindings
- - type: rbac.authorization.k8s.io/v1/clusterroles
- - event:
- types:
- - create
- - update
- - delete
- - error
- type: apps/v1/daemonsets
- updateSetting:
- fields:
- - spec.template.spec.containers[*].image
- - status.numberReady
- includeDiff: true
- - event:
- types:
- - create
- - update
- - delete
- - error
- type: batch/v1/jobs
- updateSetting:
- fields:
- - spec.template.spec.containers[*].image
- - status.conditions[*].type
- includeDiff: true
- - event:
- types:
- - create
- - update
- - delete
- - error
- type: apps/v1/deployments
- updateSetting:
- fields:
- - spec.template.spec.containers[*].image
- - status.availableReplicas
- includeDiff: true
- - event:
- types:
- - create
- - update
- - delete
- - error
- type: apps/v1/statefulsets
- updateSetting:
- fields:
- - spec.template.spec.containers[*].image
- - status.readyReplicas
- includeDiff: true
- context:
- defaultNamespace: default
- rbac:
- group:
- static:
- values:
- - botkube-plugins-default
- type: Static
- enabled: true
- displayName: Kubernetes Info
- k8s-create-events:
- botkube/kubernetes:
- config:
- event:
- types:
- - create
- namespaces:
- include:
- - .*
- resources:
- - type: v1/pods
- - type: v1/services
- - type: networking.k8s.io/v1/ingresses
- - type: v1/nodes
- - type: v1/namespaces
- - type: v1/configmaps
- - type: apps/v1/deployments
- - type: apps/v1/statefulsets
- - type: apps/v1/daemonsets
- - type: batch/v1/jobs
- context:
- defaultNamespace: default
- rbac:
- group:
- static:
- values:
- - botkube-plugins-default
- type: Static
- enabled: true
- displayName: Kubernetes Resource Created Events
- k8s-err-events:
- botkube/kubernetes:
- config:
- event:
- types:
- - error
- namespaces:
- include:
- - .*
- resources:
- - type: v1/pods
- - type: v1/services
- - type: networking.k8s.io/v1/ingresses
- - type: v1/nodes
- - type: v1/namespaces
- - type: v1/persistentvolumes
- - type: v1/persistentvolumeclaims
- - type: v1/configmaps
- - type: rbac.authorization.k8s.io/v1/roles
- - type: rbac.authorization.k8s.io/v1/rolebindings
- - type: rbac.authorization.k8s.io/v1/clusterrolebindings
- - type: rbac.authorization.k8s.io/v1/clusterroles
- - type: apps/v1/deployments
- - type: apps/v1/statefulsets
- - type: apps/v1/daemonsets
- - type: batch/v1/jobs
- context:
- defaultNamespace: default
- rbac:
- group:
- static:
- values:
- - botkube-plugins-default
- type: Static
- enabled: true
- displayName: Kubernetes Errors
- k8s-err-with-logs-events:
- botkube/kubernetes:
- config:
- event:
- types:
- - error
- namespaces:
- include:
- - .*
- resources:
- - type: v1/pods
- - type: apps/v1/deployments
- - type: apps/v1/statefulsets
- - type: apps/v1/daemonsets
- - type: batch/v1/jobs
- context:
- defaultNamespace: default
- rbac:
- group:
- static:
- values:
- - botkube-plugins-default
- type: Static
- enabled: true
- displayName: Kubernetes Errors for resources with logs
- k8s-recommendation-events:
- botkube/kubernetes:
- config:
- namespaces:
- include:
- - .*
- recommendations:
- ingress:
- backendServiceValid: true
- tlsSecretValid: true
- pod:
- labelsSet: true
- noLatestImageTag: true
- context:
- defaultNamespace: default
- rbac:
- group:
- static:
- values:
- - botkube-plugins-default
- type: Static
- enabled: true
- displayName: Kubernetes Recommendations
- prometheus:
- botkube/prometheus:
- config:
- alertStates:
- - firing
- - pending
- - inactive
- ignoreOldAlerts: true
- log:
- level: info
- url: http://localhost:9090
- enabled: false
- ssl:
- enabled: false
- destination:
- namespace: monitoring
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=false
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/monitoring/kube-prometheus.yaml b/apps/argocd/base/monitoring/kube-prometheus.yaml
index a5e4c1086..e151ecff1 100644
--- a/apps/argocd/base/monitoring/kube-prometheus.yaml
+++ b/apps/argocd/base/monitoring/kube-prometheus.yaml
@@ -9,19 +9,15 @@ spec:
path: apps/monitoring/kube-prometheus
targetRevision: main
destination:
- namespace: argocd
+ namespace: monitoring
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
- allowEmpty: false
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - ServerSideApply=true
+ - Prune=true
retry:
limit: 5
backoff:
diff --git a/apps/argocd/base/monitoring/kuma.yaml b/apps/argocd/base/monitoring/kuma.yaml
index 9bbaf5667..68ee26d56 100644
--- a/apps/argocd/base/monitoring/kuma.yaml
+++ b/apps/argocd/base/monitoring/kuma.yaml
@@ -2,8 +2,6 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: uptime-kuma
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: monitoring
source:
@@ -17,17 +15,18 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: true
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - Replace=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - CreateNamespace=true
+ - ServerSideApply=true
+ - Prune=true
retry:
- limit: -1
+ limit: 5
backoff:
duration: 20s
factor: 2
diff --git a/apps/argocd/base/networking/external-dns/kustomization.yaml b/apps/argocd/base/monitoring/kustomization.yaml
similarity index 59%
rename from apps/argocd/base/networking/external-dns/kustomization.yaml
rename to apps/argocd/base/monitoring/kustomization.yaml
index 4c26ae5da..80274b4f6 100644
--- a/apps/argocd/base/networking/external-dns/kustomization.yaml
+++ b/apps/argocd/base/monitoring/kustomization.yaml
@@ -1,11 +1,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
-
resources:
+- kube-prometheus.yaml
+- kuma.yaml
# - nextdns.yaml
-- cloudflare.yaml
+# - unifi-poller.yaml
namespace: argocd
-
-commonLabels:
- app.kubernetes.io/project: external-dns
diff --git a/apps/argocd/base/monitoring/nextdns.yaml b/apps/argocd/base/monitoring/nextdns.yaml
index e79b25846..bbabda3be 100644
--- a/apps/argocd/base/monitoring/nextdns.yaml
+++ b/apps/argocd/base/monitoring/nextdns.yaml
@@ -17,15 +17,9 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: true
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - Replace=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - ServerSideApply=true
+ - Prune=true
retry:
limit: 5
backoff:
diff --git a/apps/argocd/base/monitoring/nvidia.yaml b/apps/argocd/base/monitoring/nvidia.yaml
deleted file mode 100644
index 64e5c9cd1..000000000
--- a/apps/argocd/base/monitoring/nvidia.yaml
+++ /dev/null
@@ -1,116 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: nvidia-exporter
-spec:
- project: monitoring
- source:
- repoURL: 'https://github.com/utkuozdemir/helm-charts.git'
- targetRevision: master
- path: nvidia-gpu-exporter
- helm:
- releaseName: nvidia-exporter
- values: |
- image:
- repository: docker.io/utkuozdemir/nvidia_gpu_exporter
- pullPolicy: IfNotPresent
- tag: ""
- imagePullSecrets: []
- nameOverride: ""
- fullnameOverride: ""
- serviceAccount:
- create: true
- annotations: {}
- name: ""
- podAnnotations: {}
- podSecurityContext: {}
- securityContext:
- privileged: true
- service:
- type: ClusterIP
- port: 9835
- nodePort:
- ingress:
- enabled: false
- resources:
- limits:
- cpu: 100m
- memory: 256Mi
- requests:
- cpu: 50m
- memory: 128Mi
- nodeSelector:
- kubernetes.io/hostname: node-one
- tolerations: []
- affinity: {}
- port: 9835
- hostPort:
- enabled: true
- port: 9835
- log:
- level: info
- format: logfmt
- queryFieldNames:
- - AUTO
- nvidiaSmiCommand: nvidia-smi
- telemetryPath: /metrics
- volumes:
- - name: nvidiactl
- hostPath:
- path: /dev/nvidiactl
- - name: nvidia0
- hostPath:
- path: /dev/nvidia0
- - name: nvidia-smi
- hostPath:
- path: /usr/bin/nvidia-smi
- - name: libnvidia-ml-so
- hostPath:
- path: /usr/lib/x86_64-linux-gnu/libnvidia-ml.so
- - name: libnvidia-ml-so-1
- hostPath:
- path: /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
- volumeMounts:
- - name: nvidiactl
- mountPath: /dev/nvidiactl
- - name: nvidia0
- mountPath: /dev/nvidia0
- - name: nvidia-smi
- mountPath: /usr/bin/nvidia-smi
- - name: libnvidia-ml-so
- mountPath: /usr/lib/x86_64-linux-gnu/libnvidia-ml.so
- - name: libnvidia-ml-so-1
- mountPath: /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
- serviceMonitor:
- enabled: true
- additionalLabels: {}
- scheme: http
- bearerTokenFile:
- interval:
- tlsConfig: {}
- proxyUrl: ""
- relabelings: []
- metricRelabelings: []
- scrapeTimeout: 10s
-
- destination:
- namespace: monitoring
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: false
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 5s
- factor: 2
- maxDuration: 3m
diff --git a/apps/argocd/base/monitoring/unifi-poller.yaml b/apps/argocd/base/monitoring/unifi-poller.yaml
index 3c887d9a6..286ff7259 100644
--- a/apps/argocd/base/monitoring/unifi-poller.yaml
+++ b/apps/argocd/base/monitoring/unifi-poller.yaml
@@ -11,23 +11,17 @@ spec:
path: apps/networking/unifi/poller
targetRevision: main
destination:
- namespace: unifi
+ namespace: networking
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
- allowEmpty: true
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - Replace=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - ServerSideApply=true
+ - Prune=true
retry:
- limit: -1
+ limit: 5
backoff:
duration: 20s
factor: 2
diff --git a/apps/argocd/base/networking/cert-manager.yaml b/apps/argocd/base/networking/cert-manager.yaml
index 2e2a0f35c..c126ffa58 100644
--- a/apps/argocd/base/networking/cert-manager.yaml
+++ b/apps/argocd/base/networking/cert-manager.yaml
@@ -2,166 +2,68 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: certmanager
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: networking
source:
repoURL: https://charts.jetstack.io
chart: cert-manager
- targetRevision: v1.13.3
+ targetRevision: v1.14.5
helm:
releaseName: cert-manager
values: |
- startupapicheck:
- enabled: false
- acmesolver:
- image:
- repository: quay.io/jetstack/cert-manager-acmesolver
- tag: v1.12.4
+ strategy:
+ type: Recreate
+ namespace: "cert-manager"
+ resources:
+ requests:
+ cpu: 100m
+ memory: 128Mi
+ limits:
+ cpu: 250m
+ memory: 256Mi
cainjector:
- containerSecurityContext:
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- enabled: true
- image:
- pullPolicy: IfNotPresent
- repository: quay.io/jetstack/cert-manager-cainjector
- tag: v1.12.4
- nodeSelector:
- kubernetes.io/arch: amd64
- kubernetes.io/os: linux
- replicaCount: 1
+ strategy:
+ type: Recreate
resources:
- limits:
- cpu: 350m
- memory: 512Mi
requests:
- cpu: 150m
+ cpu: 100m
+ memory: 128Mi
+ limits:
+ cpu: 250m
memory: 256Mi
- securityContext:
- runAsNonRoot: true
- seccompProfile:
- type: RuntimeDefault
- serviceAccount:
- automountServiceAccountToken: true
- create: true
- containerSecurityContext:
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- global:
- leaderElection:
- namespace: kube-system
- logLevel: 2
- podSecurityPolicy:
- enabled: false
- useAppArmor: true
- rbac:
- aggregateClusterRoles: true
- create: true
- image:
- pullPolicy: IfNotPresent
- repository: quay.io/jetstack/cert-manager-controller
- tag: v1.12.4
- installCRDs: true
- maxConcurrentChallenges: 60
- nodeSelector:
- kubernetes.io/arch: amd64
- kubernetes.io/os: linux
- prometheus:
- enabled: true
- servicemonitor:
- enabled: true
- honorLabels: false
- interval: 60s
- path: /metrics
- prometheusInstance: default
- scrapeTimeout: 30s
- targetPort: 9402
- replicaCount: 1
- resources:
- limits:
- cpu: 350m
- memory: 512Mi
- requests:
- cpu: 150m
- memory: 256Mi
- securityContext:
- runAsNonRoot: true
- seccompProfile:
- type: RuntimeDefault
- serviceAccount:
- automountServiceAccountToken: true
- create: true
webhook:
- containerSecurityContext:
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- hostNetwork: false
- image:
- pullPolicy: IfNotPresent
- repository: quay.io/jetstack/cert-manager-webhook
- tag: v1.12.4
- livenessProbe:
- failureThreshold: 3
- initialDelaySeconds: 35
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- networkPolicy:
- egress:
- - ports:
- - port: 80
- protocol: TCP
- - port: 443
- protocol: TCP
- - port: 53
- protocol: TCP
- - port: 53
- protocol: UDP
- to:
- - ipBlock:
- cidr: 0.0.0.0/0
- enabled: false
- ingress:
- - from:
- - ipBlock:
- cidr: 0.0.0.0/0
- nodeSelector:
- kubernetes.io/os: linux
- readinessProbe:
- failureThreshold: 3
- initialDelaySeconds: 5
- periodSeconds: 5
- successThreshold: 1
- timeoutSeconds: 1
- replicaCount: 1
+ strategy:
+ type: Recreate
resources:
- limits:
- cpu: 350m
- memory: 512Mi
requests:
- cpu: 150m
+ cpu: 100m
+ memory: 128Mi
+ limits:
+ cpu: 250m
memory: 256Mi
- securePort: 10250
- securityContext:
- runAsNonRoot: true
- seccompProfile:
- type: RuntimeDefault
- serviceAccount:
- automountServiceAccountToken: true
- create: true
- serviceType: ClusterIP
- timeoutSeconds: 10
destination:
namespace: cert-manager
name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ - CreateNamespace=true
+ retry:
+ limit: 10
+ backoff:
+ duration: 20s
+ factor: 2
+ maxDuration: 15m
info:
- name: 'Github Repository:'
value: >-
@@ -181,23 +83,3 @@ spec:
- name: 'Issuing certificates documentation:'
value: >-
https://cert-manager.io/docs/usage/certificate/
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: false
- managedNamespaceMetadata:
- labels:
- prometheus: enabled
- syncOptions:
- - Validate=false
- - CreateNamespace=true
- - Prune=true
- - RespectIgnoreDifferences=true
- - ServerSideApply=true
- retry:
- limit: 5
- backoff:
- duration: 60s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/networking/external-dns.yaml b/apps/argocd/base/networking/external-dns.yaml
new file mode 100644
index 000000000..2705c43d1
--- /dev/null
+++ b/apps/argocd/base/networking/external-dns.yaml
@@ -0,0 +1,97 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: external-dns-cloudflare
+spec:
+ project: networking
+ sources:
+ - repoURL: https://kubernetes-sigs.github.io/external-dns
+ chart: external-dns
+ targetRevision: 1.14.5
+ helm:
+ releaseName: external-dns-cloudflare
+ values: |
+ shareProcessNamespace: true
+ image:
+ pullPolicy: Always
+ repository: registry.k8s.io/external-dns/external-dns
+ tag: v0.14.0
+ deploymentStrategy:
+ type: Recreate
+ domainFilters:
+ - gruber.dev.br
+ policy: sync
+ registry: txt
+ txtOwnerId: e-dns
+ txtPrefix: auto.
+ interval: 6m
+ provider: cloudflare
+ env:
+ - name: CF_API_KEY
+ value: ""
+ - name: CF_API_EMAIL
+ value: ""
+ rbac:
+ create: true
+ namespaced: false
+ replicaCount: 1
+ resources:
+ limits:
+ cpu: 150m
+ memory: 512Mi
+ requests:
+ cpu: 70m
+ memory: 256Mi
+ service:
+ port: 7979
+ serviceMonitor:
+ enabled: true
+ args:
+ - --events
+ - --log-level=info
+ - --provider=cloudflare
+ - --source=ingress
+ - --source=service
+ - --registry=txt
+ - --txt-owner-id=e-dns
+ - --txt-prefix=auto.
+ - --cloudflare-dns-records-per-page=1000
+ - --interval=6m
+ - --txt-cache-interval=10m
+ - --ingress-class=nginx
+ - --crd-source-apiversion=externaldns.k8s.io/v1alpha1
+ - --crd-source-kind=DNSEndpoint
+ sources: ["crd", "ingress", "service"]
+ triggerLoopOnEvent: false
+ destination:
+ namespace: networking
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ retry:
+ limit: 10
+ backoff:
+ duration: 20s
+ factor: 2
+ maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/kubernetes-sigs/external-dns
+ - name: "Helm chart:"
+ value: >-
+ https://github.com/kubernetes-sigs/external-dns/tree/master/charts/external-dns
+ - name: "Image registry explorer:"
+ value: >-
+ https://explore.ggcr.dev/?repo=registry.k8s.io%2Fexternal-dns%2Fexternal-dns
+ - name: "Official documentation:"
+ value: >-
+ https://kubernetes-sigs.github.io/external-dns
+ - name: "Prometheus metrics overview:"
+ value: >-
+ https://github.com/kubernetes-sigs/external-dns/blob/master/docs/faq.md#what-metrics-can-i-get-from-externaldns-and-what-do-they-mean
diff --git a/apps/argocd/base/networking/external-dns/README.md b/apps/argocd/base/networking/external-dns/README.md
deleted file mode 100644
index 833e57e3c..000000000
--- a/apps/argocd/base/networking/external-dns/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## External-DNS
diff --git a/apps/argocd/base/networking/external-dns/cloudflare.yaml b/apps/argocd/base/networking/external-dns/cloudflare.yaml
deleted file mode 100644
index a7c457a0b..000000000
--- a/apps/argocd/base/networking/external-dns/cloudflare.yaml
+++ /dev/null
@@ -1,134 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: external-dns-cloudflare
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: networking
- sources:
- - repoURL: https://kubernetes-sigs.github.io/external-dns
- chart: external-dns
- targetRevision: 1.14.3
- helm:
- releaseName: external-dns-cloudflare
- values: |
- nameOverride: "external-dns-cloudflare"
- domainFilters:
- - gruber.dev.br
- clusterDomain: cluster.local
- combineFQDNAnnotation: false
- containerPorts:
- http: 7979
- crd:
- create: true
- designate:
- customCA:
- enabled: false
- filename: designate-ca.pem
- mountPath: /config/designate
- dryRun: false
- forceTxtOwnerId: false
- ignoreHostnameAnnotation: false
- image:
- pullPolicy: Always
- repository: registry.k8s.io/external-dns/external-dns
- tag: v0.13.6
- infoblox:
- noSslVerify: false
- wapiUsername: admin
- interval: 1m
- logFormat: text
- logLevel: debug
- ns1:
- minTTL: 10
- pdns:
- apiPort: "8081"
- podAntiAffinityPreset: soft
- policy: sync
- podAnnotations:
- reloader.stakater.com/auto: "true"
- provider: cloudflare
- env:
- - name: CF_API_KEY
- value: ""
- - name: CF_API_EMAIL
- value: ""
- publishHostIP: false
- publishInternalServices: true
- rbac:
- apiVersion: v1
- clusterRole: true
- create: true
- pspEnabled: false
- registry: txt
- txtOwnerId: external-dns
- textPrefix: unique
- replicaCount: 1
- resources:
- limits:
- cpu: 250m
- memory: 512Mi
- requests:
- cpu: 70m
- memory: 150Mi
- rfc2136:
- minTTL: 0s
- port: 53
- rfc3645Enabled: false
- tsigAxfr: true
- tsigKeyname: externaldns-key
- tsigSecretAlg: hmac-sha256
- service:
- enabled: true
- externalTrafficPolicy: Cluster
- ports:
- http: 7979
- sessionAffinity: None
- type: ClusterIP
- serviceAccount:
- automountServiceAccountToken: true
- create: true
- updateStrategy:
- type: Recreate
- args:
- - --events
- - --log-level=info
- - --policy=sync
- - --provider=cloudflare
- - --source=ingress
- - --source=service
- - --registry=txt
- - --txt-owner-id=external-dns
- - --txt-prefix=homelab
- - --cloudflare-dns-records-per-page=1000
- - --interval=6m
- - --txt-cache-interval=10m
- sources:
- - service
- - ingress
- triggerLoopOnEvent: false
- useDaemonset: false
- watchReleaseNamespace: false
- destination:
- namespace: networking
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: false
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - RespectIgnoreDifferences=true
- - ServerSideApply=true
- retry:
- limit: 5
- backoff:
- duration: 60s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/networking/external-dns/nextdns.yaml b/apps/argocd/base/networking/external-dns/nextdns.yaml
deleted file mode 100644
index 84e61fff4..000000000
--- a/apps/argocd/base/networking/external-dns/nextdns.yaml
+++ /dev/null
@@ -1,128 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: external-dns-nextdns
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: networking
- sources:
- - repoURL: https://kubernetes-sigs.github.io/external-dns
- chart: external-dns
- targetRevision: 1.14.3
- helm:
- releaseName: external-dns-nextdns
- namespace: networking
- values: |
- nameOverride: "external-dns-nextdns"
- domainFilters:
- - xn--lck4b9a0m.com
- clusterDomain: cluster.local
- combineFQDNAnnotation: false
- containerPorts:
- http: 7979
- crd:
- create: true
- designate:
- customCA:
- enabled: false
- filename: designate-ca.pem
- mountPath: /config/designate
- dryRun: false
- forceTxtOwnerId: false
- ignoreHostnameAnnotation: false
- image:
- pullPolicy: Always
- repository: docker.io/grubertech/external-dns
- tag: v0.13.6
- infoblox:
- noSslVerify: false
- wapiUsername: admin
- interval: 1m
- logFormat: text
- logLevel: debug
- ns1:
- minTTL: 10
- pdns:
- apiPort: "8081"
- podAntiAffinityPreset: soft
- policy: sync
- podAnnotations:
- reloader.stakater.com/auto: "true"
- provider: nextdns
- env:
- - name: EXTERNAL_DNS_NEXTDNS_PROFILE_ID
- value: ""
- - name: EXTERNAL_DNS_NEXTDNS_API_KEY
- value: ""
- publishHostIP: false
- publishInternalServices: true
- rbac:
- apiVersion: v1
- clusterRole: true
- create: true
- pspEnabled: false
- registry: noop
- replicaCount: 1
- resources:
- limits:
- cpu: 250m
- memory: 512Mi
- requests:
- cpu: 70m
- memory: 150Mi
- rfc2136:
- minTTL: 0s
- port: 53
- rfc3645Enabled: false
- tsigAxfr: true
- tsigKeyname: externaldns-key
- tsigSecretAlg: hmac-sha256
- service:
- enabled: true
- externalTrafficPolicy: Cluster
- ports:
- http: 7979
- sessionAffinity: None
- type: ClusterIP
- serviceAccount:
- automountServiceAccountToken: true
- create: true
- updateStrategy:
- type: Recreate
- args:
- - --events
- - --log-level=info
- - --source=service
- - --source=ingress
- - --provider=nextdns
- - --registry=noop
- - --interval=1m
- sources:
- - service
- - ingress
- triggerLoopOnEvent: false
- useDaemonset: false
- watchReleaseNamespace: false
- destination:
- namespace: networking
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: false
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - RespectIgnoreDifferences=true
- - ServerSideApply=true
- retry:
- limit: 5
- backoff:
- duration: 60s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/networking/issuer.yaml b/apps/argocd/base/networking/issuer.yaml
index c85a70cf0..3fb858951 100644
--- a/apps/argocd/base/networking/issuer.yaml
+++ b/apps/argocd/base/networking/issuer.yaml
@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
- name: certmanager-clusterissuer
+ name: certmanager-resources
spec:
project: networking
source:
@@ -15,15 +15,9 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: true
syncOptions:
- - Validate=true
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - Replace=true
+ - Prune=true
+ - ServerSideApply=true
retry:
limit: 5
backoff:
diff --git a/apps/argocd/base/networking/kube-vip.yaml b/apps/argocd/base/networking/kube-vip.yaml
index f3a07b9ec..64d772496 100644
--- a/apps/argocd/base/networking/kube-vip.yaml
+++ b/apps/argocd/base/networking/kube-vip.yaml
@@ -1,12 +1,12 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
- name: kube-vip
+ name: kubevip
spec:
project: networking
source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/networking/kube-vip
+ repoURL: "https://github.com/gruberdev/homelab.git"
+ path: apps/networking/kubevip
targetRevision: main
destination:
namespace: kube-system
@@ -15,16 +15,22 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: true
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=false
- - Prune=false
+ - ServerSideApply=true
+ - Prune=true
retry:
- limit: 10
+ limit: 5
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/kube-vip/kube-vip
+ - name: "Github releases:"
+ value: >-
+ https://github.com/kube-vip/kube-vip/releases
+ - name: "Official documentation:"
+ value: >-
+ https://kube-vip.io/docs/
diff --git a/apps/argocd/base/networking/kustomization.yaml b/apps/argocd/base/networking/kustomization.yaml
index b14a76b20..f43632f07 100644
--- a/apps/argocd/base/networking/kustomization.yaml
+++ b/apps/argocd/base/networking/kustomization.yaml
@@ -2,16 +2,17 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- - ./external-dns
+ - unifi-controller.yaml
+ - external-dns.yaml
- cert-manager.yaml
- nginx-ingress.yaml
- tailscale-operator.yaml
- - tailscale.yaml
- issuer.yaml
- - kube-vip.yaml
- - unifi-controller.yaml
+ - cloud-controller.yaml
+ - kubevip.yaml
+ # - contour.yaml
namespace: argocd
-commonLabels:
- app.kubernetes.io/category: networking
+commonAnnotations:
+ argocd.argoproj.io/sync-wave: "2"
diff --git a/apps/argocd/base/networking/nginx-ingress.yaml b/apps/argocd/base/networking/nginx-ingress.yaml
index ac74d1bf7..276eb4d3d 100644
--- a/apps/argocd/base/networking/nginx-ingress.yaml
+++ b/apps/argocd/base/networking/nginx-ingress.yaml
@@ -2,8 +2,6 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: ingress-nginx
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: networking
source:
@@ -11,24 +9,28 @@ spec:
path: apps/networking/ingress-nginx
targetRevision: main
destination:
- namespace: networking
+ namespace: kube-system
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
- allowEmpty: true
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - RespectIgnoreDifferences=true
- - ServerSideApply=true
+ - ServerSideApply=true
+ - Prune=true
retry:
- limit: 10
+ limit: 5
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/kubernetes/ingress-nginx
+ - name: "Official documentation:"
+ value: >-
+ https://kubernetes.github.io/ingress-nginx/
+ - name: "Github Helm chart:"
+ value: >-
+ https://github.com/kubernetes/ingress-nginx/blob/main/charts/ingress-nginx/values.yaml
diff --git a/apps/argocd/base/networking/tailscale-operator.yaml b/apps/argocd/base/networking/tailscale-operator.yaml
index 5509558eb..cde5b211d 100644
--- a/apps/argocd/base/networking/tailscale-operator.yaml
+++ b/apps/argocd/base/networking/tailscale-operator.yaml
@@ -2,18 +2,12 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: tailscale-operator
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: networking
source:
repoURL: "https://github.com/gruberdev/homelab.git"
path: apps/networking/tailscale/operator
targetRevision: main
- kustomize:
- commonLabels:
- app.kubernetes.io/app: tailscale-operator
- app.kubernetes.io/category: networking
destination:
namespace: tailscale
name: in-cluster
@@ -24,11 +18,15 @@ spec:
managedNamespaceMetadata:
labels:
prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
syncOptions:
- Prune=true
- ServerSideApply=true
+ - CreateNamespace=true
retry:
- limit: 3
+ limit: 5
backoff:
duration: 20s
factor: 2
@@ -40,6 +38,6 @@ spec:
- name: "Github feature issue:"
value: >-
https://github.com/tailscale/tailscale/issues/502
- - name: "Documentation:"
+ - name: "Official Documentation:"
value: >-
https://tailscale.com/kb/1236/kubernetes-operator/
diff --git a/apps/argocd/base/networking/tailscale.yaml b/apps/argocd/base/networking/tailscale.yaml
deleted file mode 100644
index fd77ee879..000000000
--- a/apps/argocd/base/networking/tailscale.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: tailscale
-spec:
- project: networking
- source:
- repoURL: "https://github.com/gruberdev/homelab.git"
- path: apps/networking/tailscale
- targetRevision: main
- destination:
- namespace: kube-system
- name: in-cluster
- syncPolicy:
- automated:
- prune: false
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=false
- - ApplyOutOfSyncOnly=false
- - Prune=false
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/networking/unifi-controller.yaml b/apps/argocd/base/networking/unifi-controller.yaml
index a08e978a5..657a41d31 100644
--- a/apps/argocd/base/networking/unifi-controller.yaml
+++ b/apps/argocd/base/networking/unifi-controller.yaml
@@ -9,21 +9,35 @@ spec:
path: apps/networking/unifi/controller
targetRevision: main
kustomize:
- commonLabels:
- app.kubernetes.io/category: networking
+ commonAnnotations:
+ reloader.stakater.com/auto: "true"
destination:
- namespace: unifi
+ namespace: networking
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
syncOptions:
- - Prune=true
+ - CreateNamespace=true
- ServerSideApply=true
+ - Prune=true
retry:
- limit: 10
+ limit: 5
backoff:
- duration: 60s
+ duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/jacobalberty/unifi-docker
+ - name: "Image registry:"
+ value: >-
+ https://github.com/jacobalberty/unifi-docker/pkgs/container/unifi-docker
diff --git a/apps/argocd/base/projects/apps.yaml b/apps/argocd/base/projects/apps.yaml
index 66359ca09..b169b7b57 100644
--- a/apps/argocd/base/projects/apps.yaml
+++ b/apps/argocd/base/projects/apps.yaml
@@ -35,12 +35,8 @@ spec:
server: https://kubernetes.default.svc
- namespace: milvus-system
server: https://kubernetes.default.svc
- - namespace: chatgpt
- server: https://kubernetes.default.svc
- namespace: mlops
server: https://kubernetes.default.svc
- - namespace: gitea
- server: https://kubernetes.default.svc
- namespace: crossplane
server: https://kubernetes.default.svc
clusterResourceWhitelist:
diff --git a/apps/argocd/base/projects/kustomization.yaml b/apps/argocd/base/projects/kustomization.yaml
new file mode 100644
index 000000000..261f416cb
--- /dev/null
+++ b/apps/argocd/base/projects/kustomization.yaml
@@ -0,0 +1,12 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- apps.yaml
+- cluster.yaml
+- core.yaml
+- mlops.yaml
+- monitoring.yaml
+- networking.yaml
+
+commonAnnotations:
+ argocd.argoproj.io/sync-wave: "1"
diff --git a/apps/argocd/base/projects/matrix.yaml b/apps/argocd/base/projects/matrix.yaml
deleted file mode 100644
index 7b68185a6..000000000
--- a/apps/argocd/base/projects/matrix.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: AppProject
-metadata:
- name: matrix
-spec:
- description: Matrix Project
- sourceRepos:
- - '*'
- destinations:
- - namespace: matrix
- server: https://kubernetes.default.svc
- - namespace: matrix1
- server: https://kubernetes.default.svc
- - namespace: matrix-bots
- server: https://kubernetes.default.svc
- clusterResourceWhitelist:
- - group: '*'
- kind: '*'
- orphanedResources:
- warn: false
diff --git a/apps/argocd/base/projects/monitoring.yaml b/apps/argocd/base/projects/monitoring.yaml
index 7315e4ccb..49bd4a3a3 100644
--- a/apps/argocd/base/projects/monitoring.yaml
+++ b/apps/argocd/base/projects/monitoring.yaml
@@ -11,6 +11,8 @@ spec:
server: https://kubernetes.default.svc
- namespace: kube-system
server: https://kubernetes.default.svc
+ - namespace: networking
+ server: https://kubernetes.default.svc
- namespace: argocd
server: https://kubernetes.default.svc
- namespace: databases
@@ -21,8 +23,6 @@ spec:
server: https://kubernetes.default.svc
- namespace: services
server: https://kubernetes.default.svc
- - namespace: longhorn-system
- server: https://kubernetes.default.svc
clusterResourceWhitelist:
- group: '*'
kind: '*'
diff --git a/apps/argocd/base/projects/networking.yaml b/apps/argocd/base/projects/networking.yaml
index c39e4a669..7555f18e2 100644
--- a/apps/argocd/base/projects/networking.yaml
+++ b/apps/argocd/base/projects/networking.yaml
@@ -25,6 +25,8 @@ spec:
server: https://kubernetes.default.svc
- namespace: unifi
server: https://kubernetes.default.svc
+ - namespace: contour-system
+ server: https://kubernetes.default.svc
clusterResourceWhitelist:
- group: "*"
kind: "*"
diff --git a/apps/argocd/base/services/ofx-exporter.yaml b/apps/argocd/base/services/4get.yaml
similarity index 51%
rename from apps/argocd/base/services/ofx-exporter.yaml
rename to apps/argocd/base/services/4get.yaml
index a6883a295..8c9115bbf 100644
--- a/apps/argocd/base/services/ofx-exporter.yaml
+++ b/apps/argocd/base/services/4get.yaml
@@ -1,14 +1,12 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
- name: ofx-exporter
- finalizers:
- - resources-finalizer.argocd.argoproj.io
+ name: 4get
spec:
project: apps
source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/finances/exporter
+ repoURL: "https://github.com/gruberdev/homelab.git"
+ path: apps/services/4get
targetRevision: main
destination:
namespace: services
@@ -17,16 +15,19 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: false
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - Prune=true
+ - ServerSideApply=true
retry:
limit: 10
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: 'Git Repository:'
+ value: >-
+ https://git.lolcat.ca/lolcat/4get
+ - name: 'Official Docs:'
+ value: >-
+ https://git.lolcat.ca/lolcat/4get/src/branch/master/docs/
diff --git a/apps/argocd/base/services/actual.yaml b/apps/argocd/base/services/actual.yaml
index 398b20a4b..f0a6c998e 100644
--- a/apps/argocd/base/services/actual.yaml
+++ b/apps/argocd/base/services/actual.yaml
@@ -2,8 +2,6 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: actual
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: apps
source:
@@ -17,17 +15,22 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: true
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - Prune=true
+ - ServerSideApply=true
retry:
limit: 10
backoff:
duration: 20s
factor: 2
maxDuration: 15m
+ info:
+ - name: 'Github Repository:'
+ value: >-
+ https://github.com/actualbudget/actual
+ - name: 'Official Website:'
+ value: >-
+ https://actualbudget.org/
+ - name: 'Documentation:'
+ value: >-
+ https://actualbudget.org/docs/
diff --git a/apps/argocd/base/services/archivebox.yaml b/apps/argocd/base/services/archivebox.yaml
deleted file mode 100644
index 7c10bdcf1..000000000
--- a/apps/argocd/base/services/archivebox.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: archivebox
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/archivebox
- targetRevision: main
- destination:
- namespace: services
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 10
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/services/coder.yaml b/apps/argocd/base/services/coder.yaml
new file mode 100644
index 000000000..3c7644763
--- /dev/null
+++ b/apps/argocd/base/services/coder.yaml
@@ -0,0 +1,42 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: coder
+spec:
+ project: apps
+ source:
+ repoURL: "https://github.com/gruberdev/homelab.git"
+ path: apps/services/coder
+ targetRevision: main
+ destination:
+ namespace: services
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ retry:
+ limit: 10
+ backoff:
+ duration: 20s
+ factor: 2
+ maxDuration: 15m
+ info:
+ - name: 'Github Repository:'
+ value: >-
+ https://github.com/coder/coder
+ - name: 'Official Docs:'
+ value: >-
+ https://coder.com/docs
+ - name: 'Helm chart:'
+ value: >-
+ https://github.com/coder/coder/tree/main/helm/coder
+ - name: 'Helm values example:'
+ value: >-
+ https://github.com/coder/coder/blob/main/helm/coder/values.yaml
+ - name: 'Helm documentation:'
+ value: >-
+ hhttps://coder.com/docs/install/kubernetes
diff --git a/apps/argocd/base/services/feedpushr.yaml b/apps/argocd/base/services/feedpushr.yaml
deleted file mode 100644
index 122d2b3ae..000000000
--- a/apps/argocd/base/services/feedpushr.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: feedpushr
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/rss/feedpushr
- targetRevision: main
- destination:
- namespace: rss
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - Replace=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/services/gitea-utils.yaml b/apps/argocd/base/services/gitea-utils.yaml
deleted file mode 100644
index c4f4b578a..000000000
--- a/apps/argocd/base/services/gitea-utils.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: gitea-utils
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/gitea
- targetRevision: main
- destination:
- namespace: gitea
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/services/gitea.yaml b/apps/argocd/base/services/gitea.yaml
index 93abbcf82..ebfdd788f 100644
--- a/apps/argocd/base/services/gitea.yaml
+++ b/apps/argocd/base/services/gitea.yaml
@@ -2,159 +2,38 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: gitea
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: apps
source:
- repoURL: https://dl.gitea.io/charts/
- chart: gitea
- targetRevision: 9.2.0
- helm:
- releaseName: gitea
- values: |
- checkDeprecation: true
- replicaCount: 1
- clusterDomain: cluster.local
- extraVolumes:
- - name: gitea-themes
- configMap:
- name: gitea-themes
- items:
- - key: theme-catppuccin-mocha-blue.css
- path: theme-catppuccin-mocha-blue.css
- extraVolumeMounts:
- - name: gitea-themes
- readOnly: true
- mountPath: "/data/gitea/public/css"
- strategy:
- type: "Recreate"
- gitea:
- additionalConfigFromEnvs:
- - name: GITEA__DATABASE__HOST
- value: db-gitea.gitea.svc.cluster.local
- - name: GITEA__DATABASE__USER
- valueFrom:
- secretKeyRef:
- name: gitea.db-gitea.credentials.postgresql.acid.zalan.do
- key: username
- - name: GITEA__DATABASE__PASSWD
- valueFrom:
- secretKeyRef:
- name: gitea.db-gitea.credentials.postgresql.acid.zalan.do
- key: password
- additionalConfigSources:
- - configMap:
- name: gitea-app-ini
- config:
- APP_NAME: "Gitea"
- server:
- SSH_PORT: 22
- admin:
- email:
- password:
- username:
- livenessProbe:
- enabled: true
- failureThreshold: 10
- initialDelaySeconds: 200
- periodSeconds: 10
- successThreshold: 1
- tcpSocket:
- port: http
- timeoutSeconds: 1
- metrics:
- enabled: true
- serviceMonitor:
- enabled: true
- readinessProbe:
- enabled: true
- failureThreshold: 3
- initialDelaySeconds: 5
- periodSeconds: 10
- successThreshold: 1
- tcpSocket:
- port: http
- timeoutSeconds: 1
- ssh:
- logLevel: INFO
- startupProbe:
- enabled: true
- failureThreshold: 10
- initialDelaySeconds: 60
- periodSeconds: 10
- successThreshold: 1
- tcpSocket:
- port: http
- timeoutSeconds: 1
- image:
- pullPolicy: Always
- repository: gitea/gitea
- rootless: false
- ingress:
- enabled: false
- initContainers:
- resources:
- limits:
- cpu: 350m
- memory: 512Mi
- requests:
- cpu: 100m
- memory: 256Mi
- redis-cluster:
- enabled: false
- usePassword: false
- persistence:
- create: false
- mount: true
- enabled: true
- claimName: gitea-shared-storage
- podSecurityContext:
- fsGroup: 1000
- postgresql-ha:
- enabled: false
- postgresql:
- enabled: false
- replicaCount: 1
- resources:
- limits:
- cpu: 750m
- memory: 1024Mi
- requests:
- cpu: 100m
- memory: 256Mi
- service:
- http:
- port: 3000
- type: ClusterIP
- ssh:
- port: 22
- type: ClusterIP
- signing:
- enabled: false
- gpgHome: /data/git/.gnupg
- deployment:
- terminationGracePeriodSeconds: 60
- enabled: true
-
+ repoURL: "https://github.com/gruberdev/homelab.git"
+ path: apps/services/gitea
+ targetRevision: main
destination:
- namespace: gitea
+ namespace: services
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
- allowEmpty: false
syncOptions:
- - Validate=false
- - CreateNamespace=true
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - Prune=true
+ - ServerSideApply=true
retry:
limit: 10
backoff:
- duration: 30s
+ duration: 20s
factor: 2
- maxDuration: 60m
+ maxDuration: 15m
+ info:
+ - name: 'Github Repository:'
+ value: >-
+ https://github.com/go-gitea/gitea
+ - name: 'Awesome Gitea:'
+ value: >-
+ https://gitea.com/gitea/awesome-gitea
+ - name: 'Official Docs:'
+ value: >-
+ https://docs.gitea.com/
+ - name: 'Helm chart:'
+ value: >-
+ https://gitea.com/gitea/helm-chart
diff --git a/apps/argocd/base/services/grocy.yaml b/apps/argocd/base/services/grocy.yaml
deleted file mode 100644
index 5e4356ee7..000000000
--- a/apps/argocd/base/services/grocy.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: grocy
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/grocy
- targetRevision: main
- destination:
- namespace: services
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 10
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/services/homepage.yaml b/apps/argocd/base/services/homepage.yaml
index 58825c231..ccf146d1c 100644
--- a/apps/argocd/base/services/homepage.yaml
+++ b/apps/argocd/base/services/homepage.yaml
@@ -2,8 +2,6 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: homepage
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: apps
source:
@@ -17,13 +15,9 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: false
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - Prune=true
- - ServerSideApply=true
+ - Prune=true
+ - ServerSideApply=true
retry:
limit: 10
backoff:
diff --git a/apps/argocd/base/services/jupyterlab.yaml b/apps/argocd/base/services/jupyterlab.yaml
deleted file mode 100644
index f5e27051a..000000000
--- a/apps/argocd/base/services/jupyterlab.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: jupyterlab
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/jupyter
- targetRevision: main
- destination:
- namespace: mlops
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - Replace=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/services/kustomization.yaml b/apps/argocd/base/services/kustomization.yaml
index 18455ce62..d448abe71 100644
--- a/apps/argocd/base/services/kustomization.yaml
+++ b/apps/argocd/base/services/kustomization.yaml
@@ -2,17 +2,16 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- - actual.yaml
- gitea.yaml
- # - mlops.yaml
- - n8n.yaml
- - ofx-exporter.yaml
- onchange.yaml
- - gitea-utils.yaml
- - homepage.yaml
-#- wger.yaml
+ - actual.yaml
+ - n8n.yaml
+ - miniflux.yaml
+ - s3.yaml
+ - 4get.yaml
+ - coder.yaml
namespace: argocd
-commonLabels:
- app.kubernetes.io/category: services
+commonAnnotations:
+ argocd.argoproj.io/sync-wave: "3"
diff --git a/apps/argocd/base/services/librex.yaml b/apps/argocd/base/services/librex.yaml
deleted file mode 100644
index a98bc94b9..000000000
--- a/apps/argocd/base/services/librex.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: librex
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/librex
- targetRevision: main
- destination:
- namespace: services
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - Replace=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 5m
diff --git a/apps/argocd/base/services/metabase.yaml b/apps/argocd/base/services/metabase.yaml
deleted file mode 100644
index f1d1e417a..000000000
--- a/apps/argocd/base/services/metabase.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: metabase
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: services
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/data/metabase
- targetRevision: main
- destination:
- namespace: services
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - Replace=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/utilities/sealed.yaml b/apps/argocd/base/services/miniflux.yaml
similarity index 68%
rename from apps/argocd/base/utilities/sealed.yaml
rename to apps/argocd/base/services/miniflux.yaml
index 9bb47592d..ce04bcc6a 100644
--- a/apps/argocd/base/utilities/sealed.yaml
+++ b/apps/argocd/base/services/miniflux.yaml
@@ -1,25 +1,23 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
- name: sealed-secrets
+ name: miniflux
spec:
- project: cluster
+ project: apps
source:
repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/utilities/sealed-secrets
+ path: apps/services/rss/miniflux
targetRevision: main
destination:
- namespace: kube-system
+ namespace: rss
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
- allowEmpty: true
syncOptions:
- - RespectIgnoreDifferences=true
+ - Prune=true
- ServerSideApply=true
- - Validate=false
retry:
limit: 10
backoff:
diff --git a/apps/argocd/base/services/mlops.yaml b/apps/argocd/base/services/mlops.yaml
deleted file mode 100644
index 18803e35c..000000000
--- a/apps/argocd/base/services/mlops.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: mlops
- namespace: argocd
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/argocd/base/mlops
- targetRevision: main
- destination:
- namespace: mlops
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- retry:
- limit: 10
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/services/rss-hub.yaml b/apps/argocd/base/services/rss-hub.yaml
deleted file mode 100644
index 098a8a51b..000000000
--- a/apps/argocd/base/services/rss-hub.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: rss-hub
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/rss/hub
- targetRevision: main
- destination:
- namespace: rss
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=true
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- - Replace=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/services/s3.yaml b/apps/argocd/base/services/s3.yaml
new file mode 100644
index 000000000..4ce1cf1bc
--- /dev/null
+++ b/apps/argocd/base/services/s3.yaml
@@ -0,0 +1,41 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: s3
+spec:
+ project: apps
+ source:
+ repoURL: 'https://github.com/gruberdev/homelab.git'
+ path: apps/data/minio/default
+ targetRevision: main
+ kustomize:
+ patches:
+ - target:
+ kind: Tenant
+ name: s3
+ patch: |
+ apiVersion: minio.min.io/v2
+ kind: Tenant
+ metadata:
+ name: s3
+ spec:
+ buckets:
+ - name: "metrics"
+ - name: "gitea"
+ - name: "n8n"
+ destination:
+ namespace: services
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ retry:
+ limit: 10
+ backoff:
+ duration: 20s
+ factor: 2
+ maxDuration: 15m
diff --git a/apps/argocd/base/services/squid.yaml b/apps/argocd/base/services/squid.yaml
deleted file mode 100644
index eb8094e3a..000000000
--- a/apps/argocd/base/services/squid.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: squid-proxy
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: networking
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/networking/squid
- targetRevision: main
- destination:
- namespace: networking
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 10
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/home/wyze.yaml b/apps/argocd/base/services/touito.yaml
similarity index 65%
rename from apps/argocd/base/home/wyze.yaml
rename to apps/argocd/base/services/touito.yaml
index 962487a54..dae3935bd 100644
--- a/apps/argocd/base/home/wyze.yaml
+++ b/apps/argocd/base/services/touito.yaml
@@ -1,17 +1,15 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
- name: wyze
- finalizers:
- - resources-finalizer.argocd.argoproj.io
+ name: touito
spec:
project: apps
source:
- repoURL: "https://github.com/gruberdev/homelab.git"
- path: apps/home/wyze
+ repoURL: 'https://github.com/gruberdev/homelab.git'
+ path: apps/services/touito
targetRevision: main
destination:
- namespace: homeassistant
+ namespace: services
name: in-cluster
syncPolicy:
automated:
@@ -21,7 +19,7 @@ spec:
- Prune=true
- ServerSideApply=true
retry:
- limit: 5
+ limit: 10
backoff:
duration: 20s
factor: 2
diff --git a/apps/argocd/base/services/wallabag.yaml b/apps/argocd/base/services/wallabag.yaml
deleted file mode 100644
index 6391f904e..000000000
--- a/apps/argocd/base/services/wallabag.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: wallabag
- finalizers:
- - resources-finalizer.argocd.argoproj.io
- annotations:
- argocd-image-updater.argoproj.io/write-back-method: git
- argocd-image-updater.argoproj.io/write-back-target: kustomization
- argocd-image-updater.argoproj.io/git-branch: main
- argocd-image-updater.argoproj.io/image-list: wallabag=wallabag/wallabag
- argocd-image-updater.argoproj.io/wallabag.platforms: linux/arm64,linux/amd64
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/wallabag
- targetRevision: main
- destination:
- namespace: services
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Replace=true
- - Prune=true
- retry:
- limit: 6
- backoff:
- duration: 60s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/services/wger.yaml b/apps/argocd/base/services/wger.yaml
deleted file mode 100644
index 65efc3a47..000000000
--- a/apps/argocd/base/services/wger.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: wger
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/services/wger
- targetRevision: main
- destination:
- namespace: services
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: false
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/styles-cm.yaml b/apps/argocd/base/styles-cm.yaml
index 82073af3f..47f63a61d 100644
--- a/apps/argocd/base/styles-cm.yaml
+++ b/apps/argocd/base/styles-cm.yaml
@@ -4,6 +4,75 @@ metadata:
name: argocd-styles-cm
data:
my-styles.css: |
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;700&display=swap');
+ body {
+ font-family: "Inter", sans-serif;
+ }
+ :root {
+ --sidebar-background: #32201b;
+ --page-and-panel-background: #f0ece8;
+ --button-primary: #7d7370;
+ --button-secondary: #7d7370;
+ --button-disabled: #968f8c;
+ --primary: #01894d;
+ }
+ .argo-button--base {
+ color: #f8fbfb;
+ background-color: #080909;
+ }
.nav-bar {
background: linear-gradient(to bottom, #999, #777, #333, #222, #111);
}
+ .nav-bar__logo img,
+ .sidebar__logo img,
+ .sidebar__logo__character img {
+ content: url(https://gist.githubusercontent.com/gruberdev/1c4aeaf4e44998ac0b23f69e388421a7/raw/18784fbca7282ddb58336a1d10aa83bf79bd4e6e/logo.svg.);
+ }
+ .theme-dark .argo-table-list__row{
+ background: #191a1e;
+ color: #7e7e89;
+ }
+ .applications-list__entry--health-Healthy {
+ border-left-color: #46b592;
+ }
+ .sidebar {
+ background-color: #161819;
+ }
+ .page__content-wrapper {
+ background: var(--page-and-panel-background) !important;
+ }
+
+ .sliding-panel__header,
+ .sliding-panel__body {
+ background: var(--page-and-panel-background) !important;
+ }
+
+ /* primary */
+ .argo-button--base,
+ .argo-button--base:hover {
+ background: var(--button-primary) !important;
+ }
+
+ .argo-button--base:hover {
+ background: var(--button-primary) !important;
+ opacity: 0.8 !important;
+ }
+
+ /* secondary */
+ .argo-button--base-o {
+ color: var(--button-primary) !important;
+ box-shadow: inset 0 0 0 1px var(--button-primary) !important;
+ }
+
+ .argo-button--base-o:hover,
+ .argo-button--base-o:focus {
+ background: var(--button-secondary) !important;
+ color: #fff !important;
+ box-shadow: inset 0 0 0 1px var(--button-secondary) !important;
+ }
+
+ /* disabled */
+ .argo-button.disabled,
+ .argo-button[disabled] {
+ background: var(--button-disabled) !important;
+ }
diff --git a/apps/argocd/base/svc-monitors.yaml b/apps/argocd/base/svc-monitors.yaml
new file mode 100644
index 000000000..0ab8fc388
--- /dev/null
+++ b/apps/argocd/base/svc-monitors.yaml
@@ -0,0 +1,77 @@
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: argocd-metrics
+ labels:
+ release: prometheus-operator
+spec:
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: argocd-metrics
+ endpoints:
+ - port: metrics
+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: argocd-server-metrics
+ labels:
+ release: prometheus-operator
+spec:
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: argocd-server-metrics
+ endpoints:
+ - port: metrics
+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: argocd-repo-server-metrics
+ labels:
+ release: prometheus-operator
+spec:
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: argocd-repo-server
+ endpoints:
+ - port: metrics
+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: argocd-applicationset-controller-metrics
+ labels:
+ release: prometheus-operator
+spec:
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: argocd-applicationset-controller
+ endpoints:
+ - port: metrics
+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: argocd-redis-haproxy-metrics
+ labels:
+ release: prometheus-operator
+spec:
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: argocd-redis-ha-haproxy
+ endpoints:
+ - port: http-exporter-port
+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: argocd-notifications-controller
+ labels:
+ release: prometheus-operator
+spec:
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: argocd-notifications-controller-metrics
+ endpoints:
+ - port: metrics
diff --git a/apps/argocd/base/utilities/agones.yaml b/apps/argocd/base/utilities/agones.yaml
new file mode 100644
index 000000000..70df4703c
--- /dev/null
+++ b/apps/argocd/base/utilities/agones.yaml
@@ -0,0 +1,283 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: agones
+spec:
+ project: cluster
+ source:
+ repoURL: https://github.com/googleforgames/agones.git
+ targetRevision: v1.40.0
+ path: install/helm/agones
+ helm:
+ releaseName: agones
+ values: |
+ agones:
+ featureGates: PlayerTracking=true&CountsAndLists=true
+ metrics:
+ serviceMonitor:
+ enabled: true
+ interval: 30s
+ rbacEnabled: true
+ registerServiceAccounts: true
+ registerWebhooks: true
+ registerApiService: true
+ crds:
+ install: true
+ cleanupOnDelete: true
+ cleanupJobTTL: 60
+ controller:
+ resources:
+ requests:
+ cpu: 10m
+ memory: 256Mi
+ limits:
+ cpu: 40m
+ memory: 512Mi
+ tolerations:
+ - key: "agones.dev/agones-system"
+ operator: "Equal"
+ value: "true"
+ effect: "NoExecute"
+ generateTLS: false
+ disableSecret: false
+ allocationApiService:
+ annotations: {}
+ disableCaBundle: false
+ validatingWebhook:
+ annotations: {}
+ disableCaBundle: false
+ mutatingWebhook:
+ annotations: {}
+ disableCaBundle: false
+ http:
+ port: 8080
+ healthCheck:
+ initialDelaySeconds: 15
+ periodSeconds: 3
+ failureThreshold: 3
+ timeoutSeconds: 1
+ allocationBatchWaitTime: 500ms
+ replicas: 1
+ pdb:
+ minAvailable: 1
+ extensions:
+ resources:
+ requests:
+ cpu: 10m
+ memory: 128Mi
+ limits:
+ cpu: 40m
+ memory: 256Mi
+ tolerations:
+ - key: "agones.dev/agones-system"
+ operator: "Equal"
+ value: "true"
+ effect: "NoExecute"
+ generateTLS: false
+ tlsCert: ""
+ tlsKey: ""
+ disableSecret: false
+ allocationApiService:
+ annotations: {}
+ disableCaBundle: false
+ validatingWebhook:
+ annotations: {}
+ disableCaBundle: false
+ mutatingWebhook:
+ annotations: {}
+ disableCaBundle: false
+ persistentLogs: true
+ persistentLogsSizeLimitMB: 10000
+ logLevel: info
+ numWorkers: 100
+ apiServerQPS: 400
+ apiServerQPSBurst: 500
+ http:
+ port: 8080
+ healthCheck:
+ initialDelaySeconds: 15
+ periodSeconds: 3
+ failureThreshold: 3
+ timeoutSeconds: 1
+ allocationBatchWaitTime: 500ms
+ pdb:
+ minAvailable: 1
+ replicas: 1
+ readiness:
+ initialDelaySeconds: 15
+ periodSeconds: 3
+ failureThreshold: 3
+ topologySpreadConstraints: {}
+ ping:
+ install: true
+ pdb:
+ enabled: false
+ updateStrategy: {}
+ resources:
+ requests:
+ cpu: 10m
+ memory: 128Mi
+ limits:
+ cpu: 35m
+ memory: 256Mi
+ nodeSelector: {}
+ annotations: {}
+ tolerations:
+ - key: "agones.dev/agones-system"
+ operator: "Equal"
+ value: "true"
+ effect: "NoExecute"
+ replicas: 1
+ http:
+ expose: true
+ response: ok
+ port: 80
+ serviceType: ClusterIP
+ udp:
+ expose: true
+ rateLimit: 20
+ port: 50000
+ serviceType: ClusterIP
+ healthCheck:
+ initialDelaySeconds: 15
+ periodSeconds: 3
+ failureThreshold: 3
+ timeoutSeconds: 1
+ allocator:
+ install: true
+ pdb:
+ enabled: false
+ minAvailable: 1
+ updateStrategy: {}
+ apiServerQPS: 400
+ apiServerQPSBurst: 500
+ logLevel: info
+ annotations: {}
+ resources:
+ requests:
+ cpu: 100m
+ memory: 256Mi
+ limits:
+ cpu: 200m
+ memory: 512Mi
+ healthCheck:
+ initialDelaySeconds: 3
+ periodSeconds: 3
+ failureThreshold: 3
+ timeoutSeconds: 1
+ readiness:
+ initialDelaySeconds: 3
+ periodSeconds: 3
+ failureThreshold: 3
+ tolerations:
+ - key: "agones.dev/agones-system"
+ operator: "Equal"
+ value: "true"
+ effect: "NoExecute"
+ replicas: 1
+ service:
+ annotations: {}
+ grpc:
+ enabled: true
+ nodePort: 30300
+ port: 443
+ portName: grpc
+ http:
+ enabled: true
+ nodePort: 30564
+ port: 443
+ portName: https
+ name: agones-allocator
+ serviceType: NodePort
+ serviceMetrics:
+ name: agones-allocator-metrics-service
+ annotations: {}
+ http:
+ enabled: true
+ port: 8080
+ portName: http
+ generateTLS: false
+ generateClientTLS: true
+ clientCAs: {}
+ disableMTLS: false
+ disableTLS: false
+ remoteAllocationTimeout: 10s
+ totalRemoteAllocationTimeout: 30s
+ allocationBatchWaitTime: 500ms
+ topologySpreadConstraints: {}
+ image:
+ registry: us-docker.pkg.dev/agones-images/release
+ tag: 1.40.0
+ controller:
+ name: agones-controller
+ pullPolicy: IfNotPresent
+ extensions:
+ name: agones-extensions
+ pullPolicy: IfNotPresent
+ sdk:
+ name: agones-sdk
+ cpuRequest: 30m
+ cpuLimit: 150m
+ memoryRequest: 128Mi
+ memoryLimit: 256Mi
+ alwaysPull: false
+ ping:
+ name: agones-ping
+ pullPolicy: IfNotPresent
+ allocator:
+ name: agones-allocator
+ pullPolicy: IfNotPresent
+ gameservers:
+ namespaces:
+ - default
+ - agones-system
+ - gaming
+ maxPort: 34000
+ minPort: 32767
+ podPreserveUnknownFields: false
+ destination:
+ namespace: agones-system
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ - CreateNamespace=true
+ retry:
+ limit: 5
+ backoff:
+ duration: 20s
+ factor: 2
+ maxDuration: 15m
+ ignoreDifferences:
+ - group: "agones-sdk-access"
+ kind: "ClusterRoleBinding"
+ - group: "agones-sdk"
+ kind: "ClusterRole"
+ - group: "agones-sdk"
+ kind: "ServiceAccount"
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/googleforgames/agones
+ - name: "Official Website:"
+ value: >-
+ https://agones.dev
+ - name: "Official Documentation:"
+ value: >-
+ https://agones.dev/site/docs
+ - name: "Helm chart documentation:"
+ value: >-
+ https://agones.dev/site/docs/installation/install-agones/helm
+ - name: "Helm chart values:"
+ value: >-
+ https://github.com/googleforgames/agones/blob/main/install/helm/agones/values.yaml
diff --git a/apps/argocd/base/utilities/chaos.yaml b/apps/argocd/base/utilities/chaos.yaml
deleted file mode 100644
index bc55a932e..000000000
--- a/apps/argocd/base/utilities/chaos.yaml
+++ /dev/null
@@ -1,225 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: chaos-mesh
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: cluster
- source:
- repoURL: https://charts.botkube.io
- chart: chaos-mesh
- targetRevision: 2.5.0
- helm:
- releaseName: chaos-mesh
- values: |
- bpfki:
- create: false
- grpcPort: 50051
- image:
- repository: chaos-mesh/chaos-kernel
- imagePullPolicy: IfNotPresent
- chaosDaemon:
- grpcPort: 31767
- hostNetwork: false
- httpPort: 31766
- image:
- repository: chaos-mesh/chaos-daemon
- imagePullPolicy: IfNotPresent
- mtls:
- enabled: true
- nodeSelector:
- kubernetes.io/hostname: node-one
- podSecurityPolicy: false
- privileged: true
- resources:
- limits:
- cpu: 150m
- memory: 300Mi
- requests:
- cpu: 25m
- memory: 128Mi
- runtime: docker
- serviceAccount: chaos-daemon
- socketPath: /var/run/docker.sock
- chaosDlv:
- enable: false
- image:
- repository: chaos-mesh/chaos-dlv
- imagePullPolicy: IfNotPresent
- clusterScoped: true
- controllerManager:
- allowHostNetworkTesting: false
- chaosdSecurityMode: true
- enableFilterNamespace: false
- enabledControllers:
- - '*'
- enabledWebhooks:
- - '*'
- env:
- METRICS_PORT: 10080
- WEBHOOK_PORT: 10250
- hostNetwork: false
- image:
- repository: chaos-mesh/chaos-mesh
- imagePullPolicy: IfNotPresent
- leaderElection:
- enabled: true
- leaseDuration: 15s
- renewDeadline: 10s
- retryPeriod: 2s
- nodeSelector:
- kubernetes.io/hostname: node-one
- podChaos:
- podFailure:
- pauseImage: gcr.io/google-containers/pause:latest
- replicaCount: 1
- resources:
- limits:
- cpu: 500m
- memory: 1024Mi
- requests:
- cpu: 25m
- memory: 256Mi
- service:
- type: ClusterIP
- serviceAccount: chaos-controller-manager
- targetNamespace: chaos-mesh
- dashboard:
- create: true
- env:
- CLEAN_SYNC_PERIOD: 12h
- DATABASE_DATASOURCE: /data/core.sqlite
- DATABASE_DRIVER: sqlite3
- LISTEN_HOST: 0.0.0.0
- LISTEN_PORT: 2333
- METRIC_HOST: 0.0.0.0
- METRIC_PORT: 2334
- TTL_EVENT: 168h
- TTL_EXPERIMENT: 336h
- TTL_SCHEDULE: 336h
- TTL_WORKFLOW: 336h
- gcpSecurityMode: false
- hostNetwork: false
- image:
- repository: chaos-mesh/chaos-dashboard
- imagePullPolicy: IfNotPresent
- ingress:
- certManager: false
- enabled: false
- hosts:
- - name: dashboard.local
- tls: false
- tlsSecret: dashboard.local-tls
- paths:
- - /
- nodeSelector:
- kubernetes.io/hostname: node-one
- persistentVolume:
- enabled: false
- mountPath: /data
- size: 8Gi
- storageClassName: standard
- replicaCount: 1
- resources:
- limits:
- cpu: 150m
- memory: 300Mi
- requests:
- cpu: 25m
- memory: 128Mi
- rootUrl: http://localhost:2333
- securityMode: true
- service:
- type: NodePort
- serviceAccount: chaos-dashboard
- dnsServer:
- create: false
- env:
- LISTEN_HOST: 0.0.0.0
- LISTEN_PORT: 53
- grpcPort: 9288
- image: pingcap/coredns:v0.2.1
- imagePullPolicy: IfNotPresent
- name: chaos-mesh-dns-server
- nodeSelector:
- kubernetes.io/hostname: node-one
- replicas: 1
- resources:
- requests:
- cpu: 100m
- memory: 70Mi
- serviceAccount: chaos-dns-server
- enableCtrlServer: true
- enableProfiling: true
- images:
- registry: ghcr.io
- tag: latest
- prometheus:
- create: false
- image: prom/prometheus:v2.18.1
- imagePullPolicy: IfNotPresent
- nodeSelector:
- kubernetes.io/hostname: node-one
- resources:
- limits:
- cpu: 500m
- memory: 1024Mi
- requests:
- cpu: 250m
- memory: 512Mi
- service:
- type: ClusterIP
- serviceAccount: prometheus
- volume:
- storage: 2Gi
- storageClassName: standard
- rbac:
- create: true
- timezone: America/Sao_Paulo
- webhook:
- CRDS:
- - podchaos
- - iochaos
- - timechaos
- - networkchaos
- - kernelchaos
- - stresschaos
- - awschaos
- - azurechaos
- - gcpchaos
- - dnschaos
- - jvmchaos
- - schedule
- - workflow
- - httpchaos
- - blockchaos
- - physicalmachinechaos
- - physicalmachine
- - statuscheck
- - remotecluster
- FailurePolicy: Fail
- certManager:
- enabled: false
- timeoutSeconds: 5
- destination:
- namespace: monitoring
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=false
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/utilities/cpu-booster.yaml b/apps/argocd/base/utilities/cpu-booster.yaml
new file mode 100644
index 000000000..20ce47ac8
--- /dev/null
+++ b/apps/argocd/base/utilities/cpu-booster.yaml
@@ -0,0 +1,36 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: cpu-booster
+spec:
+ project: cluster
+ source:
+ repoURL: "https://github.com/google/kube-startup-cpu-boost.git"
+ path: ./
+ targetRevision: v0.9.0
+ kustomize:
+ images:
+ - ghcr.io/google/kube-startup-cpu-boost:v0.9.0
+ destination:
+ namespace: utilities
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ retry:
+ limit: 10
+ backoff:
+ duration: 30s
+ factor: 2
+ maxDuration: 60m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/google/kube-startup-cpu-boost
+ - name: "Documentation:"
+ value: >-
+ https://github.com/google/kube-startup-cpu-boost#usage
diff --git a/apps/argocd/base/utilities/crossplane.yaml b/apps/argocd/base/utilities/crossplane.yaml
deleted file mode 100644
index ed25f2209..000000000
--- a/apps/argocd/base/utilities/crossplane.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: crossplane
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: apps
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/utilities/crossplane
- targetRevision: main
- destination:
- namespace: crossplane
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: false
- managedNamespaceMetadata:
- labels:
- prometheus: enabled
- syncOptions:
- - Validate=false
- - CreateNamespace=true
- - PrunePropagationPolicy=foreground
- - ServerSideApply=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
- info:
- - name: 'Github Repository:'
- value: >-
- https://github.com/crossplane/crossplane
- - name: 'Providers marketplace:'
- value: >-
- https://marketplace.upbound.io/
- - name: 'Helm chart Github path:'
- value: >-
- https://github.com/crossplane/crossplane/tree/master/cluster/charts/crossplane
- - name: 'Official docs:'
- value: >-
- https://docs.crossplane.io/latest/
- # https://github.com/crossplane/crossplane/issues/4509
- # This was not fixed with the PR/fix and requires ArgoCD patching to sync.
- ignoreDifferences:
- - group: apps
- kind: Deployment
- jqPathExpressions:
- - .spec.template.spec.containers[].env[].valueFrom.resourceFieldRef.divisor
- - .spec.template.spec.initContainers[].env[].valueFrom.resourceFieldRef.divisor
diff --git a/apps/argocd/base/utilities/descheduler.yaml b/apps/argocd/base/utilities/descheduler.yaml
index 33d1db751..e42dc8f27 100644
--- a/apps/argocd/base/utilities/descheduler.yaml
+++ b/apps/argocd/base/utilities/descheduler.yaml
@@ -2,8 +2,6 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: descheduler
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: cluster
source:
@@ -26,3 +24,16 @@ spec:
duration: 30s
factor: 2
maxDuration: 60m
+ info:
+ - name: 'Github Repository:'
+ value: >-
+ https://github.com/kubernetes-sigs/descheduler
+ - name: 'Config examples:'
+ value: >-
+ https://github.com/kubernetes-sigs/descheduler/tree/master/examples
+ - name: 'Official Docs:'
+ value: >-
+ https://github.com/kubernetes-sigs/descheduler?tab=readme-ov-file#user-guide
+ - name: 'Base Kustomize directory:'
+ value: >-
+ https://github.com/kubernetes-sigs/descheduler/tree/master/kubernetes/deployment
diff --git a/apps/argocd/base/utilities/eraser.yaml b/apps/argocd/base/utilities/eraser.yaml
index 76f92c5c2..413856a1a 100644
--- a/apps/argocd/base/utilities/eraser.yaml
+++ b/apps/argocd/base/utilities/eraser.yaml
@@ -2,8 +2,6 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: eraser
- finalizers:
- - resources-finalizer.argocd.argoproj.io
spec:
project: cluster
source:
@@ -11,22 +9,22 @@ spec:
path: apps/utilities/eraser
targetRevision: main
destination:
- namespace: eraser-system
+ namespace: utilities
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
- allowEmpty: false
managedNamespaceMetadata:
labels:
prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
syncOptions:
- - Validate=false
- - CreateNamespace=true
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- Prune=true
+ - ServerSideApply=true
+ - CreateNamespace=true
retry:
limit: 5
backoff:
diff --git a/apps/argocd/base/utilities/external-secrets.yaml b/apps/argocd/base/utilities/external-secrets.yaml
new file mode 100644
index 000000000..813a3d280
--- /dev/null
+++ b/apps/argocd/base/utilities/external-secrets.yaml
@@ -0,0 +1,47 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: external-secrets
+ namespace: argocd
+spec:
+ project: cluster
+ source:
+ repoURL: 'https://github.com/gruberdev/homelab.git'
+ path: apps/utilities/external-secrets
+ targetRevision: main
+ destination:
+ namespace: external-secrets
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ - CreateNamespace=true
+ retry:
+ limit: 10
+ backoff:
+ duration: 20s
+ factor: 2
+ maxDuration: 15m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/external-secrets/external-secrets
+ - name: "Chart location:"
+ value: >-
+ https://github.com/external-secrets/external-secrets/tree/main/deploy/charts/external-secrets
+ - name: "Official Website:"
+ value: >-
+ https://external-secrets.io/
+ - name: "Documentation for Bitwarden provisioner:"
+ value: >-
+ https://external-secrets.io/v0.9.16/examples/bitwarden/
diff --git a/apps/argocd/base/utilities/gfd.yaml b/apps/argocd/base/utilities/gfd.yaml
deleted file mode 100644
index bb2dafcd0..000000000
--- a/apps/argocd/base/utilities/gfd.yaml
+++ /dev/null
@@ -1,114 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: gpu-feature-discovery
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: cluster
- source:
- repoURL: https://github.com/NVIDIA/gpu-feature-discovery.git
- targetRevision: v0.8.2
- path: deployments/helm/gpu-feature-discovery
- helm:
- releaseName: nfd-gfd-discovery
- values: |
- failOnInitError: true
- migStrategy: none
- noTimestamp: false
- sleepInterval: 60s
- nameOverride: ""
- fullnameOverride: ""
- selectorLabelsOverride: {}
- allowDefaultNamespace: false
- imagePullSecrets: []
- image:
- repository: nvcr.io/nvidia/gpu-feature-discovery
- pullPolicy: IfNotPresent
- # Overrides the image tag whose default is the chart appVersion.
- tag: ""
- updateStrategy:
- type: RollingUpdate
- podAnnotations: {}
- podSecurityContext: {}
- securityContext:
- privileged: true
- resources: {}
- affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: feature.node.kubernetes.io/pci-10de.present
- operator: In
- values:
- - "true"
- - matchExpressions:
- - key: feature.node.kubernetes.io/cpu-model.vendor_id
- operator: In
- values:
- - "NVIDIA"
- - matchExpressions:
- - key: "nvidia.com/gpu.present"
- operator: In
- values:
- - "true"
- nodeSelector:
- kubernetes.io/hostname: node-one
- tolerations:
- - key: CriticalAddonsOnly
- operator: Exists
- - key: nvidia.com/gpu
- operator: Exists
- effect: NoSchedule
- priorityClassName: "system-node-critical"
- runtimeClassName: null
- nfd:
- nameOverride: node-feature-discovery
- master:
- extraLabelNs:
- - nvidia.com
- serviceAccount:
- name: node-feature-discovery
- worker:
- tolerations:
- - key: "node-role.kubernetes.io/master"
- operator: "Equal"
- value: ""
- effect: "NoSchedule"
- - key: "nvidia.com/gpu"
- operator: "Equal"
- value: "present"
- effect: "NoSchedule"
- config:
- sources:
- pci:
- deviceClassWhitelist:
- - "02"
- - "0200"
- - "0207"
- - "0300"
- - "0302"
- deviceLabelFields:
- - vendor
- destination:
- namespace: kube-system
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - PruneLast=false
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/utilities/kube-fledged.yaml b/apps/argocd/base/utilities/kube-fledged.yaml
index 7c59e9f77..c00d71aa8 100644
--- a/apps/argocd/base/utilities/kube-fledged.yaml
+++ b/apps/argocd/base/utilities/kube-fledged.yaml
@@ -1,75 +1,13 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
- name: fledged-app
- finalizers:
- - resources-finalizer.argocd.argoproj.io
+ name: kube-fledged
spec:
project: cluster
source:
- repoURL: 'https://github.com/senthilrch/kube-fledged.git'
- targetRevision: v0.10.0
- path: deploy/kubefledged-operator/helm-charts/kubefledged
- helm:
- releaseName: kube-fledged
- values: |
- args:
- controllerImageCacheRefreshFrequency: 15m
- controllerImageDeleteJobHostNetwork: false
- controllerImagePullDeadlineDuration: 5m
- controllerImagePullPolicy: IfNotPresent
- controllerJobRetentionPolicy: delete
- controllerLogLevel: INFO
- webhookServerCertFile: /var/run/secrets/webhook-server/tls.crt
- webhookServerKeyFile: /var/run/secrets/webhook-server/tls.key
- webhookServerLogLevel: INFO
- webhookServerPort: 443
- clusterRole:
- create: true
- clusterRoleBinding:
- create: true
- command:
- kubefledgedControllerCommand:
- - /opt/bin/kubefledged-controller
- kubefledgedWebhookServerCommand:
- - /opt/bin/kubefledged-webhook-server
- controller:
- hostNetwork: false
- controllerReplicaCount: 1
- image:
- busyboxImageRepository: senthilrch/busybox
- busyboxImageVersion: 1.35.0
- kubefledgedCRIClientRepository: docker.io/senthilrch/kubefledged-cri-client
- kubefledgedControllerRepository: docker.io/senthilrch/kubefledged-controller
- kubefledgedWebhookServerRepository: docker.io/senthilrch/kubefledged-webhook-server
- pullPolicy: Always
- ingress:
- enabled: false
- nodeSelector:
- kubernetes.io/arch: amd64
- resources:
- limits:
- cpu: 120m
- memory: 256Mi
- requests:
- cpu: 20m
- memory: 64Mi
- service:
- port: 80
- type: ClusterIP
- serviceAccount:
- create: true
- validatingWebhook:
- create: true
- webhookServer:
- enable: true
- hostNetwork: false
- webhookServerReplicaCount: 1
- webhookService:
- create: true
- port: 3443
- targetPort: 443
- type: ClusterIP
+ repoURL: "https://github.com/gruberdev/homelab.git"
+ path: apps/utilities/kube-fledged
+ targetRevision: main
destination:
namespace: kube-system
name: in-cluster
@@ -77,17 +15,22 @@ spec:
automated:
prune: true
selfHeal: true
- allowEmpty: false
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=background
- - ServerSideApply=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - Prune=true
+ - ServerSideApply=true
retry:
- limit: 5
+ limit: 10
backoff:
- duration: 5s
+ duration: 30s
factor: 2
- maxDuration: 3m
+ maxDuration: 60m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/senthilrch/kube-fledged
+ - name: "Helm chart values:"
+ value: >-
+ https://github.com/senthilrch/kube-fledged/blob/master/deploy/kubefledged-operator/helm-charts/kubefledged/values.yaml
+ - name: "Helm chart documentation:"
+ value: >-
+ https://github.com/senthilrch/kube-fledged/blob/master/docs/helm-parameters.md
diff --git a/apps/argocd/base/utilities/kured.yaml b/apps/argocd/base/utilities/kured.yaml
deleted file mode 100644
index 9b7134261..000000000
--- a/apps/argocd/base/utilities/kured.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: kured
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: cluster
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/utilities/kured
- targetRevision: main
- destination:
- namespace: kube-system
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: false
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/utilities/kustomization.yaml b/apps/argocd/base/utilities/kustomization.yaml
index 9168080d0..7778e3acf 100644
--- a/apps/argocd/base/utilities/kustomization.yaml
+++ b/apps/argocd/base/utilities/kustomization.yaml
@@ -2,18 +2,16 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
+ - nvidia.yaml
- kube-fledged.yaml
- reflector.yaml
- - reloader.yaml
- - snapshot.yaml
- - sealed.yaml
- - crossplane.yaml
+ - cpu-booster.yaml
- descheduler.yaml
-# - eraser.yaml
-# - kured.yaml
-# - wavy.yaml
+ - eraser.yaml
+ - agones.yaml
+ - external-secrets.yaml
namespace: argocd
-commonLabels:
- app.kubernetes.io/category: utilities
+commonAnnotations:
+ argocd.argoproj.io/sync-wave: "1"
diff --git a/apps/argocd/base/utilities/nvidia.yaml b/apps/argocd/base/utilities/nvidia.yaml
new file mode 100644
index 000000000..f39a3f945
--- /dev/null
+++ b/apps/argocd/base/utilities/nvidia.yaml
@@ -0,0 +1,39 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: nvidia-device-plugin
+spec:
+ project: cluster
+ source:
+ repoURL: "https://github.com/gruberdev/homelab.git"
+ path: apps/utilities/nvidia
+ targetRevision: main
+ destination:
+ namespace: utilities
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - Prune=true
+ - ServerSideApply=true
+ retry:
+ limit: 10
+ backoff:
+ duration: 30s
+ factor: 2
+ maxDuration: 60m
+ info:
+ - name: "Github Repository:"
+ value: >-
+ https://github.com/NVIDIA/k8s-device-plugin
+ - name: "Helm chart values:"
+ value: >-
+ https://github.com/NVIDIA/k8s-device-plugin/blob/main/deployments/helm/nvidia-device-plugin/values.yaml
+ - name: "Helm chart documentation:"
+ value: >-
+ https://github.com/NVIDIA/k8s-device-plugin?tab=readme-ov-file#deployment-via-helm
+ - name: "Container image registry explorer:"
+ value: >-
+ https://explore.ggcr.dev/?repo=nvcr.io%2Fnvidia%2Fk8s-device-plugin
diff --git a/apps/argocd/base/utilities/reflector.yaml b/apps/argocd/base/utilities/reflector.yaml
index 3ba97d2e2..6b09499ca 100644
--- a/apps/argocd/base/utilities/reflector.yaml
+++ b/apps/argocd/base/utilities/reflector.yaml
@@ -1,35 +1,28 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
- name: reflector-app
- finalizers:
- - resources-finalizer.argocd.argoproj.io
+ name: reflector
spec:
project: cluster
source:
repoURL: https://emberstack.github.io/helm-charts
chart: reflector
- targetRevision: 7.1.238
+ targetRevision: 7.1.262
helm:
releaseName: reflector
destination:
- namespace: kube-system
+ namespace: utilities
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
- allowEmpty: false
syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=background
- - ServerSideApply=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
+ - Prune=true
+ - ServerSideApply=true
retry:
limit: 5
backoff:
- duration: 5s
+ duration: 20s
factor: 2
- maxDuration: 3m
+ maxDuration: 15m
diff --git a/apps/argocd/base/utilities/reloader.yaml b/apps/argocd/base/utilities/reloader.yaml
deleted file mode 100644
index 6906b29ea..000000000
--- a/apps/argocd/base/utilities/reloader.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: reloader
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: cluster
- source:
- repoURL: https://stakater.github.io/stakater-charts
- chart: reloader
- targetRevision: 1.0.69
- helm:
- releaseName: reloader
- values: |
- kubernetes:
- host: https://kubernetes.default
- reloader:
- isArgoRollouts: true
- isOpenshift: false
- ignoreSecrets: false
- ignoreConfigMaps: false
- reloadOnCreate: true
- reloadStrategy: default
- watchGlobally: true
- readOnlyRootFileSystem: false
- destination:
- namespace: kube-system
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: true
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=foreground
- - ServerSideApply=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: -1
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/utilities/snapshot.yaml b/apps/argocd/base/utilities/snapshot.yaml
deleted file mode 100644
index 78b11bef9..000000000
--- a/apps/argocd/base/utilities/snapshot.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: snapshot-controller
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: cluster
- source:
- repoURL: 'https://github.com/democratic-csi/charts.git'
- targetRevision: snapshot-controller-0.2.4
- path: stable/snapshot-controller
- helm:
- releaseName: snapshot-controller
- values: |
- controller:
- enabled: true
- rbac:
- enabled: true
- replicaCount: 1
- image:
- repository: registry.k8s.io/sig-storage/snapshot-controller
- pullPolicy: IfNotPresent
- args:
- - "--v=5"
- - "--leader-election=true"
- - "--enable-distributed-snapshotting"
- validatingWebhook:
- enabled: false
- rbac:
- enabled: true
- replicaCount: 1
- image:
- repository: registry.k8s.io/sig-storage/snapshot-validation-webhook
- pullPolicy: IfNotPresent
- destination:
- namespace: kube-system
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: false
- syncOptions:
- - Validate=false
- - CreateNamespace=false
- - PrunePropagationPolicy=background
- - ServerSideApply=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 15s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/base/utilities/wavy.yaml b/apps/argocd/base/utilities/wavy.yaml
deleted file mode 100644
index 43f2c4aa4..000000000
--- a/apps/argocd/base/utilities/wavy.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- name: wavy
- finalizers:
- - resources-finalizer.argocd.argoproj.io
-spec:
- project: cluster
- source:
- repoURL: 'https://github.com/gruberdev/homelab.git'
- path: apps/utilities/wavy
- targetRevision: main
- destination:
- namespace: utilities
- name: in-cluster
- syncPolicy:
- automated:
- prune: true
- selfHeal: true
- allowEmpty: false
- syncOptions:
- - Validate=false
- - CreateNamespace=true
- - PrunePropagationPolicy=foreground
- - PruneLast=true
- - ApplyOutOfSyncOnly=false
- - Prune=true
- retry:
- limit: 5
- backoff:
- duration: 20s
- factor: 2
- maxDuration: 15m
diff --git a/apps/argocd/kustomization.yaml b/apps/argocd/kustomization.yaml
index f950e6cb6..763e851ab 100644
--- a/apps/argocd/kustomization.yaml
+++ b/apps/argocd/kustomization.yaml
@@ -2,152 +2,169 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- # ArgoCD Projects
- - base/projects/core.yaml
- - base/projects/cluster.yaml
- - base/projects/monitoring.yaml
- - base/projects/networking.yaml
- - base/projects/apps.yaml
- # - base/projects/mlops.yaml
- - base/projects/matrix.yaml
+- base/projects
- # Core apps
- - base/core/argocd.yaml
- - base/core/data.yaml
- - base/core/home.yaml
- - base/core/nvidia.yaml
- - base/core/nvidia-extra.yaml
- - base/core/networking.yaml
- - base/core/services.yaml
- - base/core/utilities.yaml
+- base/core/argocd.yaml
+- base/core/data.yaml
+- base/core/home.yaml
+- base/core/mlops.yaml
+- base/core/networking.yaml
+- base/core/monitoring.yaml
+- base/core/services.yaml
+- base/core/utilities.yaml
+- base/core/vault.yaml
- # Applications
- - base/apps/vault.yaml
-
- # Monitoring
- - base/monitoring/kuma.yaml
- - base/monitoring/unifi-poller.yaml
- - base/monitoring/kube-prometheus.yaml
- - base/monitoring/grafana.yaml
- - base/monitoring/nvidia.yaml
-
- # ArgoCD
- - base/cmp-plugin.yaml
- - base/repo-role.yaml
- - base/repo-rb.yaml
- - github.com/argoproj-labs/argocd-extension-metrics/manifests?ref=v1.0.1
-
- - https://github.com/gruberdev/homelab/apps/networking/tailscale
- - https://github.com/gruberdev/homelab/apps/networking/cloudflared
- - https://raw.githubusercontent.com/argoproj/argo-cd/v2.9.5/manifests/install.yaml
- - base/styles-cm.yaml
- - base/metrics.yaml
+- base/cmp-plugin.yaml
+- base/repo-role.yaml
+- base/repo-rb.yaml
+- base/svc-monitors.yaml
+- github.com/argoproj-labs/argocd-extension-metrics/manifests?ref=v1.0.3
+- https://raw.githubusercontent.com/argoproj/argo-cd/v2.11.3/manifests/install.yaml
+- base/styles-cm.yaml
+- base/ingress.yaml
namespace: argocd
images:
- - name: quay.io/argoproj/argocd
- newTag: v2.9.5
+- name: quay.io/argoproj/argocd
+ newTag: v2.11.3
patches:
- - patch: |-
- - op: replace
- path: "/metadata/namespace"
- value: "monitoring"
- target:
- kind: ServiceMonitor
- - patch: |-
- - op: add
- path: "/spec/strategy"
- value:
- type: "Recreate"
- - op: replace
- path: "/spec/template/spec/serviceAccountName"
- value: "argocd-server"
- target:
- kind: Deployment
+- patch: |-
+ - op: replace
+ path: "/metadata/namespace"
+ value: "monitoring"
+ target:
+ kind: ServiceMonitor
+- patch: |-
+ - op: add
+ path: "/spec/strategy"
+ value:
+ type: "Recreate"
+ - op: replace
+ path: "/spec/template/spec/serviceAccountName"
+ value: "argocd-server"
+ target:
+ kind: Deployment
+ name: argocd-server
+- patch: |-
+ - op: add
+ path: "/spec/template/spec/containers/0/args/-"
+ value: "--insecure"
+ target:
+ kind: Deployment
+ name: argocd-server
+- patch: |
+ apiVersion: apps/v1
+ kind: Deployment
+ metadata:
+ name: argocd-notifications-controller
+ spec:
+ template:
+ spec:
+ containers:
+ - name: argocd-notifications-controller
+ resources:
+ limits:
+ cpu: 150m
+ memory: 256Mi
+ requests:
+ cpu: 50m
+ memory: 128Mi
+- patch: |
+ apiVersion: apps/v1
+ kind: StatefulSet
+ metadata:
+ name: argocd-application-controller
+ spec:
+ template:
+ spec:
+ containers:
+ - name: argocd-application-controller
+ resources:
+ limits:
+ cpu: 2000m
+ memory: 2048Mi
+ requests:
+ cpu: 1000m
+ memory: 1024Mi
+- patch: |
+ apiVersion: apps/v1
+ kind: Deployment
+ metadata:
+ name: argocd-redis
+ spec:
+ template:
+ spec:
+ containers:
+ - name: redis
+ resources:
+ limits:
+ cpu: 500m
+ memory: 1024Mi
+ requests:
+ cpu: 250m
+ memory: 512Mi
+ initContainers:
+ - name: secret-init
+ resources:
+ limits:
+ cpu: 250m
+ memory: 512Mi
+ requests:
+ cpu: 250m
+ memory: 256Mi
+- patch: |
+ apiVersion: apps/v1
+ kind: Deployment
+ metadata:
name: argocd-server
- - patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- - patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- kubernetes.io/arch: amd64
- target:
- kind: StatefulSet
- - patch: |-
- - op: replace
- path: "/spec/template/spec/volumes/0/secret/secretName"
- value: "argo-tunnel"
- target:
- kind: Deployment
- name: cloudflared
- - patch: |-
- - op: add
- path: "/spec/template/spec/containers/0/args/-"
- value: "--insecure"
- target:
- kind: Deployment
- name: argocd-server
- - path: overlay/argocd-svc.yaml
- - path: overlay/argocd-deployment.yaml
- - path: overlay/argocd-repo-deployment.yaml
- - path: overlay/argocd-cm.yaml
- - path: overlay/argocd-cmd-cm.yaml
- - path: overlay/cloudflared-cm.yaml
- - path: overlay/argocd-rbac.yaml
- - path: overlay/argocd-cr.yaml
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-# Core Applications
-# - base/core/tailscale.yaml
-# - base/core/private.yaml
-# - base/core/democratic-csi.yaml
-# - base/core/router.yaml
-# Applications
-# - base/apps/golinks.yaml
-# - base/apps/agones.yaml
-# - base/apps/agones-crd.yaml
-# - base/apps/mongodb-crds.yaml
-# - base/apps/mongodb.yaml
-# - base/apps/adguard.yaml
-# Monitoring Resources
-# - base/monitoring/botkube.yaml
-# - base/monitoring/nextdns.yaml
-# - base/monitoring/pixie.yaml
-# Media Services
-# - base/services/media/jellyfin.yaml
-# - base/services/media/prowlarr.yaml
-# - base/services/media/sonarr.yaml
-# - base/services/media/qbittorrent.yaml
-# - base/services/media/ganymede.yaml
-# - base/services/media/beets.yaml
-# - base/services/media/lidarr.yaml
-# - base/services/media/bazarr.yaml
-# Matrix & utilities
-# - base/matrix/synapse.yaml
-# - base/matrix/dbs.yaml
-# - base/matrix/dendrite.yaml
-# - base/matrix/proxies.yaml
-# Matrix bridges
-# - base/matrix/whats.yaml
-# - base/matrix/instagram.yaml
-# - base/matrix/linkedin.yaml
-# - base/matrix/discord.yaml
-# - base/matrix/telegram.yaml
-# - base/matrix/steam.yaml
-# - base/matrix/signal.yaml
-# Vault plugin
-# ArgoCD Remote Resources
-# Image Updater
-# - https://github.com/argoproj-labs/argocd-image-updater/manifests/base
-# Custom CSS Styles
-# components:
-# # Extensions controller component
-# - https://github.com/argoproj-labs/argocd-extensions/manifests
+ spec:
+ template:
+ spec:
+ containers:
+ - name: argocd-server
+ resources:
+ limits:
+ cpu: 500m
+ memory: 2048Mi
+ requests:
+ cpu: 200m
+ memory: 1024Mi
+ initContainers:
+ - name: extension-metrics
+ resources:
+ limits:
+ cpu: 50m
+ memory: 64Mi
+ requests:
+ cpu: 50m
+ memory: 32Mi
+- patch: |
+ apiVersion: apps/v1
+ kind: Deployment
+ metadata:
+ name: argocd-repo-server
+ spec:
+ strategy:
+ type: Recreate
+ template:
+ spec:
+ containers:
+ - name: argocd-repo-server
+ resources:
+ limits:
+ cpu: 1000m
+ memory: 1024Mi
+ requests:
+ cpu: 500m
+ memory: 512Mi
+
+- path: overlay/argocd-svc.yaml
+- path: overlay/argocd-deployment.yaml
+- path: overlay/argocd-repo-deployment.yaml
+- path: overlay/argocd-cm.yaml
+- path: overlay/argocd-cmd-cm.yaml
+- path: overlay/argocd-rbac.yaml
+- path: overlay/argocd-cr.yaml
+- path: overlay/argocd-applicationset-controller.yaml
+- path: overlay/argocd-dex.yaml
+- path: overlay/argocd-metrics.yaml
diff --git a/apps/argocd/overlay/argocd-applicationset-controller.yaml b/apps/argocd/overlay/argocd-applicationset-controller.yaml
new file mode 100644
index 000000000..8d6fd4be8
--- /dev/null
+++ b/apps/argocd/overlay/argocd-applicationset-controller.yaml
@@ -0,0 +1,16 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: argocd-applicationset-controller
+spec:
+ template:
+ spec:
+ containers:
+ - name: argocd-applicationset-controller
+ resources:
+ limits:
+ cpu: 200m
+ memory: 256Mi
+ requests:
+ cpu: 120m
+ memory: 128Mi
diff --git a/apps/argocd/overlay/argocd-cm.yaml b/apps/argocd/overlay/argocd-cm.yaml
index ae845ba65..00de31b69 100644
--- a/apps/argocd/overlay/argocd-cm.yaml
+++ b/apps/argocd/overlay/argocd-cm.yaml
@@ -7,17 +7,53 @@ metadata:
app.kubernetes.io/part-of: argocd
data:
accounts.image-updater: apiKey
- kustomize.buildOptions: --enable-helm
- application.resourceTrackingMethod: annotation+label
- url: https://argo.gruber.dev.br
+ kustomize.buildOptions: --enable-helm --load-restrictor LoadRestrictionsNone
+ application.resourceTrackingMethod: annotation
+ url: https://argo.raptor-beta.ts.net
statusbadge.enabled: "true"
- statusbadge.url: "https://argo.gruber.dev.br/"
+ statusbadge.url: "https://argo.raptor-beta.ts.net/"
exec.enabled: "true"
# https://argo-cd.readthedocs.io/en/stable/operator-manual/reconcile/#system-level-configuration
resource.ignoreResourceUpdatesEnabled: "true"
- extension.config: |-
+ extension.config: |
extensions:
- name: metrics
backend:
services:
- - url: http://argocd-metrics-server.argocd.svc.cluster.local:9003
+ - url: http://argocd-metrics-server.argocd.svc.cluster.local:9003
+ resource.customizations.ignoreDifferences.Service: |
+ jsonPointers:
+ - /spec/ports/0/nodePort
+ - /spec/ports/1/nodePort
+ application.links: |
+ - url: https://github.com/gruberdev/homelab/tree/main/apps/{{.app.spec.destination.namespace}/{{.app.metadata.name}}
+ title: Github Source
+ if: application.spec.project != ""
+ resource.customizations.ignoreDifferences.admissionregistration.k8s.io_MutatingWebhookConfiguration: |
+ jsonPointers:
+ - /webhooks/0/clientConfig/caBundle
+ - /webhooks/1/clientConfig/caBundle
+ - /webhooks/2/clientConfig/caBundle
+ - /webhooks/3/clientConfig/caBundle
+ - /webhooks/4/clientConfig/caBundle
+ - /webhooks/5/clientConfig/caBundle
+ jqPathExpressions:
+ - .webhooks[0].clientConfig.caBundle
+ managedFieldsManagers:
+ - kube-controller-manager
+ resource.customizations.ignoreDifferences.admissionregistration.k8s.io_ValidatingWebhookConfiguration: |
+ jsonPointers:
+ - /webhooks/0/clientConfig/caBundle
+ - /webhooks/1/clientConfig/caBundle
+ - /webhooks/2/clientConfig/caBundle
+ - /webhooks/3/clientConfig/caBundle
+ - /webhooks/4/clientConfig/caBundle
+ - /webhooks/5/clientConfig/caBundle
+ - /webhooks/6/clientConfig/caBundle
+ - /webhooks/7/clientConfig/caBundle
+ - /webhooks/8/clientConfig/caBundle
+ - /webhooks/9/clientConfig/caBundle
+ jqPathExpressions:
+ - .webhooks[0].clientConfig.caBundle
+ managedFieldsManagers:
+ - kube-controller-manager
diff --git a/apps/argocd/overlay/argocd-dex.yaml b/apps/argocd/overlay/argocd-dex.yaml
new file mode 100644
index 000000000..c45b4004b
--- /dev/null
+++ b/apps/argocd/overlay/argocd-dex.yaml
@@ -0,0 +1,25 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: argocd-dex-server
+spec:
+ template:
+ spec:
+ containers:
+ - name: dex
+ resources:
+ limits:
+ cpu: 200m
+ memory: 256Mi
+ requests:
+ cpu: 150m
+ memory: 128Mi
+ initContainers:
+ - name: copyutil
+ resources:
+ limits:
+ cpu: 150m
+ memory: 128Mi
+ requests:
+ cpu: 150m
+ memory: 64Mi
diff --git a/apps/argocd/overlay/argocd-metrics.yaml b/apps/argocd/overlay/argocd-metrics.yaml
new file mode 100644
index 000000000..f0f449357
--- /dev/null
+++ b/apps/argocd/overlay/argocd-metrics.yaml
@@ -0,0 +1,304 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-metrics-server-configmap
+data:
+ config.json: |
+ {
+ "prometheus": {
+ "applications": [
+ {
+ "name": "default",
+ "default": true,
+ "dashboards": [
+ {
+ "groupKind": "pod",
+ "tabs": ["Prometheus"],
+ "rows": [
+ {
+ "name": "pod",
+ "title": "Pods",
+ "tab": "Prometheus",
+ "graphs": [
+ {
+ "name": "pod_cpu_line",
+ "title": "CPU",
+ "description": "",
+ "graphType": "line",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_cpu_usage_seconds_total{pod=~\"{{.name}}\", image!=\"\", container!=\"POD\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ },
+ {
+ "name": "pod_cpu_pie",
+ "title": "CPU Avg",
+ "description": "",
+ "graphType": "pie",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_cpu_usage_seconds_total{pod=~\"{{.name}}\", container!=\"POD\", image!=\"\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ },
+ {
+ "name": "pod_memory_line",
+ "title": "Memory",
+ "description": "",
+ "graphType": "line",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_memory_usage_bytes{pod=~\"{{.name}}\", container!=\"POD\", image!=\"\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ },
+ {
+ "name": "pod_memory_pie",
+ "title": "Mem Avg",
+ "description": "",
+ "graphType": "pie",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_memory_usage_bytes{pod=~\"{{.name}}\", container!=\"POD\", image!=\"\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ }
+ ]
+ },
+ {
+ "name": "container",
+ "title": "Containers",
+ "tab": "Prometheus",
+ "graphs": [
+ {
+ "name": "container_cpu_line",
+ "title": "CPU",
+ "description": "",
+ "graphType": "line",
+ "metricName": "container",
+ "queryExpression": "sum(rate(container_cpu_usage_seconds_total{pod=~\"{{.name}}\", image!=\"\", container!=\"POD\", container!=\"\", container_name!=\"POD\"}[5m])) by (container)"
+ },
+ {
+ "name": "container_cpu_pie",
+ "title": "CPU Avg",
+ "description": "",
+ "graphType": "pie",
+ "metricName": "container",
+ "queryExpression": "sum(rate(container_cpu_usage_seconds_total{pod=~\"{{.name}}\", image!=\"\",container!=\"POD\", container!=\"\", container_name!=\"POD\"}[5m])) by (container)"
+ },
+ {
+ "name": "container_memory_line",
+ "title": "Memory",
+ "description": "",
+ "graphType": "line",
+ "metricName": "container",
+ "queryExpression": "sum(rate(container_memory_usage_bytes{pod=~\"{{.name}}\", image!=\"\", container!=\"POD\", container!=\"\", container_name!=\"POD\"}[5m])) by (container)"
+ },
+ {
+ "name": "container_memory_pie",
+ "title": "Mem Avg",
+ "description": "",
+ "graphType": "pie",
+ "metricName": "container",
+ "queryExpression": "sum(rate(container_memory_usage_bytes{pod=~\"{{.name}}\", image!=\"\", container!=\"POD\", container!=\"\", container_name!=\"POD\"}[5m])) by (container)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "groupKind": "deployment",
+ "tabs": ["Prometheus"],
+ "rows": [
+ {
+ "name": "httplatency",
+ "title": "HTTP Latency",
+ "tab": "Prometheus",
+ "graphs": [
+ {
+ "name": "http_200_latency",
+ "title": "Latency",
+ "description": "",
+ "graphType": "line",
+ "metricName": "pod_template_hash",
+ "queryExpression": "sum(rate(http_server_requests_seconds_sum {namespace=\"{{.namespace}}\", status=\"200\"} [1m])) by (pod_template_hash)"
+ }
+ ]
+ },
+ {
+ "name": "httperrortate",
+ "title": "HTTP Error Rate",
+ "tab": "Prometheus",
+ "graphs": [
+ {
+ "name": "http_error_rate_500",
+ "title": "HTTP Error 500",
+ "description": "",
+ "graphType": "line",
+ "metricName": "pod_template_hash",
+ "queryExpression": "sum(rate(http_server_requests_seconds_count {namespace=\"{{.namespace}}\", status=\"500\"} [1m])) by (pod_template_hash)"
+ },
+ {
+ "name": "http_error_rate_400",
+ "title": "HTTP Error 400",
+ "description": "",
+ "graphType": "line",
+ "metricName": "pod_template_hash",
+ "queryExpression": "sum(rate(http_server_requests_seconds_count {namespace=\"{{.namespace}}\", status=\"404\"} [1m])) by (pod_template_hash)"
+ }
+ ]
+ },
+ {
+ "name": "httptraffic",
+ "title": "HTTP Traffic",
+ "tab": "Prometheus",
+ "graphs": [
+ {
+ "name": "http_traffic",
+ "title": "Traffic",
+ "description": "",
+ "graphType": "line",
+ "metricName": "pod_template_hash",
+ "queryExpression": "sum(rate(http_server_requests_seconds_count {namespace=\"{{.namespace}}\"} [1m])) by (pod_template_hash)"
+ }
+ ]
+ },
+ {
+ "name": "pod",
+ "title": "Pods",
+ "tab": "Prometheus",
+ "graphs": [
+ {
+ "name": "pod_cpu_line",
+ "title": "CPU",
+ "description": "",
+ "graphType": "line",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_cpu_usage_seconds_total{pod=~\"{{.name}}\", image!=\"\", container!=\"POD\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ },
+ {
+ "name": "pod_cpu_pie",
+ "title": "CPU Avg",
+ "description": "",
+ "graphType": "pie",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_cpu_usage_seconds_total{pod=~\"{{.name}}\", container!=\"POD\", image!=\"\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ },
+ {
+ "name": "pod_memory_line",
+ "title": "Memory",
+ "description": "",
+ "graphType": "line",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_memory_usage_bytes{pod=~\"{{.name}}\", container!=\"POD\", image!=\"\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ },
+ {
+ "name": "pod_memory_pie",
+ "title": "Mem Avg",
+ "description": "",
+ "graphType": "pie",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_memory_usage_bytes{pod=~\"{{.name}}\", container!=\"POD\", image!=\"\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "groupKind": "rollout",
+ "tabs": ["Prometheus"],
+ "rows": [
+ {
+ "name": "httplatency",
+ "title": "HTTP Latency",
+ "tab": "Prometheus",
+ "graphs": [
+ {
+ "name": "http_200_latency",
+ "title": "Latency",
+ "description": "",
+ "graphType": "line",
+ "metricName": "rollout_template_hash",
+ "queryExpression": "sum(rate(http_server_requests_seconds_sum {namespace=\"{{.namespace}}\", status=\"200\"} [1m])) by (rollout_template_hash)"
+ }
+ ]
+ },
+ {
+ "name": "httperrortate",
+ "title": "HTTP Error Rate",
+ "tab": "Prometheus",
+ "graphs": [
+ {
+ "name": "http_error_rate_500",
+ "title": "HTTP Error 500",
+ "description": "",
+ "graphType": "line",
+ "metricName": "rollout_template_hash",
+ "queryExpression": "sum(rate(http_server_requests_seconds_count {namespace=\"{{.namespace}}\", status=\"500\"} [1m])) by (rollout_template_hash)"
+ },
+ {
+ "name": "http_error_rate_400",
+ "title": "HTTP Error 400",
+ "description": "",
+ "graphType": "line",
+ "metricName": "rollout_template_hash",
+ "queryExpression": "sum(rate(http_server_requests_seconds_count {namespace=\"{{.namespace}}\", status=\"404\"} [1m])) by (rollout_template_hash)"
+ }
+ ]
+ },
+ {
+ "name": "httptraffic",
+ "title": "HTTP Traffic",
+ "tab": "Prometheus",
+ "graphs": [
+ {
+ "name": "http_traffic",
+ "title": "Traffic",
+ "description": "",
+ "graphType": "line",
+ "metricName": "rollout_template_hash",
+ "queryExpression": "sum(rate(http_server_requests_seconds_count {namespace=\"{{.namespace}}\"} [1m])) by (rollout_template_hash)"
+ }
+ ]
+ },
+ {
+ "name": "pod",
+ "title": "Pods",
+ "tab": "Prometheus",
+ "graphs": [
+ {
+ "name": "pod_cpu_line",
+ "title": "CPU",
+ "description": "",
+ "graphType": "line",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_cpu_usage_seconds_total{pod=~\"{{.name}}\", image!=\"\", container!=\"POD\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ },
+ {
+ "name": "pod_cpu_pie",
+ "title": "CPU Avg",
+ "description": "",
+ "graphType": "pie",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_cpu_usage_seconds_total{pod=~\"{{.name}}\", container!=\"POD\", image!=\"\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ },
+ {
+ "name": "pod_memory_line",
+ "title": "Memory",
+ "description": "",
+ "graphType": "line",
+ "metricName": "pod",
+ "queryExpression": "sum(container_memory_working_set_bytes{namespace=\"{{.namespace}}\", pod=\"{{.pod}}\", image!=\"\", cluster=\"{{.cluster}}\"}) by (container) / sum(kube_pod_container_resource_requests{namespace=\"{{.namespace}}\", pod=\"{{.pod}}\", resource=\"memory\", job=~\"{{.job}}\", cluster=\"{{.cluster}}\"}) by (container)"
+ },
+ {
+ "name": "pod_memory_pie",
+ "title": "Mem Avg",
+ "description": "",
+ "graphType": "pie",
+ "metricName": "pod",
+ "queryExpression": "sum(rate(container_memory_usage_bytes{pod=~\"{{.name}}\", container!=\"POD\", image!=\"\", container!=\"\", container_name!=\"POD\"}[5m])) by (pod)"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "provider":
+ {
+ "Name": "default",
+ "default": true,
+ "address": "http://prometheus-operated.monitoring.svc.cluster.local:9090"
+ }
+ }
+ }
diff --git a/apps/argocd/overlay/argocd-notification-controller.yaml b/apps/argocd/overlay/argocd-notification-controller.yaml
new file mode 100644
index 000000000..ab777453f
--- /dev/null
+++ b/apps/argocd/overlay/argocd-notification-controller.yaml
@@ -0,0 +1,20 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: argocd-notifications-controller
+spec:
+ template:
+ spec:
+ containers:
+ - name: argocd-notifications-controller
+ envFrom:
+ - secretRef:
+ name: argocd-notifications-github
+ optional: true
+ - secretRef:
+ name: argocd-notifications-grafana
+ optional: true
+ - secretRef:
+ name: argocd-notifications-pushover
+ optional: true
diff --git a/apps/argocd/overlay/argocd-notifications-cm.yaml b/apps/argocd/overlay/argocd-notifications-cm.yaml
new file mode 100644
index 000000000..96bade0b2
--- /dev/null
+++ b/apps/argocd/overlay/argocd-notifications-cm.yaml
@@ -0,0 +1,45 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-notifications-cm
+data:
+ service.pushover: |
+ token: $pushover-token
+ service.grafana: |
+ apiUrl: http://kube-prometheus-grafana.svc.cluster.local/api
+ apiKey: $grafana-api-key
+ insecureSkipVerify: true
+ service.telegram: |
+ token: $telegram-token
+ service.github: |
+ appID: 901531
+ installationID: 50904587
+ privateKey: $github-privateKey
+ trigger.on-deployed: |
+ - description: Application is synced and healthy. Triggered once per commit.
+ oncePer: app.status.operationState.syncResult.revision
+ send:
+ - app-deployed
+ when: app.status.operationState.phase in ['Succeeded'] and
+ app.status.health.status == 'Healthy'
+ template.app-deployed: |
+ message: |
+ Application {{.app.metadata.name}} is now running new version of deployments manifests.
+ github:
+ repoURLPath: "{{.app.spec.source.repoURL}}"
+ revisionPath: "{{.app.status.operationState.syncResult.revision}}"
+ status:
+ state: success
+ label: "continuous-delivery/{{.app.metadata.name}}"
+ targetURL: "{{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true"
+ deployment:
+ state: success
+ environment: production
+ logURL: "{{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true"
+ requiredContexts: []
+ autoMerge: true
+ transientEnvironment: false
+ pullRequestComment:
+ content: |
+ Application {{.app.metadata.name}} is now running new version of deployments manifests.
+ See more here: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true
diff --git a/apps/argocd/overlay/argocd-rbac.yaml b/apps/argocd/overlay/argocd-rbac.yaml
index 8e9baf39e..032e2809c 100644
--- a/apps/argocd/overlay/argocd-rbac.yaml
+++ b/apps/argocd/overlay/argocd-rbac.yaml
@@ -17,7 +17,7 @@ data:
g, image-updater, role:image-updater
p, role:admin, exec, create, */*, allow
p, role:admin, extensions, invoke, metrics, allow
- p, role:readonly, extensions, invoke, httpbin, allow
+ p, role:readonly, extensions, invoke, metrics, allow
g, ext, role:extension
p, role:extension, applications, get, default/httpbin-app, allow
p, role:extension, extensions, invoke, httpbin, allow
diff --git a/apps/argocd/overlay/argocd-repo-deployment.yaml b/apps/argocd/overlay/argocd-repo-deployment.yaml
index cc7de2392..f86b88d43 100644
--- a/apps/argocd/overlay/argocd-repo-deployment.yaml
+++ b/apps/argocd/overlay/argocd-repo-deployment.yaml
@@ -3,7 +3,7 @@ kind: Deployment
metadata:
name: argocd-repo-server
annotations:
- link.argocd.argoproj.io/external-link: https://argo.gruber.dev.br
+ link.argocd.argoproj.io/external-link: https://argo.raptor-beta.ts.net
labels:
app.kubernetes.io/name: argocd-repo-server
app.kubernetes.io/part-of: argocd
@@ -12,85 +12,119 @@ spec:
spec:
automountServiceAccountToken: true
volumes:
- - configMap:
- name: cmp-plugin
+ - configMap:
name: cmp-plugin
- - name: custom-tools
- emptyDir: {}
+ name: cmp-plugin
+ - name: custom-tools
+ emptyDir: {}
initContainers:
- name: download-tools
- image: docker.io/grubertech/argocd-sidecar:v2.8.3
+ image: docker.io/grubertech/argocd-sidecar:v2.11.3
imagePullPolicy: Always
+ resources:
+ limits:
+ cpu: 60m
+ memory: 512Mi
+ requests:
+ cpu: 10m
+ memory: 256Mi
env:
- - name: AVP_VERSION
- value: 1.16.1
+ - name: AVP_VERSION
+ value: 1.18.1
command: [sh, -c]
args:
- - >-
- curl -L https://github.com/argoproj-labs/argocd-vault-plugin/releases/download/v$(AVP_VERSION)/argocd-vault-plugin_$(AVP_VERSION)_linux_amd64 -o argocd-vault-plugin &&
- chmod +x argocd-vault-plugin &&
- mv argocd-vault-plugin /custom-tools/
+ - >-
+ curl -L https://github.com/argoproj-labs/argocd-vault-plugin/releases/download/v$(AVP_VERSION)/argocd-vault-plugin_$(AVP_VERSION)_linux_amd64 -o argocd-vault-plugin && chmod +x argocd-vault-plugin && mv argocd-vault-plugin /custom-tools/
volumeMounts:
- - mountPath: /custom-tools
- name: custom-tools
+ - mountPath: /custom-tools
+ name: custom-tools
+ - name: copyutil
+ resources:
+ limits:
+ cpu: 50m
+ memory: 256Mi
+ requests:
+ cpu: 10m
+ memory: 128Mi
containers:
- name: avp-helm
command: [/var/run/argocd/argocd-cmp-server]
- image: docker.io/grubertech/argocd-sidecar:v2.8.3
+ image: docker.io/grubertech/argocd-sidecar:v2.11.3
imagePullPolicy: Always
+ resources:
+ limits:
+ cpu: 300m
+ memory: 512Mi
+ requests:
+ cpu: 300m
+ memory: 256Mi
securityContext:
runAsNonRoot: true
runAsUser: 999
volumeMounts:
- - mountPath: /var/run/argocd
- name: var-files
- - mountPath: /home/argocd/cmp-server/plugins
- name: plugins
- - mountPath: /tmp
- name: tmp
- - mountPath: /home/argocd/cmp-server/config/plugin.yaml
- subPath: avp-helm.yaml
- name: cmp-plugin
- - name: custom-tools
- subPath: argocd-vault-plugin
- mountPath: /usr/local/bin/argocd-vault-plugin
+ - mountPath: /var/run/argocd
+ name: var-files
+ - mountPath: /home/argocd/cmp-server/plugins
+ name: plugins
+ - mountPath: /tmp
+ name: tmp
+ - mountPath: /home/argocd/cmp-server/config/plugin.yaml
+ subPath: avp-helm.yaml
+ name: cmp-plugin
+ - name: custom-tools
+ subPath: argocd-vault-plugin
+ mountPath: /usr/local/bin/argocd-vault-plugin
- name: avp-kustomize
command: [/var/run/argocd/argocd-cmp-server]
- image: docker.io/grubertech/argocd-sidecar:v2.8.3
+ image: docker.io/grubertech/argocd-sidecar:v2.11.3
imagePullPolicy: Always
+ resources:
+ limits:
+ cpu: 500m
+ memory: 1024Mi
+ requests:
+ cpu: 250m
+ memory: 756Mi
securityContext:
runAsNonRoot: true
runAsUser: 999
volumeMounts:
- - mountPath: /var/run/argocd
- name: var-files
- - mountPath: /home/argocd/cmp-server/plugins
- name: plugins
- - mountPath: /tmp
- name: tmp
- - mountPath: /home/argocd/cmp-server/config/plugin.yaml
- subPath: avp-kustomize.yaml
- name: cmp-plugin
- - name: custom-tools
- subPath: argocd-vault-plugin
- mountPath: /usr/local/bin/argocd-vault-plugin
+ - mountPath: /var/run/argocd
+ name: var-files
+ - mountPath: /home/argocd/cmp-server/plugins
+ name: plugins
+ - mountPath: /tmp
+ name: tmp
+ - mountPath: /home/argocd/cmp-server/config/plugin.yaml
+ subPath: avp-kustomize.yaml
+ name: cmp-plugin
+ - name: custom-tools
+ subPath: argocd-vault-plugin
+ mountPath: /usr/local/bin/argocd-vault-plugin
- name: avp
command: [/var/run/argocd/argocd-cmp-server]
- image: docker.io/grubertech/argocd-sidecar:v2.8.3
+ image: docker.io/grubertech/argocd-sidecar:v2.11.3
imagePullPolicy: Always
+ resources:
+ limits:
+ cpu: 300m
+ memory: 512Mi
+ requests:
+ cpu: 300m
+ memory: 256Mi
securityContext:
runAsNonRoot: true
runAsUser: 999
volumeMounts:
- - mountPath: /var/run/argocd
- name: var-files
- - mountPath: /home/argocd/cmp-server/plugins
- name: plugins
- - mountPath: /tmp
- name: tmp
- - mountPath: /home/argocd/cmp-server/config/plugin.yaml
- subPath: avp.yaml
- name: cmp-plugin
- - name: custom-tools
- subPath: argocd-vault-plugin
- mountPath: /usr/local/bin/argocd-vault-plugin
+ - mountPath: /var/run/argocd
+ name: var-files
+ - mountPath: /home/argocd/cmp-server/plugins
+ name: plugins
+ - mountPath: /tmp
+ name: tmp
+ - mountPath: /home/argocd/cmp-server/config/plugin.yaml
+ subPath: avp.yaml
+ name: cmp-plugin
+ - name: custom-tools
+ subPath: argocd-vault-plugin
+ mountPath: /usr/local/bin/argocd-vault-plugin
diff --git a/apps/argocd/overlay/argocd-svc.yaml b/apps/argocd/overlay/argocd-svc.yaml
index 68ae0bca3..49f7de46e 100644
--- a/apps/argocd/overlay/argocd-svc.yaml
+++ b/apps/argocd/overlay/argocd-svc.yaml
@@ -1,6 +1,12 @@
apiVersion: v1
kind: Service
metadata:
+ labels:
+ app.kubernetes.io/component: server
+ app.kubernetes.io/name: argocd-server
+ app.kubernetes.io/part-of: argocd
name: argocd-server
spec:
+ selector:
+ app.kubernetes.io/name: argocd-server
type: ClusterIP
diff --git a/apps/argocd/overlay/cloudflared-cm.yaml b/apps/argocd/overlay/cloudflared-cm.yaml
deleted file mode 100644
index e1e080a11..000000000
--- a/apps/argocd/overlay/cloudflared-cm.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cloudflared
-data:
- config.yaml: |
- tunnel: argo-tunnel
- credentials-file: /etc/cloudflared/creds/credentials.json
- metrics: 0.0.0.0:2000
- no-autoupdate: true
- ingress:
- - hostname: argo.gruber.dev.br
- service: http://argocd-server:80
- - service: http_status:404
diff --git a/apps/components/ignore-ip/kustomization.yaml b/apps/components/ignore-ip/kustomization.yaml
new file mode 100644
index 000000000..23cec57a3
--- /dev/null
+++ b/apps/components/ignore-ip/kustomization.yaml
@@ -0,0 +1,20 @@
+apiVersion: kustomize.config.k8s.io/v1alpha1
+kind: Component
+metadata:
+ name: ignore-service-differences
+patches:
+ - target:
+ group: argoproj.io
+ version: v1alpha1
+ kind: Application
+ patch: |-
+ - op: add
+ path: /spec/ignoreDifferences
+ value:
+ - group: ""
+ kind: Service
+ jqPathExpressions:
+ - '.status.loadBalancer.ingress[].ipMode'
+ - op: add
+ path: /spec/syncPolicy/syncOptions/-
+ value: RespectIgnoreDifferences=true
diff --git a/apps/components/ignore/kustomization.yaml b/apps/components/ignore/kustomization.yaml
new file mode 100644
index 000000000..853620cd2
--- /dev/null
+++ b/apps/components/ignore/kustomization.yaml
@@ -0,0 +1,14 @@
+kind: Component
+metadata:
+ name: ignore-resources
+patches:
+ - target:
+ group: argoproj.io
+ version: v1alpha1
+ kind: Application
+ patch: |-
+ - op: add
+ path: /spec/ignoreApplicationDifferences
+ value:
+ - jsonPointers:
+ - /spec/syncPolicy
diff --git a/apps/services/librex/base/certificate.yaml b/apps/components/lb/internal/certificate.yaml
similarity index 58%
rename from apps/services/librex/base/certificate.yaml
rename to apps/components/lb/internal/certificate.yaml
index caa780d4b..a133e37f0 100644
--- a/apps/services/librex/base/certificate.yaml
+++ b/apps/components/lb/internal/certificate.yaml
@@ -1,12 +1,12 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
- name: librex-cloudflare
+ name: example
spec:
- secretName: librex-tls
+ secretName: example-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
- commonName: g.gruber.dev.br
+ commonName: example.gruber.dev.br
dnsNames:
- - g.gruber.dev.br
+ - example.gruber.dev.br
diff --git a/apps/services/mlops/wandb/base/ingress.yaml b/apps/components/lb/internal/ingress.yaml
similarity index 58%
rename from apps/services/mlops/wandb/base/ingress.yaml
rename to apps/components/lb/internal/ingress.yaml
index ca06efc2d..a65b50e9b 100644
--- a/apps/services/mlops/wandb/base/ingress.yaml
+++ b/apps/components/lb/internal/ingress.yaml
@@ -1,26 +1,25 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
- name: wandb
+ name: example
annotations:
- external-dns.alpha.kubernetes.io/hostname: ai.gruber.dev.br
external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
+ external-dns.alpha.kubernetes.io/hostname: example.gruber.dev.br
external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
ingressClassName: nginx
rules:
- - host: ai.gruber.dev.br
+ - host: example.gruber.dev.br
http:
paths:
- path: /
pathType: Prefix
backend:
service:
- name: wandb
+ name: example-internal
port:
- name: http
+ name: example-port
tls:
- hosts:
- - ai.gruber.dev.br
- secretName: wandb-tls
+ - example.gruber.dev.br
+ secretName: example
diff --git a/apps/components/lb/internal/kustomization.yaml b/apps/components/lb/internal/kustomization.yaml
new file mode 100644
index 000000000..1d021ba70
--- /dev/null
+++ b/apps/components/lb/internal/kustomization.yaml
@@ -0,0 +1,110 @@
+apiVersion: kustomize.config.k8s.io/v1alpha1
+kind: Component
+metadata:
+ name: lb-ingress
+resources:
+ - svc.yaml
+ - certificate.yaml
+ - ingress.yaml
+
+replacements:
+ - source:
+ kind: Deployment
+ fieldPath: spec.template.spec.containers.0.ports.0.name
+ targets:
+ - select:
+ kind: Service
+ fieldPaths:
+ - spec.ports.0.name
+ - source:
+ kind: Deployment
+ fieldPath: spec.template.spec.containers.0.ports.0.containerPort
+ targets:
+ - select:
+ kind: Service
+ fieldPaths:
+ - spec.ports.0.targetPort
+ - source:
+ kind: Deployment
+ fieldPath: metadata.name
+ targets:
+ - select:
+ kind: Ingress
+ options:
+ delimiter: "."
+ index: 0
+ create: true
+ fieldPaths:
+ - spec.rules.0.host
+ - source:
+ kind: Deployment
+ fieldPath: metadata.name
+ targets:
+ - select:
+ kind: Service
+ fieldPaths:
+ - metadata.name
+ - spec.ports.0.name
+ - select:
+ kind: Ingress
+ fieldPaths:
+ - metadata.name
+ - spec.rules.0.http.paths.0.backend.service.name
+ - source:
+ kind: Deployment
+ fieldPath: metadata.name
+ targets:
+ - select:
+ kind: Ingress
+ options:
+ delimiter: "."
+ index: 0
+ fieldPaths:
+ - spec.tls.0.hosts.0
+ - source:
+ kind: Deployment
+ fieldPath: metadata.name
+ targets:
+ - select:
+ kind: Ingress
+ options:
+ create: true
+ fieldPaths:
+ - spec.tls.0.secretName
+ - source:
+ kind: Deployment
+ fieldPath: metadata.name
+ targets:
+ - select:
+ kind: Certificate
+ options:
+ delimiter: "."
+ index: 0
+ fieldPaths:
+ - metadata.name
+ - spec.secretName
+ - spec.commonName
+ - spec.dnsNames.0
+ - source:
+ kind: Deployment
+ fieldPath: spec.template.spec.containers.0.ports.0.name
+ targets:
+ - select:
+ kind: Service
+ fieldPaths:
+ - spec.ports.0.name
+ - select:
+ kind: Ingress
+ fieldPaths:
+ - spec.rules.0.http.paths.0.backend.service.port.name
+ - source:
+ kind: Deployment
+ fieldPath: metadata.name
+ targets:
+ - select:
+ kind: Ingress
+ options:
+ delimiter: "."
+ index: 0
+ fieldPaths:
+ - metadata.annotations.[external-dns.alpha.kubernetes.io/hostname]
diff --git a/apps/components/lb/internal/svc.yaml b/apps/components/lb/internal/svc.yaml
new file mode 100644
index 000000000..db09036a0
--- /dev/null
+++ b/apps/components/lb/internal/svc.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: example-internal
+spec:
+ ports:
+ - name: example
+ protocol: TCP
+ port: 80
+ targetPort: 8080
+ type: LoadBalancer
+ loadBalancerClass: kube-vip.io/kube-vip-class
+ loadBalancerIP: 0.0.0.0
diff --git a/apps/components/lb/kustomization.yaml b/apps/components/lb/kustomization.yaml
new file mode 100644
index 000000000..6552be198
--- /dev/null
+++ b/apps/components/lb/kustomization.yaml
@@ -0,0 +1,6 @@
+apiVersion: kustomize.config.k8s.io/v1alpha1
+kind: Component
+metadata:
+ name: lb-internal
+components:
+ - internal
diff --git a/apps/components/resources/large/kustomization.yaml b/apps/components/resources/large/kustomization.yaml
new file mode 100644
index 000000000..3b958597b
--- /dev/null
+++ b/apps/components/resources/large/kustomization.yaml
@@ -0,0 +1,17 @@
+apiVersion: kustomize.config.k8s.io/v1alpha1
+kind: Component
+metadata:
+ name: update-resources
+patches:
+ - patch: |-
+ - op: add
+ path: /spec/template/spec/containers/0/resources
+ value:
+ requests:
+ cpu: "600m"
+ memory: "1024Mi"
+ limits:
+ cpu: "1000m"
+ memory: "2048Mi"
+ target:
+ kind: Deployment
diff --git a/apps/components/resources/medium/kustomization.yaml b/apps/components/resources/medium/kustomization.yaml
new file mode 100644
index 000000000..f6254d6de
--- /dev/null
+++ b/apps/components/resources/medium/kustomization.yaml
@@ -0,0 +1,17 @@
+apiVersion: kustomize.config.k8s.io/v1alpha1
+kind: Component
+metadata:
+ name: update-resources
+patches:
+ - patch: |-
+ - op: add
+ path: /spec/template/spec/containers/0/resources
+ value:
+ requests:
+ cpu: "100m"
+ memory: "256Mi"
+ limits:
+ cpu: "350m"
+ memory: "768Mi"
+ target:
+ kind: Deployment
diff --git a/apps/components/resources/small/kustomization.yaml b/apps/components/resources/small/kustomization.yaml
new file mode 100644
index 000000000..fbe50c8e3
--- /dev/null
+++ b/apps/components/resources/small/kustomization.yaml
@@ -0,0 +1,17 @@
+apiVersion: kustomize.config.k8s.io/v1alpha1
+kind: Component
+metadata:
+ name: update-resources
+patches:
+ - patch: |-
+ - op: add
+ path: /spec/template/spec/containers/0/resources
+ value:
+ requests:
+ cpu: "100m"
+ memory: "128Mi"
+ limits:
+ cpu: "150m"
+ memory: "256Mi"
+ target:
+ kind: Deployment
diff --git a/apps/components/tailscale/ingress/ingress.yaml b/apps/components/tailscale/ingress/ingress.yaml
new file mode 100644
index 000000000..963484202
--- /dev/null
+++ b/apps/components/tailscale/ingress/ingress.yaml
@@ -0,0 +1,19 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: funnel
+spec:
+ rules:
+ - http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: example
+ port:
+ number: 80
+ ingressClassName: tailscale
+ tls:
+ - hosts:
+ - example
diff --git a/apps/components/tailscale/ingress/kustomization.yaml b/apps/components/tailscale/ingress/kustomization.yaml
new file mode 100644
index 000000000..73121d253
--- /dev/null
+++ b/apps/components/tailscale/ingress/kustomization.yaml
@@ -0,0 +1,38 @@
+apiVersion: kustomize.config.k8s.io/v1alpha1
+kind: Component
+metadata:
+ name: tailscale-ingress
+resources:
+ - ingress.yaml
+ - svc.yaml
+replacements:
+ - source:
+ kind: Deployment
+ fieldPath: metadata.name
+ targets:
+ - select:
+ kind: Service
+ fieldPaths:
+ - metadata.name
+ - select:
+ kind: Ingress
+ fieldPaths:
+ - metadata.name
+ - spec.rules.0.http.paths.0.backend.service.name
+ - spec.tls.0.hosts.0
+ - source:
+ kind: Deployment
+ fieldPath: spec.template.spec.containers.0.ports.0.name
+ targets:
+ - select:
+ kind: Service
+ fieldPaths:
+ - spec.ports.0.name
+ - source:
+ kind: Deployment
+ fieldPath: spec.template.spec.containers.0.ports.0.containerPort
+ targets:
+ - select:
+ kind: Service
+ fieldPaths:
+ - spec.ports.0.targetPort
diff --git a/apps/data/postgres/exporter/svc.yaml b/apps/components/tailscale/ingress/svc.yaml
similarity index 50%
rename from apps/data/postgres/exporter/svc.yaml
rename to apps/components/tailscale/ingress/svc.yaml
index f4ee255af..d9cf4e9c2 100644
--- a/apps/data/postgres/exporter/svc.yaml
+++ b/apps/components/tailscale/ingress/svc.yaml
@@ -1,13 +1,11 @@
apiVersion: v1
kind: Service
metadata:
- name: postgres-exporter
+ name: example
spec:
type: ClusterIP
ports:
- - name: metrics
- port: 80
+ - name: example
protocol: TCP
- targetPort: 80
- selector:
- name: postgres-exporter
+ port: 80
+ targetPort: 8080
diff --git a/apps/data/mayastor/README.md b/apps/data/mayastor/README.md
index 2ac1a4472..19d4a8f3f 100644
--- a/apps/data/mayastor/README.md
+++ b/apps/data/mayastor/README.md
@@ -1 +1,26 @@
-## Mayastor
+
+
+
+
+
+
+
+
+### Description
+
+> Mayastor is an open-source project aimed at enhancing the performance and scalability of cloud-native storage solutions. It's part of the larger OpenEBS initiative, designed specifically for Kubernetes environments. The core idea behind Mayastor is to utilize NVMe-oF (Non-Volatile Memory express over Fabrics) technology to provide high-speed data transfer rates and low latency storage operations.
+>
+> **I am using Mayastor as my main baremetal storage solution for my Talos Kubernetes cluster**
+
+### Relevant Links
+
+- [Github repository][gh-uri]
+- [Official Documentation][docs-uri]
+- [Helm chart repository][helm-repo]
+
+[docs-uri]: https://mayastor.gitbook.io
+[gh-uri]: https://github.com/openebs/mayastor
+[official-repo]: https://github.com/openebs/mayastor
+[mayastor-v-badge]: https://img.shields.io/github/v/release/openebs/mayastor?label=Release&logo=github&style=flat-square
+[chart-v-badge]: https://img.shields.io/github/v/release/openebs/mayastor-extensions?label=Release&logo=helm&style=flat-square
+[helm-repo]: https://github.com/openebs/mayastor-extensions/tree/develop/chart
diff --git a/apps/data/mayastor/pool.yaml b/apps/data/mayastor/pool.yaml
new file mode 100644
index 000000000..9d96843b5
--- /dev/null
+++ b/apps/data/mayastor/pool.yaml
@@ -0,0 +1,8 @@
+apiVersion: "openebs.io/v1beta2"
+kind: DiskPool
+metadata:
+ name: pool-node-one
+ namespace: mayastor
+spec:
+ node: controller-one
+ disks: ["/dev/nvme1n1"]
diff --git a/apps/data/mayastor/provisioner.yaml b/apps/data/mayastor/provisioner.yaml
new file mode 100644
index 000000000..7a3250544
--- /dev/null
+++ b/apps/data/mayastor/provisioner.yaml
@@ -0,0 +1,21 @@
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+ name: mayastor
+parameters:
+ ioTimeout: "30"
+ protocol: nvmf
+ repl: "1"
+provisioner: io.openebs.csi-mayastor
+---
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+ name: minio
+parameters:
+ ioTimeout: "30"
+ protocol: nvmf
+ repl: "1"
+provisioner: io.openebs.csi-mayastor
+volumeBindingMode: WaitForFirstConsumer
+reclaimPolicy: Retain
diff --git a/apps/data/mayastor/snapshot.yaml b/apps/data/mayastor/snapshot.yaml
new file mode 100644
index 000000000..50ca5fc4e
--- /dev/null
+++ b/apps/data/mayastor/snapshot.yaml
@@ -0,0 +1,8 @@
+kind: VolumeSnapshotClass
+apiVersion: snapshot.storage.k8s.io/v1
+metadata:
+ name: snapshot-csi
+ annotations:
+ snapshot.storage.kubernetes.io/is-default-class: "true"
+driver: io.openebs.csi-mayastor
+deletionPolicy: Delete
diff --git a/apps/data/metabase/README.md b/apps/data/metabase/README.md
deleted file mode 100644
index bb33fce3e..000000000
--- a/apps/data/metabase/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Metabase
diff --git a/apps/data/metabase/base/cm.yaml b/apps/data/metabase/base/cm.yaml
deleted file mode 100644
index 40b5af04e..000000000
--- a/apps/data/metabase/base/cm.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: metabase-cm
-data:
- JAVA_TIMEZONE: "America/Sao_Paulo"
- TZ: "America/Sao_Paulo"
- MB_APPLICATION_DB_MAX_CONNECTION_POOL_SIZE: "15"
- MB_ANON_TRACKING_ENABLED: "false"
- MB_APPLICATION_FONT: "Inter"
- MB_COLORIZE_LOGS: "true"
- MB_SITE_NAME: "Gruber Internal Analytics"
- MB_APPLICATION_NAME: "Gruber Analytics"
- MB_DB_TYPE: "postgres"
- MB_EMAIL_FROM_NAME: "Internal Metabase"
- MB_EMAIL_REPLY_TO: "noreply@metabase.org"
- MB_EMAIL_SMTP_SECURITY: "starttls"
- MB_ENABLE_EMBEDDING: "true"
- MB_ENABLE_NESTED_QUERIES: "true"
- MB_ENABLE_PASSWORD_LOGIN: "true"
- MB_ENABLE_PUBLIC_SHARING: "true"
diff --git a/apps/data/metabase/base/db.yaml b/apps/data/metabase/base/db.yaml
deleted file mode 100644
index 912a14e1b..000000000
--- a/apps/data/metabase/base/db.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-apiVersion: "acid.zalan.do/v1"
-kind: postgresql
-metadata:
- name: db-metabase
-spec:
- dockerImage: registry.opensource.zalan.do/acid/spilo-14:2.1-p6
- teamId: "db"
- numberOfInstances: 1
- users:
- admin:
- - superuser
- - createdb
- datuser: []
- databases:
- metabase: datauser
- postgresql:
- version: "14"
- volume:
- size: 1Gi
- storageClass: iscsi
- resources:
- requests:
- cpu: 50m
- memory: 350Mi
- limits:
- cpu: 150m
- memory: 600Mi
diff --git a/apps/data/metabase/base/deployment.yaml b/apps/data/metabase/base/deployment.yaml
deleted file mode 100644
index 67c567bea..000000000
--- a/apps/data/metabase/base/deployment.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: metabase-server
- labels:
- app: metabase-server
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: metabase-server
- template:
- metadata:
- labels:
- app: metabase-server
- spec:
- containers:
- - name: metabase
- image: metabase/metabase:latest
- envFrom:
- - configMapRef:
- name: metabase-cm
- - secretRef:
- name: metabase-vars
- ports:
- - name: web
- containerPort: 3000
- protocol: TCP
- resources:
- requests:
- cpu: "500m"
- memory: "512Mi"
- limits:
- cpu: "800m"
- memory: "1024Mi"
- volumeMounts:
- - name: data
- mountPath: /metabase-data
- volumes:
- - name: data
- persistentVolumeClaim:
- claimName: metabase-storage
diff --git a/apps/data/metabase/base/pvc.yaml b/apps/data/metabase/base/pvc.yaml
deleted file mode 100644
index e510421d6..000000000
--- a/apps/data/metabase/base/pvc.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: metabase-storage
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 5Gi
diff --git a/apps/data/metabase/base/svc.yaml b/apps/data/metabase/base/svc.yaml
deleted file mode 100644
index f36797a89..000000000
--- a/apps/data/metabase/base/svc.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: metabase-svc
- labels:
- app: metabase-server
-spec:
- type: ClusterIP
- selector:
- app: metabase-server
- ports:
- - name: web
- port: 80
- targetPort: 3000
- protocol: TCP
diff --git a/apps/data/metabase/kustomization.yaml b/apps/data/metabase/kustomization.yaml
deleted file mode 100644
index 7c6f3dcd6..000000000
--- a/apps/data/metabase/kustomization.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-- https://github.com/gruberdev/homelab/apps/networking/tailscale
-
-namespace: services
-
-patches:
-- path: https://raw.githubusercontent.com/gruberdev/homelab/main/apps/networking/tailscale/patch.yaml
- target:
- kind: Deployment
- name: metabase-server
-- patch: |-
- - op: replace
- path: "/spec/template/spec/containers/0/env/2"
- value:
- name: TS_HOSTNAME
- value: "metabase"
- - op: replace
- path: "/spec/template/spec/containers/0/env/3"
- value:
- name: DEST_PORT
- value: "3000"
- target:
- kind: Deployment
- name: metabase-server
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/data/minio/README.md b/apps/data/minio/README.md
deleted file mode 100644
index fbac17561..000000000
--- a/apps/data/minio/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## MinIO Operator
diff --git a/apps/data/mysql/app.yaml b/apps/data/mysql/app.yaml
new file mode 100644
index 000000000..b35d24e89
--- /dev/null
+++ b/apps/data/mysql/app.yaml
@@ -0,0 +1,70 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: mariadb-operator
+ namespace: argocd
+spec:
+ project: cluster
+ source:
+ repoURL: https://mariadb-operator.github.io/mariadb-operator
+ chart: mariadb-operator
+ targetRevision: 0.27.0
+ helm:
+ releaseName: mariadb-operator
+ values: |
+ fullnameOverride: "mariadb-operator"
+ clusterName: cluster.local
+ metrics:
+ enabled: true
+ resources:
+ requests:
+ cpu: 100m
+ memory: 128Mi
+ limits:
+ cpu: 200m
+ memory: 256Mi
+ webhook:
+ cert:
+ certManager:
+ enabled: false
+ serviceMonitor:
+ enabled: true
+ resources:
+ requests:
+ cpu: 100m
+ memory: 128Mi
+ limits:
+ cpu: 200m
+ memory: 256Mi
+ certController:
+ enabled: true
+ resources:
+ requests:
+ cpu: 100m
+ memory: 128Mi
+ limits:
+ cpu: 200m
+ memory: 256Mi
+ destination:
+ namespace: mysql-operator
+ name: in-cluster
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ managedNamespaceMetadata:
+ labels:
+ prometheus: enabled
+ pod-security.kubernetes.io/enforce: privileged
+ pod-security.kubernetes.io/audit: privileged
+ pod-security.kubernetes.io/warn: privileged
+ syncOptions:
+ - CreateNamespace=true
+ - ServerSideApply=true
+ - Prune=true
+ retry:
+ limit: 10
+ backoff:
+ duration: 20s
+ factor: 2
+ maxDuration: 15m
diff --git a/apps/data/mysql/crd/kustomization.yaml b/apps/data/mysql/crd/kustomization.yaml
new file mode 100644
index 000000000..54c2cbfc6
--- /dev/null
+++ b/apps/data/mysql/crd/kustomization.yaml
@@ -0,0 +1,7 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+ - https://raw.githubusercontent.com/mariadb-operator/mariadb-operator/v0.0.27/deploy/crds/crds.yaml
+
+commonAnnotations:
+ argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true,ServerSideApply=true,Replace=true,Validate=false
diff --git a/apps/services/grocy/base/kustomization.yaml b/apps/data/mysql/kustomization.yaml
similarity index 65%
rename from apps/services/grocy/base/kustomization.yaml
rename to apps/data/mysql/kustomization.yaml
index b9919a7e8..9be8063bd 100644
--- a/apps/services/grocy/base/kustomization.yaml
+++ b/apps/data/mysql/kustomization.yaml
@@ -1,6 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
+- app.yaml
+- crd
diff --git a/apps/data/postgres/cloudnative/default/backup-sechedule.yaml b/apps/data/postgres/cloudnative/default/backup-sechedule.yaml
new file mode 100644
index 000000000..b6b61c43f
--- /dev/null
+++ b/apps/data/postgres/cloudnative/default/backup-sechedule.yaml
@@ -0,0 +1,9 @@
+apiVersion: postgresql.cnpg.io/v1
+kind: ScheduledBackup
+metadata:
+ name: daily-backup-postgres
+spec:
+ schedule: "0 0 0 * * *"
+ backupOwnerReference: self
+ cluster:
+ name: database
diff --git a/apps/data/postgres/cloudnative/default/cluster.yaml b/apps/data/postgres/cloudnative/default/cluster.yaml
new file mode 100644
index 000000000..54ca00b51
--- /dev/null
+++ b/apps/data/postgres/cloudnative/default/cluster.yaml
@@ -0,0 +1,38 @@
+---
+apiVersion: postgresql.cnpg.io/v1
+kind: Cluster
+metadata:
+ name: database
+spec:
+ imageName: ghcr.io/cloudnative-pg/postgresql:16.0
+ instances: 1
+ startDelay: 60
+ stopDelay: 60
+ resources:
+ requests:
+ memory: 512Mi
+ cpu: 300m
+ limits:
+ memory: 512Mi
+ cpu: 300m
+ primaryUpdateStrategy: unsupervised
+ postgresql:
+ parameters:
+ shared_buffers: 64MB
+ timezone: America/Sao_Paulo
+ pg_stat_statements.max: "1000"
+ pg_stat_statements.track: all
+ auto_explain.log_min_duration: 10s
+ pg_hba:
+ - host all all 10.244.0.0/16 md5
+ bootstrap:
+ initdb:
+ database: example
+ owner: example
+ storage:
+ storageClass: example-csi-class
+ size: 1Gi
+ monitoring:
+ enablePodMonitor: true
+ nodeMaintenanceWindow:
+ reusePVC: true
diff --git a/apps/matrix/element/README.md b/apps/data/postgres/cloudnative/default/example-creds.yaml
similarity index 100%
rename from apps/matrix/element/README.md
rename to apps/data/postgres/cloudnative/default/example-creds.yaml
diff --git a/apps/data/metabase/base/kustomization.yaml b/apps/data/postgres/cloudnative/default/kustomization.yaml
similarity index 53%
rename from apps/data/metabase/base/kustomization.yaml
rename to apps/data/postgres/cloudnative/default/kustomization.yaml
index fcec85fbf..253c0c557 100644
--- a/apps/data/metabase/base/kustomization.yaml
+++ b/apps/data/postgres/cloudnative/default/kustomization.yaml
@@ -1,8 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
+
resources:
-- deployment.yaml
-- svc.yaml
-- pvc.yaml
-- cm.yaml
-- db.yaml
+ #- backup-sechedule.yaml
+ - cluster.yaml
+ - monitoring.yaml
diff --git a/apps/data/postgres/cloudnative/default/monitoring.yaml b/apps/data/postgres/cloudnative/default/monitoring.yaml
new file mode 100644
index 000000000..a7dd810a7
--- /dev/null
+++ b/apps/data/postgres/cloudnative/default/monitoring.yaml
@@ -0,0 +1,12 @@
+apiVersion: monitoring.coreos.com/v1
+kind: PodMonitor
+metadata:
+ labels:
+ app.kubernetes.io/name: cloudnative-pg
+ name: pod-monitor
+spec:
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: cloudnative-pg
+ podMetricsEndpoints:
+ - port: metrics
diff --git a/apps/data/postgres/cloudnative/kustomization.yaml b/apps/data/postgres/cloudnative/kustomization.yaml
index 295d0d83d..bac61dd1b 100644
--- a/apps/data/postgres/cloudnative/kustomization.yaml
+++ b/apps/data/postgres/cloudnative/kustomization.yaml
@@ -1,461 +1,66 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
-
-patchesStrategicMerge:
-- overlay/crb-patch.yaml
-
helmCharts:
-- name: cloudnative-pg
- releaseName: cnpg
+- includeCRDs: true
+ name: cloudnative-pg
namespace: cnpg-system
- includeCRDs: true
- version: 0.20.1
+ releaseName: cnpg
repo: https://cloudnative-pg.github.io/charts
valuesInline:
- replicaCount: 1
- image:
- repository: ghcr.io/cloudnative-pg/cloudnative-pg
- pullPolicy: IfNotPresent
- tag: 1.20.2
- imagePullSecrets: []
- nameOverride: ''
- fullnameOverride: ''
- crds:
- create: true
- webhook:
- port: 9443
- mutating:
- create: true
- failurePolicy: Fail
- validating:
- create: true
- failurePolicy: Fail
- livenessProbe:
- initialDelaySeconds: 35
- readinessProbe:
- initialDelaySeconds: 10
config:
create: true
- name: cnpg-controller-manager-config
- secret: false
data:
- ENABLE_INSTANCE_MANAGER_INPLACE_UPDATES: "true"
CREATE_ANY_SERVICE: "true"
- additionalArgs: []
- serviceAccount:
- create: true
- name: ''
- rbac:
- create: true
- aggregateClusterRoles: true
- commonAnnotations:
- reloader.stakater.com/auto: "true"
- podAnnotations:
- reloader.stakater.com/auto: "true"
- podLabels: {}
+ ENABLE_INSTANCE_MANAGER_INPLACE_UPDATES: "true"
+ INHERITED_ANNOTATIONS: "argocd.argoproj.io/sync-options/*"
+ name: cnpg-controller-manager-config
+ secret: false
containerSecurityContext:
allowPrivilegeEscalation: false
- readOnlyRootFilesystem: true
- runAsUser: 10001
- runAsGroup: 10001
capabilities:
drop:
- - ALL
+ - ALL
+ readOnlyRootFilesystem: true
+ runAsGroup: 10001
+ runAsUser: 10001
+ crds:
+ create: true
+ image:
+ pullPolicy: IfNotPresent
+ repository: ghcr.io/cloudnative-pg/cloudnative-pg
+ tag: 1.22.3
+ monitoring:
+ podMonitorEnabled: true
+ nodeSelector:
+ kubernetes.io/arch: amd64
podSecurityContext:
runAsNonRoot: true
- seccompProfile:
- type: RuntimeDefault
- priorityClassName: ''
- service:
- type: ClusterIP
- name: cnpg-webhook-service
- port: 443
+ rbac:
+ aggregateClusterRoles: true
+ create: true
+ replicaCount: 1
resources:
limits:
- cpu: 400m
+ cpu: 100m
memory: 256Mi
requests:
- cpu: 150m
+ cpu: 100m
memory: 128Mi
- nodeSelector:
- kubernetes.io/arch: amd64
- tolerations: []
- affinity: {}
- monitoring:
- podMonitorEnabled: false
- monitoringQueriesConfigMap:
- name: cnpg-default-monitoring
- queries: |
- backends:
- query: |
- SELECT sa.datname
- , sa.usename
- , sa.application_name
- , states.state
- , COALESCE(sa.count, 0) AS total
- , COALESCE(sa.max_tx_secs, 0) AS max_tx_duration_seconds
- FROM ( VALUES ('active')
- , ('idle')
- , ('idle in transaction')
- , ('idle in transaction (aborted)')
- , ('fastpath function call')
- , ('disabled')
- ) AS states(state)
- LEFT JOIN (
- SELECT datname
- , state
- , usename
- , COALESCE(application_name, '') AS application_name
- , COUNT(*)
- , COALESCE(EXTRACT (EPOCH FROM (max(now() - xact_start))), 0) AS max_tx_secs
- FROM pg_catalog.pg_stat_activity
- GROUP BY datname, state, usename, application_name
- ) sa ON states.state = sa.state
- WHERE sa.usename IS NOT NULL
- metrics:
- - datname:
- usage: "LABEL"
- description: "Name of the database"
- - usename:
- usage: "LABEL"
- description: "Name of the user"
- - application_name:
- usage: "LABEL"
- description: "Name of the application"
- - state:
- usage: "LABEL"
- description: "State of the backend"
- - total:
- usage: "GAUGE"
- description: "Number of backends"
- - max_tx_duration_seconds:
- usage: "GAUGE"
- description: "Maximum duration of a transaction in seconds"
-
- backends_waiting:
- query: |
- SELECT count(*) AS total
- FROM pg_catalog.pg_locks blocked_locks
- JOIN pg_catalog.pg_locks blocking_locks
- ON blocking_locks.locktype = blocked_locks.locktype
- AND blocking_locks.database IS NOT DISTINCT FROM blocked_locks.database
- AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation
- AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page
- AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple
- AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid
- AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid
- AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid
- AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid
- AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid
- AND blocking_locks.pid != blocked_locks.pid
- JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid
- WHERE NOT blocked_locks.granted
- metrics:
- - total:
- usage: "GAUGE"
- description: "Total number of backends that are currently waiting on other queries"
-
- pg_database:
- query: |
- SELECT datname
- , pg_catalog.pg_database_size(datname) AS size_bytes
- , pg_catalog.age(datfrozenxid) AS xid_age
- , pg_catalog.mxid_age(datminmxid) AS mxid_age
- FROM pg_catalog.pg_database
- metrics:
- - datname:
- usage: "LABEL"
- description: "Name of the database"
- - size_bytes:
- usage: "GAUGE"
- description: "Disk space used by the database"
- - xid_age:
- usage: "GAUGE"
- description: "Number of transactions from the frozen XID to the current one"
- - mxid_age:
- usage: "GAUGE"
- description: "Number of multiple transactions (Multixact) from the frozen XID to the current one"
-
- pg_postmaster:
- query: |
- SELECT EXTRACT(EPOCH FROM pg_postmaster_start_time) AS start_time
- FROM pg_catalog.pg_postmaster_start_time()
- metrics:
- - start_time:
- usage: "GAUGE"
- description: "Time at which postgres started (based on epoch)"
-
- pg_replication:
- query: "SELECT CASE WHEN NOT pg_catalog.pg_is_in_recovery()
- THEN 0
- ELSE GREATEST (0,
- EXTRACT(EPOCH FROM (now() - pg_catalog.pg_last_xact_replay_timestamp())))
- END AS lag,
- pg_catalog.pg_is_in_recovery() AS in_recovery,
- EXISTS (TABLE pg_stat_wal_receiver) AS is_wal_receiver_up,
- (SELECT count(*) FROM pg_stat_replication) AS streaming_replicas"
- metrics:
- - lag:
- usage: "GAUGE"
- description: "Replication lag behind primary in seconds"
- - in_recovery:
- usage: "GAUGE"
- description: "Whether the instance is in recovery"
- - is_wal_receiver_up:
- usage: "GAUGE"
- description: "Whether the instance wal_receiver is up"
- - streaming_replicas:
- usage: "GAUGE"
- description: "Number of streaming replicas connected to the instance"
-
- pg_replication_slots:
- query: |
- SELECT slot_name,
- slot_type,
- database,
- active,
- pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), restart_lsn)
- FROM pg_catalog.pg_replication_slots
- WHERE NOT temporary
- metrics:
- - slot_name:
- usage: "LABEL"
- description: "Name of the replication slot"
- - slot_type:
- usage: "LABEL"
- description: "Type of the replication slot"
- - database:
- usage: "LABEL"
- description: "Name of the database"
- - active:
- usage: "GAUGE"
- description: "Flag indicating whether the slot is active"
- - pg_wal_lsn_diff:
- usage: "GAUGE"
- description: "Replication lag in bytes"
-
- pg_stat_archiver:
- query: |
- SELECT archived_count
- , failed_count
- , COALESCE(EXTRACT(EPOCH FROM (now() - last_archived_time)), -1) AS seconds_since_last_archival
- , COALESCE(EXTRACT(EPOCH FROM (now() - last_failed_time)), -1) AS seconds_since_last_failure
- , COALESCE(EXTRACT(EPOCH FROM last_archived_time), -1) AS last_archived_time
- , COALESCE(EXTRACT(EPOCH FROM last_failed_time), -1) AS last_failed_time
- , COALESCE(CAST(CAST('x'||pg_catalog.right(pg_catalog.split_part(last_archived_wal, '.', 1), 16) AS pg_catalog.bit(64)) AS pg_catalog.int8), -1) AS last_archived_wal_start_lsn
- , COALESCE(CAST(CAST('x'||pg_catalog.right(pg_catalog.split_part(last_failed_wal, '.', 1), 16) AS pg_catalog.bit(64)) AS pg_catalog.int8), -1) AS last_failed_wal_start_lsn
- , EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time
- FROM pg_catalog.pg_stat_archiver
- metrics:
- - archived_count:
- usage: "COUNTER"
- description: "Number of WAL files that have been successfully archived"
- - failed_count:
- usage: "COUNTER"
- description: "Number of failed attempts for archiving WAL files"
- - seconds_since_last_archival:
- usage: "GAUGE"
- description: "Seconds since the last successful archival operation"
- - seconds_since_last_failure:
- usage: "GAUGE"
- description: "Seconds since the last failed archival operation"
- - last_archived_time:
- usage: "GAUGE"
- description: "Epoch of the last time WAL archiving succeeded"
- - last_failed_time:
- usage: "GAUGE"
- description: "Epoch of the last time WAL archiving failed"
- - last_archived_wal_start_lsn:
- usage: "GAUGE"
- description: "Archived WAL start LSN"
- - last_failed_wal_start_lsn:
- usage: "GAUGE"
- description: "Last failed WAL LSN"
- - stats_reset_time:
- usage: "GAUGE"
- description: "Time at which these statistics were last reset"
-
- pg_stat_bgwriter:
- query: |
- SELECT checkpoints_timed
- , checkpoints_req
- , checkpoint_write_time
- , checkpoint_sync_time
- , buffers_checkpoint
- , buffers_clean
- , maxwritten_clean
- , buffers_backend
- , buffers_backend_fsync
- , buffers_alloc
- FROM pg_catalog.pg_stat_bgwriter
- metrics:
- - checkpoints_timed:
- usage: "COUNTER"
- description: "Number of scheduled checkpoints that have been performed"
- - checkpoints_req:
- usage: "COUNTER"
- description: "Number of requested checkpoints that have been performed"
- - checkpoint_write_time:
- usage: "COUNTER"
- description: "Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in milliseconds"
- - checkpoint_sync_time:
- usage: "COUNTER"
- description: "Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk, in milliseconds"
- - buffers_checkpoint:
- usage: "COUNTER"
- description: "Number of buffers written during checkpoints"
- - buffers_clean:
- usage: "COUNTER"
- description: "Number of buffers written by the background writer"
- - maxwritten_clean:
- usage: "COUNTER"
- description: "Number of times the background writer stopped a cleaning scan because it had written too many buffers"
- - buffers_backend:
- usage: "COUNTER"
- description: "Number of buffers written directly by a backend"
- - buffers_backend_fsync:
- usage: "COUNTER"
- description: "Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write)"
- - buffers_alloc:
- usage: "COUNTER"
- description: "Number of buffers allocated"
-
- pg_stat_database:
- query: |
- SELECT datname
- , xact_commit
- , xact_rollback
- , blks_read
- , blks_hit
- , tup_returned
- , tup_fetched
- , tup_inserted
- , tup_updated
- , tup_deleted
- , conflicts
- , temp_files
- , temp_bytes
- , deadlocks
- , blk_read_time
- , blk_write_time
- FROM pg_catalog.pg_stat_database
- metrics:
- - datname:
- usage: "LABEL"
- description: "Name of this database"
- - xact_commit:
- usage: "COUNTER"
- description: "Number of transactions in this database that have been committed"
- - xact_rollback:
- usage: "COUNTER"
- description: "Number of transactions in this database that have been rolled back"
- - blks_read:
- usage: "COUNTER"
- description: "Number of disk blocks read in this database"
- - blks_hit:
- usage: "COUNTER"
- description: "Number of times disk blocks were found already in the buffer cache, so that a read was not necessary (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache)"
- - tup_returned:
- usage: "COUNTER"
- description: "Number of rows returned by queries in this database"
- - tup_fetched:
- usage: "COUNTER"
- description: "Number of rows fetched by queries in this database"
- - tup_inserted:
- usage: "COUNTER"
- description: "Number of rows inserted by queries in this database"
- - tup_updated:
- usage: "COUNTER"
- description: "Number of rows updated by queries in this database"
- - tup_deleted:
- usage: "COUNTER"
- description: "Number of rows deleted by queries in this database"
- - conflicts:
- usage: "COUNTER"
- description: "Number of queries canceled due to conflicts with recovery in this database"
- - temp_files:
- usage: "COUNTER"
- description: "Number of temporary files created by queries in this database"
- - temp_bytes:
- usage: "COUNTER"
- description: "Total amount of data written to temporary files by queries in this database"
- - deadlocks:
- usage: "COUNTER"
- description: "Number of deadlocks detected in this database"
- - blk_read_time:
- usage: "COUNTER"
- description: "Time spent reading data file blocks by backends in this database, in milliseconds"
- - blk_write_time:
- usage: "COUNTER"
- description: "Time spent writing data file blocks by backends in this database, in milliseconds"
-
- pg_stat_replication:
- primary: true
- query: |
- SELECT usename
- , COALESCE(application_name, '') AS application_name
- , COALESCE(client_addr::text, '') AS client_addr
- , EXTRACT(EPOCH FROM backend_start) AS backend_start
- , COALESCE(pg_catalog.age(backend_xmin), 0) AS backend_xmin_age
- , pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), sent_lsn) AS sent_diff_bytes
- , pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), write_lsn) AS write_diff_bytes
- , pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), flush_lsn) AS flush_diff_bytes
- , COALESCE(pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), replay_lsn),0) AS replay_diff_bytes
- , COALESCE((EXTRACT(EPOCH FROM write_lag)),0)::float AS write_lag_seconds
- , COALESCE((EXTRACT(EPOCH FROM flush_lag)),0)::float AS flush_lag_seconds
- , COALESCE((EXTRACT(EPOCH FROM replay_lag)),0)::float AS replay_lag_seconds
- FROM pg_catalog.pg_stat_replication
- metrics:
- - usename:
- usage: "LABEL"
- description: "Name of the replication user"
- - application_name:
- usage: "LABEL"
- description: "Name of the application"
- - client_addr:
- usage: "LABEL"
- description: "Client IP address"
- - backend_start:
- usage: "COUNTER"
- description: "Time when this process was started"
- - backend_xmin_age:
- usage: "COUNTER"
- description: "The age of this standby's xmin horizon"
- - sent_diff_bytes:
- usage: "GAUGE"
- description: "Difference in bytes from the last write-ahead log location sent on this connection"
- - write_diff_bytes:
- usage: "GAUGE"
- description: "Difference in bytes from the last write-ahead log location written to disk by this standby server"
- - flush_diff_bytes:
- usage: "GAUGE"
- description: "Difference in bytes from the last write-ahead log location flushed to disk by this standby server"
- - replay_diff_bytes:
- usage: "GAUGE"
- description: "Difference in bytes from the last write-ahead log location replayed into the database on this standby server"
- - write_lag_seconds:
- usage: "GAUGE"
- description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written it"
- - flush_lag_seconds:
- usage: "GAUGE"
- description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written and flushed it"
- - replay_lag_seconds:
- usage: "GAUGE"
- description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written, flushed and applied it"
- pg_settings:
- query: |
- SELECT name,
- CASE setting WHEN 'on' THEN '1' WHEN 'off' THEN '0' ELSE setting END AS setting
- FROM pg_catalog.pg_settings
- WHERE vartype IN ('integer', 'real', 'bool')
- ORDER BY 1
- metrics:
- - name:
- usage: "LABEL"
- description: "Name of the setting"
- - setting:
- usage: "GAUGE"
- description: "Setting value"
-
+ webhook:
+ livenessProbe:
+ initialDelaySeconds: 35
+ mutating:
+ create: true
+ failurePolicy: Fail
+ port: 9443
+ readinessProbe:
+ initialDelaySeconds: 10
+ validating:
+ create: true
+ failurePolicy: Fail
+ version: 0.21.4
namespace: cnpg-system
+
+patches:
+- path: overlay/crb-patch.yaml
diff --git a/apps/data/postgres/exporter/cm.yaml b/apps/data/postgres/exporter/cm.yaml
deleted file mode 100644
index 962b99721..000000000
--- a/apps/data/postgres/exporter/cm.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: postgres-exporter-cm
-data:
- PG_EXPORTER_WEB_LISTEN_ADDRESS: ":9187"
- PG_EXPORTER_WEB_TELEMETRY_PATH: "/metrics"
- PG_EXPORTER_DISABLE_DEFAULT_METRICS: "false"
- PG_EXPORTER_DISABLE_SETTINGS_METRICS: "false"
- PG_EXPORTER_AUTO_DISCOVER_DATABASES: "true"
- PG_EXPORTER_METRIC_PREFIX: "pg"
diff --git a/apps/data/postgres/exporter/deployment.yaml b/apps/data/postgres/exporter/deployment.yaml
deleted file mode 100644
index 3967efb53..000000000
--- a/apps/data/postgres/exporter/deployment.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: postgres-exporter
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: postgres-exporter
- template:
- metadata:
- labels:
- app: postgres-exporter
- spec:
- containers:
- - name: postgres-exporter
- image: quay.io/prometheuscommunity/postgres-exporter:latest
- env:
- - name: DATA_SOURCE_URI
- value: example-uri
- - name: DATA_SOURCE_USER
- valueFrom: { secretKeyRef: { name: cluster-name.team-name.credentials.postgresql.acid.zalan.do, key: username } }
- - name: DATA_SOURCE_PASS
- valueFrom: { secretKeyRef: { name: cluster-name.team-name.credentials.postgresql.acid.zalan.do, key: password } }
- envFrom:
- - configMapRef:
- name: postgres-exporter-cm
- ports:
- - name: metrics
- containerPort: 9187
- resources:
- limits:
- cpu: 100m
- memory: 200Mi
- requests:
- cpu: 50m
- memory: 100Mi
diff --git a/apps/data/postgres/exporter/kustomization.yaml b/apps/data/postgres/exporter/kustomization.yaml
deleted file mode 100644
index d5b8a7127..000000000
--- a/apps/data/postgres/exporter/kustomization.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- deployment.yaml
-- cm.yaml
-- svc.yaml
diff --git a/apps/data/redis/kustomization.yaml b/apps/data/redis/kustomization.yaml
index f2b50e8fa..61b8b78ae 100644
--- a/apps/data/redis/kustomization.yaml
+++ b/apps/data/redis/kustomization.yaml
@@ -11,11 +11,11 @@ helmCharts:
imagePullPolicy: IfNotPresent
resources:
limits:
- cpu: 300m
- memory: 600Mi
+ cpu: 200m
+ memory: 256Mi
requests:
cpu: 100m
- memory: 200Mi
+ memory: 128Mi
replicas: 1
serviceAccountName: redis-operator
tolerateAllTaints: false
diff --git a/apps/data/storage/base/actual.yaml b/apps/data/storage/base/actual.yaml
index 510d6929c..a20e2fa44 100644
--- a/apps/data/storage/base/actual.yaml
+++ b/apps/data/storage/base/actual.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 5Gi
diff --git a/apps/data/storage/base/adguard.yaml b/apps/data/storage/base/adguard.yaml
index a31df64b8..b911ba709 100644
--- a/apps/data/storage/base/adguard.yaml
+++ b/apps/data/storage/base/adguard.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 1Gi
@@ -19,7 +19,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 1Gi
diff --git a/apps/data/storage/base/archivebox.yaml b/apps/data/storage/base/archivebox.yaml
index d292a6178..15adee73b 100644
--- a/apps/data/storage/base/archivebox.yaml
+++ b/apps/data/storage/base/archivebox.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 20Gi
diff --git a/apps/data/storage/base/beets.yaml b/apps/data/storage/base/beets.yaml
index 8dbe1438b..8a7955a5c 100644
--- a/apps/data/storage/base/beets.yaml
+++ b/apps/data/storage/base/beets.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 1Gi
diff --git a/apps/data/storage/base/change.yaml b/apps/data/storage/base/change.yaml
index 37136d7de..41f4d06d4 100644
--- a/apps/data/storage/base/change.yaml
+++ b/apps/data/storage/base/change.yaml
@@ -6,7 +6,20 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 1Gi
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: playwright-storage
+ namespace: services
+spec:
+ accessModes:
+ - ReadWriteOnce
+ storageClassName: mayastor
+ resources:
+ requests:
+ storage: 3Gi
diff --git a/apps/data/storage/base/feedpushr.yaml b/apps/data/storage/base/feedpushr.yaml
index 345614ddc..12d904866 100644
--- a/apps/data/storage/base/feedpushr.yaml
+++ b/apps/data/storage/base/feedpushr.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 10Gi
diff --git a/apps/data/storage/base/finances.yaml b/apps/data/storage/base/finances.yaml
index 18992a86d..4c82577fe 100644
--- a/apps/data/storage/base/finances.yaml
+++ b/apps/data/storage/base/finances.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 1Gi
diff --git a/apps/data/storage/base/ganymede.yaml b/apps/data/storage/base/ganymede.yaml
index f45986630..36ac4b3c0 100644
--- a/apps/data/storage/base/ganymede.yaml
+++ b/apps/data/storage/base/ganymede.yaml
@@ -9,7 +9,7 @@ spec:
resources:
requests:
storage: 15Gi
- storageClassName: iscsi
+ storageClassName: mayastor
---
apiVersion: v1
kind: PersistentVolumeClaim
@@ -22,7 +22,7 @@ spec:
resources:
requests:
storage: 5Gi
- storageClassName: iscsi
+ storageClassName: mayastor
---
apiVersion: v1
kind: PersistentVolumeClaim
@@ -35,4 +35,4 @@ spec:
resources:
requests:
storage: 100Gi
- storageClassName: iscsi
+ storageClassName: mayastor
diff --git a/apps/data/storage/base/gitea.yaml b/apps/data/storage/base/gitea.yaml
index cbe85dd29..0ceea515b 100644
--- a/apps/data/storage/base/gitea.yaml
+++ b/apps/data/storage/base/gitea.yaml
@@ -2,11 +2,11 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gitea-shared-storage
- namespace: gitea
+ namespace: services
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 20Gi
diff --git a/apps/data/storage/base/grocy.yaml b/apps/data/storage/base/grocy.yaml
index 1e4948f75..17e676230 100644
--- a/apps/data/storage/base/grocy.yaml
+++ b/apps/data/storage/base/grocy.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 5Gi
diff --git a/apps/data/storage/base/home/frigate.yaml b/apps/data/storage/base/home/frigate.yaml
index 88c72d444..6a7e715a0 100644
--- a/apps/data/storage/base/home/frigate.yaml
+++ b/apps/data/storage/base/home/frigate.yaml
@@ -9,7 +9,7 @@ spec:
resources:
requests:
storage: 15Gi
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
---
apiVersion: v1
kind: PersistentVolumeClaim
@@ -22,7 +22,7 @@ spec:
resources:
requests:
storage: 30Gi
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
---
apiVersion: v1
kind: PersistentVolumeClaim
@@ -35,4 +35,4 @@ spec:
resources:
requests:
storage: 80Gi
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
diff --git a/apps/data/storage/base/home/ha.yaml b/apps/data/storage/base/home/ha.yaml
index 830b1ac83..74644330c 100644
--- a/apps/data/storage/base/home/ha.yaml
+++ b/apps/data/storage/base/home/ha.yaml
@@ -3,26 +3,13 @@ kind: PersistentVolumeClaim
metadata:
name: ha-storage
namespace: homeassistant
-spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 5Gi
- storageClassName: iscsi
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: ha-storage-new
- namespace: homeassistant
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 40Gi
- storageClassName: iscsi
+ storageClassName: mayastor
---
apiVersion: v1
kind: PersistentVolumeClaim
@@ -35,4 +22,4 @@ spec:
resources:
requests:
storage: 1Gi
- storageClassName: iscsi
+ storageClassName: mayastor
diff --git a/apps/data/storage/base/home/kustomization.yaml b/apps/data/storage/base/home/kustomization.yaml
index 69a386580..5e79572ca 100644
--- a/apps/data/storage/base/home/kustomization.yaml
+++ b/apps/data/storage/base/home/kustomization.yaml
@@ -7,6 +7,8 @@ resources:
- whisper.yaml
- wyze.yaml
- frigate.yaml
+ - restreamer.yaml
+ - web2rtc.yaml
commonAnnotations:
argocd.argoproj.io/sync-options: Delete=false
diff --git a/apps/data/storage/base/home/openwakeword.yaml b/apps/data/storage/base/home/openwakeword.yaml
index 7e4367bb9..c03d59829 100644
--- a/apps/data/storage/base/home/openwakeword.yaml
+++ b/apps/data/storage/base/home/openwakeword.yaml
@@ -9,7 +9,7 @@ spec:
resources:
requests:
storage: 5Gi
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
---
apiVersion: v1
kind: PersistentVolumeClaim
@@ -22,4 +22,4 @@ spec:
resources:
requests:
storage: 25Gi
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
diff --git a/apps/data/storage/base/home/piper.yaml b/apps/data/storage/base/home/piper.yaml
index 9c9e48bea..9516b914c 100644
--- a/apps/data/storage/base/home/piper.yaml
+++ b/apps/data/storage/base/home/piper.yaml
@@ -9,7 +9,7 @@ spec:
resources:
requests:
storage: 5Gi
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
---
apiVersion: v1
kind: PersistentVolumeClaim
@@ -22,4 +22,4 @@ spec:
resources:
requests:
storage: 35Gi
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
diff --git a/apps/networking/adguard/base/pvc.yaml b/apps/data/storage/base/home/restreamer.yaml
similarity index 58%
rename from apps/networking/adguard/base/pvc.yaml
rename to apps/data/storage/base/home/restreamer.yaml
index 36dd6a4d4..74f6053e9 100644
--- a/apps/networking/adguard/base/pvc.yaml
+++ b/apps/data/storage/base/home/restreamer.yaml
@@ -1,23 +1,26 @@
+---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
- name: adguard-storage
+ name: restreamer-config
+ namespace: homeassistant
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
resources:
requests:
storage: 1Gi
+ storageClassName: mayastor
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
- name: adguard-logs
+ name: restreamer-data
+ namespace: homeassistant
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
resources:
requests:
- storage: 1Gi
+ storage: 20Gi
+ storageClassName: mayastor
diff --git a/apps/data/storage/base/postgres/ha.yaml b/apps/data/storage/base/home/web2rtc.yaml
similarity index 66%
rename from apps/data/storage/base/postgres/ha.yaml
rename to apps/data/storage/base/home/web2rtc.yaml
index 56d1d9dc1..fefe382bd 100644
--- a/apps/data/storage/base/postgres/ha.yaml
+++ b/apps/data/storage/base/home/web2rtc.yaml
@@ -1,12 +1,13 @@
+---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
- name: homeassistant-postgres
+ name: web2rtc-storage
namespace: homeassistant
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
resources:
requests:
- storage: 5Gi
+ storage: 2Gi
+ storageClassName: mayastor
diff --git a/apps/data/storage/base/home/whisper.yaml b/apps/data/storage/base/home/whisper.yaml
index 53c4ebef9..6525b019b 100644
--- a/apps/data/storage/base/home/whisper.yaml
+++ b/apps/data/storage/base/home/whisper.yaml
@@ -9,4 +9,4 @@ spec:
resources:
requests:
storage: 10Gi
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
diff --git a/apps/data/storage/base/home/wyze.yaml b/apps/data/storage/base/home/wyze.yaml
index 5f812eb4f..067f01d86 100644
--- a/apps/data/storage/base/home/wyze.yaml
+++ b/apps/data/storage/base/home/wyze.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
resources:
requests:
storage: 2Gi
@@ -19,7 +19,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
resources:
requests:
storage: 35Gi
@@ -32,7 +32,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
resources:
requests:
storage: 20Gi
diff --git a/apps/data/storage/base/jellyfin.yaml b/apps/data/storage/base/jellyfin.yaml
index 0d1b8ed5a..963d237b6 100644
--- a/apps/data/storage/base/jellyfin.yaml
+++ b/apps/data/storage/base/jellyfin.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 15Gi
@@ -19,7 +19,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 10Gi
diff --git a/apps/data/storage/base/jupyterlab.yaml b/apps/data/storage/base/jupyterlab.yaml
index 4c2d4fc7d..56e6dcbbf 100644
--- a/apps/data/storage/base/jupyterlab.yaml
+++ b/apps/data/storage/base/jupyterlab.yaml
@@ -9,4 +9,4 @@ spec:
resources:
requests:
storage: 30Gi
- storageClassName: iscsi
+ storageClassName: mayastor
diff --git a/apps/data/storage/base/kuma.yaml b/apps/data/storage/base/kuma.yaml
index c97d053f8..76ffdd62a 100644
--- a/apps/data/storage/base/kuma.yaml
+++ b/apps/data/storage/base/kuma.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 1Gi
diff --git a/apps/data/storage/base/librex.yaml b/apps/data/storage/base/librex.yaml
index a7a7bd8b7..b6f3f51fe 100644
--- a/apps/data/storage/base/librex.yaml
+++ b/apps/data/storage/base/librex.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 3Gi
diff --git a/apps/data/storage/base/lidarr.yaml b/apps/data/storage/base/lidarr.yaml
index 98be96aac..e9d3bcd70 100644
--- a/apps/data/storage/base/lidarr.yaml
+++ b/apps/data/storage/base/lidarr.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 2Gi
diff --git a/apps/data/storage/base/links.yaml b/apps/data/storage/base/links.yaml
deleted file mode 100644
index 7c8ca4b54..000000000
--- a/apps/data/storage/base/links.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: golinks-storage
- namespace: networking
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 10Gi
diff --git a/apps/data/storage/base/local-ai.yaml b/apps/data/storage/base/local-ai.yaml
index f8cae31d7..5e38e5efc 100644
--- a/apps/data/storage/base/local-ai.yaml
+++ b/apps/data/storage/base/local-ai.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: mayastor-single-replica
+ storageClassName: mayastor
resources:
requests:
storage: 100Gi
diff --git a/apps/data/storage/base/matrix/bridges.yaml b/apps/data/storage/base/matrix/bridges.yaml
deleted file mode 100644
index ad85a27f9..000000000
--- a/apps/data/storage/base/matrix/bridges.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: bridge-config-storage
- namespace: matrix1
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
diff --git a/apps/data/storage/base/matrix/discord.yaml b/apps/data/storage/base/matrix/discord.yaml
deleted file mode 100644
index 4db522064..000000000
--- a/apps/data/storage/base/matrix/discord.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: discord-bridge-data
- namespace: matrix1
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 2Gi
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: registration-discord-matrix
- namespace: matrix1
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
diff --git a/apps/data/storage/base/matrix/instagram.yaml b/apps/data/storage/base/matrix/instagram.yaml
deleted file mode 100644
index 74526d4d3..000000000
--- a/apps/data/storage/base/matrix/instagram.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: instagram-bridge-data
- namespace: matrix1
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: registration-instagram-matrix
- namespace: matrix1
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
diff --git a/apps/data/storage/base/matrix/linkedin.yaml b/apps/data/storage/base/matrix/linkedin.yaml
deleted file mode 100644
index c3c607a09..000000000
--- a/apps/data/storage/base/matrix/linkedin.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: linkedin-bridge-data
- namespace: matrix1
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: registration-linkedin-matrix
- namespace: matrix1
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
diff --git a/apps/data/storage/base/matrix/messenger.yaml b/apps/data/storage/base/matrix/messenger.yaml
deleted file mode 100644
index c62c20b21..000000000
--- a/apps/data/storage/base/matrix/messenger.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: messenger-bridge-data
- namespace: matrix
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
diff --git a/apps/data/storage/base/matrix/signal.yaml b/apps/data/storage/base/matrix/signal.yaml
deleted file mode 100644
index 4ce589cb7..000000000
--- a/apps/data/storage/base/matrix/signal.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: signal-bridge-data
- namespace: matrix
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
diff --git a/apps/data/storage/base/matrix/skype.yaml b/apps/data/storage/base/matrix/skype.yaml
deleted file mode 100644
index 9d7809861..000000000
--- a/apps/data/storage/base/matrix/skype.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: skype-bridge-data
- namespace: matrix
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
diff --git a/apps/data/storage/base/matrix/steam.yaml b/apps/data/storage/base/matrix/steam.yaml
deleted file mode 100644
index e5e2e2fe7..000000000
--- a/apps/data/storage/base/matrix/steam.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: steam-bridge-data
- namespace: matrix
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
diff --git a/apps/data/storage/base/matrix/telegram.yaml b/apps/data/storage/base/matrix/telegram.yaml
deleted file mode 100644
index 1f4364316..000000000
--- a/apps/data/storage/base/matrix/telegram.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: telegram-bridge-data
- namespace: matrix
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
diff --git a/apps/data/storage/base/matrix/whats.yaml b/apps/data/storage/base/matrix/whats.yaml
deleted file mode 100644
index 8b1ebff0c..000000000
--- a/apps/data/storage/base/matrix/whats.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: whats-bridge-data
- namespace: matrix1
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 1Gi
diff --git a/apps/data/storage/base/media.yaml b/apps/data/storage/base/media.yaml
index b40831655..eec244923 100644
--- a/apps/data/storage/base/media.yaml
+++ b/apps/data/storage/base/media.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 300Gi
@@ -19,7 +19,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 10Gi
@@ -32,7 +32,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 3Gi
@@ -45,7 +45,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 10Gi
@@ -58,7 +58,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 5Gi
@@ -71,7 +71,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 5Gi
@@ -84,7 +84,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 30Gi
@@ -97,7 +97,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 150Gi
@@ -110,7 +110,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 100Gi
diff --git a/apps/data/storage/base/milvus.yaml b/apps/data/storage/base/milvus.yaml
index fd9dfdaaa..2d870e848 100644
--- a/apps/data/storage/base/milvus.yaml
+++ b/apps/data/storage/base/milvus.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 55Gi
diff --git a/apps/data/storage/base/matrix/synapse.yaml b/apps/data/storage/base/mixpost.yaml
similarity index 57%
rename from apps/data/storage/base/matrix/synapse.yaml
rename to apps/data/storage/base/mixpost.yaml
index 1b980f7ec..33a8e726f 100644
--- a/apps/data/storage/base/matrix/synapse.yaml
+++ b/apps/data/storage/base/mixpost.yaml
@@ -1,25 +1,25 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
- name: synapse-data
- namespace: matrix1
+ name: mixpost-data
+ namespace: services
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
- storage: 15Gi
+ storage: 20Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
- name: synapse-database
- namespace: matrix1
+ name: mixpost-logs
+ namespace: services
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
- storage: 15Gi
+ storage: 5Gi
diff --git a/apps/data/storage/base/n8n.yaml b/apps/data/storage/base/n8n.yaml
index 4a8d2d7d2..db96c6deb 100644
--- a/apps/data/storage/base/n8n.yaml
+++ b/apps/data/storage/base/n8n.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 5Gi
diff --git a/apps/data/storage/base/postgres/bridges.yaml b/apps/data/storage/base/postgres/bridges.yaml
deleted file mode 100644
index c862a7c06..000000000
--- a/apps/data/storage/base/postgres/bridges.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: bridges-postgres
- namespace: matrix
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 15Gi
diff --git a/apps/data/storage/base/postgres/ganymede.yaml b/apps/data/storage/base/postgres/ganymede.yaml
deleted file mode 100644
index 1b6a8b1a7..000000000
--- a/apps/data/storage/base/postgres/ganymede.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: ganymede-database
- namespace: media
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 15Gi
diff --git a/apps/data/storage/base/postgres/synapse.yaml b/apps/data/storage/base/postgres/synapse.yaml
deleted file mode 100644
index abc583585..000000000
--- a/apps/data/storage/base/postgres/synapse.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: synapse-postgres
- namespace: matrix
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 10Gi
diff --git a/apps/data/storage/base/snapshot/iscsi.yaml b/apps/data/storage/base/snapshot/iscsi.yaml
index 7a49b0859..b4d665ded 100644
--- a/apps/data/storage/base/snapshot/iscsi.yaml
+++ b/apps/data/storage/base/snapshot/iscsi.yaml
@@ -1,6 +1,6 @@
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
- name: iscsi-snapshot
-driver: iscsi
+ name: mayastor-single-replica-snapshot
+driver: mayastor-single-replica
deletionPolicy: Delete
diff --git a/apps/data/storage/base/tanoshi.yaml b/apps/data/storage/base/tanoshi.yaml
index bb60eaaa5..a4290bc3b 100644
--- a/apps/data/storage/base/tanoshi.yaml
+++ b/apps/data/storage/base/tanoshi.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 4Gi
@@ -19,7 +19,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 35Gi
diff --git a/apps/data/storage/base/taskwarrior.yaml b/apps/data/storage/base/taskwarrior.yaml
index a8829f839..f518c3d4a 100644
--- a/apps/data/storage/base/taskwarrior.yaml
+++ b/apps/data/storage/base/taskwarrior.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 1Gi
@@ -19,7 +19,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 15Gi
diff --git a/apps/data/storage/base/postgres/wallabag.yaml b/apps/data/storage/base/touito.yaml
similarity index 57%
rename from apps/data/storage/base/postgres/wallabag.yaml
rename to apps/data/storage/base/touito.yaml
index 457e8f843..f2d07a9a6 100644
--- a/apps/data/storage/base/postgres/wallabag.yaml
+++ b/apps/data/storage/base/touito.yaml
@@ -1,12 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
- name: wallabag-postgres
+ name: touito-storage
namespace: services
spec:
accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
+ - ReadWriteOnce
+ storageClassName: mayastor
resources:
requests:
- storage: 10Gi
+ storage: 1Gi
diff --git a/apps/data/storage/base/transfer.yaml b/apps/data/storage/base/transfer.yaml
new file mode 100644
index 000000000..62f026d6a
--- /dev/null
+++ b/apps/data/storage/base/transfer.yaml
@@ -0,0 +1,25 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: transfer-cache
+ namespace: services
+spec:
+ accessModes:
+ - ReadWriteOnce
+ storageClassName: mayastor
+ resources:
+ requests:
+ storage: 5Gi
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: transfer-data
+ namespace: services
+spec:
+ accessModes:
+ - ReadWriteOnce
+ storageClassName: mayastor
+ resources:
+ requests:
+ storage: 15Gi
diff --git a/apps/data/storage/base/turbopilot.yaml b/apps/data/storage/base/turbopilot.yaml
index e3f70a832..3619f567f 100644
--- a/apps/data/storage/base/turbopilot.yaml
+++ b/apps/data/storage/base/turbopilot.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 35Gi
diff --git a/apps/data/storage/base/unifi-poller.yaml b/apps/data/storage/base/unifi-poller.yaml
index 69bd2967d..5fd1195ec 100644
--- a/apps/data/storage/base/unifi-poller.yaml
+++ b/apps/data/storage/base/unifi-poller.yaml
@@ -2,11 +2,11 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: unifi-poller-storage
- namespace: unifi
+ namespace: networking
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 2Gi
diff --git a/apps/data/storage/base/unifi.yaml b/apps/data/storage/base/unifi.yaml
index ca441c4cf..17fdd216f 100644
--- a/apps/data/storage/base/unifi.yaml
+++ b/apps/data/storage/base/unifi.yaml
@@ -2,37 +2,24 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: unifi-storage
- namespace: unifi
+ namespace: networking
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
- storage: 15Gi
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: unifi-storage-new
- namespace: unifi
-spec:
- accessModes:
- - ReadWriteOnce
- storageClassName: iscsi
- resources:
- requests:
- storage: 50Gi
+ storage: 20Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: unifi-certificates
- namespace: unifi
+ namespace: networking
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 2Gi
diff --git a/apps/data/storage/base/wallabag.yaml b/apps/data/storage/base/wallabag.yaml
index f2a3993bc..a595768f7 100644
--- a/apps/data/storage/base/wallabag.yaml
+++ b/apps/data/storage/base/wallabag.yaml
@@ -6,7 +6,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 15Gi
@@ -19,7 +19,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 5Gi
diff --git a/apps/data/storage/base/wger.yaml b/apps/data/storage/base/wger.yaml
index 22ca9915c..3c24261b8 100644
--- a/apps/data/storage/base/wger.yaml
+++ b/apps/data/storage/base/wger.yaml
@@ -7,7 +7,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 5Gi
@@ -20,7 +20,7 @@ metadata:
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
storage: 25Gi
diff --git a/apps/data/storage/base/postgres/n8n.yaml b/apps/data/storage/base/yacy.yaml
similarity index 66%
rename from apps/data/storage/base/postgres/n8n.yaml
rename to apps/data/storage/base/yacy.yaml
index 38ce26fe1..9eea4c3d8 100644
--- a/apps/data/storage/base/postgres/n8n.yaml
+++ b/apps/data/storage/base/yacy.yaml
@@ -1,12 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
- name: n8n-postgres
+ name: yacy-storage
namespace: services
spec:
accessModes:
- ReadWriteOnce
- storageClassName: iscsi
+ storageClassName: mayastor
resources:
requests:
- storage: 5Gi
+ storage: 100Gi
diff --git a/apps/data/storage/kustomization.yaml b/apps/data/storage/kustomization.yaml
index ee0e69eee..b31630922 100644
--- a/apps/data/storage/kustomization.yaml
+++ b/apps/data/storage/kustomization.yaml
@@ -5,63 +5,23 @@ resources:
- base/kuma.yaml
# Home Assistant
- - base/home/
-
+ - base/home
# Networking
- # - base/adguard.yaml
+
- base/unifi.yaml
- base/unifi-poller.yaml
- # Media Services
- # - base/jellyfin.yaml
- # - base/tanoshi.yaml
- # - base/media.yaml
- # - base/beets.yaml
- # - base/lidarr.yaml
- # - base/ganymede.yaml
-
# Services
- base/n8n.yaml
- base/gitea.yaml
- - base/links.yaml
- - base/wger.yaml
- # - base/grocy.yaml
- # - base/archivebox.yaml
+
+ - base/touito.yaml
+ - base/mixpost.yaml
+
- base/change.yaml
- # - base/taskwarrior.yaml
- # - base/wallabag.yaml
- # - base/milvus.yaml
- base/actual.yaml
- base/finances.yaml
- # - base/jupyterlab.yaml
- # - base/librex.yaml
- base/local-ai.yaml
- - base/turbopilot.yaml
-
- # Postgres Storage
- - base/postgres/ha.yaml
- - base/postgres/n8n.yaml
- # - base/postgres/wallabag.yaml
- # - base/postgres/ganymede.yaml
-
- # Matrix
- # - base/matrix/synapse.yaml
- # - base/matrix/bridges.yaml
- # - base/matrix/whats.yaml
- # - base/matrix/instagram.yaml
- # - base/matrix/linkedin.yaml
- # - base/matrix/discord.yaml
- # - base/matrix/messenger.yaml
- # - base/matrix/skype.yaml
- # - base/matrix/signal.yaml
- # - base/matrix/steam.yaml
-
- # - base/matrix/telegram.yaml
- # - base/postgres/bridges.yaml
- # - base/postgres/synapse.yaml
-
- # Snapshot class
- - base/snapshot/iscsi.yaml
commonAnnotations:
argocd.argoproj.io/sync-options: Delete=false
diff --git a/apps/home/ha/README.md b/apps/home/ha/README.md
index 77212080a..841b75aab 100644
--- a/apps/home/ha/README.md
+++ b/apps/home/ha/README.md
@@ -3,20 +3,26 @@
+
+
+
+
+
+
### What is Home Assistant?
> Home Assistant is an open-source home automation platform that allows you to automate and control various aspects of your home, such as lights, appliances, and security systems. It is designed to be easy to use and flexible, and it can be integrated with a wide range of devices and services, including smart home devices, smart speakers, and web services. With Home Assistant, you can create automations and rules to control your home automatically, and you can use it to monitor and track various aspects of your home, such as energy usage and temperature.
-
-### Associated Resources
-
-- [Postgres Operator][operator-uri]:
+>
+> #### Associated Resources
+>
+> - [Postgres Operator][operator-uri]:
The Home Assistant depends on the operator to create and manage its main database.
-- [ArgoCD][argo-uri]: Responsible for managing Kubernetes resources related to Home Assistant
+> - [ArgoCD][argo-uri]: Responsible for managing Kubernetes resources related to Home Assistant
-### References and links
+## References and links
- **[Home Assistant Configuration Repository][own-ha-uri]**
- [Official Website][website-uri]
@@ -26,27 +32,31 @@ The Home Assistant depends on the operator to create and manage its main databas
### Instructions for standalone deployment
```bash
-# Inside this folder
kubectl apply -k github.com/gruberdev/homelab/apps/home/ha
```
+---
+
### HACS Integrations
- [SmartIR][smartir-uri]
- [Uptime-kuma Integration][uptime-kuma]
-- [icloud3][icloud3-uri]
- [ha-floorplan][ha-floorplan]
- [ha-samsungtv-smart][ha-samsungtv-smart]
- [scheduler-component][scheduler-component]
- [ha-dual-smart-thermostat][ha-dual-smart-thermostat]
- [hass-openai-custom-conversation][hass-openai-custom-conversation]
-- [iphonedetect][iphonedetect]
- [extended_openai_conversation][extended-ai]
+- [hass-xiaomi-miot][xiaomi-auto-uri]
+- [local-tuya][local-tuya-uri]
+- [frigate][frigate-uri]
+- [hass-auto-backup][hass-backup-uri]
### Lovelace add-ons:
- [vertical-stack-in-card][vertical-stack-uri]
- [mini-graph-card][mini-graph-uri]
+- [tv-card][tv-card-uri]
- [battery-state-card][battery-uri]
- [history-explorer-card][history-card]
- [lovelace-home-feed-card][lovelace-home-feed-card]
@@ -63,6 +73,15 @@ kubectl apply -k github.com/gruberdev/homelab/apps/home/ha
- [search-card][search-card]
- [custom-sidebar][custom-sidebar]
- [navbar-position][navbar-position]
+- [frigate-card][frigate-card-uri]
+- [lovelace-mushroom][mushroom-uri]
+- [honeycombo-menu][honeycombo-uri]
+- [bubble-card][bubble-card-uri]
+- [vacuum-card][vacuum-card-uri]
+- [service-call-tile][service-call-uri]
+- [hass-simpleicons][hass-simpleicons-uri]
+- [purifier-card][purifier-card-uri]
+
### General personal documentation
@@ -86,6 +105,10 @@ kubectl apply -k github.com/gruberdev/homelab/apps/home/ha
[hass-openai-custom-conversation]: https://github.com/drndos/hass-openai-custom-conversation
[iphonedetect]: https://github.com/mudape/iphonedetect
[extended-ai]: https://github.com/jekalmin/extended_openai_conversation
+[xiaomi-auto-uri]: https://github.com/al-one/hass-xiaomi-miot
+[local-tuya-uri]: https://github.com/rospogrigio/localtuya
+[frigate-uri]: https://github.com/blakeblackshear/frigate-hass-integration
+[hass-backup-uri]: https://github.com/sabeechen/hassio-google-drive-backup
[vertical-stack-uri]: https://github.com/ofekashery/vertical-stack-in-card
[mini-graph-uri]: https://github.com/kalkih/mini-graph-card
@@ -105,6 +128,15 @@ kubectl apply -k github.com/gruberdev/homelab/apps/home/ha
[search-card]: https://github.com/postlund/search-card
[custom-sidebar]: https://github.com/elchininet/custom-sidebar
[navbar-position]: https://github.com/javawizard/ha-navbar-position
+[frigate-card-uri]: https://github.com/dermotduffy/frigate-hass-card
+[mushroom-uri]: https://github.com/piitaya/lovelace-mushroom
+[bubble-card-uri]: https://github.com/Clooos/Bubble-Card
+[vacuum-card-uri]: https://github.com/denysdovhan/vacuum-card
+[service-call-uri]: https://github.com/Nerwyn/service-call-tile-feature
+[hass-simpleicons-uri]: https://github.com/vigonotion/hass-simpleicons
+[purifier-card-uri]: https://github.com/denysdovhan/purifier-card
[ha-samsung-uri]: https://github.com/home-assistant/core/issues/70777
-[broadlink-custom-uri]: https://github.com/usernein/tv-card/blob/c8f0a76424844772934613d45691d9b3860ff36b/README.md?plain=1#L88-L130
\ No newline at end of file
+[broadlink-custom-uri]: https://github.com/usernein/tv-card/blob/c8f0a76424844772934613d45691d9b3860ff36b/README.md?plain=1#L88-L130
+[tv-card-uri]: https://github.com/usernein/tv-card
+[honeycombo-uri]: https://github.com/Sian-Lee-SA/honeycomb-menu
diff --git a/apps/services/mlops/matrix-bot/base/kustomization.yaml b/apps/home/ha/add-ons/kustomization.yaml
similarity index 64%
rename from apps/services/mlops/matrix-bot/base/kustomization.yaml
rename to apps/home/ha/add-ons/kustomization.yaml
index cba8cb583..ff49910f3 100644
--- a/apps/services/mlops/matrix-bot/base/kustomization.yaml
+++ b/apps/home/ha/add-ons/kustomization.yaml
@@ -1,6 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
-- deployment.yaml
-- cm.yaml
-- secret.yaml
+ - tailscale.yaml
diff --git a/apps/home/ha/add-ons/tailscale.yaml b/apps/home/ha/add-ons/tailscale.yaml
new file mode 100644
index 000000000..c671c1ee1
--- /dev/null
+++ b/apps/home/ha/add-ons/tailscale.yaml
@@ -0,0 +1,10 @@
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: ha-tailscale-inbound
+ annotations:
+ tailscale.com/tailnet-fqdn: ha.raptor-beta.ts.net
+spec:
+ externalName: placeholder
+ type: ExternalName
diff --git a/apps/home/ha/base/certificate.yaml b/apps/home/ha/base/certificate.yaml
index b4dea216c..f1d225413 100644
--- a/apps/home/ha/base/certificate.yaml
+++ b/apps/home/ha/base/certificate.yaml
@@ -1,7 +1,7 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
- name: ha-cloudflare
+ name: homeassistant
spec:
secretName: ha-tls
issuerRef:
@@ -9,4 +9,4 @@ spec:
kind: ClusterIssuer
commonName: home.gruber.dev.br
dnsNames:
- - home.gruber.dev.br
+ - home.gruber.dev.br
diff --git a/apps/home/ha/base/db.yaml b/apps/home/ha/base/db.yaml
deleted file mode 100644
index 968837e43..000000000
--- a/apps/home/ha/base/db.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-apiVersion: postgresql.cnpg.io/v1
-kind: Cluster
-metadata:
- name: home-database
- namespace: homeassistant
-spec:
- imageName: ghcr.io/cloudnative-pg/postgresql:16.0
- instances: 1
- startDelay: 35
- stopDelay: 35
- resources:
- requests:
- memory: 256Mi
- cpu: 300m
- limits:
- memory: 768Mi
- cpu: 700m
- postgresql:
- pg_hba:
- - host all,replication all,replication 0.0.0.0/0 md5
- parameters:
- shared_buffers: 256MB
- timezone: "America/Sao_Paulo"
- pg_stat_statements.max: "10000"
- pg_stat_statements.track: all
- auto_explain.log_min_duration: "10s"
- bootstrap:
- initdb:
- database: home
- owner: home
- storage:
- storageClass: iscsi
- size: 40Gi
- monitoring:
- enablePodMonitor: true
- affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/hostname
- operator: In
- values:
- - node-one
diff --git a/apps/home/ha/base/deployment.yaml b/apps/home/ha/base/deployment.yaml
index 81fbd627b..a18ad3963 100644
--- a/apps/home/ha/base/deployment.yaml
+++ b/apps/home/ha/base/deployment.yaml
@@ -2,25 +2,24 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: home-assistant
- labels:
- app: home-assistant
annotations:
link.argocd.argoproj.io/external-link: https://home.gruber.dev.br
spec:
replicas: 1
strategy:
type: Recreate
- selector:
- matchLabels:
- app: home-assistant
template:
- metadata:
- labels:
- app: home-assistant
spec:
initContainers:
- name: hacs-install
image: alpine:3.16.2
+ resources:
+ limits:
+ cpu: 200m
+ memory: 256Mi
+ requests:
+ cpu: 100m
+ memory: 128Mi
command:
[
"sh",
@@ -41,6 +40,13 @@ spec:
- name: git-sync
image: k8s.gcr.io/git-sync/git-sync:v3.6.1
imagePullPolicy: IfNotPresent
+ resources:
+ limits:
+ cpu: 200m
+ memory: 256Mi
+ requests:
+ cpu: 100m
+ memory: 128Mi
securityContext:
runAsUser: 65533
env:
@@ -91,10 +97,10 @@ spec:
protocol: TCP
resources:
limits:
- cpu: 750m
+ cpu: 550m
memory: 2Gi
requests:
- cpu: 350m
+ cpu: 200m
memory: 1Gi
livenessProbe:
httpGet:
@@ -158,7 +164,7 @@ spec:
secretName: ha-secrets
- name: config-volume
persistentVolumeClaim:
- claimName: ha-storage-new
+ claimName: ha-storage
- name: hacs-storage
persistentVolumeClaim:
claimName: hacs-storage
diff --git a/apps/home/ha/base/ingress.yaml b/apps/home/ha/base/ingress.yaml
index dcedcc35d..e8147871f 100644
--- a/apps/home/ha/base/ingress.yaml
+++ b/apps/home/ha/base/ingress.yaml
@@ -1,26 +1,25 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
- name: homeassistant
+ name: ha-internal
annotations:
- external-dns.alpha.kubernetes.io/hostname: home.gruber.dev.br
external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
+ external-dns.alpha.kubernetes.io/hostname: home.gruber.dev.br
external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
ingressClassName: nginx
rules:
- - host: home.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: ha-tailscale
- port:
- name: ha
+ - host: home.gruber.dev.br
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: home-tailscale
+ port:
+ name: api
tls:
- - hosts:
- - home.gruber.dev.br
- secretName: ha-tls
+ - hosts:
+ - home.gruber.dev.br
+ secretName: ha-tls
diff --git a/apps/home/ha/base/kustomization.yaml b/apps/home/ha/base/kustomization.yaml
index bdc987ceb..65a38a505 100644
--- a/apps/home/ha/base/kustomization.yaml
+++ b/apps/home/ha/base/kustomization.yaml
@@ -2,9 +2,18 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- cm.yaml
- - db.yaml
- deployment.yaml
- - svc.yaml
- - ingress.yaml
- - certificate.yaml
- secret.yaml
+ - certificate.yaml
+ - ingress.yaml
+ - svc.yaml
+
+labels:
+- includeSelectors: true
+ includeTemplates: true
+ pairs:
+ app.kubernetes.io/part-of: home
+ cluster.app: homeassistant
+
+commonAnnotations:
+ reloader.stakater.com/auto: "true"
diff --git a/apps/home/ha/base/svc.yaml b/apps/home/ha/base/svc.yaml
index 06b5a29b9..ef60d86e9 100644
--- a/apps/home/ha/base/svc.yaml
+++ b/apps/home/ha/base/svc.yaml
@@ -1,54 +1,29 @@
-apiVersion: v1
-kind: Service
-metadata:
- labels:
- app: home-assistant
- name: home-assistant
-spec:
- ports:
- - name: ha
- port: 8123
- protocol: TCP
- targetPort: 8123
- selector:
- app: home-assistant
- type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
- name: homeassistant
- labels:
- app: home-assistant
- annotations:
- kube-vip.io/vipHost: homeassistant
+ name: home-lb
spec:
ports:
- - name: ha
- port: 80
- protocol: TCP
- targetPort: 8123
- selector:
- app: home-assistant
+ - port: 80
+ targetPort: 8123
+ name: api
+ protocol: TCP
type: LoadBalancer
- loadBalancerIP: "192.168.1.137"
loadBalancerClass: kube-vip.io/kube-vip-class
+ loadBalancerIP: 0.0.0.0
---
apiVersion: v1
kind: Service
metadata:
- name: ha-tailscale
- labels:
- app: home-assistant
+ name: home-tailscale
annotations:
- tailscale.com/hostname: "home"
+ tailscale.com/hostname: ha
spec:
- selector:
- app: home-assistant
ports:
- - name: web
- port: 80
+ - port: 80
targetPort: 8123
+ name: api
protocol: TCP
- loadBalancerClass: tailscale
type: LoadBalancer
+ loadBalancerClass: tailscale
diff --git a/apps/home/ha/db/kustomization.yaml b/apps/home/ha/db/kustomization.yaml
new file mode 100644
index 000000000..5ab4a06b5
--- /dev/null
+++ b/apps/home/ha/db/kustomization.yaml
@@ -0,0 +1,46 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+ - ../../../data/postgres/cloudnative/default
+
+nameSuffix: -homeassistant
+
+patches:
+ - patch: |-
+ - op: replace
+ path: /spec/cluster/name
+ value: database-homeassistant
+ target:
+ kind: ScheduledBackup
+ name: daily-backup-postgres
+ - patch: |
+ apiVersion: postgresql.cnpg.io/v1
+ kind: Cluster
+ metadata:
+ name: database
+ spec:
+ bootstrap:
+ initdb:
+ database: home
+ owner: home
+ storage:
+ storageClass: mayastor
+ size: 30Gi
+ walStorage:
+ storageClass: mayastor
+ size: 20Gi
+ affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: kubernetes.io/hostname
+ operator: In
+ values:
+ - controller-one
+ target:
+ kind: Cluster
+ name: database
+
+commonAnnotations:
+ argocd.argoproj.io/sync-options: Delete=false
diff --git a/apps/home/ha/kustomization.yaml b/apps/home/ha/kustomization.yaml
index afc5b2ae3..0eac39ff1 100644
--- a/apps/home/ha/kustomization.yaml
+++ b/apps/home/ha/kustomization.yaml
@@ -1,16 +1,17 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
-bases:
- - ./base
-namespace: homeassistant
+resources:
+ - base
+ - db
+ - add-ons
patches:
- patch: |-
- op: add
path: "/spec/template/spec/nodeSelector"
value:
- kubernetes.io/hostname: node-two
+ kubernetes.io/hostname: worker-one
kubernetes.io/arch: amd64
target:
kind: Deployment
@@ -18,7 +19,6 @@ patches:
images:
- name: homeassistant/home-assistant
- newTag: "2024.2.1"
+ newTag: 2024.7.1
-commonAnnotations:
- reloader.stakater.com/auto: "true"
+namespace: homeassistant
diff --git a/apps/home/wyze/README.md b/apps/home/wyze/README.md
deleted file mode 100644
index 3b9bd0800..000000000
--- a/apps/home/wyze/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Wyze-bridge
diff --git a/apps/home/wyze/base/cm.yaml b/apps/home/wyze/base/cm.yaml
deleted file mode 100644
index 3a071d069..000000000
--- a/apps/home/wyze/base/cm.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: wyze-cm
-data:
- NET_MODE: "ANY"
- TZ: "America/Sao_Paulo"
- ENABLE_AUDIO: "True"
- RTSP_FW: "force"
- SNAPSHOT: "RTSP30"
- IMG_DIR: "/img/"
- IMG_TYPE: "png"
- RECORD_ALL: "False"
- CONNECT_TIMEOUT: "60"
- OFFLINE_TIME: "30"
- FRESH_DATA: "True"
- FPS_FIX: "True"
- LLHLS: "True"
- MOTION_API: "True"
- MOTION_INT: "3"
- MOTION_START: "True"
- H264_ENC: "h264_nvenc"
- ROTATE_DOOR: "True"
- ON_DEMAND: "False"
- SUBSTREAM: "True"
- NVIDIA_VISIBLE_DEVICES: "all"
- NVIDIA_DRIVER_CAPABILITIES: "all"
- NVIDIA_REQUIRE_CUDA: "cuda>=11.0"
- WB_IP: "10.43.214.110"
diff --git a/apps/home/wyze/base/deployment.yaml b/apps/home/wyze/base/deployment.yaml
deleted file mode 100644
index df8e3cfda..000000000
--- a/apps/home/wyze/base/deployment.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: wyze-bridge
- labels:
- app: wyze-bridge
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: wyze-bridge
- template:
- metadata:
- labels:
- app: wyze-bridge
- spec:
- runtimeClassName: nvidia
- containers:
- - name: wyze-bridge
- image: mrlt8/wyze-bridge:latest-hw
- imagePullPolicy: IfNotPresent
- envFrom:
- - configMapRef:
- name: wyze-cm
- - secretRef:
- name: wyze-vars
- ports:
- - name: web
- protocol: TCP
- containerPort: 5000
- - name: rtmp
- protocol: TCP
- containerPort: 1935
- - name: rtsp
- protocol: TCP
- containerPort: 8554
- - name: hls
- protocol: TCP
- containerPort: 8888
- - name: webrtc-tcp
- protocol: TCP
- containerPort: 8889
- - name: webrtc-udp
- protocol: UDP
- containerPort: 8889
- - name: webrtc-alt-udp
- protocol: UDP
- containerPort: 8189
- startupProbe:
- tcpSocket:
- port: 5000
- initialDelaySeconds: 30
- livenessProbe:
- tcpSocket:
- port: 5000
- initialDelaySeconds: 15
- timeoutSeconds: 1
- periodSeconds: 20
- readinessProbe:
- tcpSocket:
- port: 5000
- initialDelaySeconds: 15
- timeoutSeconds: 1
- periodSeconds: 5
- resources:
- requests:
- cpu: 200m
- memory: 256Mi
- limits:
- cpu: 400m
- memory: 768Mi
- volumeMounts:
- - mountPath: /tokens
- name: config
- - mountPath: /img
- name: snapshots
- - mountPath: /record
- name: recordings
- volumes:
- - name: config
- persistentVolumeClaim:
- claimName: wyze-storage
- - name: snapshots
- persistentVolumeClaim:
- claimName: wyze-snapshots
- - name: recordings
- persistentVolumeClaim:
- claimName: wyze-recordings
diff --git a/apps/home/wyze/base/kustomization.yaml b/apps/home/wyze/base/kustomization.yaml
deleted file mode 100644
index 0292cfb79..000000000
--- a/apps/home/wyze/base/kustomization.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- secret.yaml
diff --git a/apps/home/wyze/base/secret.yaml b/apps/home/wyze/base/secret.yaml
deleted file mode 100644
index 424d89d96..000000000
--- a/apps/home/wyze/base/secret.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-apiVersion: v1
-kind: Secret
-metadata:
- name: wyze-vars
- annotations:
- avp.kubernetes.io/path: "kv/data/wyze"
-stringData:
- WYZE_EMAIL: ""
- WYZE_PASSWORD: ""
- TOTP_KEY: ""
diff --git a/apps/home/wyze/base/svc.yaml b/apps/home/wyze/base/svc.yaml
deleted file mode 100644
index c63f27ac8..000000000
--- a/apps/home/wyze/base/svc.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: wyze-bridge
- labels:
- app: wyze-bridge
-spec:
- selector:
- app: wyze-bridge
- ports:
- - name: web
- port: 80
- targetPort: 5000
- protocol: TCP
- - name: hls
- port: 8888
- targetPort: 8888
- protocol: TCP
- - name: webrtc-tcp
- port: 8889
- targetPort: 8889
- protocol: TCP
- - name: webrtc-udp
- port: 8889
- targetPort: 8889
- protocol: UDP
- - name: webrtc-alt-udp
- port: 8189
- targetPort: 8189
- protocol: UDP
- - name: rtsp
- protocol: TCP
- port: 8554
- targetPort: 8554
- type: ClusterIP
- clusterIP: 10.43.214.110
diff --git a/apps/home/wyze/kustomization.yaml b/apps/home/wyze/kustomization.yaml
deleted file mode 100644
index bc77b6814..000000000
--- a/apps/home/wyze/kustomization.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
- - ./base
-
-namespace: homeassistant
-patches:
- - patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- target:
- kind: Deployment
- name: wyze-bridge
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-images:
- - name: mrlt8/wyze-bridge
- newTag: 2.6.0-hw
diff --git a/apps/matrix/Dockerfile b/apps/matrix/Dockerfile
deleted file mode 100644
index c90e668c7..000000000
--- a/apps/matrix/Dockerfile
+++ /dev/null
@@ -1,5 +0,0 @@
-FROM alpine:3.19.1@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b
-RUN apk add --no-cache curl \
- && curl -L https://github.com/a8m/envsubst/releases/download/v1.2.0/envsubst-`uname -s`-`uname -m` -o envsubst \
- && chmod +x envsubst \
- && mv envsubst /usr/local/bin
diff --git a/apps/matrix/README.md b/apps/matrix/README.md
deleted file mode 100644
index e6b410c31..000000000
--- a/apps/matrix/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Matrix
diff --git a/apps/matrix/bridges/discord/README.md b/apps/matrix/bridges/discord/README.md
deleted file mode 100644
index cf7c7223f..000000000
--- a/apps/matrix/bridges/discord/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Matrix Discord Bridge
diff --git a/apps/matrix/bridges/discord/cm.yaml b/apps/matrix/bridges/discord/cm.yaml
deleted file mode 100644
index d485bcf95..000000000
--- a/apps/matrix/bridges/discord/cm.yaml
+++ /dev/null
@@ -1,66 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: discord-bridge-config
-data:
- discord.yaml.tmpl: |
- as_token: ${AS_TOKEN}
- hs_token: ${HS_TOKEN}
- id: discord-puppet
- namespaces:
- users:
- - exclusive: false
- regex: '@_discordpuppet_.*'
- rooms: []
- aliases:
- - exclusive: false
- regex: '#_discordpuppet_.*'
- protocols: []
- rate_limited: false
- sender_localpart: _discordpuppet_bot
- url: 'http://discord-bridge.matrix1.svc.cluster.local:8203'
- de.sorunome.msc2409.push_ephemeral: true
- discord-config.yaml.tmpl: |
- bridge:
- port: 8203
- bindAddress: 0.0.0.0
- domain: matrix.gruber.dev.br
- homeserverUrl: 'http://matrix-matrix-synapse.matrix1.svc.cluster.local:8008'
- loginSharedSecretMap:
- matrix.gruber.dev.br: '${SHARED_SECRET}'
- displayname: Discord Puppet Bridge
- enableGroupSync: true
- presence:
- enabled: true
- interval: 500
- provisioning:
- whitelist:
- - .*
- relay:
- whitelist:
- - '@.*'
- selfService:
- whitelist:
- - '@.*'
- homeserverUrlMap:
- matrix.gruber.dev.br: 'http://matrix-matrix-synapse.matrix1.svc.cluster.local:8008'
- namePatterns:
- user: ':name'
- userOverride: ':displayname'
- room: ':name'
- group: ':name'
- database:
- connString: >-
- postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db-matrix.matrix1.svc.cluster.local:5432/discord?sslmode=disable
- limits:
- maxAutojoinUsers: 100
- roomUserAutojoinDelay: 5000
- logging:
- console: info
- lineDateFormat: 'MMM-D HH:mm:ss.SSS'
- files:
- - file: bridge.log
- level: info
- datePattern: YYYY-MM-DD
- maxFiles: 14d
- maxSize: 50m
diff --git a/apps/matrix/bridges/discord/deployment.yaml b/apps/matrix/bridges/discord/deployment.yaml
deleted file mode 100644
index bc2564a80..000000000
--- a/apps/matrix/bridges/discord/deployment.yaml
+++ /dev/null
@@ -1,122 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: discord-bridge
- labels:
- app: discord-bridge
-spec:
- selector:
- matchLabels:
- app: discord-bridge
- replicas: 1
- strategy:
- type: Recreate
- template:
- metadata:
- labels:
- app: discord-bridge
- spec:
- initContainers:
- - name: load-config
- image: docker.io/grubertech/envsubst:v1.2.0
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- args:
- - -c
- - |
- echo "Substituting variables in /template/discord-config.yaml.tmpl to /tmp/discord-config.yaml" \
- && envsubst -no-empty -i /template/discord-config.yaml.tmpl -o /tmp/discord-config.yaml \
- && echo "Removing /data/config.yaml" \
- && rm -vrf /data/config.yaml || true \
- && echo "Copying /tmp/discord-config.yaml to /data/config.yaml" \
- && cp -fv /tmp/discord-config.yaml /data/config.yaml \
- && echo "Substituting variables in /template/discord.yaml.tmpl to /tmp/discord.yaml" \
- && envsubst -no-empty -i /template/discord.yaml.tmpl -o /tmp/discord.yaml \
- && echo "Removing /bridges/discorda.yaml" \
- && rm -vrf /bridges/discord.yaml || true \
- && echo "Copying /tmp/discord.yaml to /bridges/discord.yaml" \
- && echo "Files in /bridges before copying:" \
- && ls -l /bridges \
- && cp -fv /tmp/discord.yaml /bridges/discord.yaml
- env:
- - name: POSTGRES_USER
- valueFrom: { secretKeyRef: { name: synapse.db-matrix.credentials.postgresql.acid.zalan.do, key: username } }
- - name: POSTGRES_PASSWORD
- valueFrom: { secretKeyRef: { name: synapse.db-matrix.credentials.postgresql.acid.zalan.do, key: password } }
- - name: SHARED_SECRET
- valueFrom: { secretKeyRef: { name: synapse-shared, key: SHARED_SECRET } }
- - name: AS_TOKEN
- valueFrom: { secretKeyRef: { name: synapse-shared, key: AS_DISCORD_TOKEN } }
- - name: HS_TOKEN
- valueFrom: { secretKeyRef: { name: synapse-shared, key: HS_DISCORD_TOKEN } }
- volumeMounts:
- - name: config
- mountPath: /data
- - name: temp-dir
- mountPath: /tmp
- - name: bridges
- mountPath: /bridges
- - name: template
- mountPath: /template/discord-config.yaml.tmpl
- subPath: discord-config.yaml.tmpl
- readOnly: true
- - name: template
- mountPath: /template/discord.yaml.tmpl
- subPath: discord.yaml.tmpl
- readOnly: true
- resources:
- limits:
- cpu: 400m
- memory: 512Mi
- requests:
- cpu: 300m
- memory: 256Mi
- containers:
- - name: discord
- image: docker.io/grubertech/discord:v0.1.0
- imagePullPolicy: IfNotPresent
- command: ["/usr/local/bin/node"]
- args: ["/opt/mx-puppet-discord/build/index.js", "-c", "/data/config.yaml", "-f", "/bridges/discord.yaml"]
- ports:
- - name: http
- containerPort: 8203
- protocol: TCP
- volumeMounts:
- - name: config
- mountPath: /data
- - name: bridges
- mountPath: /bridges
- resources:
- limits:
- cpu: 400m
- memory: 512Mi
- requests:
- cpu: 300m
- memory: 256Mi
- livenessProbe:
- tcpSocket:
- port: 8203
- periodSeconds: 15
- initialDelaySeconds: 30
- readinessProbe:
- tcpSocket:
- port: 8203
- periodSeconds: 5
- initialDelaySeconds: 10
- startupProbe:
- tcpSocket:
- port: 8203
- periodSeconds: 30
- initialDelaySeconds: 60
- volumes:
- - name: template
- configMap:
- name: discord-bridge-config
- - name: temp-dir
- emptyDir: {}
- - name: config
- persistentVolumeClaim:
- claimName: discord-bridge-data
- - name: bridges
- persistentVolumeClaim:
- claimName: registration-discord-matrix
diff --git a/apps/matrix/bridges/discord/kustomization.yaml b/apps/matrix/bridges/discord/kustomization.yaml
deleted file mode 100644
index 891c6a6af..000000000
--- a/apps/matrix/bridges/discord/kustomization.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- cm.yaml
-- deployment.yaml
-- svc.yaml
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: discord-bridge
diff --git a/apps/matrix/bridges/discord/svc.yaml b/apps/matrix/bridges/discord/svc.yaml
deleted file mode 100644
index 64e36829d..000000000
--- a/apps/matrix/bridges/discord/svc.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
- name: discord-bridge
- labels:
- app: discord-bridge
-spec:
- selector:
- app: discord-bridge
- ports:
- - name: http
- protocol: TCP
- port: 8203
- targetPort: 8203
- publishNotReadyAddresses: True
diff --git a/apps/matrix/bridges/instagram/README.md b/apps/matrix/bridges/instagram/README.md
deleted file mode 100644
index fd91ec7b4..000000000
--- a/apps/matrix/bridges/instagram/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Matrix Telegram Bridge
diff --git a/apps/matrix/bridges/instagram/cm.yaml b/apps/matrix/bridges/instagram/cm.yaml
deleted file mode 100644
index 229bcb08e..000000000
--- a/apps/matrix/bridges/instagram/cm.yaml
+++ /dev/null
@@ -1,170 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: instagram-bridge-config
-data:
- instagram.yaml.tmpl: |
- id: instagram
- as_token: ${AS_TOKEN}
- hs_token: ${HS_TOKEN}
- namespaces:
- users:
- - exclusive: false
- regex: '@instagram_.*:matrix\.gruber\.dev\.br'
- - exclusive: false
- regex: '@instagram:matrix\.gruber\.dev\.br'
- aliases: []
- url: http://instagram-bridge.matrix1.svc.cluster.local:8201
- sender_localpart: tqX_lAHLX7FsdEDSe5ZujCy9WZndheNs9XzagKzCXY0GcDWQkryWs_DGfRtyO7QW
- rate_limited: false
- de.sorunome.msc2409.push_ephemeral: true
- push_ephemeral: true
- insta-config.yaml.tmpl: |
- homeserver:
- address: 'http://matrix-matrix-synapse.matrix1.svc.cluster.local:8008'
- domain: matrix.gruber.dev.br
- verify_ssl: false
- software: standard
- http_retry_count: 4
- status_endpoint: null
- message_send_checkpoint_endpoint: null
- async_media: false
- appservice:
- address: 'http://instagram-bridge.matrix1.svc.cluster.local:8201'
- tls_cert: false
- tls_key: false
- hostname: 0.0.0.0
- port: 8201
- max_body_size: 1
- database: >-
- postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db-matrix.matrix1.svc.cluster.local:5432/instagram?sslmode=require
- database_opts:
- min_size: 1
- max_size: 10
- id: instagram
- bot_username: instagram
- bot_displayname: Instagram bridge bot
- bot_avatar: 'mxc://maunium.net/JxjlbZUlCPULEeHZSwleUXQv'
- ephemeral_events: true
- as_token: ${AS_TOKEN}
- hs_token: ${HS_TOKEN}
- metrics:
- enabled: false
- listen_port: 8000
- manhole:
- enabled: false
- instagram:
- device_seed: '${INSTA_SEED}'
- mqtt_keepalive: 60
- bridge:
- username_template: 'instagram_{userid}'
- displayname_template: '{displayname} (Instagram)'
- private_chat_name_template: '{displayname}'
- group_chat_name_template: '{name}'
- displayname_max_length: 100
- max_startup_thread_sync_count: 20
- sync_with_custom_puppets: true
- sync_direct_chat_list: true
- double_puppet_allow_discovery: true
- double_puppet_server_map:
- matrix.gruber.dev.br: 'http://matrix-matrix-synapse.matrix1.svc.cluster.local:8008'
- login_shared_secret_map:
- matrix.gruber.dev.br: '${SHARED_SECRET}'
- federate_rooms: true
- backfill:
- enable_initial: true
- enable: true
- msc2716: false
- double_puppet_backfill: true
- max_conversations: 20
- min_sync_thread_delay: 5
- unread_hours_threshold: 0
- backoff:
- thread_list: 300
- message_history: 300
- incremental:
- max_pages: 10
- max_total_pages: -1
- page_delay: 5
- post_batch_delay: 20
- periodic_reconnect:
- interval: 60
- resync: true
- always: true
- get_proxy_api_url: null
- use_proxy_for_media: true
- encryption:
- allow: false
- default: false
- appservice: true
- require: false
- allow_key_sharing: true
- delete_keys:
- delete_outbound_on_ack: false
- dont_store_outbound: false
- ratchet_on_decrypt: false
- delete_fully_used_on_decrypt: false
- delete_prev_on_new_session: false
- delete_on_device_delete: false
- periodically_delete_expired: false
- verification_levels:
- receive: unverified
- send: unverified
- share: cross-signed-tofu
- rotation:
- enable_custom: false
- milliseconds: 604800000
- messages: 100
- disable_device_change_key_rotation: false
- private_chat_portal_meta: always
- delivery_receipts: true
- delivery_error_reports: true
- message_status_events: false
- resend_bridge_info: false
- unimportant_bridge_notices: true
- disable_bridge_notices: false
- caption_in_message: false
- bridge_notices: true
- bridge_matrix_typing: true
- provisioning:
- enabled: true
- prefix: /_matrix/provision/v1
- shared_secret: '${SHARED_SECRET}'
- segment_key: null
- segment_user_id: null
- command_prefix: '!ig'
- permissions:
- '*': relay
- matrix.gruber.dev.br: user
- '@gruber:matrix.gruber.dev.br': admin
- relay:
- enabled: true
- message_formats:
- m.text: '$sender_displayname: $message'
- m.notice: '$sender_displayname: $message'
- m.emote: '* $sender_displayname $message'
- logging:
- version: 1
- formatters:
- colored:
- (): mautrix_instagram.util.ColorFormatter
- format: '[%(asctime)s] [%(levelname)s@%(name)s] %(message)s'
- normal:
- format: '[%(asctime)s] [%(levelname)s@%(name)s] %(message)s'
- handlers:
- console:
- class: logging.StreamHandler
- formatter: colored
- loggers:
- mau:
- level: DEBUG
- mauigpapi:
- level: DEBUG
- aiohttp:
- level: INFO
- paho.mqtt:
- level: INFO
- root:
- level: DEBUG
- handlers:
- - console
diff --git a/apps/matrix/bridges/instagram/deployment.yaml b/apps/matrix/bridges/instagram/deployment.yaml
deleted file mode 100644
index d50254d22..000000000
--- a/apps/matrix/bridges/instagram/deployment.yaml
+++ /dev/null
@@ -1,117 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: instagram-bridge
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: instagram-bridge
- template:
- metadata:
- labels:
- app: instagram-bridge
- spec:
- initContainers:
- - name: load-config
- image: docker.io/grubertech/envsubst:v1.2.0
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- args:
- - -c
- - |
- envsubst -no-empty -i /template/insta-config.yaml.tmpl -o /tmp/insta-config.yaml \
- && cp -f /tmp/insta-config.yaml /data/config.yaml \
- && envsubst -no-empty -i /template/instagram.yaml.tmpl -o /tmp/instagram.yaml \
- && cp -f /tmp/instagram.yaml /bridges/instagram.yaml
- env:
- - name: POSTGRES_USER
- valueFrom: { secretKeyRef: { name: synapse.db-matrix.credentials.postgresql.acid.zalan.do, key: username } }
- - name: POSTGRES_PASSWORD
- valueFrom: { secretKeyRef: { name: synapse.db-matrix.credentials.postgresql.acid.zalan.do, key: password } }
- - name: SHARED_SECRET
- valueFrom: { secretKeyRef: { name: synapse-shared, key: SHARED_SECRET } }
- - name: AS_TOKEN
- valueFrom: { secretKeyRef: { name: synapse-shared, key: AS_INSTAGRAM_TOKEN } }
- - name: HS_TOKEN
- valueFrom: { secretKeyRef: { name: synapse-shared, key: HS_INSTAGRAM_TOKEN } }
- - name: INSTA_SEED
- valueFrom: { secretKeyRef: { name: synapse-shared, key: INSTA_SEED } }
- volumeMounts:
- - name: config
- mountPath: /data
- - name: temp-dir
- mountPath: /tmp
- - name: bridges
- mountPath: /bridges
- - name: template
- mountPath: /template/insta-config.yaml.tmpl
- subPath: insta-config.yaml.tmpl
- readOnly: true
- - name: template
- mountPath: /template/instagram.yaml.tmpl
- subPath: instagram.yaml.tmpl
- readOnly: true
- resources:
- limits:
- cpu: 320m
- memory: 512Mi
- requests:
- cpu: 150m
- memory: 512Mi
- containers:
- - name: bridge
- image: docker.io/grubertech/instagram:v0.4.0
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- env:
- - name: MAUTRIX_DIRECT_STARTUP
- value: "true"
- args:
- - -c
- - |
- python3 -m mautrix_instagram \
- -n -c "/data/config.yaml"
- ports:
- - name: http
- containerPort: 8201
- protocol: TCP
- livenessProbe:
- tcpSocket:
- port: 8201
- periodSeconds: 15
- initialDelaySeconds: 30
- readinessProbe:
- tcpSocket:
- port: 8201
- periodSeconds: 5
- initialDelaySeconds: 10
- startupProbe:
- tcpSocket:
- port: 8201
- periodSeconds: 30
- initialDelaySeconds: 60
- volumeMounts:
- - name: config
- mountPath: /data
- resources:
- limits:
- cpu: 320m
- memory: 512Mi
- requests:
- cpu: 200m
- memory: 256Mi
- volumes:
- - name: template
- configMap:
- name: instagram-bridge-config
- - name: temp-dir
- emptyDir: {}
- - name: config
- persistentVolumeClaim:
- claimName: instagram-bridge-data
- - name: bridges
- persistentVolumeClaim:
- claimName: registration-instagram-matrix
diff --git a/apps/matrix/bridges/instagram/kustomization.yaml b/apps/matrix/bridges/instagram/kustomization.yaml
deleted file mode 100644
index 164994c82..000000000
--- a/apps/matrix/bridges/instagram/kustomization.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- cm.yaml
-- deployment.yaml
-- svc.yaml
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- kubernetes.io/hostname: node-one
- target:
- kind: Deployment
- name: instagram-bridge
diff --git a/apps/matrix/bridges/instagram/svc.yaml b/apps/matrix/bridges/instagram/svc.yaml
deleted file mode 100644
index 5ed911934..000000000
--- a/apps/matrix/bridges/instagram/svc.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
- name: instagram-bridge
- labels:
- app: instagram-bridge
-spec:
- selector:
- app: instagram-bridge
- ports:
- - name: http
- protocol: TCP
- port: 8201
- targetPort: 8201
- publishNotReadyAddresses: True
diff --git a/apps/matrix/bridges/linkedin/README.md b/apps/matrix/bridges/linkedin/README.md
deleted file mode 100644
index 7a4c6c2c2..000000000
--- a/apps/matrix/bridges/linkedin/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Linkedin Matrix Bridge
diff --git a/apps/matrix/bridges/linkedin/cm.yaml b/apps/matrix/bridges/linkedin/cm.yaml
deleted file mode 100644
index 57ef0c71b..000000000
--- a/apps/matrix/bridges/linkedin/cm.yaml
+++ /dev/null
@@ -1,146 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: linkedin-bridge-config
-data:
- linkedin.yaml.tmpl: |
- id: linkedin
- as_token: ${AS_TOKEN}
- hs_token: ${HS_TOKEN}
- namespaces:
- users:
- - exclusive: false
- regex: '@linkedin_.*:matrix\.gruber\.dev\.br'
- - exclusive: false
- regex: '@linkedinbot:matrix\.gruber\.dev\.br'
- aliases: []
- url: http://linkedin-bridge.matrix1.svc.cluster.local:8202
- sender_localpart: M_RbjmixHLPrAlHKuj90r9MP1Wcq-gR7DA4_Jdr_SsNJUeUzTAho7yY51vb8LxE3
- rate_limited: false
- linkedin-config.yaml.tmpl: |
- homeserver:
- address: 'http://matrix-matrix-synapse.matrix1.svc.cluster.local:8008'
- domain: matrix.gruber.dev.br
- verify_ssl: false
- software: standard
- http_retry_count: 4
- status_endpoint: null
- message_send_checkpoint_endpoint: null
- async_media: false
- appservice:
- address: 'http://linkedin-bridge.matrix1.svc.cluster.local:8202'
- hostname: 0.0.0.0
- port: 8202
- max_body_size: 1
- database: >-
- postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db-matrix.matrix1.svc.cluster.local:5432/linkedin?sslmode=require
- database_opts:
- min_size: 1
- max_size: 10
- provisioning:
- enabled: true
- prefix: /_matrix/provision/v1
- shared_secret: '${SHARED_SECRET}'
- segment_key: null
- segment_user_id: null
- id: linkedin
- bot_username: linkedinbot
- bot_displayname: LinkedIn bridge bot
- bot_avatar: 'mxc://nevarro.space/cwsWnmeMpWSMZLUNblJHaIvP'
- ephemeral_events: false
- as_token: '${AS_TOKEN}'
- hs_token: '${HS_TOKEN}'
- metrics:
- enabled: false
- manhole:
- enabled: false
- bridge:
- username_template: 'linkedin_{userid}'
- space_support:
- enable: true
- name: LinkedIn
- displayname_template: '{displayname} (LinkedIn)'
- displayname_preference:
- - name
- - first_name
- set_topic_on_dms: true
- command_prefix: '!li'
- initial_chat_sync: 20
- invite_own_puppet_to_pm: false
- sync_with_custom_puppets: true
- sync_direct_chat_list: false
- double_puppet_server_map:
- matrix.gruber.dev.br: 'http://matrix-matrix-synapse.matrix1.svc.cluster.local:8008'
- double_puppet_allow_discovery: true
- login_shared_secret_map:
- matrix.gruber.dev.br: '${SHARED_SECRET}'
- presence: true
- update_avatar_initial_sync: true
- federate_rooms: true
- private_chat_portal_meta: always
- encryption:
- allow: false
- default: false
- appservice: true
- require: false
- allow_key_sharing: true
- delete_keys:
- delete_outbound_on_ack: false
- dont_store_outbound: false
- ratchet_on_decrypt: false
- delete_fully_used_on_decrypt: false
- delete_prev_on_new_session: false
- delete_on_device_delete: false
- periodically_delete_expired: false
- verification_levels:
- receive: unverified
- send: unverified
- share: cross-signed-tofu
- rotation:
- enable_custom: false
- milliseconds: 604800000
- messages: 100
- disable_device_change_key_rotation: false
- delivery_receipts: true
- allow_invites: true
- backfill:
- invite_own_puppet: true
- initial_limit: 0
- missed_limit: 1000
- disable_notifications: false
- unread_hours_threshold: 0
- periodic_reconnect:
- interval: -1
- mode: refresh
- always: true
- resync_max_disconnected_time: 5
- temporary_disconnect_notices: true
- refresh_on_reconnection_fail: true
- resend_bridge_info: false
- mute_bridging: false
- tag_only_on_create: true
- permissions:
- '*': relaybot
- matrix.gruber.dev.br: user
- '@gruber:matrix.gruber.dev.br': admin
- logging:
- version: 1
- formatters:
- colored:
- (): mautrix.util.logging.color.ColorFormatter
- format: '[%(asctime)s] [%(levelname)s@%(name)s] %(message)s'
- normal:
- format: '[%(asctime)s] [%(levelname)s@%(name)s] %(message)s'
- handlers:
- console:
- class: logging.StreamHandler
- formatter: colored
- loggers:
- mau:
- level: DEBUG
- aiohttp:
- level: INFO
- root:
- level: DEBUG
- handlers:
- - console
diff --git a/apps/matrix/bridges/linkedin/deployment.yaml b/apps/matrix/bridges/linkedin/deployment.yaml
deleted file mode 100644
index 77ee8d6fa..000000000
--- a/apps/matrix/bridges/linkedin/deployment.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: linkedin-bridge
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: linkedin-bridge
- template:
- metadata:
- labels:
- app: linkedin-bridge
- spec:
- initContainers:
- - name: load-config
- image: docker.io/grubertech/envsubst:v1.2.0
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- args:
- - -c
- - |
- envsubst -no-empty -i /template/linkedin-config.yaml.tmpl -o /tmp/linkedin-config.yaml \
- && cp -f /tmp/linkedin-config.yaml /data/config.yaml \
- && envsubst -no-empty -i /template/linkedin.yaml.tmpl -o /tmp/linkedin.yaml \
- && cp -f /tmp/linkedin.yaml /bridges/linkedin.yaml
- env:
- - name: POSTGRES_USER
- valueFrom: { secretKeyRef: { name: synapse.db-matrix.credentials.postgresql.acid.zalan.do, key: username } }
- - name: POSTGRES_PASSWORD
- valueFrom: { secretKeyRef: { name: synapse.db-matrix.credentials.postgresql.acid.zalan.do, key: password } }
- - name: SHARED_SECRET
- valueFrom: { secretKeyRef: { name: synapse-shared, key: SHARED_SECRET } }
- - name: AS_TOKEN
- valueFrom: { secretKeyRef: { name: synapse-shared, key: AS_LINKEDIN_TOKEN } }
- - name: HS_TOKEN
- valueFrom: { secretKeyRef: { name: synapse-shared, key: HS_LINKEDIN_TOKEN } }
- volumeMounts:
- - name: config
- mountPath: /data
- - name: temp-dir
- mountPath: /tmp
- - name: bridges
- mountPath: /bridges
- - name: template
- mountPath: /template/linkedin-config.yaml.tmpl
- subPath: linkedin-config.yaml.tmpl
- readOnly: true
- - name: template
- mountPath: /template/linkedin.yaml.tmpl
- subPath: linkedin.yaml.tmpl
- readOnly: true
- resources:
- limits:
- cpu: 320m
- memory: 512Mi
- requests:
- cpu: 150m
- memory: 512Mi
- containers:
- - name: bridge
- image: ghcr.io/beeper/linkedin:168399d77f81d5c3bcbb22fb40ced814774ec770
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- env:
- - name: MAUTRIX_DIRECT_STARTUP
- value: "true"
- args:
- - -c
- - |
- python3 -m linkedin_matrix \
- -n -c "/data/config.yaml"
- ports:
- - name: http
- containerPort: 8202
- protocol: TCP
- livenessProbe:
- tcpSocket:
- port: 8202
- periodSeconds: 15
- initialDelaySeconds: 30
- readinessProbe:
- tcpSocket:
- port: 8202
- periodSeconds: 5
- initialDelaySeconds: 10
- startupProbe:
- tcpSocket:
- port: 8202
- periodSeconds: 30
- initialDelaySeconds: 60
- volumeMounts:
- - name: config
- mountPath: /data
- resources:
- limits:
- cpu: 320m
- memory: 512Mi
- requests:
- cpu: 200m
- memory: 256Mi
- volumes:
- - name: template
- configMap:
- name: linkedin-bridge-config
- - name: temp-dir
- emptyDir: {}
- - name: config
- persistentVolumeClaim:
- claimName: linkedin-bridge-data
- - name: bridges
- persistentVolumeClaim:
- claimName: registration-linkedin-matrix
diff --git a/apps/matrix/bridges/linkedin/kustomization.yaml b/apps/matrix/bridges/linkedin/kustomization.yaml
deleted file mode 100644
index d007fff25..000000000
--- a/apps/matrix/bridges/linkedin/kustomization.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- cm.yaml
-- deployment.yaml
-- svc.yaml
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: linkedin-bridge
diff --git a/apps/matrix/bridges/linkedin/svc.yaml b/apps/matrix/bridges/linkedin/svc.yaml
deleted file mode 100644
index b51da92e8..000000000
--- a/apps/matrix/bridges/linkedin/svc.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: linkedin-bridge
- labels:
- app: linkedin-bridge
-spec:
- type: ClusterIP
- selector:
- app: linkedin-bridge
- ports:
- - name: http
- port: 8202
- targetPort: 8202
- protocol: TCP
diff --git a/apps/matrix/bridges/signal/README.md b/apps/matrix/bridges/signal/README.md
deleted file mode 100644
index 64cbfbf69..000000000
--- a/apps/matrix/bridges/signal/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Matrix signal Bridge
diff --git a/apps/matrix/bridges/signal/cm.yaml b/apps/matrix/bridges/signal/cm.yaml
deleted file mode 100644
index 0e76b15a9..000000000
--- a/apps/matrix/bridges/signal/cm.yaml
+++ /dev/null
@@ -1,137 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: signal-bridge-config
-data:
- config.yaml.tmpl: |
- homeserver:
- address: http://matrix-matrix-synapse.matrix.svc.cluster.local:8008
- domain: matrix.gruber.dev.br
- verify_ssl: false
- software: standard
- http_retry_count: 4
- status_endpoint: null
- message_send_checkpoint_endpoint: null
- connection_limit: 100
- async_media: false
- appservice:
- address: http://signal-bridge.matrix.svc.cluster.local:80
- tls_cert: false
- tls_key: false
- hostname: 0.0.0.0
- port: 29328
- max_body_size: 1
- database: postgres://${BRIDGE_DB_USERNAME}:${BRIDGE_DB_PASSWORD}@db-bridges.matrix.svc.cluster.local:5432/signal?sslmode=require
- database_opts:
- min_size: 1
- max_size: 10
- id: signal
- bot_username: signalbot
- bot_displayname: Signal bridge bot
- bot_avatar: mxc://maunium.net/wPJgTQbZOtpBFmDNkiNEMDUp
- ephemeral_events: true
- as_token: This value is generated when generating the registration
- hs_token: This value is generated when generating the registration
- metrics:
- enabled: true
- listen_port: 8000
- manhole:
- enabled: false
- signal:
- socket_path: /var/run/signald/signald.sock
- outgoing_attachment_dir: /tmp
- avatar_dir: ~/.config/signald/avatars
- data_dir: ~/.config/signald/data
- delete_unknown_accounts_on_start: false
- remove_file_after_handling: true
- registration_enabled: true
- enable_disappearing_messages_in_groups: false
- bridge:
- username_template: signal_{userid}
- displayname_template: '{displayname} (Signal)'
- contact_list_names: disallow
- displayname_preference:
- - full_name
- - phone
- autocreate_group_portal: true
- autocreate_contact_portal: true
- public_portals: false
- sync_with_custom_puppets: true
- sync_direct_chat_list: true
- double_puppet_allow_discovery: false
- double_puppet_server_map:
- matrix.gruber.dev.br: http://matrix-matrix-synapse.matrix.svc.cluster.local:8008
- login_shared_secret_map:
- matrix.gruber.dev.br: ${SHARED_SECRET}
- federate_rooms: true
- encryption:
- allow: false
- default: false
- appservice: false
- require: false
- allow_key_sharing: false
- verification_levels:
- receive: unverified
- send: unverified
- share: cross-signed-tofu
- rotation:
- enable_custom: false
- milliseconds: 604800000
- messages: 100
- private_chat_portal_meta: false
- delivery_receipts: true
- delivery_error_reports: true
- message_status_events: false
- resend_bridge_info: false
- periodic_sync: 0
- bridge_matrix_leave: true
- provisioning:
- enabled: true
- prefix: /_matrix/provision
- shared_secret: ${SHARED_SECRET}
- segment_key: null
- command_prefix: '!signal'
- management_room_text:
- welcome: Hello, I'm a Signal bridge bot.
- welcome_connected: Use `help` for help.
- welcome_unconnected: Use `help` for help or `link` to log in.
- additional_help: ''
- management_room_multiple_messages: false
- permissions:
- '*': relay
- matrix.gruber.dev.br: user
- '@gruber:matrix.gruber.dev.br': admin
- relay:
- enabled: false
- message_formats:
- m.text: '$sender_displayname: $message'
- m.notice: '$sender_displayname: $message'
- m.emote: '* $sender_displayname $message'
- m.file: $sender_displayname sent a file
- m.image: $sender_displayname sent an image
- m.audio: $sender_displayname sent an audio file
- m.video: $sender_displayname sent a video
- m.location: $sender_displayname sent a location
- relaybot: '@relaybot:example.com'
- location_format: https://www.google.com/maps/place/{lat},{long}
- logging:
- version: 1
- formatters:
- colored:
- (): mautrix_signal.util.ColorFormatter
- format: '[%(asctime)s] [%(levelname)s@%(name)s] %(message)s'
- normal:
- format: '[%(asctime)s] [%(levelname)s@%(name)s] %(message)s'
- handlers:
- console:
- class: logging.StreamHandler
- formatter: colored
- loggers:
- mau:
- level: DEBUG
- aiohttp:
- level: INFO
- root:
- level: DEBUG
- handlers:
- - console
diff --git a/apps/matrix/bridges/signal/deployment.yaml b/apps/matrix/bridges/signal/deployment.yaml
deleted file mode 100644
index 766de6d1a..000000000
--- a/apps/matrix/bridges/signal/deployment.yaml
+++ /dev/null
@@ -1,152 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: signal-bridge
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: signal-bridge
- template:
- metadata:
- labels:
- app: signal-bridge
- spec:
- securityContext:
- runAsUser: 1000
- runAsGroup: 1000
- fsGroup: 1000
- initContainers:
- - name: load-config
- image: docker.io/grubertech/envsubst:v1.2.0
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- args:
- - -c
- - |
- envsubst -no-empty -i /template/config.yaml.tmpl -o /load/config.yaml \
- && cp -f /load/config.yaml /data/config.yaml
- env:
- - name: BRIDGE_DB_USERNAME
- valueFrom: { secretKeyRef: { name: matrix.db-bridges.credentials.postgresql.acid.zalan.do, key: username } }
- - name: BRIDGE_DB_PASSWORD
- valueFrom: { secretKeyRef: { name: matrix.db-bridges.credentials.postgresql.acid.zalan.do, key: password } }
- - name: SHARED_SECRET
- valueFrom: { secretKeyRef: { name: synapse-shared, key: SHARED_SECRET } }
- volumeMounts:
- - name: config
- mountPath: /data
- - name: temp-dir
- mountPath: /load
- - name: template
- mountPath: /template
- readOnly: true
- resources:
- limits:
- cpu: 400m
- memory: 512Mi
- requests:
- cpu: 300m
- memory: 512Mi
- securityContext:
- capabilities:
- drop:
- - ALL
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- - name: generate-config
- image: dock.mau.dev/mautrix/signal:v0.4.1
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- env:
- - name: MAUTRIX_DIRECT_STARTUP
- value: "true"
- args:
- - -c
- - |
- python3 -m mautrix_signal \
- -g -c "/data/config.yaml" \
- -r "/bridges/signal.yaml"
- volumeMounts:
- - name: config
- mountPath: /data
- - name: bridges
- mountPath: /bridges
- resources:
- limits:
- cpu: 400m
- memory: 512Mi
- requests:
- cpu: 300m
- memory: 512Mi
- securityContext:
- capabilities:
- drop:
- - ALL
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- containers:
- - name: bridge
- image: dock.mau.dev/mautrix/signal:v0.4.1
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- env:
- - name: MAUTRIX_DIRECT_STARTUP
- value: "true"
- args:
- - -c
- - |
- python3 -m mautrix_signal \
- -n -c "/data/config.yaml"
- ports:
- - name: bridge
- containerPort: 29328
- protocol: TCP
- livenessProbe:
- tcpSocket:
- port: 29328
- periodSeconds: 15
- initialDelaySeconds: 30
- readinessProbe:
- tcpSocket:
- port: 29328
- periodSeconds: 5
- initialDelaySeconds: 10
- startupProbe:
- tcpSocket:
- port: 29328
- periodSeconds: 30
- initialDelaySeconds: 120
- volumeMounts:
- - name: config
- mountPath: /data
- resources:
- limits:
- cpu: 320m
- memory: 512Mi
- requests:
- cpu: 150m
- memory: 256Mi
- securityContext:
- capabilities:
- drop:
- - ALL
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- volumes:
- - name: template
- configMap:
- name: signal-bridge-config
- items:
- - key: config.yaml.tmpl
- path: config.yaml.tmpl
- - name: temp-dir
- emptyDir: {}
- - name: config
- persistentVolumeClaim:
- claimName: signal-bridge-data
- - name: bridges
- persistentVolumeClaim:
- claimName: bridge-config-storage
diff --git a/apps/matrix/bridges/signal/kustomization.yaml b/apps/matrix/bridges/signal/kustomization.yaml
deleted file mode 100644
index c0c202fc7..000000000
--- a/apps/matrix/bridges/signal/kustomization.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- cm.yaml
-- deployment.yaml
-- svc.yaml
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: signal-bridge
diff --git a/apps/matrix/bridges/signal/svc.yaml b/apps/matrix/bridges/signal/svc.yaml
deleted file mode 100644
index f011ce46c..000000000
--- a/apps/matrix/bridges/signal/svc.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: signal-bridge
- labels:
- app: signal-bridge
-spec:
- type: ClusterIP
- selector:
- app: signal-bridge
- ports:
- - name: bridge
- port: 80
- targetPort: 29328
- protocol: TCP
diff --git a/apps/matrix/bridges/steam/README.md b/apps/matrix/bridges/steam/README.md
deleted file mode 100644
index ed74d4384..000000000
--- a/apps/matrix/bridges/steam/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: steam-bridge
- labels:
- app: steam-bridge
-spec:
- type: ClusterIP
- selector:
- app: steam-bridge
- ports:
- - name: bridge
- port: 80
- targetPort: 6000
- protocol: TCP
diff --git a/apps/matrix/bridges/steam/cm.yaml b/apps/matrix/bridges/steam/cm.yaml
deleted file mode 100644
index 49eaa7a88..000000000
--- a/apps/matrix/bridges/steam/cm.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: steam-bridge-config
-data:
- config.yaml.tmpl: |
- bridge:
- port: 6000
- bindAddress: 0.0.0.0
- domain: matrix.gruber.dev.br
- homeserverUrl: http://matrix-matrix-synapse.matrix.svc.cluster.local:8008
- provisioning:
- whitelist:
- - "@*:matrix.gruber.dev.br"
- sharedSecret: ${SHARED_SECRET}
- apiPrefix: /_matrix/provision
- presence:
- enabled: true
- interval: 5000
diff --git a/apps/matrix/bridges/steam/deployment.yaml b/apps/matrix/bridges/steam/deployment.yaml
deleted file mode 100644
index f2d9bb2f5..000000000
--- a/apps/matrix/bridges/steam/deployment.yaml
+++ /dev/null
@@ -1,143 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: steam-bridge
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: steam-bridge
- template:
- metadata:
- labels:
- app: steam-bridge
- spec:
- securityContext:
- runAsUser: 1000
- runAsGroup: 1000
- fsGroup: 1000
- initContainers:
- - name: load-config
- image: docker.io/grubertech/envsubst:v1.2.0
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- args:
- - -c
- - |
- envsubst -no-empty -i /template/config.yaml.tmpl -o /load/config.yaml \
- && cp -f /load/config.yaml /data/config.yaml
- env:
- - name: SHARED_SECRET
- valueFrom: { secretKeyRef: { name: synapse-shared, key: SHARED_SECRET } }
- volumeMounts:
- - name: config
- mountPath: /data
- - name: temp-dir
- mountPath: /load
- - name: template
- mountPath: /template
- readOnly: true
- resources:
- limits:
- cpu: 400m
- memory: 512Mi
- requests:
- cpu: 300m
- memory: 512Mi
- securityContext:
- capabilities:
- drop:
- - ALL
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- - name: generate-config
- image: grubertech/steam-bridge:latest
- imagePullPolicy: Always
- env:
- - name: CONFIG_PATH
- value: "/data/config.yaml"
- - name: REGISTRATION_PATH
- value: "/bridges/steam.yaml"
- - name: REG_GENERATE
- value: "true"
- volumeMounts:
- - name: config
- mountPath: /data
- - name: bridges
- mountPath: /bridges
- resources:
- limits:
- cpu: 300m
- memory: 512Mi
- requests:
- cpu: 150m
- memory: 512Mi
- securityContext:
- capabilities:
- drop:
- - ALL
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- containers:
- - name: bridge
- image: grubertech/steam-bridge:latest
- imagePullPolicy: Always
- env:
- - name: CONFIG_PATH
- value: "/data/config.yaml"
- - name: REGISTRATION_PATH
- value: "/bridges/steam.yaml"
- ports:
- - name: bridge
- containerPort: 6000
- protocol: TCP
- livenessProbe:
- tcpSocket:
- port: 6000
- periodSeconds: 15
- initialDelaySeconds: 30
- readinessProbe:
- tcpSocket:
- port: 6000
- periodSeconds: 5
- initialDelaySeconds: 10
- startupProbe:
- tcpSocket:
- port: 6000
- periodSeconds: 30
- initialDelaySeconds: 120
- volumeMounts:
- - name: config
- mountPath: /data
- - name: bridges
- mountPath: /bridges
- resources:
- limits:
- cpu: 400m
- memory: 512Mi
- requests:
- cpu: 300m
- memory: 256Mi
- securityContext:
- capabilities:
- drop:
- - ALL
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- volumes:
- - name: template
- configMap:
- name: steam-bridge-config
- items:
- - key: config.yaml.tmpl
- path: config.yaml.tmpl
- - name: temp-dir
- emptyDir: {}
- - name: config
- persistentVolumeClaim:
- claimName: steam-bridge-data
- - name: bridges
- persistentVolumeClaim:
- claimName: bridge-config-storage
diff --git a/apps/matrix/bridges/steam/kustomization.yaml b/apps/matrix/bridges/steam/kustomization.yaml
deleted file mode 100644
index 32f089ad7..000000000
--- a/apps/matrix/bridges/steam/kustomization.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- cm.yaml
-- deployment.yaml
-- svc.yaml
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: steam-bridge
diff --git a/apps/matrix/bridges/steam/svc.yaml b/apps/matrix/bridges/steam/svc.yaml
deleted file mode 100644
index ed74d4384..000000000
--- a/apps/matrix/bridges/steam/svc.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: steam-bridge
- labels:
- app: steam-bridge
-spec:
- type: ClusterIP
- selector:
- app: steam-bridge
- ports:
- - name: bridge
- port: 80
- targetPort: 6000
- protocol: TCP
diff --git a/apps/matrix/bridges/telegram/README.md b/apps/matrix/bridges/telegram/README.md
deleted file mode 100644
index fd91ec7b4..000000000
--- a/apps/matrix/bridges/telegram/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Matrix Telegram Bridge
diff --git a/apps/matrix/bridges/telegram/cm.yaml b/apps/matrix/bridges/telegram/cm.yaml
deleted file mode 100644
index 53a356e0d..000000000
--- a/apps/matrix/bridges/telegram/cm.yaml
+++ /dev/null
@@ -1,257 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: telegram-bridge-config
-data:
- config.yaml.tmpl: |
- homeserver:
- address: http://matrix-matrix-synapse.matrix.svc.cluster.local:8008
- domain: matrix.gruber.dev.br
- verify_ssl: false
- software: standard
- http_retry_count: 4
- status_endpoint: null
- message_send_checkpoint_endpoint: null
- async_media: false
- appservice:
- address: http://telegram-bridge.matrix.svc.cluster.local:80
- tls_cert: false
- tls_key: false
- hostname: 0.0.0.0
- port: 29317
- max_body_size: 1
- database: postgres://${POSTGRES_USER}:${BRIDGE_DB_PASSWORD}@db-bridges.matrix.svc.cluster.local:5432/telegram?sslmode=require
- database_opts:
- min_size: 1
- max_size: 10
- public:
- enabled: false
- prefix: /public
- external: https://example.com/public
- provisioning:
- enabled: true
- prefix: /_matrix/provision
- shared_secret: ${SHARED_SECRET}
- id: telegram
- bot_username: telegrambot
- bot_displayname: Telegram bridge bot
- bot_avatar: mxc://maunium.net/tJCRmUyJDsgRNgqhOgoiHWbX
- ephemeral_events: true
- as_token: This value is generated when generating the registration
- hs_token: This value is generated when generating the registration
- metrics:
- enabled: false
- listen_port: 8000
- manhole:
- enabled: false
- # The path for the unix socket.
- path: /var/tmp/mautrix-telegram.manhole
- # The list of UIDs who can be added to the whitelist.
- whitelist:
- - 0
- bridge:
- username_template: telegram_{userid}
- alias_template: telegram_{groupname}
- displayname_preference:
- - full name
- - username
- - phone number
- displayname_max_length: 100
- allow_avatar_remove: false
- max_initial_member_sync: 100
- max_member_count: -1
- sync_channel_members: false
- skip_deleted_members: true
- startup_sync: false
- sync_update_limit: 0
- sync_create_limit: 15
- sync_deferred_create_all: false
- sync_direct_chats: false
- max_telegram_delete: 10
- sync_matrix_state: true
- allow_matrix_login: true
- public_portals: false
- sync_with_custom_puppets: false
- sync_direct_chat_list: false
- double_puppet_server_map:
- matrix.gruber.dev.br: http://matrix-matrix-synapse.matrix.svc.cluster.local:8008
- double_puppet_allow_discovery: false
- login_shared_secret_map:
- matrix.gruber.dev.br: ${SHARED_SECRET}
- telegram_link_preview: true
- invite_link_resolve: false
- caption_in_message: false
- image_as_file_size: 10
- image_as_file_pixels: 16777216
- parallel_file_transfer: false
- federate_rooms: true
- always_custom_emoji_reaction: false
- animated_sticker:
- target: gif
- convert_from_webm: false
- args:
- width: 256
- height: 256
- fps: 25
- animated_emoji:
- target: webp
- args:
- width: 64
- height: 64
- fps: 25
- encryption:
- allow: false
- default: false
- appservice: false
- require: false
- allow_key_sharing: false
- verification_levels:
- receive: unverified
- send: unverified
- share: cross-signed-tofu
- rotation:
- enable_custom: false
- milliseconds: 604800000
- messages: 100
- private_chat_portal_meta: false
- delivery_receipts: false
- delivery_error_reports: false
- message_status_events: false
- resend_bridge_info: false
- mute_bridging: false
- pinned_tag: null
- archive_tag: null
- tag_only_on_create: true
- bridge_matrix_leave: true
- kick_on_logout: true
- always_read_joined_telegram_notice: true
- create_group_on_invite: true
- backfill:
- enable: true
- msc2716: false
- double_puppet_backfill: false
- normal_groups: false
- unread_hours_threshold: 720
- forward:
- initial_limit: 10
- sync_limit: 100
- incremental:
- messages_per_batch: 100
- post_batch_delay: 20
- max_batches:
- user: -1
- normal_group: -1
- supergroup: 10
- channel: -1
- initial_power_level_overrides:
- user: {}
- group: {}
- # Whether to bridge Telegram bot messages as m.notices or m.texts.
- bot_messages_as_notices: true
- bridge_notices:
- default: false
- exceptions: []
- relay_user_distinguishers:
- - 🟦
- - 🟣
- - 🟩
- - ⭕️
- - 🔶
- - ⬛️
- - �
- - 🟢
- message_formats:
- m.text: '$distinguisher $sender_displayname: $message'
- m.notice: '$distinguisher $sender_displayname: $message'
- m.emote: '* $distinguisher $sender_displayname $message'
- m.file: '$distinguisher $sender_displayname sent a file: $message'
- m.image: '$distinguisher $sender_displayname sent an image: $message'
- m.audio: '$distinguisher $sender_displayname sent an audio file: $message'
- m.video: '$distinguisher $sender_displayname sent a video: $message'
- m.location: '$distinguisher $sender_displayname sent a location: $message'
- emote_format: '* $mention $formatted_body'
- state_event_formats:
- join: $distinguisher $displayname joined the room.
- leave: $distinguisher $displayname left the room.
- name_change: $distinguisher $prev_displayname changed their name to $distinguisher $displayname
- filter:
- mode: blacklist
- list: []
- command_prefix: '!tg'
- management_room_text:
- welcome: Hello, I'm a Telegram bridge bot.
- welcome_connected: Use `help` for help.
- welcome_unconnected: Use `help` for help or `login` to log in.
- additional_help: ''
- management_room_multiple_messages: false
- permissions:
- '*': relaybot
- matrix.gruber.dev.br: user
- '@gruber:matrix.gruber.dev.br': admin
- relaybot:
- private_chat:
- invite: []
- state_changes: true
- message: This is a Matrix bridge relaybot and does not support direct chats
- group_chat_invite: []
- ignore_unbridged_group_chat: true
- authless_portals: true
- whitelist_group_admins: true
- ignore_own_incoming_events: true
- whitelist:
- - myusername
- - 12345678
- telegram:
- api_id: ${APP_ID}
- api_hash: ${APP_API_HASH}
- bot_token: disabled
- catch_up: true
- sequential_updates: true
- exit_on_update_error: false
- connection:
- timeout: 120
- retries: 5
- retry_delay: 1
- flood_sleep_threshold: 60
- request_retries: 5
- device_info:
- device_model: mautrix-telegram
- system_version: auto
- app_version: auto
- lang_code: en
- system_lang_code: en
- server:
- enabled: false
- dc: 2
- ip: 149.154.167.40
- port: 80
- proxy:
- type: disabled
- address: 127.0.0.1
- port: 1080
- rdns: true
- username: ''
- password: ''
- logging:
- version: 1
- formatters:
- colored:
- (): mautrix_telegram.util.ColorFormatter
- format: '[%(asctime)s] [%(levelname)s@%(name)s] %(message)s'
- normal:
- format: '[%(asctime)s] [%(levelname)s@%(name)s] %(message)s'
- handlers:
- console:
- class: logging.StreamHandler
- formatter: colored
- loggers:
- mau:
- level: DEBUG
- telethon:
- level: INFO
- aiohttp:
- level: INFO
- root:
- level: DEBUG
- handlers:
- - console
diff --git a/apps/matrix/bridges/telegram/deployment.yaml b/apps/matrix/bridges/telegram/deployment.yaml
deleted file mode 100644
index cbe774355..000000000
--- a/apps/matrix/bridges/telegram/deployment.yaml
+++ /dev/null
@@ -1,156 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: telegram-bridge
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: telegram-bridge
- template:
- metadata:
- labels:
- app: telegram-bridge
- spec:
- securityContext:
- runAsUser: 1000
- runAsGroup: 1000
- fsGroup: 1000
- initContainers:
- - name: load-config
- image: docker.io/grubertech/envsubst:v1.2.0
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- args:
- - -c
- - |
- envsubst -no-empty -i /template/config.yaml.tmpl -o /load/config.yaml \
- && cp -f /load/config.yaml /data/config.yaml
- env:
- - name: BRIDGE_DB_USERNAME
- valueFrom: { secretKeyRef: { name: matrix.db-bridges.credentials.postgresql.acid.zalan.do, key: username } }
- - name: BRIDGE_DB_PASSWORD
- valueFrom: { secretKeyRef: { name: matrix.db-bridges.credentials.postgresql.acid.zalan.do, key: password } }
- - name: SHARED_SECRET
- valueFrom: { secretKeyRef: { name: synapse-shared, key: SHARED_SECRET } }
- - name: APP_ID
- valueFrom: { secretKeyRef: { name: synapse-shared, key: TELEGRAM_API_ID } }
- - name: APP_API_HASH
- valueFrom: { secretKeyRef: { name: synapse-shared, key: TELEGRAM_API_HASH } }
- volumeMounts:
- - name: config
- mountPath: /data
- - name: temp-dir
- mountPath: /load
- - name: template
- mountPath: /template
- readOnly: true
- resources:
- limits:
- cpu: 400m
- memory: 512Mi
- requests:
- cpu: 300m
- memory: 512Mi
- securityContext:
- capabilities:
- drop:
- - ALL
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- - name: generate-config
- image: dock.mau.dev/mautrix/telegram:v0.12.1
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- env:
- - name: MAUTRIX_DIRECT_STARTUP
- value: "true"
- args:
- - -c
- - |
- python3 -m mautrix_telegram \
- -g -c "/data/config.yaml" \
- -r "/bridges/telegram.yaml"
- volumeMounts:
- - name: config
- mountPath: /data
- - name: bridges
- mountPath: /bridges
- resources:
- limits:
- cpu: 300m
- memory: 512Mi
- requests:
- cpu: 100m
- memory: 512Mi
- securityContext:
- capabilities:
- drop:
- - ALL
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- containers:
- - name: bridge
- image: dock.mau.dev/mautrix/telegram:v0.12.1
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- env:
- - name: MAUTRIX_DIRECT_STARTUP
- value: "true"
- args:
- - -c
- - |
- python3 -m mautrix_telegram \
- -n -c "/data/config.yaml"
- ports:
- - name: bridge
- containerPort: 29317
- protocol: TCP
- livenessProbe:
- tcpSocket:
- port: 29317
- periodSeconds: 15
- initialDelaySeconds: 30
- readinessProbe:
- tcpSocket:
- port: 29317
- periodSeconds: 5
- initialDelaySeconds: 10
- startupProbe:
- tcpSocket:
- port: 29317
- periodSeconds: 30
- initialDelaySeconds: 120
- volumeMounts:
- - name: config
- mountPath: /data
- resources:
- limits:
- cpu: 300m
- memory: 512Mi
- requests:
- cpu: 100m
- memory: 256Mi
- securityContext:
- capabilities:
- drop:
- - ALL
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- volumes:
- - name: template
- configMap:
- name: telegram-bridge-config
- items:
- - key: config.yaml.tmpl
- path: config.yaml.tmpl
- - name: temp-dir
- emptyDir: {}
- - name: config
- persistentVolumeClaim:
- claimName: telegram-bridge-data
- - name: bridges
- persistentVolumeClaim:
- claimName: bridge-config-storage
diff --git a/apps/matrix/bridges/telegram/kustomization.yaml b/apps/matrix/bridges/telegram/kustomization.yaml
deleted file mode 100644
index 634dbf00a..000000000
--- a/apps/matrix/bridges/telegram/kustomization.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- cm.yaml
-- deployment.yaml
-- svc.yaml
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: telegram-bridge
diff --git a/apps/matrix/bridges/telegram/svc.yaml b/apps/matrix/bridges/telegram/svc.yaml
deleted file mode 100644
index 80ff4b2d8..000000000
--- a/apps/matrix/bridges/telegram/svc.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: telegram-bridge
- labels:
- app: telegram-bridge
-spec:
- type: ClusterIP
- selector:
- app: telegram-bridge
- ports:
- - name: bridge
- port: 80
- targetPort: 29317
- protocol: TCP
diff --git a/apps/matrix/bridges/whatsapp/cm.yaml b/apps/matrix/bridges/whatsapp/cm.yaml
deleted file mode 100644
index 27a014764..000000000
--- a/apps/matrix/bridges/whatsapp/cm.yaml
+++ /dev/null
@@ -1,194 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: whats-bridge-config
-data:
- whats.yaml.tmpl: |
- id: whatsapp
- url: 'http://whats-bridge.matrix1.svc.cluster.local:8200'
- as_token: ${AS_TOKEN}
- hs_token: ${HS_TOKEN}
- sender_localpart: JIwoVfi2DvXlo3T5TBTctbpfI8KpqWAp
- rate_limited: false
- namespaces:
- users:
- - regex: '^@whatsappbot:matrix\.gruber\.dev\.br$'
- exclusive: false
- - regex: '^@whatsapp_.*:matrix\.gruber\.dev\.br$'
- exclusive: false
- de.sorunome.msc2409.push_ephemeral: true
- push_ephemeral: true
- whats-config.yaml.tmpl: |
- homeserver:
- address: 'http://matrix-matrix-synapse.matrix1.svc.cluster.local:8008'
- domain: matrix.gruber.dev.br
- software: standard
- status_endpoint: null
- message_send_checkpoint_endpoint: null
- async_media: false
- websocket: false
- ping_interval_seconds: 0
- appservice:
- address: 'http://whats-bridge.matrix1.svc.cluster.local:8200'
- hostname: 0.0.0.0
- port: 8200
- database:
- type: postgres
- uri: >-
- postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db-matrix.matrix1.svc.cluster.local:5432/whats?sslmode=require
- max_open_conns: 20
- max_idle_conns: 2
- max_conn_idle_time: null
- max_conn_lifetime: null
- id: whatsapp
- bot:
- username: whatsappbot
- displayname: WhatsApp bridge bot
- avatar: 'mxc://maunium.net/NeXNQarUbrlYBiPCpprYsRqr'
- ephemeral_events: true
- async_transactions: false
- as_token: ${AS_TOKEN}
- hs_token: ${HS_TOKEN}
- segment_key: null
- segment_user_id: null
- metrics:
- enabled: true
- listen: '127.0.0.1:8001'
- whatsapp:
- os_name: Mautrix-WhatsApp bridge
- browser_name: unknown
- bridge:
- username_template: 'whatsapp_{{.}}'
- displayname_template: '{{or .BusinessName .PushName .JID}} (WA)'
- personal_filtering_spaces: true
- delivery_receipts: true
- message_status_events: false
- message_error_notices: true
- call_start_notices: true
- identity_change_notices: true
- portal_message_buffer: 128
- history_sync:
- backfill: true
- max_initial_conversations: -1
- message_count: 50
- request_full_sync: false
- full_sync_config:
- days_limit: null
- size_mb_limit: null
- storage_quota_mb: null
- unread_hours_threshold: 0
- media_requests:
- auto_request_media: true
- request_method: immediate
- request_local_time: 120
- immediate:
- worker_count: 1
- max_events: 10
- deferred:
- - start_days_ago: 7
- max_batch_events: 20
- batch_delay: 5
- - start_days_ago: 30
- max_batch_events: 50
- batch_delay: 10
- - start_days_ago: 90
- max_batch_events: 100
- batch_delay: 10
- - start_days_ago: -1
- max_batch_events: 500
- batch_delay: 10
- user_avatar_sync: true
- bridge_matrix_leave: true
- sync_with_custom_puppets: true
- sync_direct_chat_list: true
- sync_manual_marked_unread: true
- default_bridge_receipts: true
- default_bridge_presence: true
- send_presence_on_typing: true
- force_active_delivery_receipts: false
- double_puppet_server_map:
- matrix.gruber.dev.br: 'http://matrix-matrix-synapse.matrix1.svc.cluster.local:8008'
- double_puppet_allow_discovery: true
- login_shared_secret_map:
- matrix.gruber.dev.br: '${SHARED_SECRET}'
- private_chat_portal_meta: always
- parallel_member_sync: false
- bridge_notices: true
- resend_bridge_info: true
- mute_bridging: false
- archive_tag: null
- pinned_tag: null
- tag_only_on_create: true
- enable_status_broadcast: true
- disable_status_broadcast_send: true
- mute_status_broadcast: true
- status_broadcast_tag: m.lowpriority
- whatsapp_thumbnail: false
- allow_user_invite: true
- federate_rooms: true
- disable_bridge_alerts: false
- crash_on_stream_replaced: false
- url_previews: true
- caption_in_message: false
- extev_polls: false
- cross_room_replies: false
- disable_reply_fallbacks: false
- message_handling_timeout:
- error_after: null
- deadline: 120s
- command_prefix: '!wa'
- management_room_text:
- welcome: 'Hello, I''m a WhatsApp bridge bot.'
- welcome_connected: Use `help` for help.
- welcome_unconnected: Use `help` for help or `login` to log in.
- additional_help: ''
- encryption:
- allow: false
- default: false
- appservice: true
- require: false
- allow_key_sharing: true
- plaintext_mentions: false
- delete_keys:
- delete_outbound_on_ack: false
- dont_store_outbound: false
- ratchet_on_decrypt: false
- delete_fully_used_on_decrypt: false
- delete_prev_on_new_session: false
- delete_on_device_delete: false
- periodically_delete_expired: false
- delete_outdated_inbound: false
- verification_levels:
- receive: unverified
- send: unverified
- share: cross-signed-tofu
- rotation:
- enable_custom: false
- milliseconds: 604800000
- messages: 100
- disable_device_change_key_rotation: false
- provisioning:
- prefix: /_matrix/provision
- shared_secret: '${SHARED_SECRET}'
- permissions:
- '*': relaybot
- matrix.gruber.dev.br: user
- '@gruber:matrix.gruber.dev.br': admin
- relay:
- enabled: true
- admin_only: true
- message_formats:
- m.text: '{{ .Sender.Displayname }}: {{ .Message }}'
- m.notice: '{{ .Sender.Displayname }}: {{ .Message }}'
- m.emote: '* {{ .Sender.Displayname }} {{ .Message }}'
- m.file: '{{ .Sender.Displayname }} sent a file'
- m.image: '{{ .Sender.Displayname }} sent an image'
- m.audio: '{{ .Sender.Displayname }} sent an audio file'
- m.video: '{{ .Sender.Displayname }} sent a video'
- m.location: '{{ .Sender.Displayname }} sent a location'
- logging:
- min_level: debug
- writers:
- - type: stdout
- format: pretty-colored
- version: 2
diff --git a/apps/matrix/bridges/whatsapp/deployment.yaml b/apps/matrix/bridges/whatsapp/deployment.yaml
deleted file mode 100644
index 9b2d4fce2..000000000
--- a/apps/matrix/bridges/whatsapp/deployment.yaml
+++ /dev/null
@@ -1,119 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: whats-bridge
- labels:
- app: whats-bridge
-spec:
- selector:
- matchLabels:
- app: whats-bridge
- replicas: 1
- strategy:
- type: Recreate
- template:
- metadata:
- labels:
- app: whats-bridge
- spec:
- initContainers:
- - name: load-config
- image: docker.io/grubertech/envsubst:v1.2.0
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- args:
- - -c
- - |
- echo "Substituting variables in /template/whats-config.yaml.tmpl to /tmp/whats-config.yaml" \
- && envsubst -no-empty -i /template/whats-config.yaml.tmpl -o /tmp/whats-config.yaml \
- && echo "Removing /data/config.yaml" \
- && rm -vrf /data/config.yaml || true \
- && echo "Copying /tmp/whats-config.yaml to /data/config.yaml" \
- && cp -fv /tmp/whats-config.yaml /data/config.yaml \
- && echo "Substituting variables in /template/whats.yaml.tmpl to /tmp/whats.yaml" \
- && envsubst -no-empty -i /template/whats.yaml.tmpl -o /tmp/whats.yaml \
- && echo "Removing /bridges/whatsapp.yaml" \
- && rm -vrf /bridges/whatsapp.yaml || true \
- && echo "Copying /tmp/whats.yaml to /bridges/whatsapp.yaml" \
- && echo "Files in /bridges before copying:" \
- && ls -l /bridges \
- && cp -fv /tmp/whats.yaml /bridges/whatsapp.yaml
- env:
- - name: POSTGRES_USER
- valueFrom: { secretKeyRef: { name: synapse.db-matrix.credentials.postgresql.acid.zalan.do, key: username } }
- - name: POSTGRES_PASSWORD
- valueFrom: { secretKeyRef: { name: synapse.db-matrix.credentials.postgresql.acid.zalan.do, key: password } }
- - name: SHARED_SECRET
- valueFrom: { secretKeyRef: { name: synapse-shared, key: SHARED_SECRET } }
- - name: AS_TOKEN
- valueFrom: { secretKeyRef: { name: synapse-shared, key: AS_WHATS_TOKEN } }
- - name: HS_TOKEN
- valueFrom: { secretKeyRef: { name: synapse-shared, key: HS_WHATS_TOKEN } }
- volumeMounts:
- - name: config
- mountPath: /data
- - name: temp-dir
- mountPath: /tmp
- - name: bridges
- mountPath: /bridges
- - name: template
- mountPath: /template/whats-config.yaml.tmpl
- subPath: whats-config.yaml.tmpl
- readOnly: true
- - name: template
- mountPath: /template/whats.yaml.tmpl
- subPath: whats.yaml.tmpl
- readOnly: true
- resources:
- limits:
- cpu: 400m
- memory: 512Mi
- requests:
- cpu: 300m
- memory: 256Mi
- containers:
- - name: whats
- image: docker.io/grubertech/whatsapp:v0.9.0
- imagePullPolicy: IfNotPresent
- command: ["mautrix-whatsapp"]
- args: ["-n", "-c", "/data/config.yaml", "--ignore-unsupported-database", " --ignore-foreign-tables"]
- securityContext:
- privileged: true
- ports:
- - name: bridge
- containerPort: 8200
- protocol: TCP
- volumeMounts:
- - name: config
- mountPath: /data
- resources:
- limits:
- cpu: 400m
- memory: 722Mi
- requests:
- cpu: 300m
- memory: 256Mi
- livenessProbe:
- httpGet:
- path: /_matrix/mau/live
- port: 8200
- initialDelaySeconds: 60
- periodSeconds: 15
- startupProbe:
- httpGet:
- path: /_matrix/mau/live
- port: 8200
- initialDelaySeconds: 300
- periodSeconds: 15
- volumes:
- - name: template
- configMap:
- name: whats-bridge-config
- - name: temp-dir
- emptyDir: {}
- - name: config
- persistentVolumeClaim:
- claimName: whats-bridge-data
- - name: bridges
- persistentVolumeClaim:
- claimName: bridge-config-storage
diff --git a/apps/matrix/bridges/whatsapp/kustomization.yaml b/apps/matrix/bridges/whatsapp/kustomization.yaml
deleted file mode 100644
index 89a9bb5e3..000000000
--- a/apps/matrix/bridges/whatsapp/kustomization.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- cm.yaml
-- deployment.yaml
-- svc.yaml
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- kubernetes.io/hostname: node-one
- target:
- kind: Deployment
- name: whats-bridge
diff --git a/apps/matrix/bridges/whatsapp/svc.yaml b/apps/matrix/bridges/whatsapp/svc.yaml
deleted file mode 100644
index 034fe3881..000000000
--- a/apps/matrix/bridges/whatsapp/svc.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
- name: whats-bridge
- labels:
- app: whats-bridge
-spec:
- selector:
- app: whats-bridge
- ports:
- - name: bridge
- protocol: TCP
- port: 8200
- targetPort: 8200
- publishNotReadyAddresses: True
diff --git a/apps/matrix/databases/README.md b/apps/matrix/databases/README.md
deleted file mode 100644
index f523d4883..000000000
--- a/apps/matrix/databases/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## PostgreSQL/MySQL Databases for Matrix Synapse & bridges
diff --git a/apps/matrix/databases/base/certificate.yaml b/apps/matrix/databases/base/certificate.yaml
deleted file mode 100644
index 8361942ac..000000000
--- a/apps/matrix/databases/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: matrix-cloudflare
-spec:
- secretName: matrix-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: matrix.gruber.dev.br
- dnsNames:
- - matrix.gruber.dev.br
diff --git a/apps/matrix/databases/base/cm.yaml b/apps/matrix/databases/base/cm.yaml
deleted file mode 100644
index f1556f868..000000000
--- a/apps/matrix/databases/base/cm.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: matrix-redis-config
-data:
- redis-additional.conf: |
- appendonly yes
diff --git a/apps/matrix/databases/base/ingress.yaml b/apps/matrix/databases/base/ingress.yaml
deleted file mode 100644
index a002fb547..000000000
--- a/apps/matrix/databases/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: matrix
- annotations:
- external-dns.alpha.kubernetes.io/hostname: matrix.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
-spec:
- ingressClassName: nginx
- rules:
- - host: matrix.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: synapse-tailscale
- port:
- name: http
- tls:
- - hosts:
- - matrix.gruber.dev.br
- secretName: matrix-tls
diff --git a/apps/matrix/databases/base/kustomization.yaml b/apps/matrix/databases/base/kustomization.yaml
deleted file mode 100644
index cf8812edc..000000000
--- a/apps/matrix/databases/base/kustomization.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- cm.yaml
-- matrix.yaml
-- redis.yaml
-- secret.yaml
-- ingress.yaml
-- certificate.yaml
-- svc.yaml
diff --git a/apps/matrix/databases/base/matrix.yaml b/apps/matrix/databases/base/matrix.yaml
deleted file mode 100644
index 87c9ec625..000000000
--- a/apps/matrix/databases/base/matrix.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-apiVersion: "acid.zalan.do/v1"
-kind: postgresql
-metadata:
- name: db-matrix
- annotations:
- argocd.argoproj.io/sync-options: Delete=false
-spec:
- dockerImage: ghcr.io/zalando/spilo-15:3.0-p1
- teamId: "db"
- numberOfInstances: 1
- users:
- admin:
- - superuser
- - createdb
- synapse: []
- databases:
- matrix: synapse
- media: synapse
- discord: synapse
- whats: synapse
- instagram: synapse
- linkedin: synapse
- telegram: synapse
- signal: synapse
- steam: synapse
- postgresql:
- version: "15"
- volume:
- size: 10Gi
- storageClass: iscsi
- additionalVolumes:
- - name: data
- mountPath: /home/postgres/pgdata/partitions
- targetContainers:
- - postgres
- volumeSource:
- PersistentVolumeClaim:
- claimName: synapse-database
- patroni:
- initdb:
- encoding: "UTF8"
- locale: "C"
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: postgres-operator
- operator: In
- values:
- - enabled
diff --git a/apps/matrix/databases/base/redis.yaml b/apps/matrix/databases/base/redis.yaml
deleted file mode 100644
index 3b0f7f126..000000000
--- a/apps/matrix/databases/base/redis.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-apiVersion: redis.redis.opstreelabs.in/v1beta1
-kind: Redis
-metadata:
- name: matrix-redis
- annotations:
- redis.opstreelabs.in/recreate-statefulset: "true"
-spec:
- redisConfig:
- additionalRedisConfig: matrix-redis-config
- kubernetesConfig:
- image: docker.io/grubertech/redis:v7.0.5
- imagePullPolicy: IfNotPresent
- redisSecret:
- name: synapse-redis
- key: passkey
- updateStrategy:
- type: OnDelete
- resources:
- requests:
- cpu: 150m
- memory: 128Mi
- limits:
- cpu: 250m
- memory: 256Mi
- storage:
- volumeClaimTemplate:
- spec:
- storageClassName: iscsi
- accessModes: ["ReadWriteOnce"]
- resources:
- requests:
- storage: 1Gi
- nodeSelector:
- kubernetes.io/arch: amd64
- redisExporter:
- enabled: false
- image: quay.io/opstree/redis-exporter:v1.44.0
- priorityClassName: system-cluster-critical
- readinessProbe:
- failureThreshold: 5
- initialDelaySeconds: 15
- periodSeconds: 15
- successThreshold: 1
- timeoutSeconds: 5
- livenessProbe:
- failureThreshold: 5
- initialDelaySeconds: 15
- periodSeconds: 15
- successThreshold: 1
- timeoutSeconds: 5
diff --git a/apps/matrix/databases/base/secret.yaml b/apps/matrix/databases/base/secret.yaml
deleted file mode 100644
index be8ce833a..000000000
--- a/apps/matrix/databases/base/secret.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-kind: Secret
-apiVersion: v1
-metadata:
- name: synapse-shared
- annotations:
- avp.kubernetes.io/path: "kv/data/matrix"
-stringData:
- SHARED_SECRET:
- INSTA_SEED:
- AS_WHATS_TOKEN:
- HS_WHATS_TOKEN:
- AS_INSTAGRAM_TOKEN:
- HS_INSTAGRAM_TOKEN:
- AS_TELEGRAM_TOKEN:
- HS_TELEGRAM_TOKEN:
- AS_LINKEDIN_TOKEN:
- HS_LINKEDIN_TOKEN:
- AS_DISCORD_TOKEN:
- HS_DISCORD_TOKEN:
----
-kind: Secret
-apiVersion: v1
-metadata:
- name: synapse-redis
- annotations:
- avp.kubernetes.io/path: "kv/data/matrix"
-stringData:
- passkey:
diff --git a/apps/matrix/databases/base/svc.yaml b/apps/matrix/databases/base/svc.yaml
deleted file mode 100644
index c4ec799d2..000000000
--- a/apps/matrix/databases/base/svc.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: synapse-tailscale
- labels:
- app: synapse
- app.kubernetes.io/instance: matrix
- annotations:
- tailscale.com/hostname: "matrix"
-spec:
- selector:
- app.kubernetes.io/component: synapse
- ports:
- - name: http
- protocol: TCP
- port: 80
- targetPort: 8008
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/matrix/databases/kustomization.yaml b/apps/matrix/databases/kustomization.yaml
deleted file mode 100644
index d5beedaf1..000000000
--- a/apps/matrix/databases/kustomization.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: matrix1
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/matrix/dendrite/README.md b/apps/matrix/dendrite/README.md
deleted file mode 100644
index 09d7484fa..000000000
--- a/apps/matrix/dendrite/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Dendrite
diff --git a/apps/matrix/dendrite/base/certificate.yaml b/apps/matrix/dendrite/base/certificate.yaml
deleted file mode 100644
index 8361942ac..000000000
--- a/apps/matrix/dendrite/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: matrix-cloudflare
-spec:
- secretName: matrix-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: matrix.gruber.dev.br
- dnsNames:
- - matrix.gruber.dev.br
diff --git a/apps/matrix/dendrite/base/cm.yaml b/apps/matrix/dendrite/base/cm.yaml
deleted file mode 100644
index 0bbeed643..000000000
--- a/apps/matrix/dendrite/base/cm.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: dendrite-config
-data:
- POSTGRES_HOST: "db-matrix.matrix1.svc.cluster.local"
- POSTGRES_DB: "matrix"
diff --git a/apps/matrix/dendrite/base/deployment.yaml b/apps/matrix/dendrite/base/deployment.yaml
deleted file mode 100644
index c1dc68faa..000000000
--- a/apps/matrix/dendrite/base/deployment.yaml
+++ /dev/null
@@ -1,152 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: dendrite
- labels:
- app: dendrite
-spec:
- selector:
- matchLabels:
- app: dendrite
- replicas: 1
- strategy:
- type: Recreate
- template:
- metadata:
- labels:
- app: dendrite
- spec:
- initContainers:
- - name: load-config
- image: docker.io/grubertech/envsubst:v1.2.0
- imagePullPolicy: IfNotPresent
- command: ["sh"]
- args:
- - -c
- - |
- envsubst -no-empty -i /template/config.yaml.tmpl -o /tmp/dendrite.yaml \
- && cp -f /tmp/dendrite.yaml /etc/dendrite/dendrite.yaml \
- && envsubst -no-empty -i /template/whats.yaml.tmpl -o /tmp/whats.yaml \
- && cp -f /tmp/whats.yaml /bridges/whatsapp.yaml
- env:
- - name: POSTGRES_USER
- valueFrom: { secretKeyRef: { name: synapse.db-matrix.credentials.postgresql.acid.zalan.do, key: username } }
- - name: POSTGRES_PASSWORD
- valueFrom: { secretKeyRef: { name: synapse.db-matrix.credentials.postgresql.acid.zalan.do, key: password } }
- - name: SHARED_SECRET
- valueFrom: { secretKeyRef: { name: synapse-shared, key: SHARED_SECRET } }
- - name: AS_TOKEN
- valueFrom: { secretKeyRef: { name: synapse-shared, key: AS_TOKEN } }
- - name: HS_TOKEN
- valueFrom: { secretKeyRef: { name: synapse-shared, key: HS_TOKEN } }
- envFrom:
- - configMapRef:
- name: dendrite-config
- volumeMounts:
- - name: dendrite-conf-vol
- mountPath: /etc/dendrite
- - name: temp-dir
- mountPath: /tmp
- - name: template
- mountPath: /template/config.yaml.tmpl
- subPath: config.yaml.tmpl
- readOnly: true
- - name: template
- mountPath: /template/whats.yaml.tmpl
- subPath: whats.yaml.tmpl
- readOnly: true
- - mountPath: /bridges
- name: bridges
- resources:
- limits:
- cpu: 150m
- memory: 512Mi
- requests:
- cpu: 50m
- memory: 128Mi
- securityContext:
- capabilities:
- drop:
- - ALL
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- containers:
- - name: dendrite
- image: ghcr.io/matrix-org/dendrite-monolith:v0.13.0
- imagePullPolicy: IfNotPresent
- args:
- - '--config'
- - '/etc/dendrite/dendrite.yaml'
- - '-really-enable-open-registration'
- ports:
- - name: http
- containerPort: 8008
- protocol: TCP
- resources:
- requests:
- cpu: 150m
- memory: 256Mi
- limits:
- cpu: 500m
- memory: 2048Mi
- volumeMounts:
- - mountPath: /etc/dendrite/
- name: dendrite-conf-vol
- - mountPath: /etc/dendrite/secrets/
- name: dendrite-signing-key
- - mountPath: /data/media_store
- name: dendrite-media
- - mountPath: /data/jetstream
- name: dendrite-jetstream
- - mountPath: /data/search
- name: dendrite-search
- - mountPath: /bridges
- name: bridges
- livenessProbe:
- initialDelaySeconds: 15
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 10
- httpGet:
- path: /_dendrite/monitor/health
- port: http
- readinessProbe:
- initialDelaySeconds: 10
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 10
- httpGet:
- path: /_dendrite/monitor/health
- port: http
- startupProbe:
- initialDelaySeconds: 35
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 10
- httpGet:
- path: /_dendrite/monitor/up
- port: http
- volumes:
- - name: template
- secret:
- secretName: dendrite-vars
- - name: dendrite-conf-vol
- persistentVolumeClaim:
- claimName: "matrix-config"
- - name: dendrite-signing-key
- secret:
- secretName: "dendrite-signing-key"
- - name: dendrite-jetstream
- persistentVolumeClaim:
- claimName: "matrix-jetstream"
- - name: dendrite-media
- persistentVolumeClaim:
- claimName: "matrix-media"
- - name: dendrite-search
- persistentVolumeClaim:
- claimName: "matrix-search"
- - name: temp-dir
- emptyDir: {}
- - name: bridges
- persistentVolumeClaim:
- claimName: bridge-config-storage
diff --git a/apps/matrix/dendrite/base/ingress.yaml b/apps/matrix/dendrite/base/ingress.yaml
deleted file mode 100644
index 086ef26e8..000000000
--- a/apps/matrix/dendrite/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: matrix
- annotations:
- external-dns.alpha.kubernetes.io/hostname: matrix.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
-spec:
- ingressClassName: nginx
- rules:
- - host: matrix.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: dendrite-tailscale
- port:
- name: http
- tls:
- - hosts:
- - matrix.gruber.dev.br
- secretName: matrix-tls
diff --git a/apps/matrix/dendrite/base/jobs.yaml b/apps/matrix/dendrite/base/jobs.yaml
deleted file mode 100644
index 0ba4edaea..000000000
--- a/apps/matrix/dendrite/base/jobs.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: dendrite-signing-key
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: dendrite-signing-key
-rules:
- - apiGroups:
- - ""
- resources:
- - secrets
- resourceNames:
- - dendrite-signing-key
- verbs:
- - get
- - update
- - patch
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: dendrite-signing-key
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: dendrite-signing-key
-subjects:
- - kind: ServiceAccount
- name: dendrite-signing-key
- namespace: matrix1
----
-apiVersion: batch/v1
-kind: Job
-metadata:
- name: generate-signing-key
-spec:
- template:
- spec:
- restartPolicy: "Never"
- serviceAccount: dendrite-signing-key
- containers:
- - name: upload-key
- image: bitnami/kubectl
- command:
- - sh
- - -c
- - |
- # check if key already exists
- key=$(kubectl get secret dendrite-signing-key -o jsonpath="{.data['signing\.key']}" 2> /dev/null)
- [ $? -ne 0 ] && echo "Failed to get existing secret" && exit 1
- [ -n "$key" ] && echo "Key already created, exiting." && exit 0
- # wait for signing key
- while [ ! -f /etc/dendrite/signing-key.pem ]; do
- echo "Waiting for signing key.."
- sleep 5;
- done
- # update secret
- kubectl patch secret dendrite-signing-key -p "{\"data\":{\"signing.key\":\"$(base64 /etc/dendrite/signing-key.pem | tr -d '\n')\"}}"
- [ $? -ne 0 ] && echo "Failed to update secret." && exit 1
- echo "Signing key successfully created."
- volumeMounts:
- - mountPath: /etc/dendrite/
- name: signing-key
- readOnly: true
- - name: generate-key
- image: ghcr.io/matrix-org/dendrite-monolith:v0.13.0
- imagePullPolicy: IfNotPresent
- command:
- - sh
- - -c
- - |
- /usr/bin/generate-keys -private-key /etc/dendrite/signing-key.pem
- chown 1001:1001 /etc/dendrite/signing-key.pem
- volumeMounts:
- - mountPath: /etc/dendrite/
- name: signing-key
- volumes:
- - name: signing-key
- emptyDir: {}
- parallelism: 1
- completions: 1
- backoffLimit: 1
diff --git a/apps/matrix/dendrite/base/kustomization.yaml b/apps/matrix/dendrite/base/kustomization.yaml
deleted file mode 100644
index f80bb116e..000000000
--- a/apps/matrix/dendrite/base/kustomization.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
- - cm.yaml
- - deployment.yaml
- - secret.yaml
- - svc.yaml
- - jobs.yaml
- - postgres.yaml
- - certificate.yaml
- - ingress.yaml
diff --git a/apps/matrix/dendrite/base/postgres.yaml b/apps/matrix/dendrite/base/postgres.yaml
deleted file mode 100644
index 15513b6af..000000000
--- a/apps/matrix/dendrite/base/postgres.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-apiVersion: "acid.zalan.do/v1"
-kind: postgresql
-metadata:
- name: db-matrix
- annotations:
- argocd.argoproj.io/sync-options: Delete=false
-spec:
- dockerImage: ghcr.io/zalando/spilo-15:3.0-p1
- teamId: "db"
- numberOfInstances: 1
- users:
- admin:
- - superuser
- - createdb
- synapse: []
- databases:
- matrix: synapse
- discord: synapse
- whats: synapse
- instagram: synapse
- linkedin: synapse
- telegram: synapse
- signal: synapse
- steam: synapse
- postgresql:
- version: "14"
- volume:
- size: 1Gi
- storageClass: iscsi
- additionalVolumes:
- - name: data
- mountPath: /home/postgres/pgdata/partitions
- targetContainers:
- - postgres
- volumeSource:
- PersistentVolumeClaim:
- claimName: dendrite-storage
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: postgres-operator
- operator: In
- values:
- - enabled
diff --git a/apps/matrix/dendrite/base/secret.yaml b/apps/matrix/dendrite/base/secret.yaml
deleted file mode 100644
index 1a3011bdb..000000000
--- a/apps/matrix/dendrite/base/secret.yaml
+++ /dev/null
@@ -1,166 +0,0 @@
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: dendrite-signing-key
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: dendrite-metrics-basic-auth
-type: Opaque
-stringData:
- user: "metrics"
- password: "metrics"
----
-kind: Secret
-apiVersion: v1
-metadata:
- name: synapse-shared
- annotations:
- avp.kubernetes.io/path: "kv/data/matrix"
-stringData:
- SHARED_SECRET:
- AS_TOKEN:
- HS_TOKEN:
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: dendrite-vars
-type: Opaque
-stringData:
- whats.yaml.tmpl: |
- id: whatsapp
- url: 'http://whats-bridge.matrix1.svc.cluster.local:8200'
- as_token: ${AS_TOKEN}
- hs_token: ${HS_TOKEN}
- sender_localpart: JIwoVfi2DvXlo3T5TBTctbpfI8KpqWAp
- rate_limited: false
- namespaces:
- users:
- - regex: '^@whatsappbot:matrix\.gruber\.dev\.br$'
- exclusive: false
- - regex: '^@whatsapp_.*:matrix\.gruber\.dev\.br$'
- exclusive: false
- de.sorunome.msc2409.push_ephemeral: true
- push_ephemeral: true
- config.yaml.tmpl: |
- app_service_api:
- config_files:
- - /bridges/whatsapp.yaml
- client_api:
- enable_registration_captcha: false
- guests_disabled: false
- rate_limiting:
- cooloff_ms: 500
- enabled: true
- exempt_user_ids:
- - gruber
- threshold: 20
- recaptcha_bypass_secret: ""
- recaptcha_private_key: ""
- recaptcha_public_key: ""
- recaptcha_siteverify_api: ""
- registration_disabled: false
- registration_shared_secret: ${SHARED_SECRET}
- turn:
- turn_password: ""
- turn_shared_secret: ""
- turn_uris: []
- turn_user_lifetime: 24h
- turn_username: ""
- federation_api:
- disable_http_keepalives: true
- disable_tls_validation: true
- key_perspectives:
- - keys:
- - key_id: ed25519:auto
- public_key: Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw
- - key_id: ed25519:a_RXGa
- public_key: l8Hft5qXKn1vfHrg3p4+W8gELQVo8N13JkluMfmn2sQ
- server_name: matrix.org
- prefer_direct_fetch: false
- send_max_retries: 16
- global:
- cache:
- max_age: 1h
- max_size_estimated: 1gb
- database:
- conn_max_lifetime: -1
- connection_string: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:5432/${POSTGRES_DB}?sslmode=require
- max_idle_conns: 5
- max_open_conns: 90
- disable_federation: false
- dns_cache:
- cache_lifetime: 10m
- cache_size: 256
- enabled: true
- jetstream:
- addresses: []
- disable_tls_validation: true
- in_memory: false
- storage_path: /data/jetstream
- topic_prefix: Dendrite
- key_validity_period: 168h0m0s
- metrics:
- basic_auth:
- password: metrics
- user: metrics
- enabled: true
- presence:
- enable_inbound: true
- enable_outbound: true
- private_key: /etc/dendrite/secrets/signing.key
- profiling:
- enabled: false
- port: 65432
- report_stats:
- enabled: false
- server_name: matrix.gruber.dev.br
- server_notices:
- avatar_url: ""
- display_name: Server Alerts
- enabled: false
- local_part: _server
- room_name: Server Alerts
- trusted_third_party_id_servers:
- - matrix.org
- - vector.im
- well_known_client_name: ""
- well_known_server_name: ""
- logging:
- - level: info
- type: std
- media_api:
- base_path: /data/media_store
- dynamic_thumbnails: false
- max_file_size_bytes: 10485760
- max_thumbnail_generators: 10
- thumbnail_sizes:
- - height: 32
- method: crop
- width: 32
- - height: 96
- method: crop
- width: 96
- - height: 480
- method: scale
- width: 640
- mscs:
- mscs:
- - msc2836
- - msc2946
- sync_api:
- real_ip_header: X-Real-IP
- search:
- enabled: true
- index_path: /data/search
- language: en
- user_api:
- auto_join_rooms: []
- bcrypt_cost: 10
- openid_token_lifetime_ms: 3600000
- push_gateway_disable_tls_validation: true
- version: 2
diff --git a/apps/matrix/dendrite/base/svc.yaml b/apps/matrix/dendrite/base/svc.yaml
deleted file mode 100644
index 3b0fffe2f..000000000
--- a/apps/matrix/dendrite/base/svc.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
----
-# Source: dendrite/templates/service.yaml
-apiVersion: v1
-kind: Service
-metadata:
- name: dendrite
- labels:
- app: dendrite
-spec:
- selector:
- app: dendrite
- ports:
- - name: http
- protocol: TCP
- port: 80
- targetPort: 8008
----
-apiVersion: v1
-kind: Service
-metadata:
- name: dendrite-tailscale
- labels:
- app: dendrite
- annotations:
- tailscale.com/hostname: "matrix"
-spec:
- selector:
- app: dendrite
- ports:
- - name: http
- protocol: TCP
- port: 80
- targetPort: 8008
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/matrix/dendrite/kustomization.yaml b/apps/matrix/dendrite/kustomization.yaml
deleted file mode 100644
index 1a9c0f5bf..000000000
--- a/apps/matrix/dendrite/kustomization.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: matrix1
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: dendrite
diff --git a/apps/matrix/element/base/cm.yaml b/apps/matrix/element/base/cm.yaml
deleted file mode 100644
index 53b4b3aa5..000000000
--- a/apps/matrix/element/base/cm.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: element-cm
-data:
- config.json: |
- {
- "default_server_config": {
- "m.homeserver": {
- "base_url": "http://matrix-matrix-synapse.services.svc.cluster.local:8008",
- "server_name": "matrix.gruber.dev.br"
- },
- "m.identity_server": {
- "base_url": "https://vector.im"
- }
- },
- "disable_custom_urls": true,
- "disable_guests": true,
- "disable_login_language_selector": false,
- "disable_3pid_login": true,
- "brand": "Element",
- "integrations_ui_url": "https://scalar.vector.im/",
- "integrations_rest_url": "https://scalar.vector.im/api",
- "integrations_widgets_urls": [
- "https://scalar.vector.im/_matrix/integrations/v1",
- "https://scalar.vector.im/api",
- "https://scalar-staging.vector.im/_matrix/integrations/v1",
- "https://scalar-staging.vector.im/api",
- "https://scalar-staging.riot.im/scalar/api"
- ],
- "bug_report_endpoint_url": "https://element.io/bugreports/submit",
- "defaultCountryCode": "BR",
- "showLabsSettings": false,
- "features": {
- "feature_new_spinner": true
- },
- "default_federate": true,
- "default_theme": "light",
- "roomDirectory": {
- "servers": [
- "matrix.org"
- ]
- },
- "piwik": {
- "url": "https://piwik.riot.im/",
- "whitelistedHSUrls": ["https://matrix.org"],
- "whitelistedISUrls": ["https://vector.im", "https://matrix.org"],
- "siteId": 1
- },
- "enable_presence_by_hs_url": {
- "https://gruber.dev.br": true,
- "https://matrix.gruber.dev.br": true
- },
- "settingDefaults": {
- "breadcrumbs": false
- },
- "jitsi": {
- "preferredDomain": "jitsi.riot.im"
- }
- }
diff --git a/apps/matrix/element/base/deployment.yaml b/apps/matrix/element/base/deployment.yaml
deleted file mode 100644
index c8138b2ab..000000000
--- a/apps/matrix/element/base/deployment.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: element
- labels:
- app: element
- annotations:
- link.argocd.argoproj.io/external-link: https://chat.gruber.dev.br
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: element
- template:
- metadata:
- labels:
- app: element
- spec:
- containers:
- - name: element
- image: vectorim/element-web:v1.11.13
- envFrom:
- - configMapRef:
- name: element-cm
- ports:
- - name: http
- containerPort: 80
- protocol: TCP
- livenessProbe:
- httpGet:
- path: /
- port: http
- readinessProbe:
- httpGet:
- path: /
- port: http
- volumeMounts:
- - name: ui-config
- mountPath: /app/config.json
- subPath: config.json
- resources:
- requests:
- cpu: "300m"
- memory: "256Mi"
- limits:
- cpu: "600m"
- memory: "400Mi"
- volumes:
- - name: ui-config
- configMap:
- name: element-cm
diff --git a/apps/matrix/element/base/svc.yaml b/apps/matrix/element/base/svc.yaml
deleted file mode 100644
index a175397a4..000000000
--- a/apps/matrix/element/base/svc.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: element-svc
- labels:
- app: element
-spec:
- type: ClusterIP
- selector:
- app: element
- ports:
- - name: http
- port: 8080
- targetPort: 80
- protocol: TCP
diff --git a/apps/matrix/element/kustomization.yaml b/apps/matrix/element/kustomization.yaml
deleted file mode 100644
index 2420345d5..000000000
--- a/apps/matrix/element/kustomization.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-- https://github.com/gruberdev/homelab/apps/networking/tailscale
-
-namespace: matrix
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- target:
- kind: Deployment
- name: element
-- patch: |-
- - op: replace
- path: "/spec/template/spec/containers/0/env/2"
- value:
- name: TS_HOSTNAME
- value: "matrix"
- - op: replace
- path: "/spec/template/spec/containers/0/env/3"
- value:
- name: DEST_PORT
- value: "80"
- target:
- kind: Deployment
- name: element
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/matrix/proxies/kustomization.yaml b/apps/matrix/proxies/kustomization.yaml
deleted file mode 100644
index d26c22a66..000000000
--- a/apps/matrix/proxies/kustomization.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- https://github.com/gruberdev/homelab/apps/networking/tailscale/proxy
-- https://github.com/gruberdev/homelab/apps/networking/tailscale
-- https://github.com/gruberdev/homelab/apps/networking/cloudflared
-
-patchesStrategicMerge:
-- overlay/cloudflared-cm.yaml
-
-namespace: matrix
-
-patches:
-- patch: |-
- - op: replace
- path: "/spec/template/spec/volumes/0/secret/secretName"
- value: "matrix-tunnel"
- target:
- kind: Deployment
- name: cloudflared
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- target:
- kind: Deployment
- name: ts-proxy
-- patch: |-
- - op: replace
- path: "/spec/template/spec/containers/0/env/2"
- value:
- name: TS_HOSTNAME
- value: "matrix"
- - op: replace
- path: "/spec/template/spec/containers/0/env/3"
- value:
- name: DEST_PORT
- value: "8008"
- - op: replace
- path: "/spec/template/spec/containers/0/env/4"
- value:
- name: TS_DEST_SVC
- value: "matrix-matrix-synapse.matrix.svc.cluster.local"
- target:
- kind: Deployment
- name: ts-proxy
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/matrix/proxies/overlay/cloudflared-cm.yaml b/apps/matrix/proxies/overlay/cloudflared-cm.yaml
deleted file mode 100644
index 17fe125d9..000000000
--- a/apps/matrix/proxies/overlay/cloudflared-cm.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cloudflared
-data:
- config.yaml: |
- tunnel: matrix-tunnel
- credentials-file: /etc/cloudflared/creds/credentials.json
- metrics: 0.0.0.0:2000
- no-autoupdate: true
- ingress:
- - hostname: matrix.gruber.dev.br
- service: http://matrix-matrix-synapse.matrix.svc.cluster.local:8008
- - service: http_status:404
diff --git a/apps/monitoring/kube-prometheus/kustomization.yaml b/apps/monitoring/kube-prometheus/kustomization.yaml
index 49cfb6b3c..e5456e845 100644
--- a/apps/monitoring/kube-prometheus/kustomization.yaml
+++ b/apps/monitoring/kube-prometheus/kustomization.yaml
@@ -5,4 +5,3 @@ resources:
- base/
- crds/
- core.yaml
-
diff --git a/apps/networking/adguard/Allowlist.txt b/apps/networking/adguard/Allowlist.txt
deleted file mode 100644
index 350fbe79c..000000000
--- a/apps/networking/adguard/Allowlist.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-a.nel.cloudflare.com
-cloudflare.com
-chrome.cloudflare-dns.com
-cloudflare-dns.com
-api.spotify.com
-spotify.com
-spclient.wg.spotify.com
-api-partner.spotify.com
-gue1-spclient.spotify.com
-instagram.com
-events.7tv.app
-7tv.app
-twitch.com
-static.twitchcdn.net
-facebook.com
-facebook.net
-www.instagram.com
-scontent.cdninstagram.com
-edge-chat.instagram.com
-graph.instagram.com
-www.instagram.com
-i.instagram.com
-cloud-us.yeelight.com
diff --git a/apps/networking/adguard/README.md b/apps/networking/adguard/README.md
deleted file mode 100644
index bc34ce8a0..000000000
--- a/apps/networking/adguard/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Adguard Home DNS
diff --git a/apps/networking/adguard/base/cm.yaml b/apps/networking/adguard/base/cm.yaml
deleted file mode 100644
index 61a0d7ae3..000000000
--- a/apps/networking/adguard/base/cm.yaml
+++ /dev/null
@@ -1,241 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: adguard-exporter
-data:
- adguard_protocol: "http"
- adguard_hostname: "192.168.1.8"
- adguard_port: "3000"
- interval: "60s"
- log_limit: "50000"
- server_port: "9617"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: adguard-home
-data:
- AdGuardHome.yaml: |
- bind_host: 0.0.0.0
- bind_port: 3000
- beta_bind_port: 0
- users:
- - name: gruber
- password: $2y$10$Wzj7vbAXFhp2ZNb.NYBrO.3YWao6pCZbMHlnkURBwAmgoAvZCmjcK
- auth_attempts: 5
- block_auth_min: 15
- http_proxy: ""
- language: en
- rlimit_nofile: 0
- debug_pprof: false
- web_session_ttl: 720
- dns:
- bind_hosts:
- - 0.0.0.0
- port: 53
- statistics_interval: 60
- querylog_enabled: true
- querylog_file_enabled: true
- querylog_interval: 1
- querylog_size_memory: 5000
- anonymize_client_ip: false
- protection_enabled: true
- blocking_mode: default
- blocking_ipv4: ""
- blocking_ipv6: ""
- blocked_response_ttl: 1
- parental_block_host: family-block.dns.adguard.com
- safebrowsing_block_host: standard-block.dns.adguard.com
- ratelimit: 0
- ratelimit_whitelist: []
- refuse_any: true
- upstream_dns:
- - 2a07:a8c0::13:eefe
- - 2a07:a8c1::13:eefe
- upstream_dns_file: ""
- bootstrap_dns:
- - 2001:4860:4860::8888
- - 2001:4860:4860::8844
- all_servers: false
- fastest_addr: false
- allowed_clients: []
- disallowed_clients: []
- blocked_hosts: []
- trusted_proxies:
- - 127.0.0.0/8
- - ::1/128
- cache_size: 4194304
- cache_ttl_min: 0
- cache_ttl_max: 0
- bogus_nxdomain: []
- aaaa_disabled: false
- enable_dnssec: false
- edns_client_subnet: false
- max_goroutines: 300
- ipset: []
- filtering_enabled: true
- filters_update_interval: 24
- parental_enabled: false
- safesearch_enabled: false
- use_private_ptr_resolvers: true
- safebrowsing_enabled: false
- safebrowsing_cache_size: 1048576
- safesearch_cache_size: 1048576
- parental_cache_size: 1048576
- cache_time: 30
- rewrites: []
- blocked_services: []
- local_domain_name: lan
- resolve_clients: true
- local_ptr_upstreams: []
- tls:
- enabled: false
- server_name: ""
- force_https: false
- port_https: 443
- port_dns_over_tls: 853
- port_dns_over_quic: 784
- port_dnscrypt: 0
- dnscrypt_config_file: ""
- allow_unencrypted_doh: false
- strict_sni_check: false
- certificate_chain: ""
- private_key: ""
- certificate_path: ""
- private_key_path: ""
- filters:
- - enabled: true
- url: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
- name: AdGuard DNS filter
- id: 1
- - enabled: true
- url: https://adaway.org/hosts.txt
- name: AdAway
- id: 2
- - enabled: false
- url: https://easylist.to/easylist/easylist.txt
- name: EasyList
- id: 3
- - enabled: false
- url: https://secure.fanboy.co.nz/fanboy-cookiemonster.txt
- name: EasyList Cookiemonster
- id: 4
- - enabled: false
- url: https://easylist.to/easylist/easyprivacy.txt
- name: EasyPrivacy
- id: 5
- - enabled: false
- url: https://secure.fanboy.co.nz/fanboy-annoyance.txt
- name: Fanboy's Annoyance
- id: 6
- - enabled: false
- url: https://abp.oisd.nl
- name: oisd full
- id: 7
- - enabled: true
- url: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling/hosts
- name: Unified Steven Black hosting plus Gambling
- id: 8
- - enabled: true
- url: https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt
- name: anudeepND blocklist
- id: 9
- - enabled: true
- url: https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/stopforumspam_30d.ipset
- name: StopForumSpam filterlists
- id: 10
- - enabled: true
- url: https://www.github.developerdan.com/hosts/lists/tracking-aggressive-extended.txt
- name: Aggressive Extended
- id: 11
- - enabled: true
- url: https://raw.githubusercontent.com/anudeepND/youtubeadsblacklist/master/hosts.txt
- name: Youtube Adlist
- id: 12
- - enabled: true
- url: https://raw.githubusercontent.com/kboghdady/youTube_ads_4_pi-hole/master/youtubelist.txt
- name: Youtube Adlist 2
- id: 13
- - enabled: true
- url: https://raw.githubusercontent.com/arman68/noappleads/main/adguard-blocklist.txt
- name: Adguard Blocklist
- id: 14
- - enabled: true
- url: https://www.github.developerdan.com/hosts/lists/hate-and-junk-extended.txt
- name: Hate and Junk extended
- id: 15
- - enabled: true
- url: https://o0.pages.dev/Pro/hosts.txt
- name: Badmojr 1Hosts
- id: 16
- - enabled: true
- url: https://perflyst.github.io/PiHoleBlocklist/SmartTV-AGH.txt
- name: SmartTV AGH
- id: 17
- - enabled: true
- url: https://perflyst.github.io/PiHoleBlocklist/SmartTV.txt
- name: General SmartTV general list
- id: 18
- - enabled: true
- url: https://blocklistproject.github.io/Lists/ads.txt
- name: Blocklist Project
- id: 19
- - enabled: true
- url: https://raw.githubusercontent.com/bogachenko/fuckfuckadblock/master/fuckfuckadblock.txt
- name: Fuck anti-Adblock
- id: 20
- - enabled: true
- url: https://raw.githubusercontent.com/bogachenko/fuckfuckadblock/master/fuckfuckadblock.txt
- name: Fuck anti-Adblock
- id: 21
- - enabled: true
- url: https://raw.githubusercontent.com/badmojr/1Hosts/master/Xtra/hosts.txt
- name: Xtra Windows Blocklist
- id: 22
- - enabled: true
- url: https://raw.githubusercontent.com/schrebra/Windows.10.DNS.Block.List/main/hosts.txt
- name: Windows 10 DNS Blocklist
- id: 23
- whitelist_filters:
- - enabled: true
- url: https://raw.githubusercontent.com/AdguardTeam/HttpsExclusions/master/exclusions/banks.txt
- name: Banks Whitelist
- id: 1
- - enabled: true
- url: https://raw.githubusercontent.com/AdguardTeam/HttpsExclusions/master/exclusions/banks.txt
- name: Pihole General Whitelist
- id: 2
- - enabled: true
- url: https://raw.githubusercontent.com/AdguardTeam/HttpsExclusions/master/exclusions/sensitive.txt
- name: Sensitive DNS SSL Servers provided by Adguard
- id: 3
- - enabled: true
- url: https://raw.githubusercontent.com/gruberdev/homelab/main/apps/networking/adguard/Allowlist.txt
- name: Personal DNS Allowlist
- id: 4
- user_rules: []
- dhcp:
- enabled: true
- interface_name: "eth0"
- dhcpv4:
- gateway_ip: "192.168.1.1"
- subnet_mask: "255.255.255.0"
- range_start: "192.168.1.10"
- range_end: "192.168.1.150"
- lease_duration: 86400
- icmp_timeout_msec: 1000
- options: []
- dhcpv6:
- range_start: ""
- lease_duration: 86400
- ra_slaac_only: false
- ra_allow_slaac: false
- clients: []
- log_compress: false
- log_localtime: false
- log_max_backups: 0
- log_max_size: 100
- log_max_age: 3
- log_file: ""
- verbose: false
- schema_version: 10
diff --git a/apps/networking/adguard/base/deployment.yaml b/apps/networking/adguard/base/deployment.yaml
deleted file mode 100644
index ecad28401..000000000
--- a/apps/networking/adguard/base/deployment.yaml
+++ /dev/null
@@ -1,105 +0,0 @@
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: adguard-home
- labels:
- app: adguard-home
- annotations:
- link.argocd.argoproj.io/external-link: http://adguard
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: adguard-home
- template:
- metadata:
- labels:
- app: adguard-home
- spec:
- hostNetwork: true
- initContainers:
- - name: copy-configmap
- image: busybox
- imagePullPolicy: IfNotPresent
- command:
- - "sh"
- - "-c"
- - "mkdir -p /opt/adguardhome/conf && cp /tmp/AdGuardHome.yaml /opt/adguardhome/conf/AdGuardHome.yaml"
- volumeMounts:
- - name: adguard-home-configmap
- mountPath: /tmp
- - name: adguard-home-config
- mountPath: /opt/adguardhome/conf
- securityContext:
- runAsUser: 0
- containers:
- - name: adguard-home
- image: adguard/adguardhome:v0.107.18
- env:
- - name: TZ
- value: "America/Sao_Paulo"
- args:
- - "-c"
- - "/opt/adguardhome/conf/AdGuardHome.yaml"
- - "--work-dir"
- - "/opt/adguardhome/work"
- - "--no-check-update"
- securityContext:
- privileged: false
- allowPrivilegeEscalation: false
- ports:
- - name: web
- containerPort: 3000
- protocol: TCP
- - name: dns
- containerPort: 53
- protocol: UDP
- - name: dns-tcp
- containerPort: 853
- protocol: TCP
- resources:
- requests:
- memory: "128Mi"
- cpu: "200m"
- limits:
- memory: "256Mi"
- cpu: "500m"
- volumeMounts:
- - name: adguard-home-config
- mountPath: /opt/adguardhome/conf
- - name: adguard-home-logs
- mountPath: /opt/adguardhome/work
- - name: exporter
- image: ebrianne/adguard-exporter:latest
- ports:
- - name: metrics
- containerPort: 9617
- protocol: TCP
- resources:
- requests:
- memory: "128Mi"
- cpu: "100m"
- limits:
- memory: "256Mi"
- cpu: "200m"
- envFrom:
- - configMapRef:
- name: adguard-exporter
- - secretRef:
- name: adguard-exporter
- volumes:
- - name: adguard-home-configmap
- configMap:
- name: adguard-home
- items:
- - key: AdGuardHome.yaml
- path: AdGuardHome.yaml
- - name: adguard-home-config
- persistentVolumeClaim:
- claimName: adguard-storage
- - name: adguard-home-logs
- persistentVolumeClaim:
- claimName: adguard-logs
diff --git a/apps/networking/adguard/base/kustomization.yaml b/apps/networking/adguard/base/kustomization.yaml
deleted file mode 100644
index 1a6433d59..000000000
--- a/apps/networking/adguard/base/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- secret.yaml
-- svc-monitor.yaml
diff --git a/apps/networking/adguard/base/secret.yaml b/apps/networking/adguard/base/secret.yaml
deleted file mode 100644
index 2b6947227..000000000
--- a/apps/networking/adguard/base/secret.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
- name: adguard-exporter
- annotations:
- avp.kubernetes.io/path: "kv/data/adguard"
-stringData:
- adguard_username:
- adguard_password:
diff --git a/apps/networking/adguard/base/svc-monitor.yaml b/apps/networking/adguard/base/svc-monitor.yaml
deleted file mode 100644
index 1f71179a5..000000000
--- a/apps/networking/adguard/base/svc-monitor.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-apiVersion: monitoring.coreos.com/v1
-kind: ServiceMonitor
-metadata:
- name: adguard-home
-spec:
- endpoints:
- - interval: 60s
- port: metrics
- metricRelabelings:
- - sourceLabels: [domain]
- regex: '^.*?\.?([^.]+\.[^.]+$)'
- replacement: '$1'
- targetLabel: second_level_domain
- selector:
- matchLabels:
- app.kubernetes.io/name: adguard-home
diff --git a/apps/networking/adguard/base/svc.yaml b/apps/networking/adguard/base/svc.yaml
deleted file mode 100644
index c4f7f28f4..000000000
--- a/apps/networking/adguard/base/svc.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: adguard-svc
- labels:
- app: adguard-home
-spec:
- type: ClusterIP
- selector:
- app: adguard-home
- ports:
- - name: admin
- port: 3321
- targetPort: 3000
- protocol: TCP
- - name: web
- port: 3322
- targetPort: 80
- protocol: TCP
- - name: dns
- port: 53
- targetPort: 53
- protocol: UDP
----
-apiVersion: v1
-kind: Service
-metadata:
- name: exporter
-spec:
- type: ClusterIP
- selector:
- app: adguard-home
- ports:
- - name: metrics
- targetPort: metrics
- port: 9617
- protocol: TCP
diff --git a/apps/networking/adguard/kustomization.yaml b/apps/networking/adguard/kustomization.yaml
deleted file mode 100644
index 77b408954..000000000
--- a/apps/networking/adguard/kustomization.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: dns
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- target:
- kind: Deployment
- name: adguard-home
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/networking/certmanager/clusterIssuer.yaml b/apps/networking/certmanager/clusterIssuer.yaml
index f7f4d0db5..a53630ac3 100644
--- a/apps/networking/certmanager/clusterIssuer.yaml
+++ b/apps/networking/certmanager/clusterIssuer.yaml
@@ -59,7 +59,16 @@ spec:
- gym.gruber.dev.br
- dashboard.gruber.dev.br
- dash.gruber.dev.br
+ - changedetection.gruber.dev.br
- hajimari.gruber.dev.br
+ - home-assistant.gruber.dev.br
+ - actual.gruber.dev.br
+ - miniflux.gruber.dev.br
+ - discord.gruber.dev.br
+ - mixpost.gruber.dev.br
+ - code.gruber.dev.br
+ - search.gruber.dev.br
+ - sillytavern.gruber.dev.br
dns01:
cloudflare:
email: rpg.gruber@gmail.com
diff --git a/apps/networking/certmanager/crds/kustomization.yaml b/apps/networking/certmanager/crds/kustomization.yaml
new file mode 100644
index 000000000..96327cc82
--- /dev/null
+++ b/apps/networking/certmanager/crds/kustomization.yaml
@@ -0,0 +1,7 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- https://github.com/cert-manager/cert-manager/releases/download/v1.14.4/cert-manager.crds.yaml
+
+commonAnnotations:
+ argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true,ServerSideApply=true,Replace=true,Validate=false
diff --git a/apps/networking/certmanager/kustomization.yaml b/apps/networking/certmanager/kustomization.yaml
index 839936169..ca81a6326 100644
--- a/apps/networking/certmanager/kustomization.yaml
+++ b/apps/networking/certmanager/kustomization.yaml
@@ -4,3 +4,4 @@ resources:
- clusterIssuer.yaml
- postgres.yaml
- secret.yaml
+- crds/
diff --git a/apps/networking/cloudflared/README.md b/apps/networking/cloudflared/README.md
deleted file mode 100644
index 20bc32150..000000000
--- a/apps/networking/cloudflared/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Cloudflared (proxies)
diff --git a/apps/networking/cloudflared/cm.yaml b/apps/networking/cloudflared/cm.yaml
deleted file mode 100644
index b4e415afd..000000000
--- a/apps/networking/cloudflared/cm.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cloudflared
-data:
- config.yaml: |
- tunnel: flame-tunnel
- credentials-file: /etc/cloudflared/creds/credentials.json
- no-autoupdate: true
- ingress:
- - hostname: flame.gruber.dev.br
- service: http://flame-svc:5005
- - service: http_status:404
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cf-configs
-data:
- TUNNEL_METRICS_UPDATE_FREQ: "120s"
- TUNNEL_METRICS: "0.0.0.0:2000"
- TUNNEL_RETRIES: "5"
- TUNNEL_LOGLEVEL: "warn"
- TUNNEL_PROTO_LOGLEVEL: "warn"
- TUNNEL_TRANSPORT_PROTOCOL: "auto"
- TUNNEL_ORIGIN_CERT: "~/.cloudflared/cert.pem"
diff --git a/apps/networking/cloudflared/deployment.yaml b/apps/networking/cloudflared/deployment.yaml
deleted file mode 100644
index 008501077..000000000
--- a/apps/networking/cloudflared/deployment.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: cloudflared
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: cloudflared
- template:
- metadata:
- labels:
- app: cloudflared
- spec:
- containers:
- - name: cloudflared
- image: erisamoe/cloudflared:2022.10.2
- args:
- - tunnel
- - --config
- - /etc/cloudflared/config/config.yaml
- - run
- livenessProbe:
- httpGet:
- path: /ready
- port: 2000
- failureThreshold: 5
- initialDelaySeconds: 30
- periodSeconds: 10
- envFrom:
- - configMapRef:
- name: cf-configs
- volumeMounts:
- - name: config
- mountPath: /etc/cloudflared/config
- readOnly: true
- - name: creds
- mountPath: /etc/cloudflared/creds
- readOnly: true
- resources:
- limits:
- cpu: 200m
- memory: 400Mi
- requests:
- cpu: 75m
- memory: 128Mi
- volumes:
- - name: creds
- secret:
- secretName: tunnel-credentials
- # Create a config.yaml file from the ConfigMap below.
- - name: config
- configMap:
- name: cloudflared
- items:
- - key: config.yaml
- path: config.yaml
diff --git a/apps/networking/cloudflared/kustomization.yaml b/apps/networking/cloudflared/kustomization.yaml
deleted file mode 100644
index 0e7dbbf0f..000000000
--- a/apps/networking/cloudflared/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- cm.yaml
-- deployment.yaml
-images:
-- name: erisamoe/cloudflared
- newTag: 2024.1.5
diff --git a/apps/networking/squid/README.md b/apps/networking/squid/README.md
deleted file mode 100644
index f528e7400..000000000
--- a/apps/networking/squid/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Squid Proxy
diff --git a/apps/networking/squid/base/certificate.yaml b/apps/networking/squid/base/certificate.yaml
deleted file mode 100644
index 629fe4be5..000000000
--- a/apps/networking/squid/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: squid-proxy-cloudflare
-spec:
- secretName: proxy-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: proxy.gruber.dev.br
- dnsNames:
- - proxy.gruber.dev.br
diff --git a/apps/networking/squid/base/cm.yaml b/apps/networking/squid/base/cm.yaml
deleted file mode 100644
index b393a0304..000000000
--- a/apps/networking/squid/base/cm.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: squid-config
-data:
- squid.conf: |
- http_port 3128
- acl twitch dstdom_regex video-weaver.*.ttvnw.net
- http_access allow twitch
- acl twitchusher dstdom_regex usher.ttvnw.net
- http_access allow twitchusher
- acl twitchgql dstdom_regex gql.twitch.tv
- http_access allow twitchgql
- acl twitchpassport dstdom_regex passport.twitch.tv
- http_access allow twitchpassport
- acl twitchwww dstdom_regex www.twitch.tv
- http_access allow twitchwww
diff --git a/apps/networking/squid/base/deployment.yaml b/apps/networking/squid/base/deployment.yaml
deleted file mode 100644
index 56b08a67a..000000000
--- a/apps/networking/squid/base/deployment.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: squid
- labels:
- app: squid
-spec:
- replicas: 3
- strategy:
- type: RollingUpdate
- selector:
- matchLabels:
- app: squid
- template:
- metadata:
- labels:
- app: squid
- spec:
- containers:
- - name: squid
- image: ubuntu/squid:5.2-22.04_edge
- livenessProbe:
- tcpSocket:
- port: 3128
- initialDelaySeconds: 25
- periodSeconds: 10
- readinessProbe:
- tcpSocket:
- port: 3128
- initialDelaySeconds: 5
- periodSeconds: 10
- envFrom:
- - configMapRef:
- name: squid-config
- ports:
- - name: proxy
- containerPort: 3128
- protocol: TCP
- resources:
- requests:
- cpu: 80m
- memory: 64Mi
- limits:
- cpu: 150m
- memory: 256Mi
- volumeMounts:
- - name: squid-config-volume
- mountPath: /etc/squid/squid.conf
- subPath: squid.conf
- volumes:
- - name: squid-config-volume
- configMap:
- name: squid-config
- items:
- - key: squid.conf
- path: squid.conf
diff --git a/apps/networking/squid/base/ingress.yaml b/apps/networking/squid/base/ingress.yaml
deleted file mode 100644
index f4f6e9a87..000000000
--- a/apps/networking/squid/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: squid-proxy
- annotations:
- external-dns.alpha.kubernetes.io/hostname: proxy.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
-spec:
- ingressClassName: nginx
- rules:
- - host: proxy.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: squid
- port:
- name: proxy
- tls:
- - hosts:
- - proxy.gruber.dev.br
- secretName: proxy-tls
diff --git a/apps/networking/squid/base/kustomization.yaml b/apps/networking/squid/base/kustomization.yaml
deleted file mode 100644
index 63b35a1cd..000000000
--- a/apps/networking/squid/base/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- certificate.yaml
-- ingress.yaml
diff --git a/apps/networking/squid/base/svc.yaml b/apps/networking/squid/base/svc.yaml
deleted file mode 100644
index 70bae4924..000000000
--- a/apps/networking/squid/base/svc.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: squid
- labels:
- app: squid
- annotations:
- tailscale.com/hostname: "proxy"
-spec:
- selector:
- app: squid
- ports:
- - name: proxy
- protocol: TCP
- port: 80
- targetPort: 3128
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/networking/squid/kustomization.yaml b/apps/networking/squid/kustomization.yaml
deleted file mode 100644
index ddd084310..000000000
--- a/apps/networking/squid/kustomization.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: networking
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/networking/tailscale/README.md b/apps/networking/tailscale/README.md
index b424f722e..1e7dd5255 100644
--- a/apps/networking/tailscale/README.md
+++ b/apps/networking/tailscale/README.md
@@ -2,6 +2,10 @@
+
+
+
+
### Description
@@ -18,6 +22,8 @@
> - [It is cheaper than Inlets Pro (even for perosnal use)][inlets-uri], [has a similar speed to ZeroTier (Benchmark link)][zero-uri] and provides more SaaS experience than [Headscale][headscale-uri], for now.
> - It is mostly open source, the only part that had proprietary code (the controller) was recently reverse-engineered through [the Headscale project][headscale-uri], which tags along Tailscale's evolving features.
+### Additional resources
+
- [Website][website-uri]
- [Official Documentation][docs-uri]
- [Tailscale *Policy as code* for this repository][acl-uri]
diff --git a/apps/networking/tailscale/cr.yaml b/apps/networking/tailscale/cr.yaml
deleted file mode 100644
index fc3a85c61..000000000
--- a/apps/networking/tailscale/cr.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: tailscale
-rules:
-- apiGroups: [""]
- resources: ["secrets"]
- verbs: ["create"]
-- apiGroups: [""]
- resources: ["secrets"]
- verbs: ["get", "update"]
diff --git a/apps/networking/tailscale/kustomization.yaml b/apps/networking/tailscale/kustomization.yaml
deleted file mode 100644
index 24501aaf0..000000000
--- a/apps/networking/tailscale/kustomization.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- cr.yaml
-- rb.yaml
-- sa.yaml
diff --git a/apps/networking/tailscale/operator/base/cr.yaml b/apps/networking/tailscale/operator/base/cr.yaml
index ce75a213a..4b10b7421 100644
--- a/apps/networking/tailscale/operator/base/cr.yaml
+++ b/apps/networking/tailscale/operator/base/cr.yaml
@@ -3,12 +3,65 @@ kind: ClusterRole
metadata:
name: tailscale-operator
rules:
+- apiGroups:
+ - ''
+ resources:
+ - events
+ - services
+ - services/status
+ verbs:
+ - '*'
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ - ingresses/status
+ verbs:
+ - '*'
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingressclasses
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - tailscale.com
+ resources:
+ - connectors
+ - connectors/status
+ - proxyclasses
+ - proxyclasses/status
+ - dnsconfigs
+ - dnsconfigs/status
+ verbs:
+ - get
+ - list
+ - watch
+ - update
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups: ["apps"]
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
- apiGroups: [""]
- resources: ["services", "services/status", "ingresses"]
- verbs: ["*"]
-- apiGroups: ["networking.k8s.io"]
- resources: ["events", "ingresses", "ingresses/status"]
- verbs: ["*"]
+ resources:
+ - serviceaccounts
+ - configmaps
+ verbs:
+ - get
+ - list
+ - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -16,5 +69,5 @@ metadata:
name: tailscale-auth-proxy
rules:
- apiGroups: [""]
- resources: ["users"]
+ resources: ["users", "groups"]
verbs: ["impersonate"]
diff --git a/apps/networking/tailscale/operator/base/crb.yaml b/apps/networking/tailscale/operator/base/crb.yaml
index 6773f303d..c3725a263 100644
--- a/apps/networking/tailscale/operator/base/crb.yaml
+++ b/apps/networking/tailscale/operator/base/crb.yaml
@@ -1,15 +1,16 @@
+---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tailscale-operator
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: tailscale-operator
subjects:
- kind: ServiceAccount
name: operator
namespace: tailscale
-roleRef:
- kind: ClusterRole
- name: tailscale-operator
- apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
@@ -20,6 +21,6 @@ subjects:
name: operator
namespace: tailscale
roleRef:
+ apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tailscale-auth-proxy
- apiGroup: rbac.authorization.k8s.io
diff --git a/apps/networking/tailscale/operator/base/deployment.yaml b/apps/networking/tailscale/operator/base/deployment.yaml
index 7923dd3ef..fd8e05c0c 100644
--- a/apps/networking/tailscale/operator/base/deployment.yaml
+++ b/apps/networking/tailscale/operator/base/deployment.yaml
@@ -21,7 +21,7 @@ spec:
secretName: operator-oauth
containers:
- name: operator
- image: docker.io/tailscale/k8s-operator:unstable-v1.57.65
+ image: docker.io/tailscale/k8s-operator:unstable-v1.71.74
imagePullPolicy: IfNotPresent
resources:
requests:
@@ -31,30 +31,32 @@ spec:
cpu: 700m
memory: 512Mi
env:
+ - name: OPERATOR_INITIAL_TAGS
+ value: tag:k8s-operator
- name: OPERATOR_HOSTNAME
- value: k8s-operator
+ value: tailscale-operator
- name: OPERATOR_SECRET
value: operator
- name: OPERATOR_LOGGING
- value: debug
- - name: TS_ACCEPT_DNS
- value: "true"
+ value: info
- name: TS_ROUTES
value: "true"
- name: OPERATOR_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
+ - name: PROXY_FIREWALL_MODE
+ value: auto
- name: CLIENT_ID_FILE
value: /oauth/client_id
- name: CLIENT_SECRET_FILE
value: /oauth/client_secret
- name: PROXY_IMAGE
- value: docker.io/tailscale/tailscale:unstable-v1.57.65
+ value: docker.io/tailscale/tailscale:unstable-v1.71.74
- name: PROXY_TAGS
value: tag:k8s
- - name: AUTH_PROXY
- value: "false"
+ - name: APISERVER_PROXY
+ value: "noauth"
volumeMounts:
- name: oauth
mountPath: /oauth
diff --git a/apps/networking/tailscale/operator/base/ingress-class.yaml b/apps/networking/tailscale/operator/base/ingress-class.yaml
new file mode 100644
index 000000000..88fdf705d
--- /dev/null
+++ b/apps/networking/tailscale/operator/base/ingress-class.yaml
@@ -0,0 +1,8 @@
+---
+apiVersion: networking.k8s.io/v1
+kind: IngressClass
+metadata:
+ annotations: {}
+ name: tailscale
+spec:
+ controller: tailscale.com/ts-ingress
diff --git a/apps/networking/tailscale/operator/base/kustomization.yaml b/apps/networking/tailscale/operator/base/kustomization.yaml
index 4cea21157..e96dd355d 100644
--- a/apps/networking/tailscale/operator/base/kustomization.yaml
+++ b/apps/networking/tailscale/operator/base/kustomization.yaml
@@ -7,4 +7,5 @@ resources:
- rb.yaml
- role.yaml
- sa.yaml
+- ingress-class.yaml
# - secret.yaml
diff --git a/apps/networking/tailscale/operator/base/rb.yaml b/apps/networking/tailscale/operator/base/rb.yaml
index a0aa20786..68e55c937 100644
--- a/apps/networking/tailscale/operator/base/rb.yaml
+++ b/apps/networking/tailscale/operator/base/rb.yaml
@@ -1,26 +1,28 @@
+---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
- name: proxies
-subjects:
-- kind: ServiceAccount
- name: proxies
+ name: operator
namespace: tailscale
roleRef:
- kind: Role
- name: proxies
apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: operator
+subjects:
+- kind: ServiceAccount
+ name: operator
+ namespace: tailscale
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
- name: operator
+ name: proxies
namespace: tailscale
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: proxies
subjects:
- kind: ServiceAccount
- name: operator
+ name: proxies
namespace: tailscale
-roleRef:
- kind: Role
- name: operator
- apiGroup: rbac.authorization.k8s.io
diff --git a/apps/networking/tailscale/operator/base/role.yaml b/apps/networking/tailscale/operator/base/role.yaml
index 651739262..7f5e987bb 100644
--- a/apps/networking/tailscale/operator/base/role.yaml
+++ b/apps/networking/tailscale/operator/base/role.yaml
@@ -1,31 +1,31 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
- name: proxies
+ name: operator
+ namespace: tailscale
rules:
-- apiGroups: [""]
- resources: ["secrets", "ingresses", "services"]
- verbs: ["*"]
+- apiGroups:
+ - ''
+ resources:
+ - secrets
+ verbs:
+ - '*'
+- apiGroups:
+ - apps
+ resources:
+ - statefulsets
+ verbs:
+ - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
- name: operator
+ name: proxies
+ namespace: tailscale
rules:
-- apiGroups: [""]
- resources: ["secrets", "ingresses", "services"]
- verbs: ["*"]
-- apiGroups: ["apps"]
- resources: ["statefulsets"]
- verbs: ["*"]
- apiGroups:
- - ""
- resourceNames:
- - dnsconfig
+ - ''
resources:
- - configmaps
+ - secrets
verbs:
- - get
- - watch
- - list
- - update
+ - '*'
diff --git a/apps/networking/tailscale/operator/base/sa.yaml b/apps/networking/tailscale/operator/base/sa.yaml
index 8cd4e4def..4fbd55ca7 100644
--- a/apps/networking/tailscale/operator/base/sa.yaml
+++ b/apps/networking/tailscale/operator/base/sa.yaml
@@ -1,14 +1,11 @@
apiVersion: v1
kind: ServiceAccount
-metadata:
- name: proxies
----
-apiVersion: v1
-kind: ServiceAccount
metadata:
name: operator
+ namespace: tailscale
---
apiVersion: v1
kind: ServiceAccount
metadata:
- name: nameserver
+ name: proxies
+ namespace: tailscale
diff --git a/apps/networking/tailscale/operator/base/secret.yaml b/apps/networking/tailscale/operator/base/secret.yaml
index 80bd42941..44f18d41e 100644
--- a/apps/networking/tailscale/operator/base/secret.yaml
+++ b/apps/networking/tailscale/operator/base/secret.yaml
@@ -4,5 +4,5 @@ metadata:
name: operator-oauth
namespace: tailscale
stringData:
- client_id:
- client_secret:
+ client_id:
+ client_secret:
diff --git a/apps/networking/tailscale/operator/crds/kustomization.yaml b/apps/networking/tailscale/operator/crds/kustomization.yaml
new file mode 100644
index 000000000..164ef6dfe
--- /dev/null
+++ b/apps/networking/tailscale/operator/crds/kustomization.yaml
@@ -0,0 +1,11 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
+resources:
+- https://raw.githubusercontent.com/tailscale/tailscale/v1.71.0-pre/cmd/k8s-operator/deploy/crds/tailscale.com_connectors.yaml
+- https://raw.githubusercontent.com/tailscale/tailscale/v1.71.0-pre/cmd/k8s-operator/deploy/crds/tailscale.com_proxyclasses.yaml
+- https://raw.githubusercontent.com/tailscale/tailscale/v1.71.0-pre/cmd/k8s-operator/deploy/crds/tailscale.com_dnsconfigs.yaml
+
+
+commonAnnotations:
+ argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true,ServerSideApply=true,Replace=true,Validate=false
diff --git a/apps/networking/tailscale/operator/kustomization.yaml b/apps/networking/tailscale/operator/kustomization.yaml
index 424ee5c98..ac4307ac5 100644
--- a/apps/networking/tailscale/operator/kustomization.yaml
+++ b/apps/networking/tailscale/operator/kustomization.yaml
@@ -1,9 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
-bases:
-- ./base
namespace: tailscale
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
+resources:
+ - base
+ - crds
+ - resources
diff --git a/apps/networking/tailscale/operator/resources/dns.yaml b/apps/networking/tailscale/operator/resources/dns.yaml
new file mode 100644
index 000000000..1dab1878b
--- /dev/null
+++ b/apps/networking/tailscale/operator/resources/dns.yaml
@@ -0,0 +1,10 @@
+apiVersion: tailscale.com/v1alpha1
+kind: DNSConfig
+metadata:
+ name: ts-dns
+ namespace: networking
+spec:
+ nameserver:
+ image:
+ repo: tailscale/k8s-nameserver
+ tag: unstable-v1.71
diff --git a/apps/networking/tailscale/operator/resources/egress.yaml b/apps/networking/tailscale/operator/resources/egress.yaml
new file mode 100644
index 000000000..b316b009c
--- /dev/null
+++ b/apps/networking/tailscale/operator/resources/egress.yaml
@@ -0,0 +1,9 @@
+apiVersion: tailscale.com/v1alpha1
+kind: Connector
+metadata:
+ name: egress-conector
+spec:
+ tags:
+ - "tag:vpn"
+ hostname: "egress"
+ exitNode: true
diff --git a/apps/services/mlops/discord-bot/base/kustomization.yaml b/apps/networking/tailscale/operator/resources/kustomization.yaml
similarity index 61%
rename from apps/services/mlops/discord-bot/base/kustomization.yaml
rename to apps/networking/tailscale/operator/resources/kustomization.yaml
index cba8cb583..e549e46f9 100644
--- a/apps/services/mlops/discord-bot/base/kustomization.yaml
+++ b/apps/networking/tailscale/operator/resources/kustomization.yaml
@@ -1,6 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
-- deployment.yaml
-- cm.yaml
-- secret.yaml
+- egress.yaml
+- subnet-router.yaml
+- dns.yaml
diff --git a/apps/networking/tailscale/operator/resources/macbook.yaml b/apps/networking/tailscale/operator/resources/macbook.yaml
new file mode 100644
index 000000000..32cc16a27
--- /dev/null
+++ b/apps/networking/tailscale/operator/resources/macbook.yaml
@@ -0,0 +1,10 @@
+apiVersion: v1
+kind: Service
+metadata:
+ annotations:
+ tailscale.com/tailnet-ip: "100.127.22.89"
+ name: macbook-tailscale
+ namespace: mlops
+spec:
+ externalName: macbook
+ type: ExternalName
diff --git a/apps/networking/tailscale/operator/resources/subnet-router.yaml b/apps/networking/tailscale/operator/resources/subnet-router.yaml
new file mode 100644
index 000000000..5e647c19b
--- /dev/null
+++ b/apps/networking/tailscale/operator/resources/subnet-router.yaml
@@ -0,0 +1,29 @@
+apiVersion: tailscale.com/v1alpha1
+kind: Connector
+metadata:
+ name: ts-pod-cidrs
+spec:
+ hostname: router-pods
+ subnetRouter:
+ advertiseRoutes:
+ - 10.42.0.0/16
+---
+apiVersion: tailscale.com/v1alpha1
+kind: Connector
+metadata:
+ name: ts-svc-cidrs
+spec:
+ hostname: router-svcs
+ subnetRouter:
+ advertiseRoutes:
+ - 10.43.0.0/16
+---
+apiVersion: tailscale.com/v1alpha1
+kind: Connector
+metadata:
+ name: ts-lan-cidrs
+spec:
+ hostname: lan-svcs
+ subnetRouter:
+ advertiseRoutes:
+ - 192.168.1.0/24
diff --git a/apps/networking/tailscale/patch.yaml b/apps/networking/tailscale/patch.yaml
deleted file mode 100644
index d626e6694..000000000
--- a/apps/networking/tailscale/patch.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: ts-sidecar
-spec:
- template:
- spec:
- serviceAccountName: "tailscale"
- containers:
- - name: tailscale
- imagePullPolicy: Always
- image: grubertech/tailscale:v1.34.1-2
- lifecycle:
- preStop:
- exec:
- command: ["/bin/sh", "-c", "tailscale logout; do sleep 1; done"]
- env:
- - name: TS_USERSPACE
- value: "false"
- - name: KUBERNETES_SERVICE_HOST
- value: "true"
- - name: TS_HOSTNAME
- value: "unifi"
- - name: DEST_PORT
- value: "8443"
- - name: AUTH_KEY
- valueFrom:
- secretKeyRef:
- name: tailscale
- key: AUTH_KEY
- securityContext:
- capabilities:
- add:
- - NET_ADMIN
- resources:
- limits:
- cpu: "150m"
- memory: "512Mi"
- requests:
- cpu: "100m"
- memory: "256Mi"
diff --git a/apps/networking/tailscale/rb.yaml b/apps/networking/tailscale/rb.yaml
deleted file mode 100644
index a7c04847c..000000000
--- a/apps/networking/tailscale/rb.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: tailscale
-subjects:
-- kind: ServiceAccount
- name: "tailscale"
-roleRef:
- kind: Role
- name: tailscale
- apiGroup: rbac.authorization.k8s.io
diff --git a/apps/networking/tailscale/sa.yaml b/apps/networking/tailscale/sa.yaml
deleted file mode 100644
index 84dfe93c8..000000000
--- a/apps/networking/tailscale/sa.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: tailscale
diff --git a/apps/networking/unifi/controller/kustomization.yaml b/apps/networking/unifi/controller/kustomization.yaml
index 9d8f9d81a..210fcc067 100644
--- a/apps/networking/unifi/controller/kustomization.yaml
+++ b/apps/networking/unifi/controller/kustomization.yaml
@@ -15,9 +15,6 @@ patches:
kind: Deployment
name: unifi-controller
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
images:
- name: jacobalberty/unifi
newTag: v8.0
diff --git a/apps/services/4get/README.md b/apps/services/4get/README.md
new file mode 100644
index 000000000..49a127fdd
--- /dev/null
+++ b/apps/services/4get/README.md
@@ -0,0 +1 @@
+## 4get
\ No newline at end of file
diff --git a/apps/services/4get/base/cm.yaml b/apps/services/4get/base/cm.yaml
new file mode 100644
index 000000000..08ef92ab7
--- /dev/null
+++ b/apps/services/4get/base/cm.yaml
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: 4get-config
+data:
+ TZ: "America/Sao_Paulo"
+ FOURGET_PROTO: "http"
+ FOURGET_SERVER_NAME: "Search.gruber.dev.br"
+ FOURGET_BOT_PROTECTION: "0"
+ FOURGET_VERSION: "8"
+ FOURGET_SERVER_SHORT_DESCRIPTION: "Just a search engine."
+ FOURGET_ALT_ADDRESSES: "https://search.gruber.dev.br"
+ FOURGET_INSTANCES: "https://search.gruber.dev.br"
+ FOURGET_HEADER_REGEX: "fake-value,fake-value2"
+ FOURGET_FILTERED_HEADER_KEYS: "fake-value,fake-value2"
diff --git a/apps/services/4get/base/deployment.yaml b/apps/services/4get/base/deployment.yaml
new file mode 100644
index 000000000..f2fac63a1
--- /dev/null
+++ b/apps/services/4get/base/deployment.yaml
@@ -0,0 +1,23 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: search
+ annotations:
+ link.argocd.argoproj.io/external-link: https://search.gruber.dev.br
+spec:
+ replicas: 1
+ strategy:
+ type: Recreate
+ template:
+ spec:
+ containers:
+ - name: 4get
+ image: luuul/4get:1.0.11@sha256:d9423d013bf02cf52e8b9ef75d5e9efbdf7256aca27bcae5ec78aa312af84d6e
+ envFrom:
+ - configMapRef:
+ name: 4get-config
+ ports:
+ - name: http
+ containerPort: 80
+ protocol: TCP
diff --git a/apps/matrix/element/base/kustomization.yaml b/apps/services/4get/base/kustomization.yaml
similarity index 90%
rename from apps/matrix/element/base/kustomization.yaml
rename to apps/services/4get/base/kustomization.yaml
index b9919a7e8..7b96ba641 100644
--- a/apps/matrix/element/base/kustomization.yaml
+++ b/apps/services/4get/base/kustomization.yaml
@@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
-- svc.yaml
- cm.yaml
diff --git a/apps/services/archivebox/kustomization.yaml b/apps/services/4get/kustomization.yaml
similarity index 51%
rename from apps/services/archivebox/kustomization.yaml
rename to apps/services/4get/kustomization.yaml
index a5f48a516..62761ddba 100644
--- a/apps/services/archivebox/kustomization.yaml
+++ b/apps/services/4get/kustomization.yaml
@@ -1,6 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
-bases:
+resources:
- ./base
namespace: services
@@ -13,7 +13,15 @@ patches:
kubernetes.io/arch: amd64
target:
kind: Deployment
- name: archivebox
+ name: changedetection
-commonAnnotations:
- reloader.stakater.com/auto: "true"
+labels:
+- includeSelectors: true
+ includeTemplates: true
+ pairs:
+ cluster.app: 4get
+ app.kubernetes.io/part-of: services
+
+components:
+ - ../../components/lb
+ - ../../components/resources/small
diff --git a/apps/services/archivebox/README.md b/apps/services/archivebox/README.md
deleted file mode 100644
index a93ea3e03..000000000
--- a/apps/services/archivebox/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Archivebox
diff --git a/apps/services/archivebox/base/certificate.yaml b/apps/services/archivebox/base/certificate.yaml
deleted file mode 100644
index c35958062..000000000
--- a/apps/services/archivebox/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: archive-cloudflare
-spec:
- secretName: archive-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: archive.xn--qck4cud2cb.com
- dnsNames:
- - archive.xn--qck4cud2cb.com
diff --git a/apps/services/archivebox/base/cm.yaml b/apps/services/archivebox/base/cm.yaml
deleted file mode 100644
index 36ea2ed73..000000000
--- a/apps/services/archivebox/base/cm.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: archivebox-cm
-data:
- TZ: "America/Sao_Paulo"
- ALLOWED_HOSTS: "*"
- MEDIA_MAX_SIZE: "750m"
diff --git a/apps/services/archivebox/base/deployment.yaml b/apps/services/archivebox/base/deployment.yaml
deleted file mode 100644
index 4ff4011bc..000000000
--- a/apps/services/archivebox/base/deployment.yaml
+++ /dev/null
@@ -1,79 +0,0 @@
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: archivebox
- labels:
- app: archivebox
- annotations:
- link.argocd.argoproj.io/external-link: https://archive.グルーバー.com
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: archivebox
- template:
- metadata:
- labels:
- app: archivebox
- spec:
- initContainers:
- - name: archivebox-init
- image: ghcr.io/archivebox/archivebox/archivebox:0.4.20
- command: ['/app/venv/bin/archivebox']
- args: ['init']
- resources:
- requests:
- cpu: 80m
- memory: 256Mi
- limits:
- cpu: 220m
- memory: 512Mi
- volumeMounts:
- - name: data-storage
- mountPath: /app/data
- containers:
- - name: archivebox
- image: ghcr.io/archivebox/archivebox/archivebox:0.4.20
- command: ['/app/venv/bin/gunicorn']
- args:
- - --pythonpath
- - /app/venv/lib/python3.10/site-packages/archivebox
- - -b
- - 0.0.0.0:8000
- - --timeout
- - "300"
- - archivebox.wsgi:application
- livenessProbe:
- tcpSocket:
- port: 8000
- initialDelaySeconds: 5
- periodSeconds: 10
- readinessProbe:
- tcpSocket:
- port: 8000
- initialDelaySeconds: 5
- periodSeconds: 10
- envFrom:
- - configMapRef:
- name: archivebox-cm
- ports:
- - name: web
- containerPort: 8000
- protocol: TCP
- resources:
- requests:
- cpu: 80m
- memory: 256Mi
- limits:
- cpu: 220m
- memory: 512Mi
- volumeMounts:
- - name: data-storage
- mountPath: /data
- volumes:
- - name: data-storage
- persistentVolumeClaim:
- claimName: archivebox-storage
diff --git a/apps/services/archivebox/base/ingress.yaml b/apps/services/archivebox/base/ingress.yaml
deleted file mode 100644
index bcbac9351..000000000
--- a/apps/services/archivebox/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: archivebox
- annotations:
- external-dns.alpha.kubernetes.io/hostname: archive.xn--qck4cud2cb.com
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
-spec:
- ingressClassName: nginx
- rules:
- - host: archive.xn--qck4cud2cb.com
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: actual
- port:
- name: web
- tls:
- - hosts:
- - archive.xn--qck4cud2cb.com
- secretName: archive-tls
diff --git a/apps/services/archivebox/base/kustomization.yaml b/apps/services/archivebox/base/kustomization.yaml
deleted file mode 100644
index 63b35a1cd..000000000
--- a/apps/services/archivebox/base/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- certificate.yaml
-- ingress.yaml
diff --git a/apps/services/archivebox/base/svc.yaml b/apps/services/archivebox/base/svc.yaml
deleted file mode 100644
index c66a3ec76..000000000
--- a/apps/services/archivebox/base/svc.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: archivebox
- labels:
- app: archivebox
- annotations:
- tailscale.com/hostname: "archive"
-spec:
- selector:
- app: archivebox
- ports:
- - name: web
- port: 80
- targetPort: 8000
- protocol: TCP
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/services/gitea/kustomization.yaml b/apps/services/gitea/kustomization.yaml
index cff6cff15..0e9934a94 100644
--- a/apps/services/gitea/kustomization.yaml
+++ b/apps/services/gitea/kustomization.yaml
@@ -4,6 +4,3 @@ bases:
- ./base
namespace: gitea
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/grocy/README.md b/apps/services/grocy/README.md
deleted file mode 100644
index 8f2d9af2a..000000000
--- a/apps/services/grocy/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Grocy
diff --git a/apps/services/grocy/base/cm.yaml b/apps/services/grocy/base/cm.yaml
deleted file mode 100644
index 32042472c..000000000
--- a/apps/services/grocy/base/cm.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grocy-cm
-data:
- GENERIC_TIMEZONE: "America/Sao_Paulo"
- TZ: "America/Sao_Paulo"
- PUID: "1000"
- PGID: "1000"
diff --git a/apps/services/grocy/base/deployment.yaml b/apps/services/grocy/base/deployment.yaml
deleted file mode 100644
index 7c8ea5105..000000000
--- a/apps/services/grocy/base/deployment.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: grocy
- labels:
- app: grocy
- annotations:
- link.argocd.argoproj.io/external-link: http://grocy
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: grocy
- template:
- metadata:
- labels:
- app: grocy
- spec:
- containers:
- - name: grocy
- image: lscr.io/linuxserver/grocy:v3.3.2-ls175
- envFrom:
- - configMapRef:
- name: grocy-cm
- ports:
- - name: web
- containerPort: 80
- protocol: TCP
- resources:
- requests:
- cpu: 80m
- memory: 256Mi
- limits:
- cpu: 220m
- memory: 512Mi
- volumeMounts:
- - name: config-storage
- mountPath: /config
- volumes:
- - name: config-storage
- persistentVolumeClaim:
- claimName: grocy-storage
diff --git a/apps/services/grocy/base/svc.yaml b/apps/services/grocy/base/svc.yaml
deleted file mode 100644
index 4d5c185b9..000000000
--- a/apps/services/grocy/base/svc.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: grocy-svc
- labels:
- app: grocy
- annotations:
- tailscale.com/hostname: "grocy"
-spec:
- selector:
- app: grocy
- ports:
- - name: web
- port: 80
- targetPort: 80
- protocol: TCP
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/services/grocy/kustomization.yaml b/apps/services/grocy/kustomization.yaml
deleted file mode 100644
index ab5c269c1..000000000
--- a/apps/services/grocy/kustomization.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: services
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: grocy
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/jupyter/README.md b/apps/services/jupyter/README.md
deleted file mode 100644
index 3ea742738..000000000
--- a/apps/services/jupyter/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Jupyterlab
diff --git a/apps/services/jupyter/base/certificate.yaml b/apps/services/jupyter/base/certificate.yaml
deleted file mode 100644
index 024e820e9..000000000
--- a/apps/services/jupyter/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: jupyterlab-cloudflare
-spec:
- secretName: lab-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: lab.gruber.dev.br
- dnsNames:
- - lab.gruber.dev.br
diff --git a/apps/services/jupyter/base/cm.yaml b/apps/services/jupyter/base/cm.yaml
deleted file mode 100644
index c509e10ba..000000000
--- a/apps/services/jupyter/base/cm.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: jupyterlab-config
-data:
- TZ: "America/Sao_Paulo"
- NB_USER: "root"
- CHOWN_HOME: "yes"
- GRANT_SUDO: "yes"
- RESTARTABLE: "yes"
- JUPYTER_PORT: "8888"
- DOCKER_STACKS_JUPYTER_CMD: "lab"
- WANDB_BASE_URL: "http://wandb.mlops.svc.cluster.local"
- WANDB_DIR: "/root/wandb"
- WANDB_CACHE_DIR: "/root/wandb/cache"
- WANDB_CONFIG_DIR: "/root/wandb/config"
- WANDB_MODE: "offline"
- WANDB_DISABLE_GIT: "true"
- WANDB_ERROR_REPORTING: "true"
diff --git a/apps/services/jupyter/base/cr.yaml b/apps/services/jupyter/base/cr.yaml
deleted file mode 100644
index 40c41e1b8..000000000
--- a/apps/services/jupyter/base/cr.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: wandb-job-creator
-rules:
-- apiGroups: [""]
- resources: ["pods", "pods/log", "secrets"]
- verbs: ["create", "get", "watch", "list", "update", "delete", "patch"]
-- apiGroups: ["batch"]
- resources: ["jobs", "jobs/status"]
- verbs: ["create", "get", "watch", "list", "update", "delete", "patch"]
diff --git a/apps/services/jupyter/base/deployment.yaml b/apps/services/jupyter/base/deployment.yaml
deleted file mode 100644
index 7ac510d80..000000000
--- a/apps/services/jupyter/base/deployment.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: jupyterlab
- labels:
- app: jupyterlab
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: jupyterlab
- template:
- metadata:
- labels:
- app: jupyterlab
- spec:
- serviceAccountName: wandb
- containers:
- - name: jupyterlab
- image: amalic/jupyterlab:latest
- securityContext:
- runAsUser: 0
- livenessProbe:
- tcpSocket:
- port: 8888
- initialDelaySeconds: 35
- periodSeconds: 15
- readinessProbe:
- tcpSocket:
- port: 8888
- initialDelaySeconds: 10
- periodSeconds: 10
- envFrom:
- - configMapRef:
- name: jupyterlab-config
- - secretRef:
- name: jupyterlab-vars
- ports:
- - name: http
- containerPort: 8888
- protocol: TCP
- resources:
- requests:
- cpu: 200m
- memory: 256Mi
- limits:
- cpu: 1000m
- memory: 1024Mi
- volumeMounts:
- - name: data-storage
- mountPath: /notebooks
- volumes:
- - name: data-storage
- persistentVolumeClaim:
- claimName: jupyterlab-storage
diff --git a/apps/services/jupyter/base/ingress.yaml b/apps/services/jupyter/base/ingress.yaml
deleted file mode 100644
index 050a05160..000000000
--- a/apps/services/jupyter/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: jupyterlab
- annotations:
- external-dns.alpha.kubernetes.io/hostname: lab.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
-spec:
- ingressClassName: nginx
- rules:
- - host: lab.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: jupyterlab
- port:
- name: http
- tls:
- - hosts:
- - lab.gruber.dev.br
- secretName: lab-tls
diff --git a/apps/services/jupyter/base/kustomization.yaml b/apps/services/jupyter/base/kustomization.yaml
deleted file mode 100644
index f088d46a4..000000000
--- a/apps/services/jupyter/base/kustomization.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- certificate.yaml
-- ingress.yaml
-- secret.yaml
-- rb.yaml
-- role.yaml
-- sa.yaml
-- cr.yaml
diff --git a/apps/services/jupyter/base/rb.yaml b/apps/services/jupyter/base/rb.yaml
deleted file mode 100644
index 3ef80ac02..000000000
--- a/apps/services/jupyter/base/rb.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: wandb-launch-role-binding
- namespace: mlops
-subjects:
-- kind: ServiceAccount
- name: wandb
- namespace: mlops
-roleRef:
- kind: Role
- name: wandb-launch-agent
- apiGroup: rbac.authorization.k8s.io
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: wandb-cr
- namespace: mlops
-subjects:
-- kind: ServiceAccount
- name: wandb
- namespace: mlops
-roleRef:
- kind: ClusterRole
- name: wandb-job-creator
- apiGroup: rbac.authorization.k8s.io
diff --git a/apps/services/jupyter/base/role.yaml b/apps/services/jupyter/base/role.yaml
deleted file mode 100644
index 913005a84..000000000
--- a/apps/services/jupyter/base/role.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- namespace: wandb-launch-agent
- name: mlops
-rules:
-- apiGroups: [""]
- resources: ["pods", "configmaps", "secrets", "pods/log"]
- verbs: ["create", "get", "watch", "list", "update", "delete", "patch"]
-- apiGroups: ["batch"]
- resources: ["jobs", "jobs/status"]
- verbs: ["create", "get", "watch", "list", "update", "delete", "patch"]
diff --git a/apps/services/jupyter/base/sa.yaml b/apps/services/jupyter/base/sa.yaml
deleted file mode 100644
index abb50a456..000000000
--- a/apps/services/jupyter/base/sa.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: wandb
diff --git a/apps/services/jupyter/base/secret.yaml b/apps/services/jupyter/base/secret.yaml
deleted file mode 100644
index 8344c1d17..000000000
--- a/apps/services/jupyter/base/secret.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
- name: jupyterlab-vars
- annotations:
- avp.kubernetes.io/path: "kv/data/mlops"
-stringData:
- WANDB_API_KEY:
- OPENAI_API_KEY:
diff --git a/apps/services/jupyter/base/svc.yaml b/apps/services/jupyter/base/svc.yaml
deleted file mode 100644
index a8f2b5172..000000000
--- a/apps/services/jupyter/base/svc.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: jupyterlab
- labels:
- app: jupyterlab
- annotations:
- tailscale.com/hostname: "lab"
-spec:
- selector:
- app: jupyterlab
- ports:
- - name: http
- port: 80
- targetPort: 8888
- protocol: TCP
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/services/jupyter/kustomization.yaml b/apps/services/jupyter/kustomization.yaml
deleted file mode 100644
index 8376fb2d8..000000000
--- a/apps/services/jupyter/kustomization.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: mlops
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: jupyterlab
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/librex/README.md b/apps/services/librex/README.md
deleted file mode 100644
index 9d34e9938..000000000
--- a/apps/services/librex/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## LibreX
diff --git a/apps/services/librex/base/cm.yaml b/apps/services/librex/base/cm.yaml
deleted file mode 100644
index ae576cc93..000000000
--- a/apps/services/librex/base/cm.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: librex-cm
- labels:
- app: librex
-data:
- PUID: "1000"
- PGID: "1000"
- VERSION: "docker"
- TZ: "America/Sao_Paulo"
- CONFIG_GOOGLE_DOMAIN: "com"
- CONFIG_GOOGLE_LANGUAGE_SITE: "en"
- CONFIG_GOOGLE_LANGUAGE_RESULTS: "en"
- CONFIG_WIKIPEDIA_LANGUAGE: "en"
diff --git a/apps/services/librex/base/deployment.yaml b/apps/services/librex/base/deployment.yaml
deleted file mode 100644
index 6a620c4f1..000000000
--- a/apps/services/librex/base/deployment.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: librex
- labels:
- app: librex
- annotations:
- link.argocd.argoproj.io/external-link: http://g.gruber.dev.br
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: librex
- template:
- metadata:
- labels:
- app: librex
- spec:
- containers:
- - name: librex
- image: librex/librex:latest@sha256:f78bc8a29587421da96a80310ce942e5ebca1a05b32a7a39d2264c0a3a55a8db
- envFrom:
- - configMapRef:
- name: librex-cm
- ports:
- - name: web
- containerPort: 8080
- protocol: TCP
- resources:
- requests:
- cpu: 100m
- memory: 128Mi
- limits:
- cpu: 350m
- memory: 400Mi
diff --git a/apps/services/librex/base/ingress.yaml b/apps/services/librex/base/ingress.yaml
deleted file mode 100644
index 5a3e117b7..000000000
--- a/apps/services/librex/base/ingress.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: librex
- labels:
- app: librex
- annotations:
- external-dns.alpha.kubernetes.io/hostname: g.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
-spec:
- ingressClassName: nginx
- rules:
- - host: g.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: librex-tailscale
- port:
- name: web
- tls:
- - hosts:
- - g.gruber.dev.br
- secretName: librex-tls
diff --git a/apps/services/librex/base/kustomization.yaml b/apps/services/librex/base/kustomization.yaml
deleted file mode 100644
index 076dd8f1a..000000000
--- a/apps/services/librex/base/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- ingress.yaml
-- certificate.yaml
diff --git a/apps/services/librex/base/svc.yaml b/apps/services/librex/base/svc.yaml
deleted file mode 100644
index fb72f8a0a..000000000
--- a/apps/services/librex/base/svc.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: librex-tailscale
- labels:
- app: librex
- annotations:
- tailscale.com/hostname: "librex"
-spec:
- selector:
- app: librex
- ports:
- - name: web
- port: 80
- targetPort: 8080
- protocol: TCP
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/services/librex/kustomization.yaml b/apps/services/librex/kustomization.yaml
deleted file mode 100644
index 7ca5ddfde..000000000
--- a/apps/services/librex/kustomization.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: services
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: librex
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/mlops/chatbot-ui/README.md b/apps/services/mlops/chatbot-ui/README.md
deleted file mode 100644
index bfc9908d5..000000000
--- a/apps/services/mlops/chatbot-ui/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Chatbot-UI
diff --git a/apps/services/mlops/chatbot-ui/base/certificate.yaml b/apps/services/mlops/chatbot-ui/base/certificate.yaml
deleted file mode 100644
index edfdd3b74..000000000
--- a/apps/services/mlops/chatbot-ui/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: openai-internal-gpt
-spec:
- secretName: gpt-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: gpt.gruber.dev.br
- dnsNames:
- - gpt.gruber.dev.br
diff --git a/apps/services/mlops/chatbot-ui/base/cm.yaml b/apps/services/mlops/chatbot-ui/base/cm.yaml
deleted file mode 100644
index a987eae52..000000000
--- a/apps/services/mlops/chatbot-ui/base/cm.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: chatui-config
-data:
- OPENAI_API_BASE_URL: "http://local-ai.mlops.svc.cluster.local"
- OPENAI_API_MODEL: "gpt-3.5-turbo"
- OPENAI_API_KEY: "example"
- HTTPS_PROXY: ""
diff --git a/apps/services/mlops/chatbot-ui/base/deployment.yaml b/apps/services/mlops/chatbot-ui/base/deployment.yaml
deleted file mode 100644
index f87827ec5..000000000
--- a/apps/services/mlops/chatbot-ui/base/deployment.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: chatui
- labels:
- app: chatui
-spec:
- selector:
- matchLabels:
- app: chatui
- replicas: 1
- strategy:
- type: Recreate
- template:
- metadata:
- name: chatui
- labels:
- app: chatui
- spec:
- containers:
- - name: chatbot-ui
- image: docker.io/ddiu8081/chatgpt-demo:latest
- ports:
- - name: http
- containerPort: 3000
- protocol: TCP
- resources:
- limits:
- cpu: 300m
- memory: 512Mi
- requests:
- cpu: 100m
- memory: 256Mi
- envFrom:
- - configMapRef:
- name: chatui-config
diff --git a/apps/services/mlops/chatbot-ui/base/ingress.yaml b/apps/services/mlops/chatbot-ui/base/ingress.yaml
deleted file mode 100644
index 577c488c6..000000000
--- a/apps/services/mlops/chatbot-ui/base/ingress.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: gpt-internal
- annotations:
- external-dns.alpha.kubernetes.io/hostname: gpt.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
-
-spec:
- ingressClassName: nginx
- rules:
- - host: gpt.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: chatui-tailscale
- port:
- name: http
- tls:
- - hosts:
- - gpt.gruber.dev.br
- secretName: gpt-tls
diff --git a/apps/services/mlops/chatbot-ui/base/kustomization.yaml b/apps/services/mlops/chatbot-ui/base/kustomization.yaml
deleted file mode 100644
index 076dd8f1a..000000000
--- a/apps/services/mlops/chatbot-ui/base/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- ingress.yaml
-- certificate.yaml
diff --git a/apps/services/mlops/chatbot-ui/base/svc.yaml b/apps/services/mlops/chatbot-ui/base/svc.yaml
deleted file mode 100644
index 968d85745..000000000
--- a/apps/services/mlops/chatbot-ui/base/svc.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: chatui
- labels:
- app: chatui
-spec:
- selector:
- app: chatui
- ports:
- - name: http
- port: 80
- targetPort: 3000
- protocol: TCP
- type: ClusterIP
----
-apiVersion: v1
-kind: Service
-metadata:
- name: chatui-tailscale
- labels:
- app: chatui
- annotations:
- tailscale.com/hostname: "gpt"
-spec:
- selector:
- app: chatui
- ports:
- - name: http
- port: 80
- targetPort: 3000
- protocol: TCP
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/services/mlops/chatbot-ui/kustomization.yaml b/apps/services/mlops/chatbot-ui/kustomization.yaml
deleted file mode 100644
index 249240e46..000000000
--- a/apps/services/mlops/chatbot-ui/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-namespace: mlops
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/mlops/discord-bot/README.md b/apps/services/mlops/discord-bot/README.md
deleted file mode 100644
index b30c4d96b..000000000
--- a/apps/services/mlops/discord-bot/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## ChatGPT bot for Discord
diff --git a/apps/services/mlops/discord-bot/base/cm.yaml b/apps/services/mlops/discord-bot/base/cm.yaml
deleted file mode 100644
index 31b53095b..000000000
--- a/apps/services/mlops/discord-bot/base/cm.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: chatgpt-discord-config
-data:
- TZ: "America/Sao_Paulo"
- OPENAI_API_BASE: "http://local-ai.mlops.svc.cluster.local"
diff --git a/apps/services/mlops/discord-bot/base/deployment.yaml b/apps/services/mlops/discord-bot/base/deployment.yaml
deleted file mode 100644
index 209db1d9a..000000000
--- a/apps/services/mlops/discord-bot/base/deployment.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: chatgpt-discord
- labels:
- app: chatgpt-discord
-
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: chatgpt-discord
- template:
- metadata:
- labels:
- app: chatgpt-discord
- spec:
- containers:
- - name: bot
- image: quay.io/go-skynet/gpt-discord-bot:main
- imagePullPolicy: Always
- envFrom:
- - configMapRef:
- name: chatgpt-discord-config
- - secretRef:
- name: chatgpt-discord-vars
- ports:
- - name: web
- containerPort: 8080
- protocol: TCP
- resources:
- requests:
- cpu: 120m
- memory: 256Mi
- limits:
- cpu: 220m
- memory: 512Mi
diff --git a/apps/services/mlops/discord-bot/base/secret.yaml b/apps/services/mlops/discord-bot/base/secret.yaml
deleted file mode 100644
index 9842386e9..000000000
--- a/apps/services/mlops/discord-bot/base/secret.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
- name: chatgpt-discord-vars
- annotations:
- avp.kubernetes.io/path: "kv/data/chatgpt"
-stringData:
- DISCORD_BOT_TOKEN:
- SESSION_TOKEN:
- OPENAI_EMAIL:
- OPENAI_PASSWORD:
- OPENAI_API_KEY:
- DISCORD_CHANNEL_ID:
- REPLYING_ALL_DISCORD_CHANNEL_ID:
- ALLOWED_SERVER_IDS: ,,
- DISCORD_CLIENT_ID:
- SERVER_TO_MODERATION_CHANNEL: :,:,:
diff --git a/apps/services/mlops/discord-bot/kustomization.yaml b/apps/services/mlops/discord-bot/kustomization.yaml
deleted file mode 100644
index 6731700c5..000000000
--- a/apps/services/mlops/discord-bot/kustomization.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: mlops
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: chatgpt-discord
diff --git a/apps/services/mlops/kustomization.yaml b/apps/services/mlops/kustomization.yaml
deleted file mode 100644
index 05ca38e8a..000000000
--- a/apps/services/mlops/kustomization.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
- # - local-ai/
- # - langflow/
- - chatbot-ui/
diff --git a/apps/services/mlops/langflow/README.md b/apps/services/mlops/langflow/README.md
deleted file mode 100644
index bfc9908d5..000000000
--- a/apps/services/mlops/langflow/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Chatbot-UI
diff --git a/apps/services/mlops/langflow/base/certificate.yaml b/apps/services/mlops/langflow/base/certificate.yaml
deleted file mode 100644
index 80d272e04..000000000
--- a/apps/services/mlops/langflow/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: langflow
-spec:
- secretName: lang-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: lang.gruber.dev.br
- dnsNames:
- - lang.gruber.dev.br
diff --git a/apps/services/mlops/langflow/base/cm.yaml b/apps/services/mlops/langflow/base/cm.yaml
deleted file mode 100644
index 7305fb07b..000000000
--- a/apps/services/mlops/langflow/base/cm.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: langflow-config
-data:
- LANGFLOW_LOG_LEVEL: "critical"
- LANGFLOW_LOG_FILE: "logs/langflow.log"
- LANGFLOW_HOST: "0.0.0.0"
- LANGFLOW_DATABASE_URL: "sqlite:///./langflow.db"
- LANGFLOW_OPEN_BROWSER: "false"
- LANGFLOW_WORKERS: "1"
diff --git a/apps/services/mlops/langflow/base/deployment.yaml b/apps/services/mlops/langflow/base/deployment.yaml
deleted file mode 100644
index 04165818c..000000000
--- a/apps/services/mlops/langflow/base/deployment.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: langflow
- labels:
- app: langflow
-spec:
- selector:
- matchLabels:
- app: langflow
- replicas: 1
- strategy:
- type: Recreate
- template:
- metadata:
- name: langflow
- labels:
- app: langflow
- spec:
- containers:
- - name: langflow-server
- image: docker.io/grubertech/langflow:v0.4.8
- ports:
- - name: http
- containerPort: 7860
- protocol: TCP
- resources:
- limits:
- cpu: 300m
- memory: 512Mi
- requests:
- cpu: 100m
- memory: 256Mi
- envFrom:
- - configMapRef:
- name: langflow-config
diff --git a/apps/services/mlops/langflow/base/ingress.yaml b/apps/services/mlops/langflow/base/ingress.yaml
deleted file mode 100644
index d6b5c6323..000000000
--- a/apps/services/mlops/langflow/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: langflow-internal
- annotations:
- external-dns.alpha.kubernetes.io/hostname: lang.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
-spec:
- ingressClassName: nginx
- rules:
- - host: lang.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: lang-internal
- port:
- name: http
- tls:
- - hosts:
- - lang.gruber.dev.br
- secretName: lang-tls
diff --git a/apps/services/mlops/langflow/base/kustomization.yaml b/apps/services/mlops/langflow/base/kustomization.yaml
deleted file mode 100644
index 076dd8f1a..000000000
--- a/apps/services/mlops/langflow/base/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- ingress.yaml
-- certificate.yaml
diff --git a/apps/services/mlops/langflow/base/svc.yaml b/apps/services/mlops/langflow/base/svc.yaml
deleted file mode 100644
index 27547dfb9..000000000
--- a/apps/services/mlops/langflow/base/svc.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
- name: lang-internal
- labels:
- app: langflow
- annotations:
- kube-vip.io/vipHost: langflow
-spec:
- ports:
- - name: http
- port: 80
- protocol: TCP
- targetPort: 7860
- selector:
- app: langflow
- type: LoadBalancer
- loadBalancerIP: "192.168.1.151"
- loadBalancerClass: kube-vip.io/kube-vip-class
diff --git a/apps/services/mlops/langflow/kustomization.yaml b/apps/services/mlops/langflow/kustomization.yaml
deleted file mode 100644
index 249240e46..000000000
--- a/apps/services/mlops/langflow/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-namespace: mlops
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/mlops/local-ai/README.md b/apps/services/mlops/local-ai/README.md
deleted file mode 100644
index 869e59d5c..000000000
--- a/apps/services/mlops/local-ai/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## LocalAI
diff --git a/apps/services/mlops/local-ai/base/certificate.yaml b/apps/services/mlops/local-ai/base/certificate.yaml
deleted file mode 100644
index 38267159d..000000000
--- a/apps/services/mlops/local-ai/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: localai
-spec:
- secretName: localai-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: openai.gruber.dev.br
- dnsNames:
- - openai.gruber.dev.br
diff --git a/apps/services/mlops/local-ai/base/cm.yaml b/apps/services/mlops/local-ai/base/cm.yaml
deleted file mode 100644
index b1babff5b..000000000
--- a/apps/services/mlops/local-ai/base/cm.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: localai-config
-data:
- CONTEXT_SIZE: "2048"
- THREADS: "4"
- MODELS_PATH: "/models"
- CORS: "true"
- CORS_ALLOWS_ORIGINS: "*"
- DEBUG: "true"
- BUILD_TYPE: "cublas"
- NVIDIA_VISIBLE_DEVICES: "all"
- NVIDIA_DRIVER_CAPABILITIES: "all"
- NVIDIA_REQUIRE_CUDA: "cuda>=11.0"
- REBUILD: "false"
- PRELOAD_MODELS: '[{"url": "github:gruberdev/homelab/apps/services/mlops/local-ai/models/orca.yaml", "name": "gpt-3.5-turbo"}]'
- GALLERIES: '[{"name":"model-gallery", "url":"github:go-skynet/model-gallery/index.yaml"},{"url": "github:go-skynet/model-gallery/huggingface.yaml","name":"huggingface"},{"url": "github:gruberdev/homelab/apps/services/mlops/local-ai/models/index.yaml","name":"personal"}]'
diff --git a/apps/services/mlops/local-ai/base/deployment.yaml b/apps/services/mlops/local-ai/base/deployment.yaml
deleted file mode 100644
index 967485431..000000000
--- a/apps/services/mlops/local-ai/base/deployment.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: local-ai
- labels:
- app: local-ai
-spec:
- selector:
- matchLabels:
- app: local-ai
- replicas: 1
- strategy:
- type: Recreate
- template:
- metadata:
- name: local-ai
- labels:
- app: local-ai
- spec:
- runtimeClassName: nvidia
- containers:
- - name: local-ai
- image: quay.io/go-skynet/local-ai:sha-98ad93d-cublas-cuda11-ffmpeg
- ports:
- - name: http
- containerPort: 8080
- protocol: TCP
- livenessProbe:
- tcpSocket:
- port: 8080
- initialDelaySeconds: 35
- periodSeconds: 10
- readinessProbe:
- tcpSocket:
- port: 8080
- initialDelaySeconds: 10
- periodSeconds: 10
- startupProbe:
- tcpSocket:
- port: 8080
- initialDelaySeconds: 30
- periodSeconds: 30
- failureThreshold: 10
- resources:
- limits:
- cpu: 6000m
- memory: 16Gi
- requests:
- cpu: 1000m
- memory: 2Gi
- envFrom:
- - configMapRef:
- name: localai-config
- volumeMounts:
- - mountPath: /models
- name: models
- volumes:
- - name: models
- persistentVolumeClaim:
- claimName: localai-storage
- - name: prompt-templates
- configMap:
- name: local-ai-prompt-templates
diff --git a/apps/services/mlops/local-ai/base/ingress.yaml b/apps/services/mlops/local-ai/base/ingress.yaml
deleted file mode 100644
index 0ab7e6916..000000000
--- a/apps/services/mlops/local-ai/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: localai-internal
- annotations:
- external-dns.alpha.kubernetes.io/hostname: openai.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
-spec:
- ingressClassName: nginx
- rules:
- - host: openai.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: local-ai-tailscale
- port:
- name: http
- tls:
- - hosts:
- - openai.gruber.dev.br
- secretName: localai-tls
diff --git a/apps/services/mlops/local-ai/base/kustomization.yaml b/apps/services/mlops/local-ai/base/kustomization.yaml
deleted file mode 100644
index 076dd8f1a..000000000
--- a/apps/services/mlops/local-ai/base/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- ingress.yaml
-- certificate.yaml
diff --git a/apps/services/mlops/local-ai/base/svc.yaml b/apps/services/mlops/local-ai/base/svc.yaml
deleted file mode 100644
index 5e1b6fc02..000000000
--- a/apps/services/mlops/local-ai/base/svc.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: local-ai
- labels:
- app: local-ai
-spec:
- selector:
- app: local-ai
- ports:
- - name: http
- port: 80
- targetPort: 8080
- protocol: TCP
- type: ClusterIP
----
-apiVersion: v1
-kind: Service
-metadata:
- name: local-ai-tailscale
- labels:
- app: local-ai
- annotations:
- tailscale.com/hostname: "openai"
-spec:
- selector:
- app: local-ai
- ports:
- - name: http
- port: 80
- targetPort: 8080
- protocol: TCP
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/services/mlops/local-ai/kustomization.yaml b/apps/services/mlops/local-ai/kustomization.yaml
deleted file mode 100644
index 405ad6f1b..000000000
--- a/apps/services/mlops/local-ai/kustomization.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: mlops
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- target:
- kind: Deployment
- name: local-ai
-
-images:
-- name: quay.io/go-skynet/local-ai
- newTag: sha-63e1f8f-cublas-cuda11-ffmpeg
diff --git a/apps/services/mlops/local-ai/models/chronos.yaml b/apps/services/mlops/local-ai/models/chronos.yaml
deleted file mode 100644
index 66879c1b5..000000000
--- a/apps/services/mlops/local-ai/models/chronos.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-name: "chronos"
-
-description: |
- Austism's Chronos Hermes 13B GGML
-
-license: "Other"
-urls:
-- https://huggingface.co/The-Face-Of-Goonery/Chronos-Beluga-v2-13b-ggml
-
-config_file: |
- name: chronos
- gpu_layers: 1000
- debug: true
- mmap: false
- f16: true
- embeddings: false
- prompt_cache_all: true
- prompt_cache_ro: false
- low_vram: true
- backend: llama
- parameters:
- model: ggml-chronos-beluga-q4_1.bin
- top_k: 80
- temperature: 1
- top_p: 0.7
- context_size: 1024
- template:
- completion: chronos-completion
- chat: chronos-chat
-
-files:
-- filename: "ggml-chronos-beluga-q4_1.bin"
- uri: "https://huggingface.co/The-Face-Of-Goonery/Chronos-Beluga-v2-13b-ggml/resolve/main/ggml-chronos-beluga-q4_1.bin"
-
-prompt_templates:
-- name: "chronos-completion"
- content: |
- {{.Input}}
-
-- name: "chronos-chat"
- content: |
- The prompt below is a question to answer, a task to complete, or a conversation to respond to; decide which and write an appropriate response.
- ### Prompt:
- {{.Input}}
- ### Response:
diff --git a/apps/services/mlops/local-ai/models/e5.yaml b/apps/services/mlops/local-ai/models/e5.yaml
deleted file mode 100644
index a6b1db617..000000000
--- a/apps/services/mlops/local-ai/models/e5.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-name: "e5-embeddings"
-license: "MIT"
-urls:
-- https://huggingface.co/gruber/e5-small-v2-ggml
-- https://huggingface.co/intfloat/e5-small-v2
-description: |
- This model is based on intfloat/e5-small-v2 for sentence similarity and embedding texts on vector databases.
-config_file: |
- parameters:
- model: ggml-model-q4_0.bin
- backend: bert-embeddings
- embeddings: true
-files:
-- filename: "ggml-model-q4_0.bin"
- sha256: "9b5a9eaf92eb990ebdac8d3c0795b8ed2ab40776ffb096104420f43850091cc5"
- uri: "https://huggingface.co/gruber/e5-small-v2-ggml/resolve/main/ggml-model-q4_0.bin"
diff --git a/apps/services/mlops/local-ai/models/embeddings.yaml b/apps/services/mlops/local-ai/models/embeddings.yaml
deleted file mode 100644
index 13dd455bd..000000000
--- a/apps/services/mlops/local-ai/models/embeddings.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: "bert-embeddings"
-license: "Apache 2.0"
-urls:
-- https://huggingface.co/skeskinen/ggml
-description: |
- Bert model that can be used for embeddings
-config_file: |
- parameters:
- model: bert-MiniLM-L6-v2q4_0
- backend: bert-embeddings
- embeddings: true
-files:
-- filename: "bert-MiniLM-L6-v2q4_0"
- sha256: "a5a174d8772c8a569faf9f3136c441f2c3855b5bf35ed32274294219533feaad"
- uri: "https://huggingface.co/skeskinen/ggml/resolve/main/all-MiniLM-L6-v2/ggml-model-q4_0.bin"
diff --git a/apps/services/mlops/local-ai/models/hermes.yaml b/apps/services/mlops/local-ai/models/hermes.yaml
deleted file mode 100644
index b43b635d1..000000000
--- a/apps/services/mlops/local-ai/models/hermes.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-name: "hermes"
-
-description: |
- Nous Hermes Llama 2 13B GGML
-
-license: "Other"
-urls:
-- https://huggingface.co/TheBloke/Nous-Hermes-Llama2-GGML
-
-config_file: |
- name: hermes
- gpu_layers: 1000
- debug: true
- mmap: false
- f16: true
- embeddings: false
- prompt_cache_all: true
- prompt_cache_ro: false
- low_vram: true
- backend: llama
- parameters:
- model: nous-hermes-llama2-13b.ggmlv3.q5_K_M.bin
- top_k: 80
- temperature: 1
- top_p: 0.7
- context_size: 1024
- template:
- completion: hermes-completion
- chat: hermes-chat
-
-files:
-- filename: "nous-hermes-llama2-13b.ggmlv3.q5_K_M.bin"
- uri: "https://huggingface.co/TheBloke/Nous-Hermes-Llama2-GGML/resolve/main/nous-hermes-llama2-13b.ggmlv3.q5_K_M.bin"
-
-prompt_templates:
-- name: "hermes-completion"
- content: |
- {{.Input}}
-
-- name: "hermes-chat"
- content: |
- The prompt below is a question to answer, a task to complete, or a conversation to respond to; decide which and write an appropriate response.
- ### Prompt:
- {{.Input}}
- ### Response:
diff --git a/apps/services/mlops/local-ai/models/index.yaml b/apps/services/mlops/local-ai/models/index.yaml
deleted file mode 100644
index 2c5051b13..000000000
--- a/apps/services/mlops/local-ai/models/index.yaml
+++ /dev/null
@@ -1,124 +0,0 @@
-## Whisper
-- url: "github:gruberdev/homelab/apps/services/chatgpt/local-ai/models/whisper.yaml"
- name: "whisper"
- license: other
-## Bert embeddings
-- url: "github:gruberdev/homelab/apps/services/chatgpt/local-ai/models/embeddings.yaml"
- name: "embeddings"
- license: other
- ## Stable Diffusion
-- url: "github:gruberdev/homelab/apps/services/chatgpt/local-ai/models/wizard.yaml"
- name: Vicuna-13B-Uncensored-GGML-q41
- license: other
- urls:
- - https://huggingface.co/TheBloke/Wizard-Vicuna-13B-Uncensored-GGML
- tags:
- - en
- - adapter-transformers
- - vicuna
- - ggml
- - conversational
- - uncensored
- files:
- - filename: Wizard-Vicuna-13B-Uncensored.Q5_K_M.gguf
- sha256: d7aab1372891c3fefb9e6970adcfa06d7f8ee96e91c236751d77b7cdfc096be1
- uri: https://huggingface.co/TheBloke/Wizard-Vicuna-13B-Uncensored-GGUF/resolve/main/Wizard-Vicuna-13B-Uncensored.Q5_K_M.gguf
-- url: "github:gruberdev/homelab/apps/services/chatgpt/local-ai/models/chronos.yaml"
- name: chronos-hermes-13B-q50
- license: other
- urls:
- - https://huggingface.co/TheBloke/chronos-hermes-13B-GGML
- tags:
- - en
- - adapter-transformers
- - vicuna
- - ggml
- - conversational
- - uncensored
- files:
- - filename: chronos-hermes-13b.ggmlv3.q5_0.bin
- sha256: 5230b3a9b633ce90dfb3298d95f4ba9826ffd398cb23177b37507f6df61cc189
- uri: https://huggingface.co/TheBloke/chronos-hermes-13B-GGML/resolve/main/chronos-hermes-13b.ggmlv3.q5_0.bin
-- url: "github:gruberdev/homelab/apps/services/chatgpt/local-ai/models/llama2.yaml"
- name: llama2
- license: other
- urls:
- - https://huggingface.co/TheBloke/Llama-2-13B-chat-GGML
- - https://huggingface.co/meta-llama/Llama-2-13b-chat-hf
- - https://huggingface.co/TheBloke/Llama-2-13B-chat-GPTQ
- tags:
- - en
- - llama
- - ggmlC
- - conversational
- - vanilla
- - chat
- files:
- - filename: llama-2-13b-chat.ggmlv3.q4_K_M.bin
- sha256: 41d647de4f9700aeaff878805ba68d603a53ea50d4580e72d1ca503d886a4f03
- uri: https://huggingface.co/TheBloke/Llama-2-13B-chat-GGML/resolve/main/llama-2-13b-chat.ggmlv3.q4_K_M.bin
-- url: "github:gruberdev/homelab/apps/services/chatgpt/local-ai/models/hermes.yaml"
- name: hermes
- license: other
- urls:
- - https://huggingface.co/TheBloke/Nous-Hermes-Llama2-GGML
- tags:
- - en
- - llama2
- - ggml
- - conversational
- - vanilla
- - roleplay
- - chat
- files:
- - filename: nous-hermes-llama2-13b.ggmlv3.q5_K_M.bin
- sha256: 7b339c3db12a2d49786388a3221911de67ab24d155e640f6024a5a96110be5da
- uri: https://huggingface.co/TheBloke/Nous-Hermes-Llama2-GGML/resolve/main/nous-hermes-llama2-13b.ggmlv3.q5_K_M.bin
-- url: "github:gruberdev/homelab/apps/services/chatgpt/local-ai/models/orca.yaml"
- name: orca
- license: other
- urls:
- - https://huggingface.co/TheBloke/OpenOrca-Platypus2-13B-GGML
- tags:
- - en
- - llama2
- - ggml
- - conversational
- - vanilla
- - censured
- - chat
- files:
- - filename: openorca-platypus2-13b.ggmlv3.q5_K_M.bin
- sha256: c887fc1d8ae0511ec3fe677027625359a51c5672602fce83293584a8c5e941c7
- uri: https://huggingface.co/TheBloke/OpenOrca-Platypus2-13B-GGML/resolve/main/openorca-platypus2-13b.ggmlv3.q5_K_M.bin
-- url: "github:gruberdev/homelab/apps/services/chatgpt/local-ai/models/mythos.yaml"
- name: mythos
- license: other
- urls:
- - https://huggingface.co/TheBloke/MythoMax-L2-13B-GGML
- - https://huggingface.co/Gryphe/MythoMax-L2-13b
- tags:
- - en
- - llama2
- - ggml
- - conversational
- - roleplay
- - chat
- files:
- - filename: mythomax-l2-13b.ggmlv3.q5_K_M.bin
- sha256: c3ddd2874e4b9a7d8ba43f227929f1e0b947b39bf9c46c1343f5f94cf0469910
- uri: https://huggingface.co/TheBloke/MythoMax-L2-13B-GGML/resolve/main/mythomax-l2-13b.ggmlv3.q5_K_M.bin
-- url: "github:gruberdev/homelab/apps/services/chatgpt/local-ai/models/wizardcoder.yaml"
- name: wizardcoder
- license: other
- urls:
- - https://huggingface.co/TheBloke/WizardCoder-Guanaco-15B-V1.0-GGML
- tags:
- - en
- - codegen
- - ggml
- - conversational
- files:
- - filename: wizardcoder-guanaco-15b-v1.0.ggmlv1.q4_0.bin
- sha256: 4708d9248b85b76a7bb85ac9bb586cacac4df8923dda9b09189babe326a61d94
- uri: https://huggingface.co/TheBloke/WizardCoder-Guanaco-15B-V1.0-GGML/resolve/main/wizardcoder-guanaco-15b-v1.0.ggmlv1.q4_0.bin
diff --git a/apps/services/mlops/local-ai/models/llama2-complete.yaml b/apps/services/mlops/local-ai/models/llama2-complete.yaml
deleted file mode 100644
index 03fbb3b0f..000000000
--- a/apps/services/mlops/local-ai/models/llama2-complete.yaml
+++ /dev/null
@@ -1,43 +0,0 @@
-name: "llama2-complete"
-
-description: |
- Meta's Llama 2 13B-chat GGML
-
-license: "Other"
-urls:
-- https://huggingface.co/TheBloke/Llama-2-13B-GGML
-
-config_file: |
- name: llama2-complete
- gpu_layers: 1000
- debug: true
- mmap: false
- f16: true
- embeddings: false
- prompt_cache_all: true
- prompt_cache_ro: false
- low_vram: true
- backend: llama
- parameters:
- model: llama-2-13b-chat.ggmlv3.q4_K_M.bin
- top_k: 80
- temperature: 1
- top_p: 0.7
- context_size: 2048
- template:
- chat_message: llama2-chat-message
- system_prompt: |
- You are an AI assistant. You should describe the task and explain your answer. While answering a multiple choice question, first output the correct answer(s). Then explain why other answers are wrong. You might need to use additional knowledge to answer the question.
-files:
-- filename: "llama-2-13b-chat.ggmlv3.q4_K_M.bin"
- uri: "https://huggingface.co/TheBloke/Llama-2-13B-chat-GGML/resolve/main/llama-2-13b-chat.ggmlv3.q4_K_M.bin"
-
-prompt_templates:
-- name: "llama2-chat-message"
- content: |
- {{if eq .RoleName "assistant"}}{{.Content}}{{else}}
- [INST]
- {{if eq .RoleName "system"}}<>{{.Content}}<>{{else if and (.SystemPrompt) (eq .MessageIndex 0)}}<>{{.SystemPrompt}}<>{{end}}
- {{if .Content}}{{.Content}}{{end}}
- [/INST]
- {{end}}
diff --git a/apps/services/mlops/local-ai/models/llama2.yaml b/apps/services/mlops/local-ai/models/llama2.yaml
deleted file mode 100644
index 9b7d3850f..000000000
--- a/apps/services/mlops/local-ai/models/llama2.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-name: "llama2"
-
-description: |
- Meta's Llama 2 13B-chat GGML
-
-license: "Other"
-urls:
-- https://huggingface.co/TheBloke/Llama-2-13B-chat-GGML
-- https://huggingface.co/meta-llama/Llama-2-13b-chat-hf
-- https://huggingface.co/TheBloke/Llama-2-13B-chat-GPTQ
-
-config_file: |
- name: llama2
- gpu_layers: 1000
- debug: true
- mmap: false
- f16: true
- embeddings: false
- prompt_cache_all: true
- prompt_cache_ro: false
- low_vram: true
- backend: llama
- parameters:
- model: llama-2-13b-chat.ggmlv3.q4_K_M.bin
- top_k: 80
- temperature: 1
- top_p: 0.7
- context_size: 2048
- template:
- chat_message: llama2-chat-message
- system_prompt: |
- You are an AI assistant. You should describe the task and explain your answer. While answering a multiple choice question, first output the correct answer(s). Then explain why other answers are wrong. You might need to use additional knowledge to answer the question.
-files:
-- filename: "llama-2-13b-chat.ggmlv3.q4_K_M.bin"
- uri: "https://huggingface.co/TheBloke/Llama-2-13B-chat-GGML/resolve/main/llama-2-13b-chat.ggmlv3.q4_K_M.bin"
-
-prompt_templates:
-- name: "llama2-chat-message"
- content: |
- {{if eq .RoleName "assistant"}}{{.Content}}{{else}}
- [INST]
- {{if eq .RoleName "system"}}<>{{.Content}}<>{{else if and (.SystemPrompt) (eq .MessageIndex 0)}}<>{{.SystemPrompt}}<>{{end}}
- {{if .Content}}{{.Content}}{{end}}
- [/INST]
- {{end}}
diff --git a/apps/services/mlops/local-ai/models/mythos.yaml b/apps/services/mlops/local-ai/models/mythos.yaml
deleted file mode 100644
index bfead5611..000000000
--- a/apps/services/mlops/local-ai/models/mythos.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: "mythos"
-
-description: |
- An improved, potentially even perfected variant of MythoMix,
- my MythoLogic-L2 and Huginn merge using a highly experimental
- tensor type merge technique. The main difference with MythoMix
- is that I allowed more of Huginn to intermingle with the single
- tensors located at the front and end of a model, resulting in
- increased coherency across the entire structure.
-
-license: "Other"
-urls:
-- https://huggingface.co/TheBloke/MythoMax-L2-13B-GGML
-
-config_file: |
- name: mythos
- gpu_layers: 1000
- debug: true
- mmap: false
- f16: true
- embeddings: false
- prompt_cache_all: true
- prompt_cache_ro: false
- low_vram: true
- backend: llama
- parameters:
- model: mythomax-l2-13b.ggmlv3.q5_K_M.bin
- top_k: 80
- temperature: 1
- top_p: 0.7
- context_size: 8192
- template:
- completion: mythomax-completion
- chat: mythomax-chat
-
-files:
-- filename: "mythomax-l2-13b.ggmlv3.q5_K_M.bin"
- uri: "https://huggingface.co/TheBloke/MythoMax-L2-13B-GGML/resolve/main/mythomax-l2-13b.ggmlv3.q5_K_M.bin"
-
-prompt_templates:
-- name: "mythomax-completion"
- content: |
- {{.Input}}
-
-- name: "mythomax-chat"
- content: |
- The prompt below is a question to answer, a task to complete, or a conversation to respond to; decide which and write an appropriate response.
- ### Prompt:
- {{.Input}}
- ### Response:
diff --git a/apps/services/mlops/local-ai/models/orca.yaml b/apps/services/mlops/local-ai/models/orca.yaml
deleted file mode 100644
index 16e4775f8..000000000
--- a/apps/services/mlops/local-ai/models/orca.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-name: "orca"
-
-description: |
- This is the third version of OrcaMaid, a weighted gradient SLERP merge between Microsoft's Orca-2-13b and NeverSleep's Noromaid-13b-v0.3.
-
-license: "Other"
-urls:
- - https://huggingface.co/TheBloke/OrcaMaid-v3-13B-32k-GGUF
-
-config_file: |
- gpu_layers: 1000
- debug: true
- threads: 4
- mmap: false
- embeddings: true
- prompt_cache_all: true
- prompt_cache_ro: false
- f16: true
- low_vram: false
- backend: llama
- parameters:
- model: orcamaid-v3-13b-32k.Q4_K_M.gguf
- top_k: 80
- temperature: 0.7
- top_p: 0.7
- context_size: 2048
- template:
- completion: orca-completion
- chat: orca-chat
- roles:
- user: "Input:"
- system: "Response:"
-
-files:
- - filename: "orcamaid-v3-13b-32k.Q4_K_M.gguf"
- uri: "https://huggingface.co/TheBloke/OrcaMaid-v3-13B-32k-GGUF/resolve/main/orcamaid-v3-13b-32k.Q4_K_M.gguf?download=true"
-
-prompt_templates:
- - name: "orca-completion"
- content: |
- {{.Input}}
-
- - name: "orca-chat"
- content: |
- Below is an instruction that describes a task. Write a response that appropriately completes the request
-
- ### Instruction: {{.Input}}
- ### Response:
diff --git a/apps/services/mlops/local-ai/models/startup.yaml b/apps/services/mlops/local-ai/models/startup.yaml
deleted file mode 100644
index b5ffb11d4..000000000
--- a/apps/services/mlops/local-ai/models/startup.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-- url: https://raw.githubusercontent.com/gruberdev/homelab/main/apps/services/mlops/local-ai/models/llama2.yaml
- name: llama2-chat
-- url: https://raw.githubusercontent.com/gruberdev/homelab/main/apps/services/mlops/local-ai/models/whisper.yaml
- name: whisper
-- url: https://raw.githubusercontent.com/gruberdev/homelab/main/apps/services/mlops/local-ai/models/embeddings.yaml
- name: embeddings
diff --git a/apps/services/mlops/local-ai/models/whisper.yaml b/apps/services/mlops/local-ai/models/whisper.yaml
deleted file mode 100644
index 13a4f1945..000000000
--- a/apps/services/mlops/local-ai/models/whisper.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: "whisper-base"
-license: "MIT"
-urls:
-- https://github.com/ggerganov/whisper.cpp
-- https://huggingface.co/ggerganov/whisper.cpp
-
-description: |
- Port of OpenAI's Whisper model in C/C++
-
-config_file: |
- backend: whisper
- parameters:
- model: ggml-whisper-base.bin
-
-files:
-- filename: "ggml-whisper-base.bin"
- sha256: "60ed5bc3dd14eea856493d334349b405782ddcaf0028d4b5df4088345fba2efe"
- uri: "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.bin"
diff --git a/apps/services/mlops/local-ai/models/wizard.yaml b/apps/services/mlops/local-ai/models/wizard.yaml
deleted file mode 100644
index 40fd695a3..000000000
--- a/apps/services/mlops/local-ai/models/wizard.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-name: "wizard"
-
-description: |
- Eric Hartford's Wizard Vicuna 13B Uncensored
-
-license: "Other"
-urls:
- - https://huggingface.co/TheBloke/Wizard-Vicuna-13B-Uncensored-GGUF
-
-config_file: |
- gpu_layers: 1000
- debug: true
- threads: 6
- mmap: false
- embeddings: true
- prompt_cache_all: true
- prompt_cache_ro: false
- f16: true
- low_vram: false
- backend: llama
- parameters:
- model: Wizard-Vicuna-13B-Uncensored.Q5_K_M.gguf
- top_k: 80
- temperature: 0.7
- top_p: 0.7
- context_size: 2048
- template:
- completion: wizardlm-completion
- chat: wizardlm-chat
- roles:
- user: "USER:"
- system: "SYSTEM:"
- assistant: "ASSISTANT:"
-
-files:
-- filename: "Wizard-Vicuna-13B-Uncensored.Q5_K_M.gguf"
- uri: "https://huggingface.co/TheBloke/Wizard-Vicuna-13B-Uncensored-GGUF/resolve/main/Wizard-Vicuna-13B-Uncensored.Q5_K_M.gguf?download=true"
-
-prompt_templates:
-- name: "wizardlm-completion"
- content: |
- ### Instruction: {{.Input}}
-
- ### Assistant:
-
-- name: "wizardlm-chat"
- content: |
- A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.
-
- USER: {{.Input}}
-
- ASSISTANT:
diff --git a/apps/services/mlops/local-ai/models/wizardcode.yaml b/apps/services/mlops/local-ai/models/wizardcode.yaml
deleted file mode 100644
index 269450181..000000000
--- a/apps/services/mlops/local-ai/models/wizardcode.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: "wizardcoder"
-
-description: |
- Empowering Code Large Language Models with Evol-Instruct
-
-license: "Apache 2.0"
-
-urls:
-- https://github.com/nlpxucan/WizardLM
-
-config_file: |
- name: wizardcoder
- # Default model parameters
- parameters:
- name: wizardcoder
- gpu_layers: 1000
- debug: true
- mmap: false
- f16: true
- low_vram: true
- model: wizardcoder-guanaco-15b-v1.0.ggmlv1.q4_0.bin
- temperature: 0.9
- top_k: 50
- top_p: 0.95
- backend: starcoder
- context_size: 8192
- template:
- completion: wizardcode-completion
- chat: wizardcode-chat
- stopwords:
- - ""
- - <|endoftext|>
- - <|end|>
-files:
- - filename: "wizardcoder-guanaco-15b-v1.0.ggmlv1.q4_0.bin"
- sha256: "4708d9248b85b76a7bb85ac9bb586cacac4df8923dda9b09189babe326a61d94"
- uri: "https://huggingface.co/TheBloke/WizardCoder-Guanaco-15B-V1.0-GGML/resolve/main/wizardcoder-guanaco-15b-v1.0.ggmlv1.q4_0.bin"
-
-prompt_templates:
-- name: "wizardcode-completion"
- content: |
- {{.Input}}
-
-- name: "wizardcode-chat"
- content: |
- Below is an instruction that describes a task. Write a response that appropriately completes the request
-
- ### Instruction: {{.Input}}
-
- ### Response:
diff --git a/apps/services/mlops/matrix-bot/README.md b/apps/services/mlops/matrix-bot/README.md
deleted file mode 100644
index b30c4d96b..000000000
--- a/apps/services/mlops/matrix-bot/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## ChatGPT bot for Discord
diff --git a/apps/services/mlops/matrix-bot/base/cm.yaml b/apps/services/mlops/matrix-bot/base/cm.yaml
deleted file mode 100644
index 510fbd651..000000000
--- a/apps/services/mlops/matrix-bot/base/cm.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: chatgpt-matrix-config
-data:
- TZ: "America/Sao_Paulo"
- MATRIX_WHITELIST: "matrix.gruber.dev.br"
- CHATGPT_API_MODEL: "gpt-3.5-turbo"
- CHATGPT_REVERSE_PROXY: "http://local-ai.mlops.svc.cluster.local/v1/chat/completions"
- CHATGPT_CONTEXT: "room"
- CHATGPT_IGNORE_MEDIA: "true"
- CHATGPT_TEMPERATURE: "0.6"
- MATRIX_HOMESERVER_URL: "http://dendrite.matrix1.svc.cluster.local"
- MATRIX_BOT_USERNAME: "@chatgpt:matrix.gruber.dev.br"
- MATRIX_DEFAULT_PREFIX: ""
- MATRIX_DEFAULT_PREFIX_REPLY: "true"
- MATRIX_AUTOJOIN: "true"
- MATRIX_THREADS: "false"
- MATRIX_PREFIX_DM: "false"
- MATRIX_RICH_TEXT: "true"
diff --git a/apps/services/mlops/matrix-bot/base/deployment.yaml b/apps/services/mlops/matrix-bot/base/deployment.yaml
deleted file mode 100644
index 3af4657a9..000000000
--- a/apps/services/mlops/matrix-bot/base/deployment.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: chatgpt-matrix
- labels:
- app: chatgpt-matrix
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: chatgpt-matrix
- template:
- metadata:
- labels:
- app: chatgpt-matrix
- spec:
- containers:
- - name: bot
- image: ghcr.io/matrixgpt/matrix-chatgpt-bot:3.1.2
- imagePullPolicy: Always
- envFrom:
- - configMapRef:
- name: chatgpt-matrix-config
- - secretRef:
- name: chatgpt-matrix-vars
- ports:
- - name: web
- containerPort: 80
- protocol: TCP
- resources:
- requests:
- cpu: 120m
- memory: 256Mi
- limits:
- cpu: 220m
- memory: 512Mi
diff --git a/apps/services/mlops/matrix-bot/base/secret.yaml b/apps/services/mlops/matrix-bot/base/secret.yaml
deleted file mode 100644
index 7563da982..000000000
--- a/apps/services/mlops/matrix-bot/base/secret.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
- name: chatgpt-matrix-vars
- annotations:
- avp.kubernetes.io/path: "kv/data/matrix"
-stringData:
- MATRIX_ACCESS_TOKEN:
diff --git a/apps/services/mlops/matrix-bot/kustomization.yaml b/apps/services/mlops/matrix-bot/kustomization.yaml
deleted file mode 100644
index d5beedaf1..000000000
--- a/apps/services/mlops/matrix-bot/kustomization.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: matrix1
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/mlops/memory-plugin/README.md b/apps/services/mlops/memory-plugin/README.md
deleted file mode 100644
index 4c12c8ec2..000000000
--- a/apps/services/mlops/memory-plugin/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## ChatGPT Memory Plugin
diff --git a/apps/services/mlops/memory-plugin/base/cm.yaml b/apps/services/mlops/memory-plugin/base/cm.yaml
deleted file mode 100644
index 03933fff1..000000000
--- a/apps/services/mlops/memory-plugin/base/cm.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: chatgpt-plugin-config
-data:
- TZ: "America/Sao_Paulo"
- DATASTORE: "milvus"
- MILVUS_HOST: "milvus.milvus-system.svc.cluster.local"
- MILVUS_PORT: "19530"
- MILVUS_COLLECTION: "chatgpt_memory"
diff --git a/apps/services/mlops/memory-plugin/base/deployment.yaml b/apps/services/mlops/memory-plugin/base/deployment.yaml
deleted file mode 100644
index e313ea71f..000000000
--- a/apps/services/mlops/memory-plugin/base/deployment.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: chatgpt-plugin
- labels:
- app: chatgpt-plugin
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: chatgpt-plugin
- template:
- metadata:
- labels:
- app: chatgpt-plugin
- spec:
- containers:
- - name: server
- image: docker.io/grubertech/chatgpt-plugin:latest
- imagePullPolicy: Always
- envFrom:
- - configMapRef:
- name: chatgpt-plugin-config
- - secretRef:
- name: chatgpt-plugin-vars
- ports:
- - name: server
- containerPort: 8080
- protocol: TCP
- resources:
- requests:
- cpu: 250m
- memory: 256Mi
- limits:
- cpu: 550m
- memory: 1024Mi
diff --git a/apps/services/mlops/memory-plugin/base/kustomization.yaml b/apps/services/mlops/memory-plugin/base/kustomization.yaml
deleted file mode 100644
index cb04a9317..000000000
--- a/apps/services/mlops/memory-plugin/base/kustomization.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- cm.yaml
-- svc.yaml
-- secret.yaml
diff --git a/apps/services/mlops/memory-plugin/base/secret.yaml b/apps/services/mlops/memory-plugin/base/secret.yaml
deleted file mode 100644
index ecc0903d9..000000000
--- a/apps/services/mlops/memory-plugin/base/secret.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
- name: chatgpt-plugin-vars
- annotations:
- avp.kubernetes.io/path: "kv/data/chatgpt"
-stringData:
- BEARER_TOKEN:
- OPENAI_API_KEY:
diff --git a/apps/services/mlops/memory-plugin/base/svc.yaml b/apps/services/mlops/memory-plugin/base/svc.yaml
deleted file mode 100644
index b7b65b565..000000000
--- a/apps/services/mlops/memory-plugin/base/svc.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: chatgpt-plugin
- labels:
- app: chatgpt-plugin
-spec:
- selector:
- app: chatgpt-plugin
- ports:
- - name: server
- port: 80
- targetPort: 8080
- protocol: TCP
- type: ClusterIP
diff --git a/apps/services/mlops/memory-plugin/kustomization.yaml b/apps/services/mlops/memory-plugin/kustomization.yaml
deleted file mode 100644
index 8bce63593..000000000
--- a/apps/services/mlops/memory-plugin/kustomization.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-resources:
-- https://github.com/gruberdev/homelab/apps/networking/cloudflared
-
-patchesStrategicMerge:
-- overlay/cloudflared-cm.yaml
-
-namespace: chatgpt
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: chatgpt-plugin
-- patch: |-
- - op: replace
- path: "/spec/template/spec/volumes/0/secret/secretName"
- value: "chatgpt-plugin-tunnel"
- target:
- kind: Deployment
- name: cloudflared
diff --git a/apps/services/mlops/memory-plugin/overlay/cloudflared-cm.yaml b/apps/services/mlops/memory-plugin/overlay/cloudflared-cm.yaml
deleted file mode 100644
index 7ffda6cd7..000000000
--- a/apps/services/mlops/memory-plugin/overlay/cloudflared-cm.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cloudflared
-data:
- config.yaml: |
- tunnel: chatgpt-plugin-tunnel
- credentials-file: /etc/cloudflared/creds/credentials.json
- metrics: 0.0.0.0:2000
- no-autoupdate: true
- ingress:
- - hostname: gpt.gruber.dev.br
- service: http://chatgpt-plugin:80
- - service: http_status:404
diff --git a/apps/services/mlops/milvus/README.md b/apps/services/mlops/milvus/README.md
deleted file mode 100644
index f856a4111..000000000
--- a/apps/services/mlops/milvus/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Milvus-operator
diff --git a/apps/services/mlops/milvus/kustomization.yaml b/apps/services/mlops/milvus/kustomization.yaml
deleted file mode 100644
index 47d04209d..000000000
--- a/apps/services/mlops/milvus/kustomization.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- https://raw.githubusercontent.com/zilliztech/milvus-operator/v0.8.1/deploy/manifests/deployment.yaml
-
-patchesStrategicMerge:
-- overlay/milvus-deployment.yaml
-- overlay/milvus-job.yaml
-- overlay/namespace-delete.yaml
-
-patchesJson6902:
- - target:
- group: batch
- version: v1
- kind: Job
- name: milvus-operator-checker
- patch: |-
- - op: add
- path: /metadata/annotations/argocd.argoproj.io~1hook
- value: PostSync
- - op: add
- path: /metadata/annotations/argocd.argoproj.io~1hook-delete-policy
- value: BeforeHookCreation
- - op: remove
- path: /spec/ttlSecondsAfterFinished
-
-namespace: milvus-operator
diff --git a/apps/services/mlops/milvus/overlay/milvus-deployment.yaml b/apps/services/mlops/milvus/overlay/milvus-deployment.yaml
deleted file mode 100644
index cd0a6de01..000000000
--- a/apps/services/mlops/milvus/overlay/milvus-deployment.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- helm.sh/chart: milvus-operator-0.8.1
- app.kubernetes.io/name: milvus-operator
- app.kubernetes.io/instance: milvus-operator
- app.kubernetes.io/version: "0.8.1"
- app.kubernetes.io/managed-by: Helm
- name: "milvus-operator"
- namespace: "milvus-operator"
-spec:
- selector:
- matchLabels:
- app.kubernetes.io/name: milvus-operator
- app.kubernetes.io/instance: milvus-operator
- template:
- metadata:
- labels:
- app.kubernetes.io/name: milvus-operator
- app.kubernetes.io/instance: milvus-operator
- spec:
- containers:
- - args:
- - -namespace
- - "milvus-operator"
- - -name
- - "milvus-operator"
- - --health-probe-bind-address=:8081
- - --metrics-bind-address=:8080
- - --leader-elect
- command:
- - /manager
- image: 'milvusdb/milvus-operator:v0.8.1'
- imagePullPolicy: "IfNotPresent"
- livenessProbe:
- httpGet:
- path: /healthz
- port: 8081
- initialDelaySeconds: 15
- periodSeconds: 20
- name: manager
- ports:
- - containerPort: 9443
- name: webhook-server
- protocol: TCP
- - containerPort: 8080
- name: metrics
- protocol: TCP
- readinessProbe:
- httpGet:
- path: /readyz
- port: 8081
- initialDelaySeconds: 5
- periodSeconds: 10
- resources:
- limits:
- cpu: 350m
- memory: 512Gi
- requests:
- cpu: 100m
- memory: 128Mi
diff --git a/apps/services/mlops/milvus/overlay/milvus-job.yaml b/apps/services/mlops/milvus/overlay/milvus-job.yaml
deleted file mode 100644
index 73cce4a91..000000000
--- a/apps/services/mlops/milvus/overlay/milvus-job.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: batch/v1
-kind: Job
-metadata:
- labels:
- helm.sh/chart: milvus-operator-0.8.1
- app.kubernetes.io/name: milvus-operator
- app.kubernetes.io/instance: milvus-operator
- app.kubernetes.io/version: "0.8.1"
- app.kubernetes.io/managed-by: Helm
- name: "milvus-operator-checker"
- namespace: "milvus-operator"
-spec:
- template:
- spec:
- securityContext:
- runAsNonRoot: true
- serviceAccountName: "milvus-operator-checker"
- restartPolicy: OnFailure
- containers:
- - name: checker
- image: 'milvusdb/milvus-operator:v0.8.1'
- imagePullPolicy: "IfNotPresent"
- command: ["/checker"]
- args:
- - "-namespace=milvus-operator"
- - "-name=milvus-operator"
- resources:
- limits:
- cpu: 300m
- memory: 512Mi
- requests:
- cpu: 50m
- memory: 128Mi
diff --git a/apps/services/mlops/milvus/overlay/namespace-delete.yaml b/apps/services/mlops/milvus/overlay/namespace-delete.yaml
deleted file mode 100644
index 90628385b..000000000
--- a/apps/services/mlops/milvus/overlay/namespace-delete.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-$patch: delete
-apiVersion: v1
-kind: Namespace
-metadata:
- name: milvus-operator
diff --git a/apps/services/mlops/turbopilot/README.md b/apps/services/mlops/turbopilot/README.md
deleted file mode 100644
index 4227621b0..000000000
--- a/apps/services/mlops/turbopilot/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Turbopilot
diff --git a/apps/services/mlops/turbopilot/base/certificate.yaml b/apps/services/mlops/turbopilot/base/certificate.yaml
deleted file mode 100644
index e7dd23d48..000000000
--- a/apps/services/mlops/turbopilot/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: copilot
-spec:
- secretName: copilot-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: copilot.gruber.dev.br
- dnsNames:
- - copilot.gruber.dev.br
diff --git a/apps/services/mlops/turbopilot/base/cm.yaml b/apps/services/mlops/turbopilot/base/cm.yaml
deleted file mode 100644
index 918541b8d..000000000
--- a/apps/services/mlops/turbopilot/base/cm.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: turbopilot-config
-data:
- THREADS: "6"
- MODEL: "/models/stablecode-instruct-alpha-3b.ggmlv1.q4_0.bin"
- GPU_LAYERS: "46"
- MODEL_TYPE: "stablecode"
- NVIDIA_VISIBLE_DEVICES: "all"
- NVIDIA_DRIVER_CAPABILITIES: "all"
- NVIDIA_REQUIRE_CUDA: "cuda>=11.0"
diff --git a/apps/services/mlops/turbopilot/base/deployment.yaml b/apps/services/mlops/turbopilot/base/deployment.yaml
deleted file mode 100644
index 1deddcff7..000000000
--- a/apps/services/mlops/turbopilot/base/deployment.yaml
+++ /dev/null
@@ -1,97 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: turbopilot
- labels:
- app: turbopilot
-spec:
- selector:
- matchLabels:
- app: turbopilot
- replicas: 1
- strategy:
- type: Recreate
- template:
- metadata:
- name: turbopilot
- labels:
- app: turbopilot
- spec:
- runtimeClassName: nvidia
- initContainers:
- - name: download-model
- image: busybox
- command: ["/bin/sh", "-c"]
- args:
- - |
- MODEL_DIR=/models
- FORCE_DOWNLOAD=false
- URLS="https://huggingface.co/TheBloke/stablecode-instruct-alpha-3b-GGML/resolve/main/stablecode-instruct-alpha-3b.ggmlv1.q4_0.bin"
-
- mkdir -p "$MODEL_DIR"
- # Split urls on commas
- echo "$URLS" | awk -F, '{for (i=1; i<=NF; i++) print $i}' | while read -r line; do
- url=$(echo "$line" | awk '{print $1}')
- auth=$(echo "$line" | awk '{print $2}')
- if [ -n "$url" ]; then
- filename=$(basename "$url")
- if [ "$FORCE_DOWNLOAD" = false ] && [ -f "$MODEL_DIR/$filename" ]; then
- echo "File $filename already exists. Skipping download."
- continue
- fi
- rm -f "$MODEL_DIR/$filename"
- echo "Downloading $filename"
- if [ -n "$auth" ]; then
- wget -P "$MODEL_DIR" --header "Authorization: Basic $auth" "$url"
- else
- wget -P "$MODEL_DIR" "$url"
- fi
- if [ "$?" -ne 0 ]; then
- echo "Download failed."
- else
- echo "Download completed."
- fi
- fi
- done
- volumeMounts:
- - mountPath: /models
- name: models
- containers:
- - name: turbopilot
- image: ghcr.io/ravenscroftj/turbopilot:v0.2.0-cuda11-7
- ports:
- - name: http
- containerPort: 18080
- protocol: TCP
- livenessProbe:
- tcpSocket:
- port: 18080
- initialDelaySeconds: 35
- periodSeconds: 10
- readinessProbe:
- tcpSocket:
- port: 18080
- initialDelaySeconds: 10
- periodSeconds: 10
- startupProbe:
- tcpSocket:
- port: 18080
- initialDelaySeconds: 90
- periodSeconds: 15
- resources:
- limits:
- cpu: 4000m
- memory: 15Gi
- requests:
- cpu: 1000m
- memory: 2Gi
- envFrom:
- - configMapRef:
- name: turbopilot-config
- volumeMounts:
- - mountPath: /models
- name: models
- volumes:
- - name: models
- persistentVolumeClaim:
- claimName: turbopilot-storage
diff --git a/apps/services/mlops/turbopilot/base/ingress.yaml b/apps/services/mlops/turbopilot/base/ingress.yaml
deleted file mode 100644
index 678b5176b..000000000
--- a/apps/services/mlops/turbopilot/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: turbopilot-internal
- annotations:
- external-dns.alpha.kubernetes.io/hostname: copilot.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
-spec:
- ingressClassName: nginx
- rules:
- - host: copilot.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: turbopilot-tailscale
- port:
- name: http
- tls:
- - hosts:
- - copilot.gruber.dev.br
- secretName: copilot-tls
diff --git a/apps/services/mlops/turbopilot/base/kustomization.yaml b/apps/services/mlops/turbopilot/base/kustomization.yaml
deleted file mode 100644
index 076dd8f1a..000000000
--- a/apps/services/mlops/turbopilot/base/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- ingress.yaml
-- certificate.yaml
diff --git a/apps/services/mlops/turbopilot/base/svc.yaml b/apps/services/mlops/turbopilot/base/svc.yaml
deleted file mode 100644
index b9e95215d..000000000
--- a/apps/services/mlops/turbopilot/base/svc.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: turbopilot
- labels:
- app: turbopilot
-spec:
- selector:
- app: turbopilot
- ports:
- - name: http
- port: 80
- targetPort: 18080
- protocol: TCP
- type: ClusterIP
----
-apiVersion: v1
-kind: Service
-metadata:
- name: turbopilot-tailscale
- labels:
- app: turbopilot
- annotations:
- tailscale.com/hostname: "copilot"
-spec:
- selector:
- app: turbopilot
- ports:
- - name: http
- port: 80
- targetPort: 18080
- protocol: TCP
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/services/mlops/turbopilot/kustomization.yaml b/apps/services/mlops/turbopilot/kustomization.yaml
deleted file mode 100644
index 0ad1935d0..000000000
--- a/apps/services/mlops/turbopilot/kustomization.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-namespace: mlops
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- target:
- kind: Deployment
- name: turbopilot
diff --git a/apps/services/mlops/wandb/README.md b/apps/services/mlops/wandb/README.md
deleted file mode 100644
index 649431784..000000000
--- a/apps/services/mlops/wandb/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Weight & Biases
diff --git a/apps/services/mlops/wandb/base/certificate.yaml b/apps/services/mlops/wandb/base/certificate.yaml
deleted file mode 100644
index b52be277d..000000000
--- a/apps/services/mlops/wandb/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: wandb-cloudflare
-spec:
- secretName: wandb-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: ai.gruber.dev.br
- dnsNames:
- - ai.gruber.dev.br
diff --git a/apps/services/mlops/wandb/base/cm.yaml b/apps/services/mlops/wandb/base/cm.yaml
deleted file mode 100644
index 370f54ce6..000000000
--- a/apps/services/mlops/wandb/base/cm.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: wandb-cm
-data:
- TZ: "America/Sao_Paulo"
- LOCAL_SECURE: "false"
- LOCAL_RESTORE: "false"
- LOCAL_DEV: "false"
- WANDB_BASE_URL: "http://localhost:8080"
- HOST: "https://ai.gruber.dev.br"
diff --git a/apps/services/mlops/wandb/base/deployment.yaml b/apps/services/mlops/wandb/base/deployment.yaml
deleted file mode 100644
index 4cf6ecb76..000000000
--- a/apps/services/mlops/wandb/base/deployment.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: wandb
- labels:
- app: wandb
-spec:
- strategy:
- type: Recreate
- replicas: 1
- selector:
- matchLabels:
- app: wandb
- template:
- metadata:
- labels:
- app: wandb
- spec:
- securityContext:
- fsGroup: 0
- fsGroupChangePolicy: OnRootMismatch
- initContainers:
- - name: init-db
- image: wandb/local:0.31.1
- env:
- - name: DB_PASSWORD
- valueFrom:
- secretKeyRef:
- name: wandb-vars
- key: MYSQL_PASSWORD
- - name: DB_HOST
- value: mysql-db.mlops.svc.cluster.local
- - name: DB_USER
- value: root
- - name: DB
- value: wandb_local
- command: ['bash', '-c', "until mysql -h$DB_HOST -u$DB_USER -p$DB_PASSWORD -D$DB --execute=\"SELECT 1\"; do echo waiting for db; sleep 2; done"]
- containers:
- - name: wandb
- image: "wandb/local:0.31.1"
- imagePullPolicy: IfNotPresent
- env:
- - name: DB_PASSWORD
- valueFrom:
- secretKeyRef:
- name: wandb-vars
- key: MYSQL_PASSWORD
- - name: DB_USER
- value: root
- - name: DB
- value: wandb_local
- - name: DB_HOST
- value: mysql-db.mlops.svc.cluster.local:3306
- - name: LICENSE
- valueFrom:
- secretKeyRef:
- name: wandb-vars
- key: LICENSE
- - name: GLOBAL_ADMIN_API_KEY
- valueFrom:
- secretKeyRef:
- name: wandb-vars
- key: ADMIN_API_KEY
- - name: GORILLA_INSECURE_ALLOW_API_KEY_ADMIN_ACCESS
- value: "true"
- - name: WANDB_HELM_CHART
- value: wandb:0.2.0
- - name: MYSQL
- value: mysql://$(DB_USER):$(DB_PASSWORD)@$(DB_HOST)/$(DB)
- - name: HOST
- value: http://localhost:8080
- - name: LICENSE
- value:
- - name: LOCAL_RESTORE
- value: "false"
- - name: LOCAL_SECURE
- value: "false"
- securityContext:
- runAsGroup: 0
- runAsNonRoot: false
- runAsUser: 0
- ports:
- - name: http
- containerPort: 8080
- protocol: TCP
- volumeMounts:
- - name: data-storage
- mountPath: /vol
- startupProbe:
- httpGet:
- path: /ready
- port: http
- initialDelaySeconds: 600
- failureThreshold: 600
- livenessProbe:
- httpGet:
- path: /healthz
- port: http
- initialDelaySeconds: 600
- failureThreshold: 600
- readinessProbe:
- httpGet:
- path: /ready
- port: http
- resources:
- requests:
- cpu: 200m
- memory: 256Mi
- limits:
- cpu: 2000m
- memory: 2048Mi
- volumes:
- - name: data-storage
- persistentVolumeClaim:
- claimName: wandb-data
diff --git a/apps/services/mlops/wandb/base/kustomization.yaml b/apps/services/mlops/wandb/base/kustomization.yaml
deleted file mode 100644
index 06b226723..000000000
--- a/apps/services/mlops/wandb/base/kustomization.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- secret.yaml
-- ingress.yaml
-- certificate.yaml
diff --git a/apps/services/mlops/wandb/base/secret.yaml b/apps/services/mlops/wandb/base/secret.yaml
deleted file mode 100644
index dd0d26344..000000000
--- a/apps/services/mlops/wandb/base/secret.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
- name: wandb-vars
- annotations:
- avp.kubernetes.io/path: "kv/data/mlops"
-stringData:
- WANDB_API_KEY:
- MYSQL:
- PASSWORD:
- MYSQL_ROOT_PASSWORD:
- MYSQL_PASSWORD:
- ADMIN_API_KEY:
- LICENSE:
diff --git a/apps/services/mlops/wandb/base/svc.yaml b/apps/services/mlops/wandb/base/svc.yaml
deleted file mode 100644
index c88e633db..000000000
--- a/apps/services/mlops/wandb/base/svc.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: wanddb-external
- annotations:
- kube-vip.io/vipHost: wandb
-spec:
- selector:
- app: wandb
- ports:
- - name: http
- port: 80
- targetPort: 8080
- protocol: TCP
- type: LoadBalancer
- loadBalancerIP: "192.168.1.152"
- loadBalancerClass: kube-vip.io/kube-vip-class
----
-apiVersion: v1
-kind: Service
-metadata:
- name: wandb-internal
- labels:
- app: wandb
-spec:
- selector:
- app: wandb
- ports:
- - name: http
- port: 8080
- targetPort: 8080
- protocol: TCP
- type: ClusterIP
diff --git a/apps/services/mlops/wandb/kustomization.yaml b/apps/services/mlops/wandb/kustomization.yaml
deleted file mode 100644
index 9c2388a24..000000000
--- a/apps/services/mlops/wandb/kustomization.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: mlops
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: wandb
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/proxitok/README.md b/apps/services/proxitok/README.md
deleted file mode 100644
index 67745f6dd..000000000
--- a/apps/services/proxitok/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## n8n
diff --git a/apps/services/rss/README.md b/apps/services/rss/README.md
deleted file mode 100644
index bcb0d420b..000000000
--- a/apps/services/rss/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# RSS-related Services
diff --git a/apps/services/rss/feedpushr/README.md b/apps/services/rss/feedpushr/README.md
deleted file mode 100644
index 65e800321..000000000
--- a/apps/services/rss/feedpushr/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Feedpushr
diff --git a/apps/services/rss/feedpushr/base/cm.yaml b/apps/services/rss/feedpushr/base/cm.yaml
deleted file mode 100644
index e45265d94..000000000
--- a/apps/services/rss/feedpushr/base/cm.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: feedpushr-config
-data:
- TZ: "America/Sao_Paulo"
- FP_AUTHORIZED_USERNAME: "gruber"
- FP_CACHE_RETENTION: "72h"
- FP_CLEAR_CACHE: "false"
- FP_CLEAR_CONFIG: "false"
- FP_DB: "boltdb:///var/opt/feedpushr.db"
- FP_DELAY: "1m"
- FP_FAN_OUT_DELAY: "0s"
- FP_EXPLORE_PROVIDER: "default"
- FP_IMPORT: ""
- FP_LISTEN_ADDR: ":8080"
- FP_LOG_LEVEL: "info"
- FP_LOG_OUTPUT: ""
- FP_LOG_PRETTY: "false"
- FP_MAX_NB_FEEDS: "0"
- FP_MAX_NB_OUTPUTS: "0"
- FP_PLUGINS: ""
- FP_PUBLIC_URL: ""
- FP_SENTRY_DSN: ""
- FP_TIMEOUT: "5s"
- FP_AUTHN: "/etc/feedpushr.htpasswd"
diff --git a/apps/services/rss/feedpushr/base/deployment.yaml b/apps/services/rss/feedpushr/base/deployment.yaml
deleted file mode 100644
index 06304b6f5..000000000
--- a/apps/services/rss/feedpushr/base/deployment.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: feedpushr
- labels:
- app: feedpushr
- annotations:
- link.argocd.argoproj.io/external-link: http://feedpushr
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: feedpushr
- template:
- metadata:
- labels:
- app: feedpushr
- spec:
- containers:
- - name: feedpushr
- image: docker.io/ncarlier/feedpushr:3.3.1
- envFrom:
- - configMapRef:
- name: feedpushr-config
- ports:
- - name: web
- containerPort: 8080
- protocol: TCP
- resources:
- requests:
- cpu: 50m
- memory: 100Mi
- limits:
- cpu: 120m
- memory: 200Mi
- volumeMounts:
- - name: database
- mountPath: /var/opt
- - name: auth
- mountPath: /etc/feedpushr.htpasswd
- readOnly: true
- volumes:
- - name: auth
- secret:
- secretName: feedpushr-vars
- - name: database
- persistentVolumeClaim:
- claimName: feedpushr-database
diff --git a/apps/services/rss/feedpushr/base/kustomization.yaml b/apps/services/rss/feedpushr/base/kustomization.yaml
deleted file mode 100644
index 0292cfb79..000000000
--- a/apps/services/rss/feedpushr/base/kustomization.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- secret.yaml
diff --git a/apps/services/rss/feedpushr/base/secret.yaml b/apps/services/rss/feedpushr/base/secret.yaml
deleted file mode 100644
index 93bb8c667..000000000
--- a/apps/services/rss/feedpushr/base/secret.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
- name: feedpushr-vars
- annotations:
- avp.kubernetes.io/path: "kv/data/feedpushr"
-stringData:
- feedpushr.htpasswd: |
- :
diff --git a/apps/services/rss/feedpushr/base/svc.yaml b/apps/services/rss/feedpushr/base/svc.yaml
deleted file mode 100644
index ae85f690f..000000000
--- a/apps/services/rss/feedpushr/base/svc.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: feedpushr
- labels:
- app: feedpushr
- annotations:
- tailscale.com/hostname: "feedpushr"
-spec:
- selector:
- app: feedpushr
- ports:
- - name: web
- port: 80
- targetPort: 8080
- protocol: TCP
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/services/rss/feedpushr/kustomization.yaml b/apps/services/rss/feedpushr/kustomization.yaml
deleted file mode 100644
index e1fc1398d..000000000
--- a/apps/services/rss/feedpushr/kustomization.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: rss
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: feedpushr
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/rss/hub/README.md b/apps/services/rss/hub/README.md
deleted file mode 100644
index 0baec9d59..000000000
--- a/apps/services/rss/hub/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## RSS Hub
diff --git a/apps/services/rss/hub/base/certificate.yaml b/apps/services/rss/hub/base/certificate.yaml
deleted file mode 100644
index 386a82dae..000000000
--- a/apps/services/rss/hub/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: rsshub-cloudflare
-spec:
- secretName: rsshub-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: hub.gruber.dev.br
- dnsNames:
- - hub.gruber.dev.br
diff --git a/apps/services/rss/hub/base/cm.yaml b/apps/services/rss/hub/base/cm.yaml
deleted file mode 100644
index 014b48057..000000000
--- a/apps/services/rss/hub/base/cm.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: rsshub-cm
-data:
- NODE_ENV: "production"
- TZ: "America/Sao_Paulo"
- PORT: "1200"
- REQUEST_RETRY: "5"
- UA: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
- ALLOW_ORIGIN: "*"
- CACHE_TYPE: "redis"
- CACHE_EXPIRE: "5*60"
- MEMORY_MAX: "256"
- REDIS_URL: "redis://redis-rsshub.rss.svc.cluster.local:6379"
- PUPPETEER_WS_ENDPOINT: "ws://127.0.0.1:3000"
- ALLOW_LOCALHOST: "true"
- DISALLOW_ROBOT: "true"
- SCIHUB_HOST: "https://sci-hub.se"
diff --git a/apps/services/rss/hub/base/deployment.yaml b/apps/services/rss/hub/base/deployment.yaml
deleted file mode 100644
index 666201130..000000000
--- a/apps/services/rss/hub/base/deployment.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: rss-hub
- labels:
- app: rss-hub
- annotations:
- link.argocd.argoproj.io/external-link: https://hub.gruber.dev.br
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: rss-hub
- template:
- metadata:
- labels:
- app: rss-hub
- spec:
- containers:
- - name: rss-hub
- image: docker.io/diygod/rsshub:chromium-bundled-2023-08-15
- envFrom:
- - configMapRef:
- name: rsshub-cm
- - secretRef:
- name: rsshub-vars
- ports:
- - name: web
- containerPort: 1200
- protocol: TCP
- resources:
- requests:
- cpu: 60m
- memory: 256Mi
- limits:
- cpu: 150m
- memory: 512Mi
- livenessProbe:
- tcpSocket:
- port: 1200
- timeoutSeconds: 1
- periodSeconds: 10
- initialDelaySeconds: 60
- failureThreshold: 3
- readinessProbe:
- tcpSocket:
- port: 1200
- timeoutSeconds: 1
- periodSeconds: 10
- initialDelaySeconds: 3
- failureThreshold: 3
- startupProbe:
- tcpSocket:
- port: 1200
- timeoutSeconds: 5
- periodSeconds: 10
- successThreshold: 1
- initialDelaySeconds: 60
- failureThreshold: 30
- - name: puppeteer
- image: browserless/chrome:latest
- ports:
- - name: richpuppeteer
- containerPort: 3000
- protocol: TCP
- resources:
- requests:
- cpu: "200m"
- memory: "1024Mi"
- limits:
- cpu: "500m"
- memory: "2048Mi"
diff --git a/apps/services/rss/hub/base/ingress.yaml b/apps/services/rss/hub/base/ingress.yaml
deleted file mode 100644
index 03c80e69f..000000000
--- a/apps/services/rss/hub/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: rss-hub
- annotations:
- external-dns.alpha.kubernetes.io/hostname: hub.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
-spec:
- ingressClassName: nginx
- rules:
- - host: hub.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: rss-hub
- port:
- name: web
- tls:
- - hosts:
- - hub.gruber.dev.br
- secretName: rsshub-tls
diff --git a/apps/services/rss/hub/base/kustomization.yaml b/apps/services/rss/hub/base/kustomization.yaml
deleted file mode 100644
index 3d66454d0..000000000
--- a/apps/services/rss/hub/base/kustomization.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- redis.yaml
-- ingress.yaml
-- certificate.yaml
diff --git a/apps/services/rss/hub/base/redis.yaml b/apps/services/rss/hub/base/redis.yaml
deleted file mode 100644
index d4beaac64..000000000
--- a/apps/services/rss/hub/base/redis.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-apiVersion: redis.redis.opstreelabs.in/v1beta1
-kind: Redis
-metadata:
- name: redis-rsshub
-spec:
- kubernetesConfig:
- image: docker.io/grubertech/redis:v7.0.5
- imagePullPolicy: IfNotPresent
- updateStrategy:
- type: OnDelete
- resources:
- requests:
- cpu: 150m
- memory: 128Mi
- limits:
- cpu: 250m
- memory: 256Mi
- storage:
- volumeClaimTemplate:
- spec:
- storageClassName: iscsi
- accessModes: ["ReadWriteOnce"]
- resources:
- requests:
- storage: 2Gi
- nodeSelector:
- kubernetes.io/arch: amd64
diff --git a/apps/services/rss/hub/base/svc.yaml b/apps/services/rss/hub/base/svc.yaml
deleted file mode 100644
index 9991d1022..000000000
--- a/apps/services/rss/hub/base/svc.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: rss-hub
- labels:
- app: rss-hub
- annotations:
- kube-vip.io/vipHost: rsshub
-spec:
- ports:
- - name: web
- port: 80
- targetPort: 1200
- protocol: TCP
- selector:
- app: rss-hub
- type: LoadBalancer
- loadBalancerIP: "192.168.1.155"
- loadBalancerClass: kube-vip.io/kube-vip-class
diff --git a/apps/services/rss/hub/kustomization.yaml b/apps/services/rss/hub/kustomization.yaml
deleted file mode 100644
index 191d4057e..000000000
--- a/apps/services/rss/hub/kustomization.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: rss
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: rss-hub
diff --git a/apps/services/transfer/base/ingress.yaml b/apps/services/transfer/base/ingress.yaml
deleted file mode 100644
index df0bf9f8d..000000000
--- a/apps/services/transfer/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: change-ingress
- annotations:
- external-dns.alpha.kubernetes.io/hostname: onchange.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
- cert-manager.io/cluster-issuer: letsencrypt-staging
-spec:
- ingressClassName: nginx
- rules:
- - host: onchange.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: change-svc
- port:
- name: web
- tls:
- - hosts:
- - onchange.gruber.dev.br
- secretName: onchange-tx
diff --git a/apps/services/transfer/kustomization.yaml b/apps/services/transfer/kustomization.yaml
deleted file mode 100644
index b82f18220..000000000
--- a/apps/services/transfer/kustomization.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: services
-
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/arch: amd64
- target:
- kind: Deployment
- name: change-server
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/wallabag/README.md b/apps/services/wallabag/README.md
deleted file mode 100644
index d5eda9d5b..000000000
--- a/apps/services/wallabag/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Wallabag
diff --git a/apps/services/wallabag/base/cm.yaml b/apps/services/wallabag/base/cm.yaml
deleted file mode 100644
index f26499d4e..000000000
--- a/apps/services/wallabag/base/cm.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: wallabag-cm
-data:
- TZ: "America/Sao_Paulo"
- SYMFONY__ENV__DATABASE_DRIVER: "pdo_pgsql"
- SYMFONY__ENV__DATABASE_HOST: "db-wallabag.services.svc.cluster.local"
- SYMFONY__ENV__DATABASE_PORT: "5432"
- SYMFONY__ENV__DATABASE_NAME: "wallabag"
- SYMFONY__ENV__DATABASE_USER: "wallabag"
- SYMFONY__ENV__LOCALE: "en"
- SYMFONY__ENV__MAILER_HOST: "mail.smtp2go.com"
- POPULATE_DATABASE: "True"
- SYMFONY__ENV__SERVER_NAME: "wallabag-grwtf"
- SYMFONY__ENV__DOMAIN_NAME: "https://wallabag.gruber.dev.br"
- SYMFONY__ENV__DATABASE_CHARSET: "utf8mb4"
- SYMFONY__ENV__DATABASE_TABLE_PREFIX: "wallabag_"
- SYMFONY__ENV__FOSUSER_REGISTRATION: "false"
- SYMFONY__ENV__FOSUSER_CONFIRMATION: "true"
diff --git a/apps/services/wallabag/base/db.yaml b/apps/services/wallabag/base/db.yaml
deleted file mode 100644
index 5d36adea5..000000000
--- a/apps/services/wallabag/base/db.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-apiVersion: "acid.zalan.do/v1"
-kind: postgresql
-metadata:
- name: db-wallabag
-spec:
- dockerImage: registry.opensource.zalan.do/acid/spilo-14:2.1-p6
- teamId: "db"
- numberOfInstances: 1
- users:
- admin:
- - superuser
- - createdb
- wallabag: []
- databases:
- wallabag: wallabag
- postgresql:
- version: "14"
- volume:
- size: 1Gi
- storageClass: iscsi
- additionalVolumes:
- - name: data
- mountPath: /home/postgres/pgdata/partitions
- targetContainers:
- - postgres
- volumeSource:
- PersistentVolumeClaim:
- claimName: wallabag-postgres
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: postgres-operator
- operator: In
- values:
- - enabled
diff --git a/apps/services/wallabag/base/deployment.yaml b/apps/services/wallabag/base/deployment.yaml
deleted file mode 100644
index be9a4d38d..000000000
--- a/apps/services/wallabag/base/deployment.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: wallabag
- labels:
- app: wallabag
- annotations:
- link.argocd.argoproj.io/external-link: http://wallabag.gruber.dev.br
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: wallabag
- template:
- metadata:
- labels:
- app: wallabag
- spec:
- containers:
- - name: wallabag
- image: wallabag/wallabag:2.5.2
- env:
- - name: POSTGRES_USER
- valueFrom: {secretKeyRef: {name: wallabag.db-wallabag.credentials.postgresql.acid.zalan.do, key: username}}
- - name: POSTGRES_PASSWORD
- valueFrom: {secretKeyRef: {name: wallabag.db-wallabag.credentials.postgresql.acid.zalan.do, key: password}}
- - name: SYMFONY__ENV__DATABASE_USER
- valueFrom: {secretKeyRef: {name: wallabag.db-wallabag.credentials.postgresql.acid.zalan.do, key: username}}
- - name: SYMFONY__ENV__DATABASE_PASSWORD
- valueFrom: {secretKeyRef: {name: wallabag.db-wallabag.credentials.postgresql.acid.zalan.do, key: password}}
- envFrom:
- - configMapRef:
- name: wallabag-cm
- - secretRef:
- name: wallabag-vars
- ports:
- - name: web
- containerPort: 80
- protocol: TCP
- resources:
- requests:
- cpu: 150m
- memory: 256Mi
- limits:
- cpu: 200m
- memory: 512Mi
- volumeMounts:
- - name: data-storage
- mountPath: /var/www/wallabag/data
- - name: media-storage
- mountPath: /var/www/wallabag/web/assets/images
- volumes:
- - name: media-storage
- persistentVolumeClaim:
- claimName: wallabag-media
- - name: data-storage
- persistentVolumeClaim:
- claimName: wallabag-data
diff --git a/apps/services/wallabag/base/kustomization.yaml b/apps/services/wallabag/base/kustomization.yaml
deleted file mode 100644
index 7737eb197..000000000
--- a/apps/services/wallabag/base/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- db.yaml
-- secret.yaml
diff --git a/apps/services/wallabag/base/secret.yaml b/apps/services/wallabag/base/secret.yaml
deleted file mode 100644
index 24c15d296..000000000
--- a/apps/services/wallabag/base/secret.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
- name: wallabag-vars
- annotations:
- avp.kubernetes.io/path: "kv/data/wallabag"
-stringData:
- SYMFONY__ENV__SECRET:
- SYMFONY__ENV__MAILER_USER:
- SYMFONY__ENV__MAILER_PASSWORD:
- SYMFONY__ENV__FROM_EMAIL:
- SYMFONY__ENV__TWOFACTOR_AUTH: <2fa-auth>
- SYMFONY__ENV__TWOFACTOR_SENDER: <2fa-sender>
diff --git a/apps/services/wallabag/base/svc.yaml b/apps/services/wallabag/base/svc.yaml
deleted file mode 100644
index c37975cc9..000000000
--- a/apps/services/wallabag/base/svc.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: wallabag
- labels:
- app: wallabag
- annotations:
- tailscale.com/hostname: "wallabag"
-spec:
- selector:
- app: wallabag
- ports:
- - name: web
- port: 8080
- targetPort: 80
- protocol: TCP
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/services/wallabag/kustomization.yaml b/apps/services/wallabag/kustomization.yaml
deleted file mode 100644
index e49737b7c..000000000
--- a/apps/services/wallabag/kustomization.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-namespace: services
-patches:
-- patch: |-
- - op: add
- path: "/spec/template/spec/nodeSelector"
- value:
- kubernetes.io/hostname: node-one
- target:
- kind: Deployment
- name: wallabag
-images:
-- name: wallabag/wallabag
- newTag: 2.6.8
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/services/wger/README.md b/apps/services/wger/README.md
deleted file mode 100644
index 8e5ab1d60..000000000
--- a/apps/services/wger/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## wger
diff --git a/apps/services/wger/base/certificate.yaml b/apps/services/wger/base/certificate.yaml
deleted file mode 100644
index 26d7ef190..000000000
--- a/apps/services/wger/base/certificate.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: wger-cloudflare
-spec:
- secretName: wger-tls
- issuerRef:
- name: letsencrypt-production
- kind: ClusterIssuer
- commonName: gym.gruber.dev.br
- dnsNames:
- - gym.gruber.dev.br
diff --git a/apps/services/wger/base/cm.yaml b/apps/services/wger/base/cm.yaml
deleted file mode 100644
index 2f5a4e271..000000000
--- a/apps/services/wger/base/cm.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: wger-cm
-data:
- TIME_ZONE: "America/Sao_Paulo"
- MEDIA_URL: "https://gym.gruber.dev.br/media/"
- STATIC_URL: "https://gym.gruber.dev.br/static/"
- WGER_INSTANCE: https://wger.de"
- ALLOW_REGISTRATION: "True"
- ALLOW_GUEST_USERS: "True"
- ALLOW_UPLOAD_VIDEOS: "True"
- MIN_ACCOUNT_AGE_TO_TRUST: "0"
- SYNC_EXERCISES_ON_STARTUP: "True"
- DOWNLOAD_EXERCISE_IMAGES_ON_STARTUP: "True"
- SYNC_EXERCISES_CELERY: "True"
- SYNC_EXERCISE_IMAGES_CELERY: "True"
- CSRF_TRUSTED_ORIGINS: "http://127.0.0.1,https://127.0.0.1,https://gym.gruber.dev.br,http://gym.gruber.dev.br,https://gruber.dev.br,http://gym.gruber.dev.br,http://localhost,https://localhost"
- SYNC_EXERCISE_VIDEOS_CELERY: "True"
- DOWNLOAD_INGREDIENTS_FROM: "WGER"
- ENABLE_EMAIL: "True"
- EMAIL_USE_SSL: "False"
- EMAIL_USE_TLS: "True"
- FROM_EMAIL: "Personal Workout Manager "
- ACCESS_TOKEN_LIFETIME: "20"
- REFRESH_TOKEN_LIFETIME: "60"
- DJANGO_DEBUG: "True"
- WGER_USE_GUNICORN: "True"
- EXERCISE_CACHE_TTL: "18000"
- SITE_URL: "https://gym.gruber.dev.br"
- AXES_ENABLED: "False"
- DJANGO_CACHE_BACKEND: "django_redis.cache.RedisCache"
- DJANGO_CACHE_LOCATION: "redis://gym-redis.services.svc.cluster.local:6379/1"
- DJANGO_CACHE_TIMEOUT: "1296000"
- DJANGO_CACHE_CLIENT_CLASS: "django_redis.client.DefaultClient"
- DJANGO_DB_ENGINE: "django.db.backends.postgresql"
- DJANGO_DB_DATABASE: "wger"
- DJANGO_DB_HOST: "wger-rw.services.svc.cluster.local"
- DJANGO_DB_PORT: "5432"
- DJANGO_PERFORM_MIGRATIONS: "True"
- USE_CELERY: "False"
- CELERY_BROKER: "redis://gym-redis.services.svc.cluster.local:6379/2"
- CELERY_BACKEND: "redis://gym-redis.services.svc.cluster.local:6379/2"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: wger-proxy
-data:
- wger-app.conf: |
- upstream app_server {
- server localhost:8000 fail_timeout=0;
- }
- server {
- listen 8080;
- client_max_body_size 4G;
- server_name gym.gruber.dev.br;
- keepalive_timeout 5;
- root /var/www/html/;
- location / {
- try_files $uri @proxy_to_app;
- }
- location @proxy_to_app {
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_set_header Host $http_host;
- proxy_redirect off;
- proxy_pass http://app_server;
- }
- error_page 500 502 503 504 /500.html;
- location = /500.html {
- root /var/www/html/;
- }
- }
diff --git a/apps/services/wger/base/db.yaml b/apps/services/wger/base/db.yaml
deleted file mode 100644
index fc9f2637f..000000000
--- a/apps/services/wger/base/db.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
-apiVersion: postgresql.cnpg.io/v1
-kind: Cluster
-metadata:
- name: wger-database
- namespace: services
-spec:
- imageName: ghcr.io/cloudnative-pg/postgresql:16.0
- instances: 1
- startDelay: 35
- stopDelay: 35
- resources:
- requests:
- memory: 256Mi
- cpu: 300m
- limits:
- memory: 768Mi
- cpu: 700m
- postgresql:
- parameters:
- shared_buffers: 256MB
- timezone: "America/Sao_Paulo"
- pg_stat_statements.max: '10000'
- pg_stat_statements.track: all
- auto_explain.log_min_duration: '10s'
- bootstrap:
- initdb:
- database: wger
- owner: wger
- storage:
- storageClass: iscsi
- size: 15Gi
- monitoring:
- enablePodMonitor: true
- affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/hostname
- operator: In
- values:
- - node-one
diff --git a/apps/services/wger/base/deployment.yaml b/apps/services/wger/base/deployment.yaml
deleted file mode 100644
index 446010049..000000000
--- a/apps/services/wger/base/deployment.yaml
+++ /dev/null
@@ -1,82 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: gym-server
- labels:
- app: gym-server
- annotations:
- link.argocd.argoproj.io/external-link: https://gym.gruber.dev.br
-spec:
- replicas: 1
- strategy:
- type: Recreate
- selector:
- matchLabels:
- app: wger
- template:
- metadata:
- labels:
- app: wger
- spec:
- securityContext:
- fsGroup: 1000
- containers:
- - name: frontend
- image: nginx:stable
- volumeMounts:
- - name: nginx-config
- mountPath: /etc/nginx/conf.d/
- - name: static
- mountPath: /var/www/html/static
- readOnly: true
- - name: media
- mountPath: /var/www/html/media
- readOnly: true
- ports:
- - containerPort: 8080
- protocol: TCP
- resources:
- requests:
- cpu: 100m
- memory: 128Mi
- limits:
- cpu: 200m
- memory: 512Mi
- - name: backend
- image: wger/server:latest
- env:
- - name: DJANGO_DB_USER
- valueFrom: {secretKeyRef: {name: wger-app, key: username}}
- - name: DJANGO_DB_PASSWORD
- valueFrom: {secretKeyRef: {name: wger-app, key: password}}
- envFrom:
- - configMapRef:
- name: wger-cm
- - secretRef:
- name: wger-vars
- ports:
- - containerPort: 8000
- resources:
- requests:
- cpu: 150m
- memory: 512Mi
- limits:
- cpu: 450m
- memory: 768Mi
- volumeMounts:
- - name: static
- mountPath: /home/wger/static
- readOnly: false
- - name: media
- mountPath: /home/wger/media
- readOnly: false
- volumes:
- - name: static
- persistentVolumeClaim:
- claimName: wger-static
- - name: media
- persistentVolumeClaim:
- claimName: wger-media
- - name: nginx-config
- configMap:
- name: wger-proxy
diff --git a/apps/services/wger/base/ingress.yaml b/apps/services/wger/base/ingress.yaml
deleted file mode 100644
index 087cf4b19..000000000
--- a/apps/services/wger/base/ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: wger
- annotations:
- external-dns.alpha.kubernetes.io/hostname: gym.gruber.dev.br
- external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
- external-dns.alpha.kubernetes.io/ttl: "120"
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
-spec:
- ingressClassName: nginx
- rules:
- - host: gym.gruber.dev.br
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: wger-tailscale
- port:
- number: 80
- tls:
- - hosts:
- - gym.gruber.dev.br
- secretName: wger-tls
diff --git a/apps/services/wger/base/kustomization.yaml b/apps/services/wger/base/kustomization.yaml
deleted file mode 100644
index 56441024c..000000000
--- a/apps/services/wger/base/kustomization.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- svc.yaml
-- cm.yaml
-- db.yaml
-- redis.yaml
-- ingress.yaml
-- secret.yaml
-- certificate.yaml
diff --git a/apps/services/wger/base/redis.yaml b/apps/services/wger/base/redis.yaml
deleted file mode 100644
index e8b65bd37..000000000
--- a/apps/services/wger/base/redis.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-apiVersion: redis.redis.opstreelabs.in/v1beta1
-kind: Redis
-metadata:
- name: gym-redis
-spec:
- kubernetesConfig:
- image: docker.io/grubertech/redis:v7.0.5
- imagePullPolicy: IfNotPresent
- updateStrategy:
- type: OnDelete
- resources:
- requests:
- cpu: 150m
- memory: 128Mi
- limits:
- cpu: 250m
- memory: 256Mi
- storage:
- volumeClaimTemplate:
- spec:
- storageClassName: iscsi
- accessModes: ["ReadWriteOnce"]
- resources:
- requests:
- storage: 5Gi
- nodeSelector:
- kubernetes.io/arch: amd64
diff --git a/apps/services/wger/base/secret.yaml b/apps/services/wger/base/secret.yaml
deleted file mode 100644
index 7bf7fc460..000000000
--- a/apps/services/wger/base/secret.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
- name: wger-vars
- annotations:
- avp.kubernetes.io/path: "kv/data/wger"
-stringData:
- SECRET_KEY:
- SIGNING_KEY:
- EMAIL_HOST_PASSWORD:
- EMAIL_HOST_USER:
- EMAIL_PORT:
- EMAIL_HOST:
diff --git a/apps/services/wger/base/svc.yaml b/apps/services/wger/base/svc.yaml
deleted file mode 100644
index db059797f..000000000
--- a/apps/services/wger/base/svc.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: wger-tailscale
- labels:
- app: wger
- annotations:
- tailscale.com/hostname: "gym"
-spec:
- selector:
- app: wger
- ports:
- - port: 80
- targetPort: 8080
- protocol: TCP
- loadBalancerClass: tailscale
- type: LoadBalancer
diff --git a/apps/services/wger/kustomization.yaml b/apps/services/wger/kustomization.yaml
deleted file mode 100644
index 35d172620..000000000
--- a/apps/services/wger/kustomization.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-bases:
-- ./base
-
-namespace: services
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
- app.kubernetes.io/name: "wger"
diff --git a/apps/services/wger/overlay/cloudflared-cm.yaml b/apps/services/wger/overlay/cloudflared-cm.yaml
deleted file mode 100644
index eedc85792..000000000
--- a/apps/services/wger/overlay/cloudflared-cm.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cloudflared
-data:
- config.yaml: |
- tunnel: n8n-tunnel
- credentials-file: /etc/cloudflared/creds/credentials.json
- metrics: 0.0.0.0:2000
- no-autoupdate: true
- ingress:
- - hostname: n8ni.gruber.dev.br
- service: http://n8n.services.svc.cluster.local:80
- - service: http_status:404
diff --git a/apps/utilities/crossplane/README.md b/apps/utilities/crossplane/README.md
deleted file mode 100644
index 1dc30a544..000000000
--- a/apps/utilities/crossplane/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Crossplane
diff --git a/apps/utilities/crossplane/kustomization.yaml b/apps/utilities/crossplane/kustomization.yaml
deleted file mode 100644
index 4b887d6bf..000000000
--- a/apps/utilities/crossplane/kustomization.yaml
+++ /dev/null
@@ -1,89 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-
-resources:
- - github.com/crossplane/crossplane/cluster?ref=v1.15.0
-
-helmCharts:
- - name: crossplane
- releaseName: crossplane
- includeCRDs: false
- version: 1.15.0
- repo: https://charts.crossplane.io/stable
- valuesInline:
- replicas: 1
- deploymentStrategy: Recreate
- image:
- repository: crossplane/crossplane
- tag: v1.14.4-2.g80dc4fb4
- pullPolicy: IfNotPresent
- nodeSelector: {}
- tolerations: []
- affinity: {}
- hostNetwork: false
- customLabels: {}
- customAnnotations: {}
- serviceAccount:
- customAnnotations: {}
- leaderElection: true
- args: ["--enable-composition-functions"]
- provider:
- packages: []
- configuration:
- packages: []
- imagePullSecrets: {}
- registryCaBundleConfig:
- name: ""
- key: ""
- webhooks:
- enabled: true
- rbacManager:
- deploy: true
- skipAggregatedClusterRoles: false
- replicas: 1
- managementPolicy: All
- leaderElection: true
- args: []
- nodeSelector: {}
- tolerations: []
- affinity: {}
- priorityClassName: ""
- resourcesCrossplane:
- limits:
- cpu: 300m
- memory: 512Mi
- requests:
- cpu: 80m
- memory: 256Mi
- securityContextCrossplane:
- runAsUser: 65532
- runAsGroup: 65532
- allowPrivilegeEscalation: false
- readOnlyRootFilesystem: true
- packageCache:
- medium: ""
- sizeLimit: 20Mi
- pvc: ""
- configMap: ""
- resourcesRBACManager:
- limits:
- cpu: 150m
- memory: 256Mi
- requests:
- cpu: 100m
- memory: 128Mi
- securityContextRBACManager:
- runAsUser: 65532
- runAsGroup: 65532
- allowPrivilegeEscalation: false
- readOnlyRootFilesystem: true
- metrics:
- enabled: true
- extraEnvVarsCrossplane: {}
- extraEnvVarsRBACManager: {}
- podSecurityContextCrossplane: {}
- podSecurityContextRBACManager: {}
- extraVolumesCrossplane: {}
- extraVolumeMountsCrossplane: {}
-
-namespace: crossplane
diff --git a/apps/utilities/descheduler/README.md b/apps/utilities/descheduler/README.md
index 0f5d105f4..a2afa22c9 100644
--- a/apps/utilities/descheduler/README.md
+++ b/apps/utilities/descheduler/README.md
@@ -1 +1,20 @@
-## Descheduler
\ No newline at end of file
+## Descheduler
+
+
+
+
+
+
+
+
+
+
+
+> Scheduling in Kubernetes is the process of binding pending pods to nodes, and is performed by a component of Kubernetes called kube-scheduler. The scheduler's decisions, whether or where a pod can or can not be scheduled, are guided by its configurable policy which comprises of set of rules, called predicates and priorities. The scheduler's decisions are influenced by its view of a Kubernetes cluster at that point of time when a new pod appears for scheduling. As Kubernetes clusters are very dynamic and their state changes over time, there may be desire to move already running pods to some other nodes for various reasons:
+>
+> - Some nodes are under or over utilized.
+> - The original scheduling decision does not hold true any more, as taints or labels are added to or removed from nodes, pod/node affinity requirements are not satisfied any more.
+> - Some nodes failed and their pods moved to other nodes.
+> - New nodes are added to clusters.
+>
+> Consequently, there might be several pods scheduled on less desired nodes in a cluster. Descheduler, based on its policy, finds pods that can be moved and evicts them. Please note, in current implementation, descheduler does not schedule replacement of evicted pods but relies on the default scheduler for that.
diff --git a/apps/utilities/descheduler/kustomization.yaml b/apps/utilities/descheduler/kustomization.yaml
index 76adf4454..b0842e61c 100644
--- a/apps/utilities/descheduler/kustomization.yaml
+++ b/apps/utilities/descheduler/kustomization.yaml
@@ -1,20 +1,20 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
-resources:
- - github.com/kubernetes-sigs/descheduler/kubernetes/deployment?ref=v0.29.0
-
-namespace: kube-system
+helmCharts:
+- includeCRDs: true
+ name: descheduler
+ version: 0.30.1
+ namespace: utilities
+ releaseName: descheduler
+ repo: https://kubernetes-sigs.github.io/descheduler/
patches:
- - patch: |-
+ - patch: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: descheduler
- namespace: kube-system
- labels:
- app: descheduler
spec:
template:
spec:
@@ -25,10 +25,16 @@ patches:
cpu: 100m
memory: 128Mi
limits:
- cpu: 300m
+ cpu: 100m
memory: 256Mi
- - patch: |-
+ target:
+ kind: Deployment
+ name: descheduler
+ - patch: |
apiVersion: v1
+ kind: ConfigMap
+ metadata:
+ name: descheduler-policy-configmap
data:
policy.yaml: |
apiVersion: "descheduler/v1alpha2"
@@ -85,7 +91,6 @@ patches:
- "RemovePodsViolatingNodeAffinity"
- "RemovePodsViolatingInterPodAntiAffinity"
- "RemoveFailedPods"
+ target:
kind: ConfigMap
- metadata:
- name: descheduler-policy-configmap
- namespace: kube-system
+ name: descheduler-policy-configmap
diff --git a/apps/utilities/kube-fledged/README.md b/apps/utilities/kube-fledged/README.md
new file mode 100644
index 000000000..35327c939
--- /dev/null
+++ b/apps/utilities/kube-fledged/README.md
@@ -0,0 +1 @@
+## Kube-fledged
diff --git a/apps/utilities/kube-fledged/kustomization.yaml b/apps/utilities/kube-fledged/kustomization.yaml
new file mode 100644
index 000000000..ccb6a86c3
--- /dev/null
+++ b/apps/utilities/kube-fledged/kustomization.yaml
@@ -0,0 +1,93 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
+namespace: kube-system
+
+patches:
+ - patch: |
+ apiVersion: apps/v1
+ kind: Deployment
+ metadata:
+ name: kube-fledged-webhook-server
+ namespace: utilities
+ spec:
+ template:
+ spec:
+ initContainers:
+ - name: init
+ resources:
+ limits:
+ cpu: 120m
+ memory: 256Mi
+ requests:
+ cpu: 20m
+ memory: 64Mi
+ target:
+ kind: Deployment
+ name: kube-fledged-webhook-server
+
+helmCharts:
+- includeCRDs: true
+ name: kube-fledged
+ version: v0.10.0
+ namespace: kube-system
+ releaseName: kube-fledged
+ repo: https://senthilrch.github.io/kubefledged-charts/
+ valuesInline:
+ args:
+ controllerImageCacheRefreshFrequency: 15m
+ controllerImageDeleteJobHostNetwork: false
+ controllerImagePullDeadlineDuration: 5m
+ controllerImagePullPolicy: IfNotPresent
+ controllerJobRetentionPolicy: delete
+ controllerLogLevel: INFO
+ webhookServerCertFile: /var/run/secrets/webhook-server/tls.crt
+ webhookServerKeyFile: /var/run/secrets/webhook-server/tls.key
+ webhookServerLogLevel: INFO
+ webhookServerPort: 443
+ clusterRole:
+ create: true
+ clusterRoleBinding:
+ create: true
+ command:
+ kubefledgedControllerCommand:
+ - /opt/bin/kubefledged-controller
+ kubefledgedWebhookServerCommand:
+ - /opt/bin/kubefledged-webhook-server
+ controller:
+ hostNetwork: false
+ controllerReplicaCount: 1
+ image:
+ busyboxImageRepository: senthilrch/busybox
+ busyboxImageVersion: 1.35.0
+ kubefledgedCRIClientRepository: docker.io/senthilrch/kubefledged-cri-client
+ kubefledgedControllerRepository: docker.io/senthilrch/kubefledged-controller
+ kubefledgedWebhookServerRepository: docker.io/senthilrch/kubefledged-webhook-server
+ pullPolicy: Always
+ ingress:
+ enabled: false
+ nodeSelector:
+ kubernetes.io/arch: amd64
+ resources:
+ limits:
+ cpu: 120m
+ memory: 256Mi
+ requests:
+ cpu: 20m
+ memory: 64Mi
+ service:
+ port: 80
+ type: ClusterIP
+ serviceAccount:
+ create: true
+ validatingWebhook:
+ create: true
+ webhookServer:
+ enable: true
+ hostNetwork: false
+ webhookServerReplicaCount: 1
+ webhookService:
+ create: true
+ port: 3443
+ targetPort: 443
+ type: ClusterIP
diff --git a/apps/utilities/kured/README.md b/apps/utilities/kured/README.md
new file mode 100644
index 000000000..5c455ef65
--- /dev/null
+++ b/apps/utilities/kured/README.md
@@ -0,0 +1 @@
+## Kured
diff --git a/apps/utilities/kured/kustomization.yaml b/apps/utilities/kured/kustomization.yaml
index d1d82f2e0..cc38e7d7c 100644
--- a/apps/utilities/kured/kustomization.yaml
+++ b/apps/utilities/kured/kustomization.yaml
@@ -7,6 +7,3 @@ patchesStrategicMerge:
- overlay/daemonset.yaml
namespace: kube-system
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/utilities/nvidia/README.md b/apps/utilities/nvidia/README.md
new file mode 100644
index 000000000..91df292f2
--- /dev/null
+++ b/apps/utilities/nvidia/README.md
@@ -0,0 +1 @@
+## Nvidia Device Plugin
diff --git a/apps/utilities/nvidia/kustomization.yaml b/apps/utilities/nvidia/kustomization.yaml
new file mode 100644
index 000000000..6cf6dfcad
--- /dev/null
+++ b/apps/utilities/nvidia/kustomization.yaml
@@ -0,0 +1,61 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- runtimeclass.yaml
+
+namespace: kube-system
+
+patches:
+- path: patch.yaml
+
+helmCharts:
+- includeCRDs: true
+ name: nvidia-device-plugin
+ version: 0.14.5
+ namespace: kube-system
+ releaseName: nvidia-device-plugin
+ repo: https://nvidia.github.io/k8s-device-plugin
+ valuesInline:
+ config:
+ map:
+ default: |-
+ version: v1
+ flags:
+ migStrategy: none
+ mig-single: |-
+ version: v1
+ flags:
+ migStrategy: single
+ mig-mixed: |-
+ version: v1
+ flags:
+ migStrategy: mixed
+ default: ""
+ fallbackStrategies: ["named", "single"]
+ legacyDaemonsetAPI: null
+ compatWithCPUManager: null
+ migStrategy: "single"
+ failOnInitError: "true"
+ deviceListStrategy: "envvar"
+ deviceIDStrategy: "uuid"
+ nvidiaDriverRoot: ""
+ gdsEnabled: null
+ mofedEnabled: null
+ fullnameOverride: "nvidia-device-plugin"
+ namespaceOverride: kube-system
+ runtimeClassName: nvidia
+ nodeSelector:
+ kubernetes.io/hostname: controller-one
+ image:
+ repository: nvcr.io/nvidia/k8s-device-plugin
+ pullPolicy: IfNotPresent
+ tag: "v0.14.5-ubuntu20.04"
+ resources:
+ limits:
+ cpu: 150m
+ memory: 512Mi
+ requests:
+ cpu: 150m
+ memory: 256Mi
+ gfd:
+ enabled: false
diff --git a/apps/utilities/nvidia/patch.yaml b/apps/utilities/nvidia/patch.yaml
new file mode 100644
index 000000000..b35eb6bf0
--- /dev/null
+++ b/apps/utilities/nvidia/patch.yaml
@@ -0,0 +1,26 @@
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+ name: nvidia-device-plugin
+ namespace: kube-system
+spec:
+ template:
+ spec:
+ initContainers:
+ - name: nvidia-device-plugin-init
+ resources:
+ limits:
+ cpu: 150m
+ memory: 512Mi
+ requests:
+ cpu: 150m
+ memory: 256Mi
+ containers:
+ - name: nvidia-device-plugin-sidecar
+ resources:
+ limits:
+ cpu: 150m
+ memory: 512Mi
+ requests:
+ cpu: 150m
+ memory: 256Mi
diff --git a/apps/utilities/nvidia/runtimeclass.yaml b/apps/utilities/nvidia/runtimeclass.yaml
new file mode 100644
index 000000000..c26bd6d7f
--- /dev/null
+++ b/apps/utilities/nvidia/runtimeclass.yaml
@@ -0,0 +1,5 @@
+apiVersion: node.k8s.io/v1
+kind: RuntimeClass
+metadata:
+ name: nvidia
+handler: nvidia
diff --git a/apps/utilities/sealed-secrets/README.md b/apps/utilities/sealed-secrets/README.md
deleted file mode 100644
index 223bb546a..000000000
--- a/apps/utilities/sealed-secrets/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Sealed secrets
diff --git a/apps/utilities/sealed-secrets/base/kustomization.yaml b/apps/utilities/sealed-secrets/base/kustomization.yaml
deleted file mode 100644
index b68a08f1f..000000000
--- a/apps/utilities/sealed-secrets/base/kustomization.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.23.1/controller.yaml
diff --git a/apps/utilities/sealed-secrets/kustomization.yaml b/apps/utilities/sealed-secrets/kustomization.yaml
deleted file mode 100644
index f36e4698b..000000000
--- a/apps/utilities/sealed-secrets/kustomization.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- ./base
-patchesStrategicMerge:
-- overlay/deployment.yaml
-- overlay/svc.yaml
-
-namespace: kube-system
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/utilities/sealed-secrets/overlay/deployment.yaml b/apps/utilities/sealed-secrets/overlay/deployment.yaml
deleted file mode 100644
index 35060964c..000000000
--- a/apps/utilities/sealed-secrets/overlay/deployment.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- annotations: {}
- labels:
- name: sealed-secrets-controller
- name: sealed-secrets-controller
- namespace: kube-system
-spec:
- selector:
- matchLabels:
- name: sealed-secrets-controller
- strategy:
- type: Recreate
- rollingUpdate: null
- template:
- metadata:
- annotations: {}
- labels:
- name: sealed-secrets-controller
- spec:
- containers:
- - name: sealed-secrets-controller
- args: []
- command:
- - controller
- env: []
- image: docker.io/bitnami/sealed-secrets-controller:v0.23.1
- resources:
- limits:
- cpu: 120m
- memory: 350Mi
- requests:
- cpu: 50m
- memory: 256Mi
- livenessProbe:
- initialDelaySeconds: 60
- periodSeconds: 15
- startupProbe:
- httpGet:
- path: /healthz
- port: http
- initialDelaySeconds: 60
- periodSeconds: 15
- timeoutSeconds: 10
diff --git a/apps/utilities/sealed-secrets/overlay/svc.yaml b/apps/utilities/sealed-secrets/overlay/svc.yaml
deleted file mode 100644
index 50e6d8494..000000000
--- a/apps/utilities/sealed-secrets/overlay/svc.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- labels:
- name: sealed-secrets-controller
- name: sealed-secrets-controller
- namespace: kube-system
-spec:
- ports:
- - port: 8080
- targetPort: 8080
- selector:
- name: sealed-secrets-controller
- type: ClusterIP
diff --git a/apps/utilities/wavy/README.md b/apps/utilities/wavy/README.md
deleted file mode 100644
index 60cc1338c..000000000
--- a/apps/utilities/wavy/README.md
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-### Application Description
-
-> Wavy makes it possible to run containerized GUI desktop applications — think Inkscape or Libreoffice — on Kubernetes and makes them accessible via the browser. This workflow allows users to run applications in the cloud and access them from any device without needing to install any software. Wavy works by patching Kubernetes Pods that are annotated with wavy.squat.ai/enable=true to include the necessary tools.
-
-- [Website][website-uri]
-- [Official Documentation][docs-uri]
-
-[website-uri]: https://github.com/wavyland/wavy
-[docs-uri]: https://github.com/wavyland/wavy/blob/main/README.md
-
-#### Annotations
-
-The following annotations can be added to any Kubernetes Pod, DaemonSet, Deployment, ReplicaSet, StatefulSet, CronJob, or Job to configure Wavy:
-
-|Name|type|examples|
-|----|----|-------|
-|[wavy.squat.ai/enable](#enable)|boolean|`"true"`|
-|[wavy.squat.ai/basic-auth-secret](#basic-auth-secret)|string|`app-secret`|
-|[wavy.squat.ai/tls-secret](#tls-secret)|string|`app-tls`|
-|[wavy.squat.ai/host](#host)|boolean|`"true"`|
-|[wavy.squat.ai/x](#x)|boolean|`"true"`|
-|[wavy.squat.ai/expose-vnc](#expose-vnc)|boolean|`"true"`|
-|[wavy.squat.ai/vnc-basic-auth-secret](#vnc-basic-auth-secret)|string|`app-secret`|
-|[wavy.squat.ai/vnc-tls-secret](#vnc-tls-secret)|string|`app-tls`|
-
----
-#### Example
-
-```yaml
-apiVersion: v1
-kind: Pod
-metadata:
- annotations:
- wavy.squat.ai/enable: "true"
- wavy.squat.ai/basic-auth-secret: signal
- labels:
- app.kubernetes.io/name: signal
- name: signal
-spec:
- containers:
- - image: tianon/signal-desktop:6
- name: signal
- command:
- - signal-desktop
- args:
- - --no-sandbox
- - --user-data-dir=/root
----
-apiVersion: v1
-kind: Secret
-metadata:
- labels:
- app.kubernetes.io/name: signal
- name: signal
-type: kubernetes.io/basic-auth
-stringData:
- username: user
- password: pass
-```
diff --git a/apps/utilities/wavy/kustomization.yaml b/apps/utilities/wavy/kustomization.yaml
deleted file mode 100644
index 1fcf37f3d..000000000
--- a/apps/utilities/wavy/kustomization.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- https://raw.githubusercontent.com/wavyland/wavy/1e45bf3a20838814bb466c4b7bcb101389ecb947/manifests/webhook.yaml
-
-patchesStrategicMerge:
-- overlay/namespace-delete.yaml
-- overlay/patch-deploy.yaml
-- overlay/patch-job.yaml
-- overlay/patch-rb.yaml
-- overlay/patch-crb.yaml
-
-patchesJson6902:
- - target:
- group: batch
- version: v1
- kind: Job
- name: cert-gen
- patch: |-
- - op: add
- path: /metadata/annotations/argocd.argoproj.io~1hook-delete-policy
- value: BeforeHookCreation
-
-namespace: utilities
-
-commonAnnotations:
- reloader.stakater.com/auto: "true"
diff --git a/apps/utilities/wavy/overlay/namespace-delete.yaml b/apps/utilities/wavy/overlay/namespace-delete.yaml
deleted file mode 100644
index 929332dd1..000000000
--- a/apps/utilities/wavy/overlay/namespace-delete.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-$patch: delete
-apiVersion: v1
-kind: Namespace
-metadata:
- name: wavy
diff --git a/apps/utilities/wavy/overlay/patch-crb.yaml b/apps/utilities/wavy/overlay/patch-crb.yaml
deleted file mode 100644
index cc5da7e2c..000000000
--- a/apps/utilities/wavy/overlay/patch-crb.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: wavy-webhook
- labels:
- app.kubernetes.io/name: wavy
- app.kubernetes.io/component: webhook-server
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: wavy-webhook
-subjects:
- - kind: ServiceAccount
- namespace: utilities
- name: wavy-webhook
diff --git a/apps/utilities/wavy/overlay/patch-deploy.yaml b/apps/utilities/wavy/overlay/patch-deploy.yaml
deleted file mode 100644
index 9280b2f0b..000000000
--- a/apps/utilities/wavy/overlay/patch-deploy.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: wavy-webhook
- namespace: wavy
- labels:
- app.kubernetes.io/name: wavy
- app.kubernetes.io/component: webhook-server
-spec:
- template:
- spec:
- containers:
- - name: webhook
- image: ghcr.io/wavyland/wavy
- args:
- - webhook
- - --certificate=/run/secrets/tls/tls.crt
- - --key=/run/secrets/tls/tls.key
- - --listen-metrics=:9090
- - --listen=:8443
- resources:
- limits:
- cpu: 150m
- memory: 256Mi
- requests:
- cpu: 50m
- memory: 128Mi
- ports:
- - containerPort: 8443
- name: webhook
- - containerPort: 9090
- name: metrics
- volumeMounts:
- - name: tls
- mountPath: /run/secrets/tls
- readOnly: true
- volumes:
- - name: tls
- secret:
- secretName: wavy-webhook-tls
- optional: true
diff --git a/apps/utilities/wavy/overlay/patch-job.yaml b/apps/utilities/wavy/overlay/patch-job.yaml
deleted file mode 100644
index 0a4812e77..000000000
--- a/apps/utilities/wavy/overlay/patch-job.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-apiVersion: batch/v1
-kind: Job
-metadata:
- name: cert-gen
- namespace: wavy
- labels:
- app.kubernetes.io/name: wavy
- app.kubernetes.io/component: certificate-generator
-spec:
- template:
- spec:
- initContainers:
- - name: create
- args:
- - create
- - --namespace=utilities
- - --secret-name=wavy-webhook-tls
- - --host=wavy-webhook,wavy-webhook.utilities.svc
- - --key-name=tls.key
- - --cert-name=tls.crt
- containers:
- - name: patch
- image: k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0
- args:
- - patch
- - --webhook-name=wavy.squat.ai
- - --secret-name=wavy-webhook-tls
- - --namespace=utilities
- - --patch-validating=false
diff --git a/apps/utilities/wavy/overlay/patch-rb.yaml b/apps/utilities/wavy/overlay/patch-rb.yaml
deleted file mode 100644
index ce860ed23..000000000
--- a/apps/utilities/wavy/overlay/patch-rb.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: wavy-webhook
- namespace: wavy
- labels:
- app.kubernetes.io/name: wavy
- app.kubernetes.io/component: webhook-server
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: wavy-webhook
-subjects:
- - kind: ServiceAccount
- namespace: utilities
- name: wavy-webhook
diff --git a/tasks/argocd.yaml b/tasks/argocd.yaml
index 1d3129774..f52b172bf 100644
--- a/tasks/argocd.yaml
+++ b/tasks/argocd.yaml
@@ -70,7 +70,7 @@ tasks:
argocd.argoproj.io/secret-type: repository
stringData:
type: git
- url: https://github.com/gruberdev/private.git
+ url: https://github.com/gruberdev/homelab.git
password: $GH_PASS
username: $GH_USER
EOF
@@ -168,7 +168,7 @@ tasks:
- sh: 'which argocd'
msg: 'argocd {{.PATH_ERROR}}'
cmds:
- - argocd login argo.gruber.dev.br --username $ARGOCD_USERNAME --password $ARGOCD_PASSWORD
+ - argocd login https://argo.raptor-beta.ts.net --username $ARGOCD_USERNAME --password $ARGOCD_PASSWORD
refresh:
preconditions: