Skip to content

Commit f9e69ce

Browse files
committed
feat(release): Add PostgreSQL cluster and database configurations for feather-core
1 parent 53670dc commit f9e69ce

File tree

12 files changed

+200
-1
lines changed

12 files changed

+200
-1
lines changed
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
apiVersion: kustomize.config.k8s.io/v1beta1
22
kind: Kustomization
3-
resources: []
3+
resources:
4+
- postgresql
45
# - mariadb-galera
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
apiVersion: postgresql.cnpg.io/v1
2+
kind: Cluster
3+
metadata:
4+
name: feather-core-cluster-pg
5+
namespace: cnpg-system
6+
spec:
7+
instances: 3
8+
imageName: ghcr.io/cloudnative-pg/postgresql:17
9+
storage:
10+
size: 50Gi
11+
enableSuperuserAccess: true
12+
managed:
13+
roles:
14+
- name: harbor
15+
login: true
16+
ensure: present
17+
passwordSecret:
18+
name: role-harbor
19+
- name: outline
20+
login: true
21+
ensure: present
22+
passwordSecret:
23+
name: role-outline
24+
- name: backstage
25+
login: true
26+
ensure: present
27+
passwordSecret:
28+
name: role-backstage
29+
services:
30+
additional:
31+
- selectorType: rw
32+
serviceTemplate:
33+
metadata:
34+
name: "feather-core-cluster-pg-rw-external"
35+
annotations:
36+
io.cilium/lb-ipam-ips: 10.200.90.3
37+
spec:
38+
type: LoadBalancer
39+
plugins:
40+
- name: barman-cloud.cloudnative-pg.io
41+
isWALArchiver: true
42+
parameters:
43+
barmanObjectName: s3-store
44+
---
45+
apiVersion: barmancloud.cnpg.io/v1
46+
kind: ObjectStore
47+
metadata:
48+
name: s3-store
49+
spec:
50+
configuration:
51+
destinationPath: s3://feather-core-cluster-pg-backup/backups
52+
# MariaDB uses endpoint without scheme; CNPG expects full URL
53+
endpointURL: http://s3.onelite.feather:7480
54+
s3Credentials:
55+
accessKeyId:
56+
name: cnpg-backup
57+
key: access-key-id
58+
secretAccessKey:
59+
name: cnpg-backup
60+
key: secret-access-key
61+
wal:
62+
compression: gzip
63+
---
64+
apiVersion: postgresql.cnpg.io/v1
65+
kind: Backup
66+
metadata:
67+
name: backup-to-minio
68+
namespace: cnpg-system
69+
spec:
70+
cluster:
71+
name: feather-core-cluster-pg
72+
method: plugin
73+
pluginConfiguration:
74+
name: barman-cloud.cloudnative-pg.io
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: postgresql.cnpg.io/v1
2+
kind: Database
3+
metadata:
4+
name: backstage
5+
spec:
6+
name: backstage
7+
owner: backstage
8+
cluster:
9+
name: feather-core-cluster-pg
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: postgresql.cnpg.io/v1
2+
kind: Database
3+
metadata:
4+
name: harbor
5+
spec:
6+
name: harbor
7+
owner: harbor
8+
cluster:
9+
name: feather-core-cluster-pg
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: postgresql.cnpg.io/v1
2+
kind: Database
3+
metadata:
4+
name: outline
5+
spec:
6+
name: outline
7+
owner: outline
8+
cluster:
9+
name: feather-core-cluster-pg
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
namespace: cnpg-system
4+
generatorOptions:
5+
disableNameSuffixHash: true
6+
resources:
7+
- cluster.yaml
8+
- pooler-rw.yaml
9+
- pooler-ro.yaml
10+
- database/harbor.yaml
11+
- database/outline.yaml
12+
- database/backstage.yaml
13+
14+
secretGenerator:
15+
- name: cnpg-backup
16+
envs:
17+
- s3-backup.env
18+
- name: role-outline
19+
options:
20+
labels:
21+
cnpg.io/reload: "true"
22+
envs:
23+
- roles/outline.sops.env
24+
- name: role-harbor
25+
options:
26+
labels:
27+
cnpg.io/reload: "true"
28+
envs:
29+
- roles/harbor.sops.env
30+
- name: role-backstage
31+
options:
32+
labels:
33+
cnpg.io/reload: "true"
34+
envs:
35+
- roles/backstage.sops.env
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: postgresql.cnpg.io/v1
2+
kind: Pooler
3+
metadata:
4+
name: feather-core-cluster-pg-pooler-ro
5+
namespace: cnpg-system
6+
spec:
7+
cluster:
8+
name: feather-core-cluster-pg
9+
type: ro
10+
instances: 2
11+
pgbouncer:
12+
poolMode: session
13+
parameters: {}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: postgresql.cnpg.io/v1
2+
kind: Pooler
3+
metadata:
4+
name: feather-core-cluster-pg-pooler-rw
5+
namespace: cnpg-system
6+
spec:
7+
cluster:
8+
name: feather-core-cluster-pg
9+
type: rw
10+
instances: 2
11+
pgbouncer:
12+
poolMode: session
13+
parameters: {}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
username=ENC[AES256_GCM,data:82L+1aEijx/+,iv:xBg1/4qxxGMvqEt/S+iqQGbN0bTVhFKwbjXYoZG46u4=,tag:u9++qAwD1V3le1mmaIRruQ==,type:str]
2+
password=ENC[AES256_GCM,data:ltpkIqLDNHYnUzZdI2dd9/LQ1DnN5Q==,iv:+fLsr2Y2gqbGEwtpI5hHQ9TCGaT2YMDBst1hzdU0K44=,tag:1xzSQd7zN931n6MKi7qMxg==,type:str]
3+
sops_lastmodified=2025-09-01T07:01:29Z
4+
sops_mac=ENC[AES256_GCM,data:QxbsmvaTy+/o7YdAiYoVQ2K+JZ3RB1XDW6h72zAapCxP1WxmAIIDZfRimGCjNKs79LkhUiZDQfH+DfXAIJ4rhRwWb99yTvRus/QQS5bwRnMZpdvyMX5cOXz4CvPMcX3vdFe5B+touUOB2r214OAy2TVg5W2k2rKRBL0ORoZtAkE=,iv:hWrZ7BplpMgzDu4Rq7O+I1bvIqhR1+oqrtX5K4DyK60=,tag:VgUOnmTCACyQ6mntfQvh5Q==,type:str]
5+
sops_pgp__list_0__map_created_at=2025-08-31T19:23:00Z
6+
sops_pgp__list_0__map_enc=-----BEGIN PGP MESSAGE-----\n\nhQIMAwWbRp0WX+I4ARAArLg4FCdaIG1yR3wXOVn3X+A7ki1JT9rn6J5HsyfVZAPL\n1adAqD/uGfNiEG/C8PeIMmTV9sZxvhfleSR+ePPkOKcscE2RX/or6MSbXhOzuvDG\nOOifjSqLW66rgbwVGOED3wZwDwhzr2KVmjmwOVNPL6rMvn53a5/Rm4pxCTS6MWLE\nNoXfJT16Q4Dxb+FRi7Vp5/q93AnmeHiEjUByy3QbiRuB396mRjaUSdn9zv26tXtO\nz2CRPnn9yL79hszqFFPIjztnZKlR92FkIhZImQMX1aOfHdJx/zEcU9oJWXMdS2qw\nHyaPxEaQAcZWcDEBFV5gMdlo65oeQ/E6erbm6ORBAEMKc8VeRz37trM8obyLyuXm\nOe+C8hNjTi1ekU8DT4Ln3RCxUi7L2JfPRNPyjP0CDn5YkKk2qn8+fK8BOmo9wgPd\n1Zcb1wWO6p2rAzuPC1l+ci72f7kTGNP0X34sWVfgP5IX2+NHkGfBXHVgqfraDgIX\nSNyKO5AzgEGBcLJNgZ+Y9jtQ4hnsD13BIkbh8UOxVoAdNxGjS0H9pdHeTxPu5Tqn\nQ3pyYi3q/JPJWdWBMq7uSfsE3iEAeOa2Mwn8euds6hYKMe348eJ62C+OaiiLBwee\nuhCZa+Xs2U+dQEgUdmffQtiIyM4XsTz9gaWxSwvvSKUH4bNZ6CVddtYJUJ+K6cLS\nXgG4M71flmChBtYI1DqpX2yhdaUgQ+590uFn2u6yG9zaSmdxbmolKJ++H/r4fHPx\ng6KNmPpO7ycAa6MSMFeYKYVJzIl16cAYzivivsVmKRJPjMJ3bEdFB0zwtJ3XNxY=\n=IzyX\n-----END PGP MESSAGE-----
7+
sops_pgp__list_0__map_fp=0231831CB40B8E587B7353CBA3AF727721205A62
8+
sops_unencrypted_suffix=_unencrypted
9+
sops_version=3.10.2
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
username=ENC[AES256_GCM,data:TjK3KxFn,iv:pQuI282vPV0UStRIlKTxS35lZECxeDBhh68RQM0ZWIg=,tag:sknn3+JYRJVm7pWyvN4GHg==,type:str]
2+
password=ENC[AES256_GCM,data:DUkvAJlu1Eaf6tdMLSWoojTf0aMjH+s7kjrIENcrNbk=,iv:BwsppzU66hbEXB7GQL5Ic8tqzqnj+xg2JJuJrhqktr0=,tag:yCCYl1KtM1fTmvQGy3lFNQ==,type:str]
3+
sops_lastmodified=2025-08-31T19:23:00Z
4+
sops_mac=ENC[AES256_GCM,data:GlYxWHbF9+/8JyIxY6UMg0nF0K4NyD6lYY2E7qn/kRmhvxh7ak5ettkM+UIlNNSCDAhuoq/AZ9CRQlqM4f2iqiGf/2+wrTSk4/7ieUh5FiRlRbH+H5l6Dsgf82fyI1C/RhcW2Wz/lZoc7U9VG6wcrsXIeePdYfLkmhKjOPu03Fg=,iv:HEXCazlt11WpQACRi+og5vDzs58vdFw7Vv1hwTFw4mk=,tag:w3vNkbcVpv1zLLrppyaR1A==,type:str]
5+
sops_pgp__list_0__map_created_at=2025-08-31T19:23:00Z
6+
sops_pgp__list_0__map_enc=-----BEGIN PGP MESSAGE-----\n\nhQIMAwWbRp0WX+I4ARAArLg4FCdaIG1yR3wXOVn3X+A7ki1JT9rn6J5HsyfVZAPL\n1adAqD/uGfNiEG/C8PeIMmTV9sZxvhfleSR+ePPkOKcscE2RX/or6MSbXhOzuvDG\nOOifjSqLW66rgbwVGOED3wZwDwhzr2KVmjmwOVNPL6rMvn53a5/Rm4pxCTS6MWLE\nNoXfJT16Q4Dxb+FRi7Vp5/q93AnmeHiEjUByy3QbiRuB396mRjaUSdn9zv26tXtO\nz2CRPnn9yL79hszqFFPIjztnZKlR92FkIhZImQMX1aOfHdJx/zEcU9oJWXMdS2qw\nHyaPxEaQAcZWcDEBFV5gMdlo65oeQ/E6erbm6ORBAEMKc8VeRz37trM8obyLyuXm\nOe+C8hNjTi1ekU8DT4Ln3RCxUi7L2JfPRNPyjP0CDn5YkKk2qn8+fK8BOmo9wgPd\n1Zcb1wWO6p2rAzuPC1l+ci72f7kTGNP0X34sWVfgP5IX2+NHkGfBXHVgqfraDgIX\nSNyKO5AzgEGBcLJNgZ+Y9jtQ4hnsD13BIkbh8UOxVoAdNxGjS0H9pdHeTxPu5Tqn\nQ3pyYi3q/JPJWdWBMq7uSfsE3iEAeOa2Mwn8euds6hYKMe348eJ62C+OaiiLBwee\nuhCZa+Xs2U+dQEgUdmffQtiIyM4XsTz9gaWxSwvvSKUH4bNZ6CVddtYJUJ+K6cLS\nXgG4M71flmChBtYI1DqpX2yhdaUgQ+590uFn2u6yG9zaSmdxbmolKJ++H/r4fHPx\ng6KNmPpO7ycAa6MSMFeYKYVJzIl16cAYzivivsVmKRJPjMJ3bEdFB0zwtJ3XNxY=\n=IzyX\n-----END PGP MESSAGE-----
7+
sops_pgp__list_0__map_fp=0231831CB40B8E587B7353CBA3AF727721205A62
8+
sops_unencrypted_suffix=_unencrypted
9+
sops_version=3.10.2

0 commit comments

Comments
 (0)