Compare commits

...

86 Commits

Author SHA1 Message Date
SeanOMik dd70c87b36 fix: use correct kustomize file paths 2024-09-19 19:07:11 -04:00
SeanOMik 9e58733a47 feat: add kubevirt to thin cluster 2024-09-19 19:07:11 -04:00
SeanOMik 2b432acd32 feat: add home-assistant to thin cluster 2024-09-19 19:07:11 -04:00
SeanOMik 473ffdffc0 fix: use correct file path 2024-09-19 19:07:11 -04:00
SeanOMik 5a9e883b75 feat: switch from traefik to nginx-ingress 2024-09-19 19:07:11 -04:00
SeanOMik 3da1b8e693 fix(postgres): use correct file paths 2024-09-19 19:07:11 -04:00
SeanOMik 4fd71c59d0 feat: add postgres 2024-09-19 19:07:11 -04:00
SeanOMik d7c8537074 fix(whoami): specifiy internal ingress class 2024-09-19 19:07:11 -04:00
SeanOMik f02811f4f2 fix: use correct name and path of kustomization 2024-09-19 19:07:11 -04:00
SeanOMik 3209590082 feat: add snapshot-system and openebs mayastor 2024-09-19 19:07:11 -04:00
SeanOMik daa10b10e1 fix: change load balancer subnet, make certs valid for '*.internal' domains 2024-09-19 19:07:11 -04:00
SeanOMik bed6a15588 fix: specify bgp label on traefik services 2024-09-19 19:07:11 -04:00
SeanOMik d2be6e6cc9 fix: use correct path of thin cluster traefik 2024-09-19 19:07:11 -04:00
SeanOMik 6bb2b612a8 feat: add internal ingress, generate internal certs, setup cilium bgp, create whoami deployment 2024-09-19 19:07:11 -04:00
SeanOMik 41a06897c3 chore: remove metallb from thin cluster 2024-09-19 19:07:11 -04:00
SeanOMik 219b416fb4 fix: use correct file path 2024-09-19 19:07:11 -04:00
SeanOMik 63ad2c9c31 feat: move metallb to common, install it in thin cluster 2024-09-19 19:07:11 -04:00
SeanOMik 3a8639f80d feat: reorganize cert-manager to avoid crds race condition 2024-09-19 19:07:11 -04:00
SeanOMik 9134f887a7 feat: move cert-manager to common, add it to thin cluster 2024-09-19 19:07:11 -04:00
SeanOMik 2ec21aa757 fix(nfd, intel-gpu): use correct kustomization path 2024-09-19 19:07:11 -04:00
SeanOMik 8c224b4464 fix(traefik): add substituteFrom config map and secrets 2024-09-19 19:07:11 -04:00
SeanOMik 18c99ba347 fix: traefik crds race condition 2024-09-19 19:07:11 -04:00
SeanOMik ea0ba61a26 fix: remove metallb, use cilium load balancer ip pool instead 2024-09-19 19:07:11 -04:00
SeanOMik d54748b324 chore: remove unused traefik entrypoint 2024-09-19 19:07:11 -04:00
SeanOMik 9c3743714c fix: enable metallb crds 2024-09-19 19:07:11 -04:00
SeanOMik 9dcb7c6d90 fix: remove dependsOn: core for thin cluster 2024-09-19 19:07:11 -04:00
SeanOMik 14216829c9 feat: add new cluster, create common directory 2024-09-19 19:07:06 -04:00
SeanOMik 5917341e26 Merge pull request 'feat(github-release)!: Update traefik-crd-source to v31.1.0' (#385) from renovate/traefik-crd-source-31.x into main
Reviewed-on: #385
2024-09-19 09:40:12 -04:00
Renovate Bot b0e4718047 feat(github-release)!: Update traefik-crd-source to v31.1.0 2024-09-19 09:40:12 -04:00
SeanOMik f1132025cc Merge pull request 'fix(container): update image alpine to v3.20.3' (#395) from renovate/alpine-3.x into main
Reviewed-on: #395
2024-09-19 09:39:03 -04:00
Renovate Bot 4abd76770a fix(container): update image alpine to v3.20.3 2024-09-19 09:39:03 -04:00
SeanOMik 8ef1659f35 Merge pull request 'feat(container): update image temporalio/auto-setup to v1.25' (#389) from renovate/temporalio-auto-setup-1.x into main
Reviewed-on: #389
2024-09-19 09:38:47 -04:00
Renovate Bot f22cf45dfa feat(container): update image temporalio/auto-setup to v1.25 2024-09-19 09:38:47 -04:00
SeanOMik 11f2fbde57 Merge pull request 'fix(container): update image ghcr.io/advplyr/audiobookshelf to v2.13.4' (#370) from renovate/ghcr.io-advplyr-audiobookshelf-2.x into main
Reviewed-on: #370
2024-09-19 09:38:21 -04:00
Renovate Bot b389d60b02 fix(container): update image ghcr.io/advplyr/audiobookshelf to v2.13.4 2024-09-19 09:38:21 -04:00
SeanOMik 679f61756e Merge pull request 'fix(container): update image ghcr.io/onedr0p/qbittorrent to v4.6.7' (#371) from renovate/ghcr.io-onedr0p-qbittorrent-4.x into main
Reviewed-on: #371
2024-09-19 09:37:55 -04:00
Renovate Bot 1817bfd41c fix(container): update image ghcr.io/onedr0p/qbittorrent to v4.6.7 2024-09-19 09:37:55 -04:00
SeanOMik d3d6f0e9bf Merge pull request 'fix(container): update image ghcr.io/onedr0p/radarr-develop to v5.10.3.9178' (#372) from renovate/ghcr.io-onedr0p-radarr-develop-5.x into main
Reviewed-on: #372
2024-09-19 09:37:32 -04:00
Renovate Bot b34c9d5bb3 fix(container): update image ghcr.io/onedr0p/radarr-develop to v5.10.3.9178 2024-09-19 09:37:32 -04:00
SeanOMik 09dc2632f5 Merge pull request 'fix(container): update image ghcr.io/onedr0p/sonarr-develop to v4.0.9.2386' (#373) from renovate/ghcr.io-onedr0p-sonarr-develop-4.x into main
Reviewed-on: #373
2024-09-19 09:37:05 -04:00
Renovate Bot 60cef12727 fix(container): update image ghcr.io/onedr0p/sonarr-develop to v4.0.9.2386 2024-09-19 09:37:05 -04:00
SeanOMik 45bf2d5495 Merge pull request 'fix(container): update image ghcr.io/zibbp/ganymede-frontend to v3.0.1' (#374) from renovate/ghcr.io-zibbp-ganymede-frontend-3.x into main
Reviewed-on: #374
2024-09-19 09:36:42 -04:00
Renovate Bot dee1286dcb fix(container): update image ghcr.io/zibbp/ganymede-frontend to v3.0.1 2024-09-19 09:36:42 -04:00
SeanOMik f0e997d8e7 Merge pull request 'feat(container): update image gotson/komga to v1.13.0' (#375) from renovate/gotson-komga-1.x into main
Reviewed-on: #375
2024-09-19 09:35:32 -04:00
Renovate Bot 1589ac5ec8 feat(container): update image gotson/komga to v1.13.0 2024-09-19 09:35:32 -04:00
SeanOMik fd8e63ba5d Merge pull request 'fix(github-release): update local-path-provisioner to v0.0.29' (#376) from renovate/local-path-provisioner-0.x into main
Reviewed-on: #376
2024-09-19 09:34:15 -04:00
Renovate Bot e7bfe2e240 fix(github-release): update local-path-provisioner to v0.0.29 2024-09-19 09:34:15 -04:00
SeanOMik 87a28dc58e Merge pull request 'fix(helm): update chart grafana to 8.5.1' (#377) from renovate/grafana-8.x into main
Reviewed-on: #377
2024-09-19 09:33:53 -04:00
Renovate Bot dd89ee09e8 fix(helm): update chart grafana to 8.5.1 2024-09-19 09:33:53 -04:00
SeanOMik 746e48c3de Merge pull request 'fix(helm): update chart longhorn to 1.7.1' (#378) from renovate/longhorn-1.x into main
Reviewed-on: #378
2024-09-19 09:33:33 -04:00
Renovate Bot 7d8a75c6f0 fix(helm): update chart longhorn to 1.7.1 2024-09-19 09:33:33 -04:00
SeanOMik fefad39b44 Merge pull request 'fix(helm): update chart mysql to 11.1.17' (#379) from renovate/mysql-11.x into main
Reviewed-on: #379
2024-09-19 09:33:12 -04:00
Renovate Bot d3fc019ff3 fix(helm): update chart mysql to 11.1.17 2024-09-19 09:33:12 -04:00
SeanOMik e8c01c01b8 Merge pull request 'fix(helm): update chart victoria-metrics-single to 0.11.2' (#380) from renovate/victoria-metrics-single-0.x into main
Reviewed-on: #380
2024-09-19 09:32:50 -04:00
Renovate Bot 7f870f9d1b fix(helm): update chart victoria-metrics-single to 0.11.2 2024-09-19 09:32:50 -04:00
SeanOMik 7f78457843 Merge pull request 'feat(container): update image ghcr.io/onedr0p/prowlarr-develop to v1.24.0.4721' (#381) from renovate/ghcr.io-onedr0p-prowlarr-develop-1.x into main
Reviewed-on: #381
2024-09-19 09:32:37 -04:00
Renovate Bot 6d5e8ec895 feat(container): update image ghcr.io/onedr0p/prowlarr-develop to v1.24.0.4721 2024-09-19 09:32:37 -04:00
SeanOMik bc1149f243 Merge pull request 'feat(helm): update chart authentik to 2024.8.2' (#382) from renovate/authentik-2024.x into main
Reviewed-on: #382
2024-09-19 09:32:14 -04:00
Renovate Bot f1abdfbb0e feat(helm): update chart authentik to 2024.8.2 2024-09-19 09:32:14 -04:00
SeanOMik 739f3c8e6c Merge pull request 'feat(helm): update chart kube-prometheus-stack to 62.7.0' (#383) from renovate/kube-prometheus-stack-62.x into main
Reviewed-on: #383
2024-09-19 09:31:55 -04:00
Renovate Bot 09fe06eff6 feat(helm): update chart kube-prometheus-stack to 62.7.0 2024-09-19 09:31:55 -04:00
SeanOMik f62690f18a Merge pull request 'feat(helm): update chart pgadmin4 to 1.29.0' (#384) from renovate/pgadmin4-1.x into main
Reviewed-on: #384
2024-09-19 09:31:23 -04:00
Renovate Bot c6a94e76d0 feat(helm): update chart pgadmin4 to 1.29.0 2024-09-19 09:31:23 -04:00
SeanOMik 3c0566d981 feat(helm)!: Update chart traefik to 31.1.0 (#386) 2024-09-19 09:29:06 -04:00
Renovate Bot d0a46c4ee2 feat(helm)!: Update chart traefik to 31.1.0 2024-09-19 09:29:06 -04:00
SeanOMik 624d26c435 fix(container): update image bobokun/qbit_manage to v4.1.9 (#387) 2024-09-19 09:28:54 -04:00
Renovate Bot fcf78e64c6 fix(container): update image bobokun/qbit_manage to v4.1.9 2024-09-19 09:28:54 -04:00
SeanOMik 42a970b65e fix(container): update image linuxserver/freshrss to v1.24.3 (#388) 2024-09-19 09:28:24 -04:00
Renovate Bot 91f0423f7e fix(container): update image linuxserver/freshrss to v1.24.3 2024-09-19 09:28:24 -04:00
SeanOMik 8afa7376f1 fix(container): update image linuxserver/jellyfin to v10.9.11 (#391) 2024-09-19 09:26:42 -04:00
Renovate Bot b40999472a fix(container): update image linuxserver/jellyfin to v10.9.11 2024-09-19 09:26:42 -04:00
SeanOMik 298ef2620f fix(container): update image goofball222/factorio to v1.1.110 (#392) 2024-09-19 09:26:28 -04:00
Renovate Bot ba8aaf37e2 fix(container): update image goofball222/factorio to v1.1.110 2024-09-19 09:26:28 -04:00
SeanOMik c36eabc91e feat(helm): update chart redis to 20.1.4 (#393) 2024-09-19 09:26:08 -04:00
Renovate Bot fa68e1d42f feat(helm): update chart redis to 20.1.0 2024-09-19 09:26:08 -04:00
SeanOMik c380710973 fix(container): update image matrixdotorg/dendrite-monolith to v0.13.8 (#394) 2024-09-19 09:25:42 -04:00
Renovate Bot 92a6b9cb82 fix(container): update image matrixdotorg/dendrite-monolith to v0.13.8 2024-09-19 09:25:42 -04:00
SeanOMik 581f2e5f01 fix(container): update image ghcr.io/onedr0p/bazarr to v1.4.4 (#396) 2024-09-19 09:25:02 -04:00
Renovate Bot 96f0fd9874 fix(container): update image ghcr.io/onedr0p/bazarr to v1.4.4 2024-09-19 09:25:02 -04:00
SeanOMik cd7a0ee7b7 fix(container): update image prompve/prometheus-pve-exporter to v3.4.5 (#397) 2024-09-19 09:24:40 -04:00
Renovate Bot daffc5df08 fix(container): update image prompve/prometheus-pve-exporter to v3.4.5 2024-09-19 09:24:40 -04:00
SeanOMik 340bbd55f4 feat(helm): update chart woodpecker to 1.6.0 (#398) 2024-09-19 09:22:50 -04:00
Renovate Bot 94e4747f20 feat(helm): update chart woodpecker to 1.6.0 2024-09-18 19:07:11 +00:00
SeanOMik d119ac6206
chore: remove domain name 2024-09-14 23:43:09 -04:00
SeanOMik 1e602ec8e7
fix(ganymede): fix after update broke it 2024-09-14 23:38:54 -04:00
SeanOMik d4e5a254a7
fix(cdn): use custom nonroot nginx container with fancy index 2024-09-14 23:08:48 -04:00
154 changed files with 2155 additions and 285 deletions

View File

@ -3,20 +3,20 @@
version: "3" version: "3"
vars: vars:
CLUSTER_SECRET_SOPS_FILE: "{{.CLUSTER_DIR}}/bootstrap/flux/sops-key.sops.yaml" CLUSTER_SECRET_SOPS_FILE: "{{.CLUSTERS_DIR}}/common/bootstrap/flux/sops-key.sops.yaml"
GITHUB_DEPLOY_KEY_FILE: "{{.CLUSTER_DIR}}/bootstrap/flux/forgejo-deploy-key.sops.yaml" GITHUB_DEPLOY_KEY_FILE: "{{.CLUSTERS_DIR}}/common/bootstrap/flux/forgejo-deploy-key.sops.yaml"
tasks: tasks:
bootstrap: bootstrap:
desc: Bootstrap Flux into a Kubernetes cluster desc: Bootstrap Flux into a Kubernetes cluster
cmds: cmds:
- kubectl apply --server-side --kustomize {{.CLUSTER_DIR}}/bootstrap/flux - kubectl apply --server-side --kustomize {{.CLUSTERS_DIR}}/common/bootstrap/flux
- sops --decrypt {{.CLUSTER_SECRET_SOPS_FILE}} | kubectl apply --server-side --filename - - sops --decrypt {{.CLUSTER_SECRET_SOPS_FILE}} | kubectl apply --server-side --filename -
- sops --decrypt {{.GITHUB_DEPLOY_KEY_FILE}} | kubectl apply --server-side --filename - - sops --decrypt {{.GITHUB_DEPLOY_KEY_FILE}} | kubectl apply --server-side --filename -
- kubectl apply --server-side --kustomize {{.CLUSTER_DIR}}/flux/config - kubectl apply --server-side --kustomize {{.CLUSTERS_DIR}}/{{.CLUSTER}}/flux/config
preconditions: preconditions:
- { msg: "Missing cluster sops key", sh: "gpg -K 687802D4DFD8AA82EA55666CF7DADAC782D7663D" } - { msg: "Missing cluster sops key", sh: "gpg -K 687802D4DFD8AA82EA55666CF7DADAC782D7663D" }
reconcile: reconcile:
desc: Force update Flux to pull in changes from your Git repository desc: Force update Flux to pull in changes from the Git repository
cmd: flux reconcile --namespace flux-system kustomization cluster --with-source cmd: flux reconcile --namespace flux-system kustomization cluster --with-source

View File

@ -3,7 +3,7 @@
version: "3" version: "3"
vars: vars:
CLUSTER_DIR: "{{.ROOT_DIR}}/cluster" CLUSTERS_DIR: "{{.ROOT_DIR}}/kubernetes"
includes: includes:
flux: .taskfiles/Flux/Taskfile.yaml flux: .taskfiles/Flux/Taskfile.yaml

View File

@ -14,7 +14,7 @@ spec:
name: jetstack-charts name: jetstack-charts
namespace: flux-system namespace: flux-system
values: values:
installCRDs: false installCRDs: true
webhook: webhook:
enabled: true enabled: true
extraArgs: extraArgs:
@ -26,8 +26,8 @@ spec:
nameservers: nameservers:
- "1.1.1.1" - "1.1.1.1"
- "9.9.9.9" - "9.9.9.9"
prometheus: # prometheus:
servicemonitor: # servicemonitor:
enabled: true # enabled: false
labels: # labels:
release: kube-prometheus-stack # release: kube-prometheus-stack

View File

@ -1,6 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- ./longhorn - ./helm-repository.yaml
- ./openebs - ./helm-release.yaml
#- ./local-path-provisioner

View File

@ -0,0 +1,25 @@
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: cert-manager
namespace: flux-system
spec:
timeout: 5m
interval: 10m
path: ./kubernetes/common/apps/cert-manager/app/files
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
postBuild:
substitute: {}
substituteFrom:
- kind: ConfigMap
name: cluster-settings
- kind: Secret
name: cluster-secrets

View File

@ -1,10 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- ./namespace.yaml
- ./cloudflare-cred.sops.yaml - ./cloudflare-cred.sops.yaml
- ./helm-repository.yaml
- ./helm-release.yaml
- ./letsencrypt-prod.yaml - ./letsencrypt-prod.yaml
- ./letsencrypt-stage.yaml - ./letsencrypt-stage.yaml
- ./wildcard-cert.yaml - ./wildcard-cert.yaml

View File

@ -10,9 +10,6 @@ spec:
privateKeySecretRef: privateKeySecretRef:
name: letsencrypt-production name: letsencrypt-production
solvers: solvers:
# - http01:
# ingress:
# class: traefik
- dns01: - dns01:
cloudflare: cloudflare:
email: "${SECRET_MY_EMAIL}" email: "${SECRET_MY_EMAIL}"
@ -21,4 +18,6 @@ spec:
key: api-token key: api-token
selector: selector:
dnsZones: dnsZones:
- "${SECRET_NEW_DOMAIN}" - "${SECRET_NEW_DOMAIN}"
- "internal.${SECRET_NEW_DOMAIN}"
- "*.internal.${SECRET_NEW_DOMAIN}"

View File

@ -10,9 +10,6 @@ spec:
privateKeySecretRef: privateKeySecretRef:
name: letsencrypt-staging name: letsencrypt-staging
solvers: solvers:
# - http01:
# ingress:
# class: traefik
- dns01: - dns01:
cloudflare: cloudflare:
email: "${SECRET_MY_EMAIL}" email: "${SECRET_MY_EMAIL}"

View File

@ -2,14 +2,10 @@ apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
metadata: metadata:
name: wildcard-main-cert name: wildcard-main-cert
namespace: traefik #cert-manager namespace: nginx
spec: spec:
secretName: wildcard-main-tls secretName: wildcard-main-tls
# secretTemplate:
# annotations:
# replicator.v1.mittwald.de/replicate-to: "traefik"
duration: 2160h # 90d duration: 2160h # 90d
renewBefore: 360h # 15d renewBefore: 360h # 15d
@ -20,6 +16,4 @@ spec:
dnsNames: dnsNames:
- "${SECRET_NEW_DOMAIN}" - "${SECRET_NEW_DOMAIN}"
- "*.${SECRET_NEW_DOMAIN}" - "*.${SECRET_NEW_DOMAIN}"
# - "*.k3s.${SECRET_NEW_DOMAIN}" - "*.internal.${SECRET_NEW_DOMAIN}"
# - "*.database.${SECRET_NEW_DOMAIN}"
# - "*.s3.${SECRET_NEW_DOMAIN}"

View File

@ -0,0 +1,28 @@
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: cert-manager-certificates
namespace: flux-system
spec:
timeout: 5m
interval: 10m
path: ./kubernetes/common/apps/cert-manager/certs/files
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
dependsOn:
- name: cert-manager
namespace: flux-system
postBuild:
substitute: {}
substituteFrom:
- kind: ConfigMap
name: cluster-settings
- kind: Secret
name: cluster-secrets

View File

@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./namespace.yaml
- ./app/ks.yaml
- ./certs/ks.yaml

View File

@ -0,0 +1,28 @@
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: postgresql
namespace: flux-system
spec:
timeout: 5m
interval: 10m
path: ./kubernetes/common/apps/database/dbs/postgresql
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
dependsOn:
- name: openebs-sc
namespace: flux-system
postBuild:
substitute: {}
substituteFrom:
- kind: ConfigMap
name: cluster-settings
- kind: Secret
name: cluster-secrets

View File

@ -0,0 +1,42 @@
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: postgresql
namespace: database
spec:
interval: 5m
chart:
spec:
chart: postgresql
version: 14.3.x
sourceRef:
kind: HelmRepository
name: bitnami-charts
namespace: flux-system
values:
auth:
existingSecret: "pgsql-secrets"
secretKeys:
adminPasswordKey: "adminPassword"
replicationPasswordKey: "replicationPassword"
serviceMonitor:
enabled: true
labels:
release: kube-prometheus-stack
volumePermissions:
enabled: true
primary:
persistence:
existingClaim: "postgresql-pvc"
containerSecurityContext:
enabled: true
runAsUser: 655
readReplicas:
containerSecurityContext:
enabled: true
runAsUser: 655

View File

@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./pgsql-pv.yaml
- ./pgsql.sops.yaml
- ./helm-release.yaml
#- ./pgadmin4

View File

@ -0,0 +1,47 @@
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: pgadmin4
namespace: database
spec:
interval: 5m
chart:
spec:
chart: pgadmin4
version: "1.28.0"
sourceRef:
kind: HelmRepository
name: runix-charts
namespace: flux-system
values:
ingress:
enabled: true
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
traefik.ingress.kubernetes.io/router.entrypoints: websecure
hosts:
- host: &host pgadm.${SECRET_NEW_DOMAIN}
paths:
- path: "/"
pathType: Prefix
tls:
- hosts:
- *host
# securityContext:
# runAsUser: 10000
# runAsGroup: 10000
# fsGroup: 10000
#
# containerSecurityContext:
# enabled: true
# allowPrivilegeEscalation: false
# envVarsFromConfigMaps:
# - pgadmin4-secret
persistentVolume:
enabled: false
volumePermissions:
enabled: true

View File

@ -0,0 +1,8 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: runix-charts
namespace: flux-system
spec:
interval: 1m
url: https://helm.runix.net

View File

@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./pgadmin4.sops.yaml
- ./helm-repository.yaml
- ./helm-release.yaml

View File

@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgresql-pvc
namespace: database
spec:
storageClassName: openebs-dual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi

View File

@ -0,0 +1,62 @@
apiVersion: v1
kind: Secret
metadata:
name: pgsql-secrets
namespace: database
stringData:
adminPassword: ENC[AES256_GCM,data:gJ7rl2V/VlbIIRvRHcwMaZKN87t5n8bVWZCj/tRv8Uw=,iv:b/5eEnOrHzJrtnO+E2IGwJLHy2AdJQwv9WfUR5fUHY4=,tag:nTtaDNHVfYpChQX9UWwdKA==,type:str]
userPassword: ENC[AES256_GCM,data:gR7q508lUaRDRJ/z5lH99JLJSS9zWfg0O+TAm2B9uvo=,iv:9DDQxwd/BGtLQDacAH/crfT+qU4Pn5sGkWuEtmMprUI=,tag:tK3WoUd7729LQDVqU7pckQ==,type:str]
replicationPassword: ENC[AES256_GCM,data:BSA5IfYhhvN445yp2i3BI5zlIXgdj+LejCPzvlTMnVo=,iv:Qku2NAQPLxt+NUnk2dSx1+WAoyx3aEuA3+piU2mubYk=,tag:MnI+atK6VLZUc3eGS1OE1w==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: []
lastmodified: "2023-10-22T16:25:15Z"
mac: ENC[AES256_GCM,data:uWVPfKwPpR212js7f2RnCzEsMnxk2JpGPcf2L5i4gJCddJCrRJkdhjWGyVVpp/ociP3JLRTI95+WSEUH0KkPZpY1ptQevCVsUemRytOCtBlR0yR4qsBwEisSu8m4B5dbAYsqlXAndrBNL2WGB7uBv+ILgNxkhlN58unseSWJBDM=,iv:e7QyZSlhpyQ+A8OmV4p1848itIUxyam6CJOI9/N7DDY=,tag:N28mfrAjUTTYkly1hu0OhA==,type:str]
pgp:
- created_at: "2023-06-19T18:35:15Z"
enc: |
-----BEGIN PGP MESSAGE-----
hQIMAzKleRwoSoixAQ//aQdUERyq3G7V29F5rpY6LdDgo8+hqrrZvdI3JnON0VUM
Tj3AAYg+xvYh8aPQywF9fJvn6qNw8fqrb2GiuuNTa9ZPCFsD+WXbuYHmQ9z6tAtV
opXe3QLNBuo9zEtUfGPbaCp8EH7f1TxQsTJoe9iE/1B2S69cHNUdgXZtfQyhpmlG
iyAk/G04kPazweIuFNjOYaN/12J/s2Cf5AZUeROkMxg8/GTPO68LeEBz9v4vl/1z
JlxmZyXR/9IeoBlO63asDrR85fcvSDb31K4qE3WVkag20bXClv1lehLVKO4bxA/F
lW1tXDR3odC9Ozme884Znd05L0NWkzYKYRta198IV6JuSCeMdjTscGGlMM9wqqKz
SZgs81FHXT16YCVupfI22CqMiD0EzQXrGEtJ4NqaBvhZu+MDxszNRzIl73b0HANc
8JQqQqOJh7ltrWnf39Xlv73yVC/pYbaV1LWGnMfqWvOcksa9QjOH9Ysfj/RxdaMw
VQhydU+21+xeuEQBL7OsiJQUzgJjFREnTRPXcorCtWxocCn5zwdct1SFchFzCOTp
H0ubpD+MP4RTWxuYbZRhE5ty6GJU9liRH7dUJtVaQiv8V+G1DungTqq36AbbnHzd
9cy+4cM3wZx2VYElL7DBom8nqqm7Xhffr0UaaY8VFuV5bBry3BmM5rOr8vDYqf7U
aAEJAhC/4yiBMuhEB+fwXIq/dBjMzW+p8SotK2QK03yaTFQchnBDknwVdqcKQxIZ
di3kupnjB+KllWOZhl121tT9L35ymL53BUu1FKCTFdIS2wXxy6UlIS98n0bvWJYN
c5WTfk81xmbT
=UE14
-----END PGP MESSAGE-----
fp: 2CC2B3631D5C3393901335DB68F95C5D753EE1E5
- created_at: "2023-06-19T18:35:15Z"
enc: |
-----BEGIN PGP MESSAGE-----
hQIMAy5t8IMoPu4VAQ/9G2JDsJw6YJMjstWPrv07tnU0ErWZx5WGcNUGhw6T5tOJ
kXCAuaZax8NxoTtZnQ9Cd+WgJr7R0FuVPEPTc4G2RsfntSZq5rBgCpT0fgwyASFX
64b6YTbLcCL+G6sg/FwIi9SRqqCsaljATjoU685vrjaxYYfAdhyUoM3qSNjMMaMl
zVjn0kbWrQn4GqfuRMqcr+zCIQdHNTTJ12+c6UUo/zJp4zzjA68Yur9aiw1iHtR1
rYCPHX2/ZmQjADTHXqwpuMdb5j0VDcd5JcZabdcJkhn/6MRJiN+XryZN/Neq9UbF
5WrMaZz5v0iRnMUCr8HMw29P0ttu5Sma+RyCOZuWlpsXj+C84pJ8CjBbFhzSJzGP
cKI8Syn0CPLN3X6vKs+LJXEHg1jxJ9kuN+RgW+SQRctUX3A0JtFg2tWplkptNtLl
hN5rW+fWxk7BV9dP7wouwVJiKcW3Y/OMCF5H8YHwL/KVHvANBwNM+nmFPrHaqN2s
0RghznmZMVG+9IYedSM6d8ZJLnO/QsNTE0QTGM/3dmBAn9jcndCLTgcgThAtvcmw
lFJYaMN3W455Cccaif93xnb44yn47actgEuM6GOuP15GGJaHD2iBQ2atHcaQhNQR
mxhIIouu+Kaa6g34MA/VGDNoN0eNYI5RZIUSSBl7bgaOXs9/3j1Uvap9yesCaOTU
aAEJAhDDqjX7RUazeEByAiKjv5TxpQzsi8gR4zyrhf6tTx34jHzQNoVjYEtLMEVl
ZlAJ06RoxOj8O6+8RGYd/ZUE+TQPQ4jx+PgWrZPUQx8TSxevuduw5XZ1lKytUSCZ
GFDjOxp0lMGV
=LHSB
-----END PGP MESSAGE-----
fp: 687802D4DFD8AA82EA55666CF7DADAC782D7663D
encrypted_regex: ^(data|stringData)$
version: 3.8.0

View File

@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./namespace.yaml
- ./dbs/ks.yaml

View File

@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: database

View File

@ -0,0 +1,24 @@
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: intel-gpu
namespace: flux-system
spec:
timeout: 5m
interval: 10m
path: ./kubernetes/common/apps/intel-gpu/files
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
dependsOn:
- name: nfd
namespace: flux-system
# requires certificates for communications between plugins
- name: cert-manager
namespace: flux-system

View File

@ -24,4 +24,4 @@ spec:
namespace: flux-system namespace: flux-system
values: values:
crds: crds:
enabled: false enabled: true

View File

@ -1,5 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- ./traefik - ./helm-release.yaml
- ./metallb

View File

@ -0,0 +1,25 @@
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: metallb
namespace: flux-system
spec:
timeout: 5m
interval: 10m
path: ./kubernetes/common/apps/metallb/app/files
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
postBuild:
substitute: {}
substituteFrom:
- kind: ConfigMap
name: cluster-settings
- kind: Secret
name: cluster-secrets

View File

@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./namespace.yaml
- ./app/ks.yaml
- ./pool/ks.yaml

View File

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./metallb-static-ips.yaml

View File

@ -0,0 +1,28 @@
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: metallb-pool
namespace: flux-system
spec:
timeout: 5m
interval: 10m
path: ./kubernetes/common/apps/metallb/pool/files
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
dependsOn:
- name: metallb
namespace: flux-system
postBuild:
substitute: {}
substituteFrom:
- kind: ConfigMap
name: cluster-settings
- kind: Secret
name: cluster-secrets

View File

@ -7,7 +7,7 @@ metadata:
spec: spec:
timeout: 5m timeout: 5m
interval: 10m interval: 10m
path: ./kubernetes/main/core/nfd/files path: ./kubernetes/common/apps/nfd/files
prune: true prune: true
sourceRef: sourceRef:
kind: GitRepository kind: GitRepository

View File

@ -4,5 +4,4 @@ resources:
- ./namespace.yaml - ./namespace.yaml
- ./helm-repository.yaml - ./helm-repository.yaml
- ./helm-release.yaml - ./helm-release.yaml
- ./mainpool-sc.yaml
- ./monitoring-helm-release.yaml - ./monitoring-helm-release.yaml

View File

@ -8,7 +8,7 @@ spec:
chart: chart:
spec: spec:
chart: traefik chart: traefik
version: '30.1.0' version: '31.1.0'
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: traefik-charts name: traefik-charts
@ -17,7 +17,6 @@ spec:
values: values:
additionalArguments: additionalArguments:
- --api.insecure - --api.insecure
- --entryPoints.factorio.address=:34197/udp
logs: logs:
general: general:

View File

@ -4,5 +4,4 @@ resources:
- ./namespace.yaml - ./namespace.yaml
- ./helm-repository.yaml - ./helm-repository.yaml
- ./helm-release.yaml - ./helm-release.yaml
- ./default-tls-store.yaml
- ./dashboard-ingress.yaml - ./dashboard-ingress.yaml

View File

@ -0,0 +1,25 @@
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: traefik
namespace: flux-system
spec:
timeout: 5m
interval: 10m
path: ./kubernetes/common/apps/traefik/app/files
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
postBuild:
substitute: {}
substituteFrom:
- kind: ConfigMap
name: cluster-settings
- kind: Secret
name: cluster-secrets

View File

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./default-tls-store.yaml

View File

@ -0,0 +1,30 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: traefik-default-tls
namespace: flux-system
spec:
timeout: 5m
interval: 10m
path: ./kubernetes/common/apps/traefik/extra/files
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
dependsOn:
- name: traefik
namespace: flux-system
postBuild:
substitute: {}
substituteFrom:
- kind: ConfigMap
name: cluster-settings
- kind: Secret
name: cluster-secrets

View File

@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./app/ks.yaml
- ./extra/ks.yaml

View File

@ -10,7 +10,7 @@ spec:
chart: chart:
spec: spec:
chart: authentik chart: authentik
version: 2024.6.4 version: 2024.8.2
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: authentik-charts name: authentik-charts

View File

@ -8,7 +8,7 @@ spec:
chart: chart:
spec: spec:
chart: mysql chart: mysql
version: 11.1.15 version: 11.1.17
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: bitnami-charts name: bitnami-charts

View File

@ -8,7 +8,7 @@ spec:
chart: chart:
spec: spec:
chart: pgadmin4 chart: pgadmin4
version: "1.28.0" version: "1.29.0"
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: runix-charts name: runix-charts

View File

@ -8,7 +8,7 @@ spec:
chart: chart:
spec: spec:
chart: redis chart: redis
version: 20.0.x version: 20.1.x
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: bitnami-charts name: bitnami-charts

View File

@ -1,3 +1,4 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2beta2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2 apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease kind: HelmRelease
metadata: metadata:
@ -8,58 +9,68 @@ spec:
chart: chart:
spec: spec:
chart: app-template chart: app-template
version: 1.3.x version: 3.4.0
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: bjws-charts name: bjws-charts
namespace: flux-system namespace: flux-system
values: values:
image: controllers:
repository: oci.seedno.de/seednode/nginx main:
tag: latest pod:
securityContext:
runAsNonRoot: true
runAsUser: 65534
runAsGroup: 65533
fsGroup: 10000
fsGroupChangePolicy: OnRootMismatch
args: containers:
- -c main:
- /config/nginx.conf image:
repository: git.${SECRET_NEW_DOMAIN}/seanomik/nginx
tag: 1.27.1
pullPolicy: Always
resources:
requests:
memory: 500Mi
securityContext:
allowPrivilegeEscalation: false
capabilities: { drop: ["ALL"] }
service: service:
main: app:
controller: main
ports: ports:
http: http:
port: 6544 port: 6544
probes:
liveness:
enabled: false
ingress: ingress:
main: main:
enabled: true
annotations: annotations:
cert-manager.io/cluster-issuer: letsencrypt-production cert-manager.io/cluster-issuer: letsencrypt-production
traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.entrypoints: websecure
hosts: hosts:
- host: &host "cdn.${SECRET_NEW_DOMAIN}" - host: "cdn.${SECRET_NEW_DOMAIN}"
paths: paths:
- path: / - path: /
pathType: Prefix service:
tls: identifier: app
- hosts: port: http
- *host
persistence: persistence:
data:
enabled: true
type: hostPath
hostPath: /mnt/MainPool/Kubernetes/cdn/data
readOnly: true
mountPath: /data
config: config:
enabled: true
type: configMap type: configMap
name: nginx-cdn-configmap name: nginx-cdn-configmap
globalMounts:
- path: /etc/nginx/nginx.conf
subPath: nginx.conf
resources: storage:
requests: type: hostPath
cpu: 1m hostPath: /mnt/MainPool/Kubernetes/cdn/data
globalMounts:
- path: /data

View File

@ -30,7 +30,7 @@ spec:
main: main:
image: image:
repository: matrixdotorg/dendrite-monolith repository: matrixdotorg/dendrite-monolith
tag: v0.13.7 tag: v0.13.8
service: service:
app: app:

View File

@ -26,21 +26,21 @@ spec:
# fsGroup: 10000 # fsGroup: 10000
# fsGroupChangePolicy: OnRootMismatch # fsGroupChangePolicy: OnRootMismatch
initContainers:
copy-config:
image:
repository: alpine
tag: 3.20
command: [ "sh", "-c", "cat /ganymede-config.json && cp -v /ganymede-config.json /data/config.json" ]
containers: containers:
api: api:
image: image:
repository: ghcr.io/zibbp/ganymede repository: ghcr.io/zibbp/ganymede
tag: 3.0.1 tag: 3.0.1
securityContext:
#allowPrivilegeEscalation: false
#capabilities: { drop: ["ALL"] }
env: env:
- name: PUID
value: 555
- name: PGID
value: 555
- name: TZ - name: TZ
value: "America/New_York" # Set to your timezone value: "America/New_York" # Set to your timezone
- name: DB_HOST - name: DB_HOST
@ -103,7 +103,7 @@ spec:
frontend: frontend:
image: image:
repository: ghcr.io/zibbp/ganymede-frontend repository: ghcr.io/zibbp/ganymede-frontend
tag: 3.0.0 tag: 3.0.1
env: env:
- name: API_URL - name: API_URL
@ -124,6 +124,10 @@ spec:
repository: nginxinc/nginx-unprivileged repository: nginxinc/nginx-unprivileged
tag: 1.27.1-alpine tag: 1.27.1-alpine
securityContext:
allowPrivilegeEscalation: false
capabilities: { drop: ["ALL"] }
service: service:
app: app:
controller: main controller: main
@ -155,7 +159,7 @@ spec:
service: service:
identifier: app identifier: app
port: api port: api
- path: /vods - path: /data/videos
service: service:
identifier: app identifier: app
port: nginx port: nginx
@ -168,18 +172,18 @@ spec:
storageClass: mainpool-hostpath storageClass: mainpool-hostpath
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
globalMounts: globalMounts:
- path: /vods - path: /data/videos
ganymede-data: ganymede-data:
type: persistentVolumeClaim type: persistentVolumeClaim
size: 5Gi size: 15Gi
retain: true retain: true
storageClass: mainpool-hostpath storageClass: mainpool-hostpath
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
advancedMounts: advancedMounts:
main: # controller name main: # controller name
api: # container name api: # container name
- path: /data - path: /data/temp
ganymede-logs: ganymede-logs:
type: persistentVolumeClaim type: persistentVolumeClaim
@ -190,7 +194,7 @@ spec:
advancedMounts: advancedMounts:
main: # controller name main: # controller name
api: # container name api: # container name
- path: /logs - path: /data/logs
nginx-conf: nginx-conf:
name: ganymede-nginx-conf name: ganymede-nginx-conf
@ -199,17 +203,8 @@ spec:
advancedMounts: advancedMounts:
main: # controller name main: # controller name
nginx: # container name nginx: # container name
- subPath: nginx.conf - path: /etc/nginx/nginx.conf
path: /etc/nginx/nginx.conf subPath: nginx.conf
ganymede-temp-conf:
type: emptyDir
advancedMounts:
main: # controller name
api: # container name
- path: /data
copy-config: # container name
- path: /data
ganymede-conf: ganymede-conf:
name: ganymede-conf name: ganymede-conf
@ -217,6 +212,7 @@ spec:
defaultMode: 0777 defaultMode: 0777
advancedMounts: advancedMounts:
main: # controller name main: # controller name
copy-config: # container name api: # container name
- subPath: config.json - path: /data/config/config.json
path: /ganymede-config.json subPath: config.json

View File

@ -26,16 +26,16 @@ data:
server { server {
listen 8080; listen 8080;
root /vods; root /data/videos;
add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range' always; add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always; add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always;
location ^~ /vods { location ^~ /data/videos {
autoindex on; autoindex on;
alias /vods; alias /data/videos;
location ~* \.(ico|css|js|gif|jpeg|jpg|png|svg|webp)$ { location ~* \.(ico|css|js|gif|jpeg|jpg|png|svg|webp)$ {
expires 30d; expires 30d;

View File

@ -22,7 +22,7 @@ spec:
main: main:
image: image:
repository: temporalio/auto-setup repository: temporalio/auto-setup
tag: 1.24 tag: 1.25
env: env:
- name: DB - name: DB

View File

@ -8,7 +8,7 @@ spec:
chart: chart:
spec: spec:
chart: woodpecker chart: woodpecker
version: "1.5.1" version: "1.6.0"
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: woodpecker-charts name: woodpecker-charts

View File

@ -17,7 +17,7 @@ spec:
values: values:
image: image:
repository: ghcr.io/onedr0p/bazarr repository: ghcr.io/onedr0p/bazarr
tag: "1.4.3" tag: "1.4.4"
env: env:
TZ: America/New_York TZ: America/New_York

View File

@ -17,7 +17,7 @@ spec:
values: values:
image: image:
repository: ghcr.io/onedr0p/prowlarr-develop repository: ghcr.io/onedr0p/prowlarr-develop
tag: "1.21.2.4649" tag: "1.24.0.4721"
# Metrics sidecar # Metrics sidecar
sidecars: sidecars:

View File

@ -35,7 +35,7 @@ spec:
image: image:
repository: bobokun/qbit_manage repository: bobokun/qbit_manage
tag: "v4.1.7" tag: "v4.1.9"
env: env:
QBT_STARTUP_DELAY: 45 # seconds QBT_STARTUP_DELAY: 45 # seconds

View File

@ -28,7 +28,7 @@ spec:
app: app:
image: image:
repository: ghcr.io/onedr0p/qbittorrent repository: ghcr.io/onedr0p/qbittorrent
tag: 4.6.5 tag: 4.6.7
env: env:
QBITTORRENT__PORT: 8080 QBITTORRENT__PORT: 8080

View File

@ -17,7 +17,7 @@ spec:
values: values:
image: image:
repository: ghcr.io/onedr0p/radarr-develop repository: ghcr.io/onedr0p/radarr-develop
tag: "5.10.0.9090" tag: "5.10.3.9178"
# Metrics sidecar # Metrics sidecar
sidecars: sidecars:

View File

@ -17,7 +17,7 @@ spec:
values: values:
image: image:
repository: ghcr.io/onedr0p/sonarr-develop repository: ghcr.io/onedr0p/sonarr-develop
tag: "4.0.9.2300" tag: "4.0.9.2386"
# Metrics sidecar # Metrics sidecar
sidecars: sidecars:

View File

@ -17,7 +17,7 @@ spec:
values: values:
image: image:
repository: goofball222/factorio repository: goofball222/factorio
tag: "1.1.109" tag: "1.1.110"
service: service:
main: main:

View File

@ -21,7 +21,7 @@ spec:
# Add init container for pulling znc modules and putting them into the modules directory # Add init container for pulling znc modules and putting them into the modules directory
initContainers: initContainers:
pull-module-source: pull-module-source:
image: alpine:3.20.2 image: alpine:3.20.3
command: command:
- "sh" - "sh"
- "-c" - "-c"

View File

@ -23,7 +23,7 @@ spec:
main: main:
image: image:
repository: ghcr.io/advplyr/audiobookshelf repository: ghcr.io/advplyr/audiobookshelf
tag: 2.13.2 tag: 2.13.4
service: service:
app: app:

View File

@ -17,7 +17,7 @@ spec:
values: values:
image: image:
repository: linuxserver/freshrss repository: linuxserver/freshrss
tag: "1.24.2" tag: "1.24.3"
env: env:
PUID: 10000 PUID: 10000

View File

@ -22,7 +22,7 @@ spec:
app: app:
image: image:
repository: linuxserver/jellyfin repository: linuxserver/jellyfin
tag: 10.9.10 tag: 10.9.11
env: env:
PUID: 10000 PUID: 10000

View File

@ -17,7 +17,7 @@ spec:
values: values:
image: image:
repository: gotson/komga repository: gotson/komga
tag: "1.12.0" tag: "1.13.0"
env: env:
TZ: America/New_York TZ: America/New_York

View File

@ -8,7 +8,7 @@ spec:
chart: chart:
spec: spec:
chart: grafana chart: grafana
version: "8.5.0" version: "8.5.1"
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: grafana-charts name: grafana-charts

View File

@ -8,7 +8,7 @@ spec:
chart: chart:
spec: spec:
chart: kube-prometheus-stack chart: kube-prometheus-stack
version: "62.3.1" version: "62.7.0"
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: prometheus-community-charts name: prometheus-community-charts

View File

@ -17,7 +17,7 @@ spec:
values: values:
image: image:
repository: prompve/prometheus-pve-exporter repository: prompve/prometheus-pve-exporter
tag: "3.4.4" tag: "3.4.5"
args: args:
- --config.file - --config.file

View File

@ -8,7 +8,7 @@ spec:
chart: chart:
spec: spec:
chart: victoria-metrics-single chart: victoria-metrics-single
version: 0.11.0 version: 0.11.2
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: victoria-metrics-charts name: victoria-metrics-charts

View File

@ -3,9 +3,14 @@ kind: Kustomization
resources: resources:
- ./kube-system - ./kube-system
- ./helm-repositories.yaml - ./helm-repositories.yaml
- ./cert-manager - ../../common/apps/cert-manager
- ./networking - ../../common/apps/metallb
- ./storage - ../../common/apps/traefik
# storage
- ./longhorn
- ./openebs
- ./kube-replicator - ./kube-replicator
- ./nfd/ks.yaml
- ./intel-gpu/ks.yaml - ../../common/apps/nfd/ks.yaml
- ../../common/apps/intel-gpu/ks.yaml

View File

@ -8,7 +8,7 @@ spec:
chart: chart:
spec: spec:
chart: longhorn chart: longhorn
version: "1.7.0" version: "1.7.1"
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: longhorn-charts name: longhorn-charts

View File

@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../../common/apps/openebs
- ./mainpool-sc.yaml

View File

@ -1,82 +0,0 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: local-path-provisioner
namespace: flux-system
spec:
interval: 1m
url: https://github.com/rancher/local-path-provisioner.git
ref:
tag: v0.0.28
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: local-path-provisioner
namespace: kube-system
spec:
interval: 15m
chart:
spec:
chart: ./deploy/chart/local-path-provisioner
sourceRef:
kind: GitRepository
name: local-path-provisioner
namespace: flux-system
maxHistory: 3
install:
createNamespace: true
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
uninstall:
keepHistory: false
values:
helperImage:
repository: public.ecr.aws/docker/library/busybox
tag: latest
storageClass:
defaultClass: false
nodePathMap:
- node: DEFAULT_PATH_FOR_NON_LISTED_NODES
paths: ["/var/lib/rancher/k3s/storage"]
# Note: Do not enable Flux variable substitution on this HelmRelease
configmap:
setup: |-
#!/bin/sh
while getopts "m:s:p:" opt
do
case $opt in
p)
absolutePath=$OPTARG
;;
s)
sizeInBytes=$OPTARG
;;
m)
volMode=$OPTARG
;;
esac
done
mkdir -m 0777 -p ${absolutePath}
chmod 701 ${absolutePath}/..
teardown: |-
#!/bin/sh
while getopts "m:s:p:" opt
do
case $opt in
p)
absolutePath=$OPTARG
;;
s)
sizeInBytes=$OPTARG
;;
m)
volMode=$OPTARG
;;
esac
done
rm -rf ${absolutePath}

View File

@ -9,7 +9,7 @@ spec:
url: https://github.com/traefik/traefik-helm-chart.git url: https://github.com/traefik/traefik-helm-chart.git
ref: ref:
# renovate: registryUrl=https://helm.traefik.io/traefik chart=traefik # renovate: registryUrl=https://helm.traefik.io/traefik chart=traefik
tag: v30.1.0 tag: v31.1.0
ignore: | ignore: |
# exclude all # exclude all
/* /*

View File

@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- ./cluster-secrets.sops.yaml - ./cluster-secrets.sops.yaml
- ./orca-registry-puller.sops.yaml
- ./cluster-settings.yaml - ./cluster-settings.yaml

View File

@ -1,62 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
name: orca-puller
namespace: default
annotations:
replicator.v1.mittwald.de/replication-allowed: "true"
replicator.v1.mittwald.de/replication-allowed-namespaces: '*'
data:
.dockerconfigjson: ENC[AES256_GCM,data:g58h5rYAEZu2W3CYnYHgajsp7wvnFdhyRCt1qWPHbVDC+nwD1TVqTGDga1b2/RTR5tdobqZ9FdP41/1dzZeNBe2lfXOsWhQYd87EhpchFYRgsb9u7ZL32sxERhAxSg+0/AaoIYSHbuBLgRwxqnHOojS7Hcg956L+6Kgh/uiaOGsUrKRjlMAI0aN4agx+n/nU,iv:ichMs+o/3ld90VVq/UatXpAtpD6qjrEIdt0ZRwyh0Gg=,tag:lxvZy9U6sGsndz3sAy3DTQ==,type:str]
type: kubernetes.io/dockerconfigjson
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: []
lastmodified: "2023-07-22T02:12:00Z"
mac: ENC[AES256_GCM,data:yFHVGwFdi2n4Ju6SqqxXDxqxZaHKROIsQZtF+AtJY52f0XJif9jP2fi05dnxULnQ+wWOq4FPwVXc/9GiCiYMItecEApS0+6C7sWxKCWzYYAiFyxSajECzNtr4/XN5yoZBJCgsgFAf42jy9Nr5xLHOAVomnNfmDheS/Pe+Uq9v9E=,iv:oFKca0hHR7ERNgJqDp3pOxzQDBlTCF9Fx1yIl3HCj2o=,tag:107vU6pOFE6Na4BO5C5tiA==,type:str]
pgp:
- created_at: "2023-07-22T02:12:00Z"
enc: |
-----BEGIN PGP MESSAGE-----
hQIMAzKleRwoSoixAQ//QEVgmHtcIVC1afYtQMgD3Kwb+n0nZid3d/enKN64D+fJ
bw0xXX9tjO4sy3To49k0EDETLW5paxcNApFYL+zajxNfa+EAZfdYxQqKWraQcxvL
/p8bNDyzYDrecWcIdcq4RqrVEA4Ga0K6MmPM0t5l+J/PgguDJWmAxEzlmTb/CdqI
MpUmO0RoLHb6m0vfAkEI0LT5E/37pTdqjAq4eMT9n7zxeHr3NmJBIetahENxTKDk
Ymw7DhBCLZBPvHyxw/kU7hS/yhJMxmLw9mjHuzWkYVYmZQDB/TwqWsL4cVLFNAVu
LqZBHtl2HmaeGefhDij4SfxCj3qTi1e3z1T5wch97XmFanabNizb2oezHYou4h5k
AVqWuxUd13am9YhmRMQ32TPPxyAWpV4W87C/XnIrMrfePH2xy54S2ISyL5lQ1I3K
5/a4ZMU8hBdCw7FxX6OSAXUd5cCfelJEaRopvwgXF5ZfQjARjQ7iGCedqBQbOsZM
vsf5WQvYxp8uivj7gKxhn+KkqJoM225OQKlSwCQ2bj20WsZ3SrjBuK41iO88urej
SJLAqG42e+nUjHXn/ql794kCHHG59uRES1wWLvgQ6Siu8TxJK6B+fjOrHBMOeSiD
oMKyqWIvziXN5KczkIpOWFCJzHb+AGTUn/a/jCLAqAxAqkWHwwbLdMiUv1053vHS
XgHkdbFnWqSekHCdLXu6q1lJhY+VAyzI55Ex2HvdxzBxWQKZAD4c1fFN/88j/Fb4
6/IVZvSU45coCyUR3O+py0s6XvBjrJL6W4haNXMl6nVcTxHgby1JTX5vickv400=
=cqEc
-----END PGP MESSAGE-----
fp: 2CC2B3631D5C3393901335DB68F95C5D753EE1E5
- created_at: "2023-07-22T02:12:00Z"
enc: |
-----BEGIN PGP MESSAGE-----
hQIMAy5t8IMoPu4VAQ//RAyoi7oTNza3klhojjvUXum9iH3pOl1eqNu3qdJc9L4A
rGeo7Q9NTgywAaHQA4N0WPjJfFNkKSFLBxbtRpzlVCNrfontoGoFr5fGFWDh2Kfe
LydY3Zz9yUfcQYuGm8onVM6B6ImYUtM9ZPix808jxfiuz7rvqNmxqTdCa9o5oMHK
TqQ5u26MBR9cFf+W7bxKdDsqm4vEhxxWpEf5wgX+iZboA4O/J8LCVwrp6pb2pJ1q
nMA5ElKk/WZbsB6C20DYNXJRsdHjC1Huye6NDt1Em2XY9qcfWkQskVtohlYCdDCp
TciHgOF32rmN7h1i4j5Ae58AaSQmNRpKZFc192z8+dHdiSlzQEno6XXV11pezz/i
0ALvy2Q+r7xFA8xXyrOf7xOU/j9T8XCEAeidtQoZzEcINtg93tKItakzqacxRa2C
4Yj3Wic3LGSX13dZ5cpQNT6P3F6UMVAlVEEu1lHdsAjShbmuFWSFNXVo473O3Nwu
1imHmfb1xnqbiWS0tKdUX9jMQg+xYPrsAXQESq/9PmPJxl4tsGPzzCu+rMKf9pmF
XqGBASdcf9WaB4Hojm6+4UKb7pPDKAC2vLnOV9ilGv/0z+DwxU0x9swPkAYBm9M9
KkcaEh8petqyU2J8f91ESU3OafMo2h5OsJvzB2Zte2XIZIZV0h0y8mo6LKOJ1hzS
XgFiMVicO02DFcMkSJXA7ZVnV+1qfJl5vPW6Sa0vDikz/k8jYoRSv2skwZcpFIYf
Kr6LbZskq2QVBDS50HdpbOfyF+N8/mYuSfjKkuVH8oOq0KrZ38eJROiygPgpUYk=
=i9P2
-----END PGP MESSAGE-----
fp: 687802D4DFD8AA82EA55666CF7DADAC782D7663D
encrypted_regex: ^(data|stringData)$
version: 3.7.3

View File

@ -0,0 +1,54 @@
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPClusterConfig
metadata:
name: cilium-bgp
spec:
nodeSelector:
matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: DoesNotExist
bgpInstances:
- name: "bgp-public"
localASN: 65552
peers:
- name: "router"
peerASN: 65551
peerAddress: 192.168.1.1
peerConfigRef:
name: "cilium-peer-router"
---
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPPeerConfig
metadata:
name: cilium-peer-router
spec:
timers:
holdTimeSeconds: 9
keepAliveTimeSeconds: 3
gracefulRestart:
enabled: true
restartTimeSeconds: 15
families:
- afi: ipv4
safi: unicast
advertisements:
matchLabels:
advertise: "bgp-public"
---
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPAdvertisement
metadata:
name: bgp-public-ad
labels:
advertise: "bgp-public"
spec:
advertisements:
- advertisementType: "Service"
service:
addresses:
#- ClusterIP
- ExternalIP
- LoadBalancerIP
selector:
matchLabels:
bgp/service-type: public

Some files were not shown because too many files have changed in this diff Show More