1 parent
4307357430
commit
7f8db0c466
26 files changed
+643
No files matched your search
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: cloudnative-pg
|
||||||
|
spec:
|
||||||
|
interval: 30m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
# renovate: registryUrl=https://cloudnative-pg.github.io/charts
|
||||||
|
chart: cloudnative-pg
|
||||||
|
version: 0.22.1
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: cloudnative-pg
|
||||||
|
namespace: flux-system
|
||||||
|
install:
|
||||||
|
remediation:
|
||||||
|
retries: 3
|
||||||
|
upgrade:
|
||||||
|
cleanupOnFail: true
|
||||||
|
remediation:
|
||||||
|
strategy: rollback
|
||||||
|
retries: 3
|
||||||
|
values:
|
||||||
|
crds:
|
||||||
|
create: true
|
||||||
|
monitoring:
|
||||||
|
podMonitorEnabled: false
|
||||||
|
grafanaDashboard:
|
||||||
|
create: true
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ./helmrelease.yaml
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/postgresql.cnpg.io/cluster_v1.json
|
||||||
|
apiVersion: postgresql.cnpg.io/v1
|
||||||
|
kind: Cluster
|
||||||
|
metadata:
|
||||||
|
name: postgres
|
||||||
|
spec:
|
||||||
|
instances: 3
|
||||||
|
imageName: ghcr.io/cloudnative-pg/postgresql:16.5-1
|
||||||
|
primaryUpdateStrategy: unsupervised
|
||||||
|
storage:
|
||||||
|
size: 20Gi
|
||||||
|
storageClass: cifs-database
|
||||||
|
superuserSecret:
|
||||||
|
name: cloudnative-pg
|
||||||
|
enableSuperuserAccess: true
|
||||||
|
postgresql:
|
||||||
|
parameters:
|
||||||
|
max_connections: "600"
|
||||||
|
max_slot_wal_keep_size: 10GB
|
||||||
|
shared_buffers: 512MB
|
||||||
|
nodeMaintenanceWindow:
|
||||||
|
inProgress: false
|
||||||
|
reusePVC: true
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 2Gi
|
||||||
|
limits:
|
||||||
|
cpu: 1
|
||||||
|
memory: 4Gi
|
||||||
|
monitoring:
|
||||||
|
enablePodMonitor: true
|
||||||
|
# backup:
|
||||||
|
# retentionPolicy: 30d
|
||||||
|
# barmanObjectStore: &barmanObjectStore
|
||||||
|
# data:
|
||||||
|
# compression: bzip2
|
||||||
|
# wal:
|
||||||
|
# compression: bzip2
|
||||||
|
# maxParallel: 8
|
||||||
|
# destinationPath: "s3://cloudnative-pg-v1"
|
||||||
|
# endpointURL: "https://${SECRET_QNAP_HOSTNAME}:8010"
|
||||||
|
# # Note: serverName version needs to be incremented or changed
|
||||||
|
# # when recovering from an existing cnpg cluster
|
||||||
|
# serverName: ¤tCluster postgres-v2
|
||||||
|
# s3Credentials:
|
||||||
|
# accessKeyId:
|
||||||
|
# name: cloudnative-pg
|
||||||
|
# key: s3-key-id
|
||||||
|
# secretAccessKey:
|
||||||
|
# name: cloudnative-pg
|
||||||
|
# key: s3-secret-key
|
||||||
|
# # Note: externalClusters is needed when recovering from an existing cnpg cluster
|
||||||
|
# externalClusters:
|
||||||
|
# # s3 instance recovery
|
||||||
|
# - name: &previousCluster postgres-v1
|
||||||
|
# barmanObjectStore:
|
||||||
|
# <<: *barmanObjectStore
|
||||||
|
# serverName: *previousCluster
|
||||||
|
# running instance
|
||||||
|
#- name: postgres
|
||||||
|
# connectionParameters:
|
||||||
|
# host: 10.1.0.23
|
||||||
|
# user: postgres
|
||||||
|
# dbname: postgres
|
||||||
|
# sslmode: require
|
||||||
|
# password:
|
||||||
|
# name: cloudnative-pg
|
||||||
|
# key: password
|
||||||
|
|
||||||
|
# Note: previousCluster needs to be set to the name of the previous
|
||||||
|
# cluster when recovering from an existing cnpg cluster
|
||||||
|
bootstrap:
|
||||||
|
# # s3 instance recovery
|
||||||
|
# recovery:
|
||||||
|
# source: *previousCluster
|
||||||
|
# recover from another running instance
|
||||||
|
initdb: {}
|
||||||
|
# import:
|
||||||
|
# type: monolith
|
||||||
|
# databases:
|
||||||
|
# - "*"
|
||||||
|
# roles:
|
||||||
|
# - "*"
|
||||||
|
# source:
|
||||||
|
# externalCluster: postgres
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1beta1.json
|
||||||
|
apiVersion: external-secrets.io/v1beta1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: &name cloudnative-pg
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
name: bitwarden-secrets-manager
|
||||||
|
target:
|
||||||
|
name: *name
|
||||||
|
template:
|
||||||
|
engineVersion: v2
|
||||||
|
data:
|
||||||
|
username: "{{ .POSTGRES_ADMIN }}"
|
||||||
|
password: "{{ .POSTGRES_ADMIN_PASS }}"
|
||||||
|
s3-key-id: "{{ .S3_KEY_ID }}"
|
||||||
|
s3-secret-key: "{{ .S3_SECRET_KEY }}"
|
||||||
|
dataFrom:
|
||||||
|
- extract:
|
||||||
|
key: postgres
|
||||||
|
- extract:
|
||||||
|
key: qnap
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ./externalsecret.yaml
|
||||||
|
- ./cluster.yaml
|
||||||
|
# - ./gatus.yaml
|
||||||
|
- ./prometheusrule.yaml
|
||||||
|
- ./scheduledbackup.yaml
|
||||||
|
- ./service.yaml
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/monitoring.coreos.com/prometheusrule_v1.json
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: PrometheusRule
|
||||||
|
metadata:
|
||||||
|
name: cloudnative-pg-rules
|
||||||
|
labels:
|
||||||
|
prometheus: k8s
|
||||||
|
role: alert-rules
|
||||||
|
spec:
|
||||||
|
groups:
|
||||||
|
- name: cloudnative-pg.rules
|
||||||
|
rules:
|
||||||
|
- alert: LongRunningTransaction
|
||||||
|
annotations:
|
||||||
|
description: Pod {{ $labels.pod }} is taking more than 5 minutes (300 seconds) for a query.
|
||||||
|
summary: A query is taking longer than 5 minutes.
|
||||||
|
expr: |-
|
||||||
|
cnpg_backends_max_tx_duration_seconds > 300
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
- alert: BackendsWaiting
|
||||||
|
annotations:
|
||||||
|
description: Pod {{ $labels.pod }} has been waiting for longer than 5 minutes
|
||||||
|
summary: If a backend is waiting for longer than 5 minutes
|
||||||
|
expr: |-
|
||||||
|
cnpg_backends_waiting_total > 300
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
- alert: PGDatabase
|
||||||
|
annotations:
|
||||||
|
description: Over 150,000,000 transactions from frozen xid on pod {{ $labels.pod }}
|
||||||
|
summary: Number of transactions from the frozen XID to the current one
|
||||||
|
expr: |-
|
||||||
|
cnpg_pg_database_xid_age > 150000000
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
- alert: PGReplication
|
||||||
|
annotations:
|
||||||
|
description: Standby is lagging behind by over 300 seconds (5 minutes)
|
||||||
|
summary: The standby is lagging behind the primary
|
||||||
|
expr: |-
|
||||||
|
cnpg_pg_replication_lag > 300
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
- alert: LastFailedArchiveTime
|
||||||
|
annotations:
|
||||||
|
description: Archiving failed for {{ $labels.pod }}
|
||||||
|
summary: Checks the last time archiving failed. Will be < 0 when it has not failed.
|
||||||
|
expr: |-
|
||||||
|
(cnpg_pg_stat_archiver_last_failed_time - cnpg_pg_stat_archiver_last_archived_time) > 1
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
- alert: DatabaseDeadlockConflicts
|
||||||
|
annotations:
|
||||||
|
description: There are over 10 deadlock conflicts in {{ $labels.pod }}
|
||||||
|
summary: Checks the number of database conflicts
|
||||||
|
expr: |-
|
||||||
|
cnpg_pg_stat_database_deadlocks > 10
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/postgresql.cnpg.io/scheduledbackup_v1.json
|
||||||
|
apiVersion: postgresql.cnpg.io/v1
|
||||||
|
kind: ScheduledBackup
|
||||||
|
metadata:
|
||||||
|
name: postgres
|
||||||
|
spec:
|
||||||
|
schedule: "@daily"
|
||||||
|
immediate: true
|
||||||
|
backupOwnerReference: self
|
||||||
|
cluster:
|
||||||
|
name: postgres
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/service-v1.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: postgres-lb
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: postgres.${SECRET_INTERNAL_DOMAIN}
|
||||||
|
io.cilium/lb-ipam-ips: "${SVC_POSTGRES_ADDR}"
|
||||||
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
|
ports:
|
||||||
|
- name: postgres
|
||||||
|
port: 5432
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 5432
|
||||||
|
selector:
|
||||||
|
cnpg.io/cluster: postgres
|
||||||
|
role: primary
|
||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/service-v1.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: postgres-r
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: postgres
|
||||||
|
port: 5432
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 5432
|
||||||
|
selector:
|
||||||
|
cnpg.io/cluster: postgres
|
||||||
|
cnpg.io/podRole: instance
|
||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/service-v1.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: postgres-ro
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: postgres
|
||||||
|
port: 5432
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 5432
|
||||||
|
selector:
|
||||||
|
cnpg.io/cluster: postgres
|
||||||
|
role: replica
|
||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/service-v1.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: postgres-rw
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: postgres
|
||||||
|
port: 5432
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 5432
|
||||||
|
selector:
|
||||||
|
cnpg.io/cluster: postgres
|
||||||
|
role: primary
|
||||||
|
sessionAffinity: None
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: &app cloudnative-pg
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
targetNamespace: databases
|
||||||
|
commonMetadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: *app
|
||||||
|
dependsOn:
|
||||||
|
- name: external-secrets-stores
|
||||||
|
- name: openebs-hostpath
|
||||||
|
path: ./kubernetes/apps/databases/cloudnative-pg/app
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: home-kubernetes
|
||||||
|
wait: true
|
||||||
|
interval: 30m
|
||||||
|
retryInterval: 1m
|
||||||
|
timeout: 5m
|
||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: &app cloudnative-pg-cluster
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
targetNamespace: databases
|
||||||
|
commonMetadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: *app
|
||||||
|
dependsOn:
|
||||||
|
- name: cloudnative-pg
|
||||||
|
path: ./kubernetes/apps/databases/cloudnative-pg/cluster
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: home-kubernetes
|
||||||
|
wait: true
|
||||||
|
interval: 30m
|
||||||
|
retryInterval: 1m
|
||||||
|
timeout: 5m
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ./namespace.yaml
|
||||||
|
- ./cloudnative-pg/ks.yaml
|
||||||
|
- ./redis/ks.yaml
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/namespace-v1.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: databases
|
||||||
|
labels:
|
||||||
|
kustomize.toolkit.fluxcd.io/prune: disabled
|
||||||
|
# ---
|
||||||
|
# # yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/notification.toolkit.fluxcd.io/provider_v1beta3.json
|
||||||
|
# apiVersion: notification.toolkit.fluxcd.io/v1beta3
|
||||||
|
# kind: Provider
|
||||||
|
# metadata:
|
||||||
|
# name: alert-manager
|
||||||
|
# namespace: databases
|
||||||
|
# spec:
|
||||||
|
# type: alertmanager
|
||||||
|
# address: http://alertmanager-operated.observability.svc.cluster.local:9093/api/v2/alerts/
|
||||||
|
# ---
|
||||||
|
# # yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/notification.toolkit.fluxcd.io/alert_v1beta3.json
|
||||||
|
# apiVersion: notification.toolkit.fluxcd.io/v1beta3
|
||||||
|
# kind: Alert
|
||||||
|
# metadata:
|
||||||
|
# name: alert-manager
|
||||||
|
# namespace: databases
|
||||||
|
# spec:
|
||||||
|
# providerRef:
|
||||||
|
# name: alert-manager
|
||||||
|
# eventSeverity: error
|
||||||
|
# eventSources:
|
||||||
|
# - kind: HelmRelease
|
||||||
|
# name: "*"
|
||||||
|
# exclusionList:
|
||||||
|
# - "error.*lookup github\\.com"
|
||||||
|
# - "error.*lookup raw\\.githubusercontent\\.com"
|
||||||
|
# - "dial.*tcp.*timeout"
|
||||||
|
# - "waiting.*socket"
|
||||||
|
# suspend: false
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: &app redis
|
||||||
|
spec:
|
||||||
|
interval: 30m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: *app
|
||||||
|
version: 20.2.1
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: bitnami
|
||||||
|
namespace: flux-system
|
||||||
|
install:
|
||||||
|
remediation:
|
||||||
|
retries: 3
|
||||||
|
upgrade:
|
||||||
|
cleanupOnFail: true
|
||||||
|
remediation:
|
||||||
|
strategy: rollback
|
||||||
|
retries: 3
|
||||||
|
values:
|
||||||
|
auth:
|
||||||
|
enabled: false
|
||||||
|
sentinel: false
|
||||||
|
master:
|
||||||
|
persistence:
|
||||||
|
enabled: false
|
||||||
|
replica:
|
||||||
|
persistence:
|
||||||
|
enabled: false
|
||||||
|
sentinel:
|
||||||
|
enabled: true
|
||||||
|
masterSet: redis-master
|
||||||
|
getMasterTimeout: 10
|
||||||
|
startupProbe:
|
||||||
|
failureThreshold: 2
|
||||||
|
persistence:
|
||||||
|
enabled: false
|
||||||
|
metrics:
|
||||||
|
enabled: true
|
||||||
|
serviceMonitor:
|
||||||
|
enabled: true
|
||||||
|
interval: 1m
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
namespace: databases
|
||||||
|
resources:
|
||||||
|
- ./helmrelease.yaml
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: &app redis
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
targetNamespace: databases
|
||||||
|
commonMetadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: *app
|
||||||
|
path: ./kubernetes/apps/databases/redis/app
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: home-kubernetes
|
||||||
|
wait: true
|
||||||
|
interval: 30m
|
||||||
|
retryInterval: 1m
|
||||||
|
timeout: 5m
|
||||||
|
postBuild:
|
||||||
|
substitute:
|
||||||
|
APP: *app
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../../templates/csi-driver-smb/claims/cifs-applications.yaml
|
||||||
|
# - ../../../templates/csi-driver-smb/claims/cifs-books.yaml
|
||||||
|
- ../../../templates/csi-driver-smb/claims/cifs-downloads.yaml
|
||||||
|
# - ../../../templates/csi-driver-smb/claims/cifs-games.yaml
|
||||||
|
# - ../../../templates/csi-driver-smb/claims/cifs-misc.yaml
|
||||||
|
- ../../../templates/csi-driver-smb/claims/cifs-movies.yaml
|
||||||
|
# - ../../../templates/csi-driver-smb/claims/cifs-music.yaml
|
||||||
|
- ../../../templates/csi-driver-smb/claims/cifs-tv.yaml
|
||||||
@@ -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: &app radarr
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
targetNamespace: downloads
|
||||||
|
commonMetadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: *app
|
||||||
|
dependsOn:
|
||||||
|
- name: cloudnative-pg-cluster
|
||||||
|
- name: downloads-cifs-pvcs
|
||||||
|
- name: volsync
|
||||||
|
path: ./kubernetes/apps/downloads/radarr/app
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: home-kubernetes
|
||||||
|
wait: false
|
||||||
|
interval: 30m
|
||||||
|
retryInterval: 1m
|
||||||
|
timeout: 5m
|
||||||
|
postBuild:
|
||||||
|
substitute:
|
||||||
|
APP: *app
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/storageclass.json
|
||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: "cifs-database"
|
||||||
|
provisioner: smb.csi.k8s.io
|
||||||
|
parameters:
|
||||||
|
source: "//${SECRET_UNRAID_HOSTNAME}/k3s/downloads"
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/storageclass.json
|
||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: "cifs-downloads"
|
||||||
|
provisioner: smb.csi.k8s.io
|
||||||
|
parameters:
|
||||||
|
source: "//${SECRET_UNRAID_HOSTNAME}/k3s/downloads"
|
||||||
|
|
||||||
@@ -5,3 +5,6 @@ kind: Kustomization
|
|||||||
resources:
|
resources:
|
||||||
- ./cifs-appdata.yaml
|
- ./cifs-appdata.yaml
|
||||||
- ./cifs-movies.yaml
|
- ./cifs-movies.yaml
|
||||||
|
- ./cifs-tv.yaml
|
||||||
|
- ./cifs-database.yaml
|
||||||
|
- ./cifs-downloads.yaml
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
|
||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: cloudnative-pg
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
interval: 1h
|
||||||
|
url: https://cloudnative-pg.github.io/charts
|
||||||
@@ -17,3 +17,4 @@ resources:
|
|||||||
- ./ingress-nginx.yaml
|
- ./ingress-nginx.yaml
|
||||||
- ./k8s-gateway.yaml
|
- ./k8s-gateway.yaml
|
||||||
- ./csi-driver-smb.yaml
|
- ./csi-driver-smb.yaml
|
||||||
|
- ./cloudnative-pg.yaml
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/persistentvolumeclaim.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: &name cifs-appdata
|
||||||
|
annotations:
|
||||||
|
volume.beta.kubernetes.io/storage-provisioner: smb.csi.k8s.io
|
||||||
|
volume.kubernetes.io/storage-provisioner: smb.csi.k8s.io
|
||||||
|
labels:
|
||||||
|
csi-driver-smb: "cifs-share"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Ti
|
||||||
|
storageClassName: *name
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/persistentvolumeclaim.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: &name cifs-database
|
||||||
|
annotations:
|
||||||
|
volume.beta.kubernetes.io/storage-provisioner: smb.csi.k8s.io
|
||||||
|
volume.kubernetes.io/storage-provisioner: smb.csi.k8s.io
|
||||||
|
labels:
|
||||||
|
csi-driver-smb: "cifs-share"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 50Ti
|
||||||
|
storageClassName: *name
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/persistentvolumeclaim.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: &name cifs-downloads
|
||||||
|
annotations:
|
||||||
|
volume.beta.kubernetes.io/storage-provisioner: smb.csi.k8s.io
|
||||||
|
volume.kubernetes.io/storage-provisioner: smb.csi.k8s.io
|
||||||
|
labels:
|
||||||
|
csi-driver-smb: "cifs-share"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 50Ti
|
||||||
|
storageClassName: *name
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/persistentvolumeclaim.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: &name cifs-movies
|
||||||
|
annotations:
|
||||||
|
volume.beta.kubernetes.io/storage-provisioner: smb.csi.k8s.io
|
||||||
|
volume.kubernetes.io/storage-provisioner: smb.csi.k8s.io
|
||||||
|
labels:
|
||||||
|
csi-driver-smb: "cifs-share"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 50Ti
|
||||||
|
storageClassName: *name
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/persistentvolumeclaim.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: &name cifs-tv
|
||||||
|
annotations:
|
||||||
|
volume.beta.kubernetes.io/storage-provisioner: smb.csi.k8s.io
|
||||||
|
volume.kubernetes.io/storage-provisioner: smb.csi.k8s.io
|
||||||
|
labels:
|
||||||
|
csi-driver-smb: "cifs-share"
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 50Ti
|
||||||
|
storageClassName: *name
|
||||||
Reference in new issue
Block a user