Fix cloning from GCS (#1176)
* Fix clone from gcs
* pass google credentials env var if using GS bucket
* remove requirement for timezone as GCS returns timestamp in local time to the region it is in
* Revert "remove requirement for timezone as GCS returns timestamp in local time to the region it is in"
This reverts commit ac4eb350d9.
* update GCS documentation
* remove sentence about logical backups
* reword pod environment configmap section
* fix documentation
This commit is contained in:
parent
4f3bb6aa8c
commit
db0d089e75
|
|
@ -686,6 +686,32 @@ aws_or_gcp:
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Setup pod environment configmap
|
||||||
|
|
||||||
|
To make postgres-operator work with GCS, use following configmap:
|
||||||
|
```yml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: pod-env-overrides
|
||||||
|
namespace: postgres-operator-system
|
||||||
|
data:
|
||||||
|
# Any env variable used by spilo can be added
|
||||||
|
USE_WALG_BACKUP: "true"
|
||||||
|
USE_WALG_RESTORE: "true"
|
||||||
|
CLONE_USE_WALG_RESTORE: "true"
|
||||||
|
```
|
||||||
|
This configmap will instruct operator to use WAL-G, instead of WAL-E, for backup and restore.
|
||||||
|
|
||||||
|
Then provide this configmap in postgres-operator settings:
|
||||||
|
```yml
|
||||||
|
...
|
||||||
|
# namespaced name of the ConfigMap with environment variables to populate on every pod
|
||||||
|
pod_environment_configmap: "postgres-operator-system/pod-env-overrides"
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Sidecars for Postgres clusters
|
## Sidecars for Postgres clusters
|
||||||
|
|
||||||
A list of sidecars is added to each cluster created by the operator. The default
|
A list of sidecars is added to each cluster created by the operator. The default
|
||||||
|
|
|
||||||
|
|
@ -1719,11 +1719,31 @@ func (c *Cluster) generateCloneEnvironment(description *acidv1.CloneDescription)
|
||||||
msg := "Figure out which S3 bucket to use from env"
|
msg := "Figure out which S3 bucket to use from env"
|
||||||
c.logger.Info(msg, description.S3WalPath)
|
c.logger.Info(msg, description.S3WalPath)
|
||||||
|
|
||||||
|
if c.OpConfig.WALES3Bucket != "" {
|
||||||
|
envs := []v1.EnvVar{
|
||||||
|
{
|
||||||
|
Name: "CLONE_WAL_S3_BUCKET",
|
||||||
|
Value: c.OpConfig.WALES3Bucket,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
result = append(result, envs...)
|
||||||
|
} else if c.OpConfig.WALGSBucket != "" {
|
||||||
|
envs := []v1.EnvVar{
|
||||||
|
{
|
||||||
|
Name: "CLONE_WAL_GS_BUCKET",
|
||||||
|
Value: c.OpConfig.WALGSBucket,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "CLONE_GOOGLE_APPLICATION_CREDENTIALS",
|
||||||
|
Value: c.OpConfig.GCPCredentials,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
result = append(result, envs...)
|
||||||
|
} else {
|
||||||
|
c.logger.Error("Cannot figure out S3 or GS bucket. Both are empty.")
|
||||||
|
}
|
||||||
|
|
||||||
envs := []v1.EnvVar{
|
envs := []v1.EnvVar{
|
||||||
{
|
|
||||||
Name: "CLONE_WAL_S3_BUCKET",
|
|
||||||
Value: c.OpConfig.WALES3Bucket,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
Name: "CLONE_WAL_BUCKET_SCOPE_SUFFIX",
|
Name: "CLONE_WAL_BUCKET_SCOPE_SUFFIX",
|
||||||
Value: getBucketScopeSuffix(description.UID),
|
Value: getBucketScopeSuffix(description.UID),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue