diff --git a/deployments/home-server/linkwarden.yaml b/deployments/home-server/linkwarden.yaml index 95492f2..6b9ff25 100644 --- a/deployments/home-server/linkwarden.yaml +++ b/deployments/home-server/linkwarden.yaml @@ -1,6 +1,34 @@ --- apiVersion: v1 kind: PersistentVolume +metadata: + name: linkwarden-pgdata-pv +spec: + capacity: + storage: 5Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: local-path + hostPath: + path: /dpool/services/linkwarden/database +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: linkwarden-pgdata-pvc + namespace: home-server +spec: + accessModes: + - ReadWriteOnce + storageClassName: local-path + resources: + requests: + storage: 5Gi + volumeName: linkwarden-pgdata-pv +--- +apiVersion: v1 +kind: PersistentVolume metadata: name: linkwarden-pv spec: @@ -11,7 +39,7 @@ spec: persistentVolumeReclaimPolicy: Retain storageClassName: local-path hostPath: - path: /dpool/services/linkwarden + path: /dpool/services/linkwarden/app --- apiVersion: v1 kind: PersistentVolumeClaim @@ -27,18 +55,43 @@ spec: storage: 5Gi volumeName: linkwarden-pv --- -apiVersion: v1 -kind: Service +apiVersion: apps/v1 +kind: Deployment metadata: - name: linkwarden + name: linkwarden-postgres namespace: home-server spec: + replicas: 1 selector: - app: linkwarden - ports: - - port: 3000 - targetPort: 3000 - protocol: TCP + matchLabels: + app: linkwarden-postgres + template: + metadata: + labels: + app: linkwarden-postgres + spec: + containers: + - name: postgres + image: postgres:15 + env: + - name: POSTGRES_DB + value: linkwarden + - name: POSTGRES_USER + value: linkwardenuser + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: linkwarden-postgres-secret + key: postgres-password + ports: + - containerPort: 5432 + volumeMounts: + - name: pgdata + mountPath: /var/lib/postgresql/data + volumes: + - name: pgdata + persistentVolumeClaim: + claimName: linkwarden-pgdata-pvc --- apiVersion: apps/v1 kind: Deployment @@ -80,9 +133,9 @@ spec: - name: NODE_ENV value: "production" - name: TZ - value: "Australia/Sydney" + value: "Australia/Brisbane" - name: DATABASE_URL - value: "file:/data/data.db" + value: "postgresql://linkwardenuser:$(POSTGRES_PASSWORD)@linkwarden-postgres.home-server.svc.cluster.local:5432/linkwarden" volumeMounts: - name: linkwarden-data mountPath: /data @@ -91,29 +144,26 @@ spec: persistentVolumeClaim: claimName: linkwarden-pvc --- -apiVersion: networking.k8s.io/v1 -kind: Ingress +apiVersion: v1 +kind: Service metadata: name: linkwarden namespace: home-server - annotations: - external-dns.alpha.kubernetes.io/hostname: links.hxme.net - nginx.ingress.kubernetes.io/server-snippet: | - add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always; spec: - tls: - - hosts: - - links.hxme.net - secretName: wildcard-hxme-net - rules: - - host: links.hxme.net - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: linkwarden - port: - number: 3000 - + selector: + app: linkwarden + ports: + - port: 3000 + targetPort: 3000 + protocol: TCP +--- +apiVersion: v1 +kind: Service +metadata: + name: linkwarden-postgres + namespace: home-server +spec: + ports: + - port: 5432 + selector: + app: linkwarden-postgres diff --git a/deployments/operators/kustomization.yaml b/deployments/operators/kustomization.yaml index 3fc92d1..9a0fb27 100644 --- a/deployments/operators/kustomization.yaml +++ b/deployments/operators/kustomization.yaml @@ -4,7 +4,6 @@ kind: Kustomization resources: - mariadb.yaml - - postgres.yaml - replicator.yaml - namespace.yaml - redis.yaml diff --git a/deployments/operators/postgres.yaml b/deployments/operators/postgres.yaml deleted file mode 100644 index e12a3c6..0000000 --- a/deployments/operators/postgres.yaml +++ /dev/null @@ -1,57 +0,0 @@ ---- -apiVersion: v1 -kind: Namespace -metadata: - name: postgres-operator-system ---- -apiVersion: source.toolkit.fluxcd.io/v1 -kind: HelmRepository -metadata: - name: crunchydata-postgres-operator - namespace: flux-system -spec: - interval: 1h - url: oci://registry.developers.crunchydata.com/crunchydata/pgo ---- -apiVersion: helm.toolkit.fluxcd.io/v2 -kind: HelmRelease -metadata: - name: postgres-operator-crds - namespace: postgres-operator-system -spec: - interval: 30m - chart: - spec: - chart: pgo-crds - version: 5.3.0 - sourceRef: - kind: HelmRepository - name: crunchydata-postgres-operator - namespace: flux-system - install: - createNamespace: true - upgrade: - disableWait: true - timeout: 5m ---- -apiVersion: helm.toolkit.fluxcd.io/v2 -kind: HelmRelease -metadata: - name: postgres-operator - namespace: postgres-operator-system -spec: - interval: 30m - chart: - spec: - chart: postgres-operator - version: 5.3.0 - sourceRef: - kind: HelmRepository - name: crunchydata-postgres-operator - namespace: flux-system - install: - createNamespace: true - dependsOn: - - name: postgres-operator-crds - namespace: postgres-operator-system -