Skip to content

Commit 82b71c2

Browse files
authored
Merge pull request #55 from cybertec-postgresql/improve_cs_pgbackrest
Improve cs pgbackrest
2 parents 7670593 + ee20c5c commit 82b71c2

File tree

3 files changed

+38
-7
lines changed

3 files changed

+38
-7
lines changed

pkg/apis/cpo.opensource.cybertec.at/v1/crds.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1186,6 +1186,15 @@ var PostgresCRDResourceValidation = apiextv1.CustomResourceValidation{
11861186
"region": {
11871187
Type: "string",
11881188
},
1189+
"account": {
1190+
Type: "string",
1191+
},
1192+
"key": {
1193+
Type: "string",
1194+
},
1195+
"keyType": {
1196+
Type: "string",
1197+
},
11891198
"schedule": {
11901199
Type: "object",
11911200
Properties: map[string]apiextv1.JSONSchemaProps{

pkg/apis/cpo.opensource.cybertec.at/v1/postgresql_type.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,9 @@ type Repo struct {
288288
Resource string `json:"resource"`
289289
Endpoint string `json:"endpoint"`
290290
Region string `json:"region"`
291+
Account string `json:"account"`
292+
Key string `json:"key"`
293+
KeyType string `json:"keyType"`
291294
Schedule map[string]string `json:"schedule"`
292295
Volume `json:"volume,omitempty"`
293296
}

pkg/cluster/k8sres.go

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2935,11 +2935,7 @@ func ensurePath(file string, defaultDir string, defaultFile string) string {
29352935
func (c *Cluster) generatePgbackrestConfigmap() (*v1.ConfigMap, error) {
29362936
config := "[db]\npg1-path = /home/postgres/pgdata/pgroot/data\npg1-port = 5432\npg1-socket-path = /var/run/postgresql/\n"
29372937
config += "\n[global]\nlog-path = /home/postgres/pgdata/pgbackrest/log\nspool-path = /home/postgres/pgdata/pgbackrest/spool-path"
2938-
config += "\ntls-server-address=*"
2939-
config += "\ntls-server-ca-file = /etc/pgbackrest/certs/pgbackrest.ca-roots"
2940-
config += "\ntls-server-cert-file = /etc/pgbackrest/certs/pgbackrest-client.crt"
2941-
config += "\ntls-server-key-file = /etc/pgbackrest/certs/pgbackrest-client.key"
2942-
config += "\ntls-server-auth = " + c.clientCommonName() + "=*"
2938+
29432939
if c.Postgresql.Spec.Backup != nil && c.Postgresql.Spec.Backup.Pgbackrest != nil {
29442940
if global := c.Postgresql.Spec.Backup.Pgbackrest.Global; global != nil {
29452941
for k, v := range global {
@@ -2950,20 +2946,43 @@ func (c *Cluster) generatePgbackrestConfigmap() (*v1.ConfigMap, error) {
29502946

29512947
if len(repos) >= 1 {
29522948
for i, repo := range repos {
2953-
if repo.Storage == "pvc" {
2949+
switch repo.Storage {
2950+
case "pvc":
29542951
c.logger.Debugf("DEBUG_OUTPUT %s %s", c.clusterName().Name, c.Namespace)
2952+
config += "\ntls-server-address=*"
2953+
config += "\ntls-server-ca-file = /etc/pgbackrest/certs/pgbackrest.ca-roots"
2954+
config += "\ntls-server-cert-file = /etc/pgbackrest/certs/pgbackrest-client.crt"
2955+
config += "\ntls-server-key-file = /etc/pgbackrest/certs/pgbackrest-client.key"
2956+
config += "\ntls-server-auth = " + c.clientCommonName() + "=*"
29552957
config += "\nrepo" + fmt.Sprintf("%d", i+1) + "-host = " + c.clusterName().Name + "-pgbackrest-repo-host-0." + c.serviceName(ClusterPods) + "." + c.Namespace + ".svc." + c.OpConfig.ClusterDomain
29562958
config += "\nrepo" + fmt.Sprintf("%d", i+1) + "-host-ca-file = /etc/pgbackrest/certs/pgbackrest.ca-roots"
29572959
config += "\nrepo" + fmt.Sprintf("%d", i+1) + "-host-cert-file = /etc/pgbackrest/certs/pgbackrest-client.crt"
29582960
config += "\nrepo" + fmt.Sprintf("%d", i+1) + "-host-key-file = /etc/pgbackrest/certs/pgbackrest-client.key"
29592961
config += "\nrepo" + fmt.Sprintf("%d", i+1) + "-host-type = tls"
29602962
config += "\nrepo" + fmt.Sprintf("%d", i+1) + "-host-user = postgres"
2961-
} else {
2963+
2964+
case "s3":
29622965
config += fmt.Sprintf("\n%s-%s-bucket = %s", repo.Name, repo.Storage, repo.Resource)
29632966
config += fmt.Sprintf("\n%s-%s-endpoint = %s", repo.Name, repo.Storage, repo.Endpoint)
29642967
config += fmt.Sprintf("\n%s-%s-region = %s", repo.Name, repo.Storage, repo.Region)
29652968
config += fmt.Sprintf("\n%s-type = %s", repo.Name, repo.Storage)
2969+
2970+
case "gcs":
2971+
config += fmt.Sprintf("\n%s-%s-bucket = %s", repo.Name, repo.Storage, repo.Resource)
2972+
config += fmt.Sprintf("\n%s-%s-key = /etc/pgbackrest/conf.d/%s", repo.Name, repo.Storage, repo.Key)
2973+
config += fmt.Sprintf("\n%s-%s-key-type = %s", repo.Name, repo.Storage, repo.KeyType)
2974+
config += fmt.Sprintf("\n%s-type = %s", repo.Name, repo.Storage)
2975+
2976+
case "azure":
2977+
config += fmt.Sprintf("\n%s-%s-container = %s", repo.Name, repo.Storage, repo.Resource)
2978+
config += fmt.Sprintf("\n%s-%s-endpoint = %s", repo.Name, repo.Storage, repo.Endpoint)
2979+
config += fmt.Sprintf("\n%s-%s-key = %s", repo.Name, repo.Storage, repo.Key)
2980+
config += fmt.Sprintf("\n%s-%s-account = %s", repo.Name, repo.Storage, repo.Account)
2981+
2982+
config += fmt.Sprintf("\n%s-type = %s", repo.Name, repo.Storage)
2983+
default:
29662984
}
2985+
29672986
}
29682987
}
29692988
}

0 commit comments

Comments
 (0)