diff --git a/kubernetes/apps/default/jellystat/Chart.yaml b/kubernetes/apps/default/jellystat/Chart.yaml deleted file mode 100644 index 13071126c..000000000 --- a/kubernetes/apps/default/jellystat/Chart.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -# yaml-language-server: $schema=https://json.schemastore.org/chart.json -apiVersion: v2 -name: jellystat -version: 1.0.0 -type: application -dependencies: - - name: app-template - version: 3.2.1 - repository: https://bjw-s.github.io/helm-charts diff --git a/kubernetes/apps/default/jellystat/application.yaml b/kubernetes/apps/default/jellystat/application.yaml deleted file mode 100644 index a2eede12d..000000000 --- a/kubernetes/apps/default/jellystat/application.yaml +++ /dev/null @@ -1,28 +0,0 @@ ---- -# yaml-language-server: $schema=https://deedee-ops.github.io/schemas/argoproj.io/application_v1alpha1.json -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: jellystat - namespace: argocd -spec: - project: default - sources: - - repoURL: https://github.com/deedee-ops/home-ops.git - targetRevision: master - path: kubernetes/apps/default/jellystat - plugin: - name: argocd-vault-plugin-helm - destination: - namespace: default - server: https://kubernetes.default.svc - syncPolicy: - automated: - prune: true - syncOptions: - - CreateNamespace=true - managedNamespaceMetadata: - labels: - pod-security.kubernetes.io/enforce: restricted - pod-security.kubernetes.io/audit: restricted - pod-security.kubernetes.io/warn: restricted diff --git a/kubernetes/apps/default/jellystat/templates/initdb.yaml b/kubernetes/apps/default/jellystat/templates/initdb.yaml deleted file mode 100644 index 1c8224ff8..000000000 --- a/kubernetes/apps/default/jellystat/templates/initdb.yaml +++ /dev/null @@ -1,40 +0,0 @@ ---- -# yamllint disable rule:line-length -# yaml-language-server: $schema=https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master-standalone/job.json -# yamllint enable -apiVersion: batch/v1 -kind: Job -metadata: - generateName: jellystat-init-db- - annotations: - argocd.argoproj.io/hook: PreSync - argocd.argoproj.io/hook-delete-policy: HookSucceeded - argocd.argoproj.io/sync-wave: "-1" -spec: - template: - spec: - restartPolicy: Never - containers: - - name: init-db - image: ghcr.io/deedee-ops/postgres-init:16.3 - volumeMounts: - - mountPath: /secrets - name: secrets - securityContext: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - runAsNonRoot: true - capabilities: - drop: - - ALL - volumes: - - csi: - driver: secrets-store.csi.k8s.io - readOnly: true - volumeAttributes: - secretProviderClass: jellystat - name: secrets - securityContext: - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault diff --git a/kubernetes/apps/default/jellystat/templates/secret_class.yaml b/kubernetes/apps/default/jellystat/templates/secret_class.yaml deleted file mode 100644 index 9ce87e7ee..000000000 --- a/kubernetes/apps/default/jellystat/templates/secret_class.yaml +++ /dev/null @@ -1,53 +0,0 @@ ---- -# yamllint disable rule:line-length -# yaml-language-server: $schema=https://deedee-ops.github.io/schemas/secrets-store.csi.x-k8s.io/secretproviderclass_v1.json -# yamllint enable rule:line-length -apiVersion: secrets-store.csi.x-k8s.io/v1 -kind: SecretProviderClass -metadata: - name: jellystat - annotations: - argocd.argoproj.io/hook: PreSync - argocd.argoproj.io/hook-delete-policy: BeforeHookCreation - argocd.argoproj.io/sync-wave: "-2" -spec: - provider: vault - parameters: - objects: | - # initdb - - objectName: "INIT_POSTGRES_USER" - secretPath: "kubernetes/data/internal/jellystat" - secretKey: "DB_USERNAME" - - objectName: "INIT_POSTGRES_PASS" - secretPath: "kubernetes/data/internal/jellystat" - secretKey: "DB_PASSWORD" - - objectName: "INIT_POSTGRES_HOST" - secretPath: "kubernetes/data/internal/cloudnative-pg" - secretKey: "HOST" - - objectName: "INIT_POSTGRES_DBNAME" - secretPath: "kubernetes/data/internal/jellystat" - secretKey: "DB_DATABASE" - - objectName: "INIT_POSTGRES_SUPER_USER" - secretPath: "kubernetes/data/internal/cloudnative-pg" - secretKey: "SUPERUSER_USERNAME" - - objectName: "INIT_POSTGRES_SUPER_PASS" - secretPath: "kubernetes/data/internal/cloudnative-pg" - secretKey: "SUPERUSER_PASSWORD" - - objectName: "POSTGRES_IP" - secretPath: "kubernetes/data/internal/cloudnative-pg" - secretKey: "HOST" - - objectName: "POSTGRES_USER" - secretPath: "kubernetes/data/internal/jellystat" - secretKey: "DB_USERNAME" - - objectName: "POSTGRES_PASSWORD" - secretPath: "kubernetes/data/internal/jellystat" - secretKey: "DB_PASSWORD" - - objectName: "POSTGRES_DATABASE" - secretPath: "kubernetes/data/internal/jellystat" - secretKey: "DB_DATABASE" - - objectName: "JWT_SECRET" - secretPath: "kubernetes/data/internal/jellystat" - secretKey: "JWT_SECRET" - roleName: default - vaultAddress: https://vault.tools:8200 - vaultCACertPath: /vault/tls/tls.ca diff --git a/kubernetes/apps/default/jellystat/templates/volsync.yaml b/kubernetes/apps/default/jellystat/templates/volsync.yaml deleted file mode 100644 index b90201c36..000000000 --- a/kubernetes/apps/default/jellystat/templates/volsync.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# yamllint disable rule:line-length ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master-standalone/secret-v1.json -apiVersion: v1 -kind: Secret -metadata: - name: restic-jellystat-jellystat-backups - annotations: - argocd.argoproj.io/sync-wave: "-1" -type: Opaque -stringData: - AWS_ACCESS_KEY_ID: "" - AWS_SECRET_ACCESS_KEY: "" - RESTIC_PASSWORD: "" - RESTIC_REPOSITORY: "s3://volsync/jellystat-backups" ---- -# yaml-language-server: $schema=https://deedee-ops.github.io/schemas/volsync.backube/replicationsource_v1alpha1.json -apiVersion: volsync.backube/v1alpha1 -kind: ReplicationSource -metadata: - name: backup-jellystat-jellystat-backups -spec: - sourcePVC: jellystat-backups - trigger: - schedule: "30 1 * * *" - restic: - copyMethod: Snapshot - pruneIntervalDays: 7 - repository: restic-jellystat-jellystat-backups - volumeSnapshotClassName: ceph-block - cacheCapacity: 1Gi - cacheStorageClassName: ceph-block - cacheAccessModes: - - ReadWriteOnce - storageClassName: ceph-block - accessModes: - - ReadWriteOnce - retain: - daily: 7 - weekly: 4 - monthly: 6 - yearly: 3 - within: 3d - moverSecurityContext: - runAsNonRoot: true - fsGroup: 65000 - runAsUser: 65000 - runAsGroup: 65000 - seccompProfile: - type: RuntimeDefault ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master-standalone/persistentvolumeclaim.json -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: jellystat-backups - annotations: - argocd.argoproj.io/sync-wave: "-1" -spec: - accessModes: - - ReadWriteOnce - dataSourceRef: - kind: ReplicationDestination - apiGroup: volsync.backube - name: init-jellystat-jellystat-backups - resources: - requests: - storage: 1Gi - storageClassName: ceph-block ---- -# yaml-language-server: $schema=https://deedee-ops.github.io/schemas/volsync.backube/replicationdestination_v1alpha1.json -apiVersion: volsync.backube/v1alpha1 -kind: ReplicationDestination -metadata: - name: init-jellystat-jellystat-backups - annotations: - argocd.argoproj.io/sync-wave: "-1" -spec: - trigger: - manual: restore-init - restic: - repository: restic-jellystat-jellystat-backups - copyMethod: Snapshot - volumeSnapshotClassName: ceph-block - cacheStorageClassName: ceph-block - cacheAccessModes: - - ReadWriteOnce - cacheCapacity: 1Gi - storageClassName: ceph-block - accessModes: - - ReadWriteOnce - capacity: 1Gi - moverSecurityContext: - runAsNonRoot: true - fsGroup: 65000 - runAsUser: 65000 - runAsGroup: 65000 - seccompProfile: - type: RuntimeDefault diff --git a/kubernetes/apps/default/jellystat/values.yaml b/kubernetes/apps/default/jellystat/values.yaml deleted file mode 100644 index dead3a673..000000000 --- a/kubernetes/apps/default/jellystat/values.yaml +++ /dev/null @@ -1,98 +0,0 @@ ---- -# yaml-language-server: $schema=https://deedee-ops.github.io/schemas/custom/bjw-s-apptemplate.json -app-template: - defaultPodOptions: - securityContext: - runAsUser: 65000 - runAsGroup: 65000 - fsGroup: 65000 - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - - controllers: - jellystat: - containers: - app: - image: - repository: ghcr.io/deedee-ops/jellystat-devel - tag: latest@sha256:81fe4e215bb37cc859d13f62a127b29107a8517ea8ca976ce3ea4d0ff6699f11 - pullPolicy: IfNotPresent - - env: - POSTGRES_PORT: "5432" - TZ: Europe/Warsaw - - securityContext: - runAsNonRoot: true - readOnlyRootFilesystem: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - - probes: - readiness: &probes - enabled: true - custom: true - spec: - httpGet: - path: / - port: 3000 - initialDelaySeconds: 0 - periodSeconds: 10 - timeoutSeconds: 1 - failureThreshold: 3 - liveness: *probes - - resources: - requests: - cpu: 10m - memory: 100Mi - limits: - memory: 1000Mi - - service: - app: - controller: jellystat - ports: - http: - port: 3000 - - ingress: - jellystat: - className: internal - annotations: - gethomepage.dev/enabled: "true" - gethomepage.dev/group: Media - gethomepage.dev/name: Jellystat - gethomepage.dev/icon: jellystat.png - gethomepage.dev/description: Jellyfin statistics - hosts: - - host: "jellystat." - paths: - - path: / - pathType: Prefix - service: - identifier: app - port: 3000 - tls: - - hosts: - - "jellystat." - - persistence: - backups: - type: persistentVolumeClaim - existingClaim: jellystat-backups - advancedMounts: - jellystat: - app: - - path: "/app/backend/backup-data" - secrets: - type: custom - volumeSpec: - csi: - driver: secrets-store.csi.k8s.io - readOnly: true - volumeAttributes: - secretProviderClass: jellystat