diff --git a/clusters/cl01tl/manifests/harbor/Cluster-harbor-postgresql-18-cluster.yaml b/clusters/cl01tl/manifests/harbor/Cluster-harbor-postgresql-18-cluster.yaml index e3470e0bb..9da0cbd59 100644 --- a/clusters/cl01tl/manifests/harbor/Cluster-harbor-postgresql-18-cluster.yaml +++ b/clusters/cl01tl/manifests/harbor/Cluster-harbor-postgresql-18-cluster.yaml @@ -29,6 +29,13 @@ spec: parameters: barmanObjectName: "harbor-postgresql-18-garage-local-backup" serverName: "harbor-postgresql-18-backup-1" + externalClusters: + - name: recovery + plugin: + name: barman-cloud.cloudnative-pg.io + parameters: + barmanObjectName: "harbor-postgresql-18-recovery" + serverName: harbor-postgresql-18-backup-1 storage: size: 10Gi storageClass: local-path @@ -58,22 +65,15 @@ spec: enablePodMonitor: true disableDefaultQueries: false bootstrap: - initdb: - import: - source: - externalCluster: importSource - type: microservice - databases: - - app - schemaOnly: false + recovery: + database: app + source: harbor-postgresql-18-backup-1 externalClusters: - - name: importSource - connectionParameters: - host: "harbor-postgresql-17-cluster-rw" - port: "5432" - user: "app" - dbname: "app" - sslmode: "disable" - password: - name: harbor-postgresql-17-cluster-app - key: password + - name: harbor-postgresql-18-backup-1 + plugin: + name: barman-cloud.cloudnative-pg.io + enabled: true + isWALArchiver: false + parameters: + barmanObjectName: "harbor-postgresql-18-recovery" + serverName: harbor-postgresql-18-backup-1 diff --git a/clusters/cl01tl/manifests/harbor/ConfigMap-harbor-core.yaml b/clusters/cl01tl/manifests/harbor/ConfigMap-harbor-core.yaml index ee62291b6..cbf4685a3 100644 --- a/clusters/cl01tl/manifests/harbor/ConfigMap-harbor-core.yaml +++ b/clusters/cl01tl/manifests/harbor/ConfigMap-harbor-core.yaml @@ -23,7 +23,7 @@ data: httpport = 8080 PORT: "8080" DATABASE_TYPE: "postgresql" - POSTGRESQL_HOST: "harbor-postgresql-17-cluster-rw" + POSTGRESQL_HOST: "harbor-postgresql-18-cluster-rw" POSTGRESQL_PORT: "5432" POSTGRESQL_USERNAME: "app" POSTGRESQL_DATABASE: "app" diff --git a/clusters/cl01tl/manifests/harbor/ConfigMap-harbor-exporter-env.yaml b/clusters/cl01tl/manifests/harbor/ConfigMap-harbor-exporter-env.yaml index 6f05aff60..1d8178a84 100644 --- a/clusters/cl01tl/manifests/harbor/ConfigMap-harbor-exporter-env.yaml +++ b/clusters/cl01tl/manifests/harbor/ConfigMap-harbor-exporter-env.yaml @@ -31,7 +31,7 @@ data: HARBOR_SERVICE_SCHEME: "http" HARBOR_SERVICE_HOST: "harbor-core" HARBOR_SERVICE_PORT: "80" - HARBOR_DATABASE_HOST: "harbor-postgresql-17-cluster-rw" + HARBOR_DATABASE_HOST: "harbor-postgresql-18-cluster-rw" HARBOR_DATABASE_PORT: "5432" HARBOR_DATABASE_USERNAME: "app" HARBOR_DATABASE_DBNAME: "app" diff --git a/clusters/cl01tl/manifests/harbor/Deployment-harbor-core.yaml b/clusters/cl01tl/manifests/harbor/Deployment-harbor-core.yaml index b094f55bb..78e9d02d9 100644 --- a/clusters/cl01tl/manifests/harbor/Deployment-harbor-core.yaml +++ b/clusters/cl01tl/manifests/harbor/Deployment-harbor-core.yaml @@ -38,7 +38,7 @@ spec: component: core app.kubernetes.io/component: core annotations: - checksum/configmap: 6c2233e32ef7993203b33d05964bf5534affc12540bee4e22cd386a769069563 + checksum/configmap: 22c000cacb7ed5c6148f6283be6886b638aebd98c4ec5e0f175cb15e9829fb3c checksum/secret: dbbc4f9b641d5b6b473a87b69999060d2170fad45fd7ab44e30f8d142ff90a65 checksum/secret-jobservice: d95a9b319aea3eeedf845e1a2478d7d8a449307132d66f0f8d23417ef0d5c6e5 spec: @@ -97,7 +97,7 @@ spec: - name: POSTGRESQL_PASSWORD valueFrom: secretKeyRef: - name: harbor-postgresql-17-cluster-app + name: harbor-postgresql-18-cluster-app key: password - name: REGISTRY_CREDENTIAL_PASSWORD valueFrom: diff --git a/clusters/cl01tl/manifests/harbor/Deployment-harbor-exporter.yaml b/clusters/cl01tl/manifests/harbor/Deployment-harbor-exporter.yaml index 9643c681b..eee14dc8a 100644 --- a/clusters/cl01tl/manifests/harbor/Deployment-harbor-exporter.yaml +++ b/clusters/cl01tl/manifests/harbor/Deployment-harbor-exporter.yaml @@ -38,7 +38,7 @@ spec: component: exporter app.kubernetes.io/component: exporter annotations: - checksum/configmap: 157526ed6610f91f343a555d1ba1d55611139ad7ef46d8db215bf63dcf610abd + checksum/configmap: f419f27c185ed4bb0753753b655c3924c1dc3f909898ac1d692f49be89942fcd checksum/secret: 9b7d7b9811e8100b8a6960e9bfec53248561025b235858a581824762fe5b0fdf spec: securityContext: @@ -71,7 +71,7 @@ spec: - name: HARBOR_DATABASE_PASSWORD valueFrom: secretKeyRef: - name: harbor-postgresql-17-cluster-app + name: harbor-postgresql-18-cluster-app key: password - name: HARBOR_ADMIN_PASSWORD valueFrom: diff --git a/clusters/cl01tl/manifests/harbor/Job-migration-job.yaml b/clusters/cl01tl/manifests/harbor/Job-migration-job.yaml index 2e3d50075..e748fa58a 100644 --- a/clusters/cl01tl/manifests/harbor/Job-migration-job.yaml +++ b/clusters/cl01tl/manifests/harbor/Job-migration-job.yaml @@ -44,7 +44,7 @@ spec: - name: POSTGRESQL_PASSWORD valueFrom: secretKeyRef: - name: harbor-postgresql-17-cluster-app + name: harbor-postgresql-18-cluster-app key: password securityContext: allowPrivilegeEscalation: false diff --git a/clusters/cl01tl/manifests/harbor/ObjectStore-harbor-postgresql-18-recovery.yaml b/clusters/cl01tl/manifests/harbor/ObjectStore-harbor-postgresql-18-recovery.yaml new file mode 100644 index 000000000..77e291ef8 --- /dev/null +++ b/clusters/cl01tl/manifests/harbor/ObjectStore-harbor-postgresql-18-recovery.yaml @@ -0,0 +1,29 @@ +apiVersion: barmancloud.cnpg.io/v1 +kind: ObjectStore +metadata: + name: "harbor-postgresql-18-recovery" + namespace: harbor + labels: + helm.sh/chart: postgres-18-cluster-6.16.1 + app.kubernetes.io/name: harbor-postgresql-18 + app.kubernetes.io/instance: harbor + app.kubernetes.io/part-of: harbor + app.kubernetes.io/version: "6.16.1" + app.kubernetes.io/managed-by: Helm +spec: + configuration: + destinationPath: s3://postgres-backups/cl01tl/harbor/harbor-postgresql-18-cluster + endpointURL: http://garage-main.garage:3900 + wal: + compression: snappy + maxParallel: 1 + data: + compression: snappy + jobs: 1 + s3Credentials: + accessKeyId: + name: harbor-postgresql-18-cluster-backup-secret-garage + key: ACCESS_KEY_ID + secretAccessKey: + name: harbor-postgresql-18-cluster-backup-secret-garage + key: ACCESS_SECRET_KEY diff --git a/clusters/cl01tl/manifests/harbor/RedisSentinel-redis-sentinel-harbor.yaml b/clusters/cl01tl/manifests/harbor/RedisSentinel-redis-sentinel-harbor.yaml new file mode 100644 index 000000000..973437957 --- /dev/null +++ b/clusters/cl01tl/manifests/harbor/RedisSentinel-redis-sentinel-harbor.yaml @@ -0,0 +1,23 @@ +apiVersion: redis.redis.opstreelabs.in/v1beta2 +kind: RedisSentinel +metadata: + name: redis-sentinel-harbor + namespace: harbor + labels: + app.kubernetes.io/name: redis-sentinel-harbor + app.kubernetes.io/instance: harbor + app.kubernetes.io/part-of: harbor +spec: + clusterSize: 3 + podSecurityContext: + runAsUser: 1000 + fsGroup: 1000 + redisSentinelConfig: + redisReplicationName: redis-replication-harbor + kubernetesConfig: + image: quay.io/opstree/redis-sentinel:v8.4.0 + imagePullPolicy: IfNotPresent + resources: + requests: + cpu: 10m + memory: 128Mi