Ensure compatibility with Spilo after WAL-E removal (support old and new versions)
This commit is contained in:
parent
51135b07db
commit
0451325139
|
|
@ -1000,8 +1000,8 @@ restoring WAL files. You can find the log files to the respective commands
|
|||
under `$HOME/pgdata/pgroot/pg_log/postgres-?.log`.
|
||||
|
||||
```bash
|
||||
archive_command: `envdir "{WALE_ENV_DIR}" {WALE_BINARY} wal-push "%p"`
|
||||
restore_command: `envdir "{{WALE_ENV_DIR}}" /scripts/restore_command.sh "%f" "%p"`
|
||||
archive_command: `envdir "{WALG_ENV_DIR}" {WALG_BINARY} wal-push "%p"`
|
||||
restore_command: `envdir "{{WALG_ENV_DIR}}" /scripts/restore_command.sh "%f" "%p"`
|
||||
```
|
||||
|
||||
You can produce a basebackup manually with the following command and check
|
||||
|
|
@ -1080,8 +1080,8 @@ variables:
|
|||
|
||||
```bash
|
||||
AWS_ENDPOINT='https://s3.eu-central-1.amazonaws.com:443'
|
||||
WALE_S3_ENDPOINT='https+path://s3.eu-central-1.amazonaws.com:443'
|
||||
WALE_S3_PREFIX=$WAL_S3_BUCKET/spilo/{WAL_BUCKET_SCOPE_PREFIX}{SCOPE}{WAL_BUCKET_SCOPE_SUFFIX}/wal/{PGVERSION}
|
||||
WALG_S3_ENDPOINT='https+path://s3.eu-central-1.amazonaws.com:443'
|
||||
WALG_S3_PREFIX=$WAL_S3_BUCKET/spilo/{WAL_BUCKET_SCOPE_PREFIX}{SCOPE}{WAL_BUCKET_SCOPE_SUFFIX}/wal/{PGVERSION}
|
||||
```
|
||||
|
||||
The operator sets the prefix to an empty string so that spilo will generate it
|
||||
|
|
@ -1092,11 +1092,11 @@ the [pod_environment_configmap](#custom-pod-environment-variables) you have
|
|||
to set `WAL_BUCKET_SCOPE_PREFIX = ""`, too. Otherwise Spilo will not find
|
||||
the physical backups on restore (next chapter).
|
||||
|
||||
When the `AWS_REGION` is set, `AWS_ENDPOINT` and `WALE_S3_ENDPOINT` are
|
||||
generated automatically. `WALG_S3_PREFIX` is identical to `WALE_S3_PREFIX`.
|
||||
When the `AWS_REGION` is set, `AWS_ENDPOINT` and `WALG_S3_ENDPOINT` are
|
||||
generated automatically. `WALG_S3_PREFIX` is identical to `WALG_S3_PREFIX`.
|
||||
`SCOPE` is the Postgres cluster name.
|
||||
|
||||
:warning: If both `AWS_REGION` and `AWS_ENDPOINT` or `WALE_S3_ENDPOINT` are
|
||||
:warning: If both `AWS_REGION` and `AWS_ENDPOINT` or `WALG_S3_ENDPOINT` are
|
||||
defined backups with WAL-E will fail. You can fix it by switching to WAL-G
|
||||
with `USE_WALG_BACKUP: "true"`.
|
||||
|
||||
|
|
@ -1195,7 +1195,7 @@ scope to just the WAL-E bucket.
|
|||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: psql-wale-creds
|
||||
name: psql-wal-creds
|
||||
namespace: default
|
||||
type: Opaque
|
||||
stringData:
|
||||
|
|
@ -1203,13 +1203,13 @@ stringData:
|
|||
<GCP .json credentials>
|
||||
```
|
||||
|
||||
2. Setup your operator configuration values. With the `psql-wale-creds`
|
||||
2. Setup your operator configuration values. With the `psql-wal-creds`
|
||||
resource applied to your cluster, ensure that the operator's configuration
|
||||
is set up like the following:
|
||||
```yml
|
||||
...
|
||||
aws_or_gcp:
|
||||
additional_secret_mount: "psql-wale-creds"
|
||||
additional_secret_mount: "psql-wal-creds"
|
||||
additional_secret_mount_path: "/var/secrets/google" # or where ever you want to mount the file
|
||||
# aws_region: eu-central-1
|
||||
# kube_iam_role: ""
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ type LoadBalancerConfiguration struct {
|
|||
// AWSGCPConfiguration defines the configuration for AWS
|
||||
// TODO complete Google Cloud Platform (GCP) configuration
|
||||
type AWSGCPConfiguration struct {
|
||||
WALES3Bucket string `json:"wal_s3_bucket,omitempty"`
|
||||
WALS3Bucket string `json:"wal_s3_bucket,omitempty"`
|
||||
AWSRegion string `json:"aws_region,omitempty"`
|
||||
WALGSBucket string `json:"wal_gs_bucket,omitempty"`
|
||||
GCPCredentials string `json:"gcp_credentials,omitempty"`
|
||||
|
|
|
|||
|
|
@ -1052,8 +1052,8 @@ func (c *Cluster) generateSpiloPodEnvVars(
|
|||
|
||||
// global variables derived from operator configuration
|
||||
opConfigEnvVars := make([]v1.EnvVar, 0)
|
||||
if c.OpConfig.WALES3Bucket != "" {
|
||||
opConfigEnvVars = append(opConfigEnvVars, v1.EnvVar{Name: "WAL_S3_BUCKET", Value: c.OpConfig.WALES3Bucket})
|
||||
if c.OpConfig.WALS3Bucket != "" {
|
||||
opConfigEnvVars = append(opConfigEnvVars, v1.EnvVar{Name: "WAL_S3_BUCKET", Value: c.OpConfig.WALS3Bucket})
|
||||
opConfigEnvVars = append(opConfigEnvVars, v1.EnvVar{Name: "WAL_BUCKET_SCOPE_SUFFIX", Value: getBucketScopeSuffix(string(uid))})
|
||||
opConfigEnvVars = append(opConfigEnvVars, v1.EnvVar{Name: "WAL_BUCKET_SCOPE_PREFIX", Value: ""})
|
||||
}
|
||||
|
|
@ -2118,9 +2118,9 @@ func (c *Cluster) generateCloneEnvironment(description *acidv1.CloneDescription)
|
|||
if description.S3WalPath == "" {
|
||||
c.logger.Info("no S3 WAL path defined - taking value from global config", description.S3WalPath)
|
||||
|
||||
if c.OpConfig.WALES3Bucket != "" {
|
||||
c.logger.Debugf("found WALES3Bucket %s - will set CLONE_WAL_S3_BUCKET", c.OpConfig.WALES3Bucket)
|
||||
result = append(result, v1.EnvVar{Name: "CLONE_WAL_S3_BUCKET", Value: c.OpConfig.WALES3Bucket})
|
||||
if c.OpConfig.WALS3Bucket != "" {
|
||||
c.logger.Debugf("found WALS3Bucket %s - will set CLONE_WAL_S3_BUCKET", c.OpConfig.WALS3Bucket)
|
||||
result = append(result, v1.EnvVar{Name: "CLONE_WAL_S3_BUCKET", Value: c.OpConfig.WALS3Bucket})
|
||||
} else if c.OpConfig.WALGSBucket != "" {
|
||||
c.logger.Debugf("found WALGSBucket %s - will set CLONE_WAL_GS_BUCKET", c.OpConfig.WALGSBucket)
|
||||
result = append(result, v1.EnvVar{Name: "CLONE_WAL_GS_BUCKET", Value: c.OpConfig.WALGSBucket})
|
||||
|
|
@ -2139,19 +2139,21 @@ func (c *Cluster) generateCloneEnvironment(description *acidv1.CloneDescription)
|
|||
} else {
|
||||
c.logger.Debugf("use S3WalPath %s from the manifest", description.S3WalPath)
|
||||
|
||||
// add if
|
||||
result = append(result, v1.EnvVar{
|
||||
Name: "CLONE_WALE_S3_PREFIX",
|
||||
Name: "CLONE_WALG_S3_PREFIX",
|
||||
Value: description.S3WalPath,
|
||||
})
|
||||
}
|
||||
|
||||
result = append(result, v1.EnvVar{Name: "CLONE_METHOD", Value: "CLONE_WITH_WALE"})
|
||||
// if else wal-g
|
||||
result = append(result, v1.EnvVar{Name: "CLONE_METHOD", Value: "CLONE_WITH_WALG"})
|
||||
result = append(result, v1.EnvVar{Name: "CLONE_TARGET_TIME", Value: description.EndTimestamp})
|
||||
result = append(result, v1.EnvVar{Name: "CLONE_WAL_BUCKET_SCOPE_PREFIX", Value: ""})
|
||||
|
||||
if description.S3Endpoint != "" {
|
||||
result = append(result, v1.EnvVar{Name: "CLONE_AWS_ENDPOINT", Value: description.S3Endpoint})
|
||||
result = append(result, v1.EnvVar{Name: "CLONE_WALE_S3_ENDPOINT", Value: description.S3Endpoint})
|
||||
result = append(result, v1.EnvVar{Name: "CLONE_WALG_S3_ENDPOINT", Value: description.S3Endpoint})
|
||||
}
|
||||
|
||||
if description.S3AccessKeyId != "" {
|
||||
|
|
@ -2195,12 +2197,12 @@ func (c *Cluster) generateStandbyEnvironment(description *acidv1.StandbyDescript
|
|||
c.logger.Info("standby cluster streaming from WAL location")
|
||||
if description.S3WalPath != "" {
|
||||
result = append(result, v1.EnvVar{
|
||||
Name: "STANDBY_WALE_S3_PREFIX",
|
||||
Name: "STANDBY_WALG_S3_PREFIX",
|
||||
Value: description.S3WalPath,
|
||||
})
|
||||
} else if description.GSWalPath != "" {
|
||||
result = append(result, v1.EnvVar{
|
||||
Name: "STANDBY_WALE_GS_PREFIX",
|
||||
Name: "STANDBY_WALG_GS_PREFIX",
|
||||
Value: description.GSWalPath,
|
||||
})
|
||||
} else {
|
||||
|
|
@ -2208,7 +2210,8 @@ func (c *Cluster) generateStandbyEnvironment(description *acidv1.StandbyDescript
|
|||
return result
|
||||
}
|
||||
|
||||
result = append(result, v1.EnvVar{Name: "STANDBY_METHOD", Value: "STANDBY_WITH_WALE"})
|
||||
// if use wal-g
|
||||
result = append(result, v1.EnvVar{Name: "STANDBY_METHOD", Value: "STANDBY_WITH_WALG"})
|
||||
result = append(result, v1.EnvVar{Name: "STANDBY_WAL_BUCKET_SCOPE_PREFIX", Value: ""})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -665,7 +665,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
|||
expectedCloneEnvSpec := []ExpectedValue{
|
||||
{
|
||||
envIndex: 16,
|
||||
envVarConstant: "CLONE_WALE_S3_PREFIX",
|
||||
envVarConstant: "CLONE_WALG_S3_PREFIX",
|
||||
envVarValue: "s3://another-bucket",
|
||||
},
|
||||
{
|
||||
|
|
@ -687,7 +687,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
|||
},
|
||||
{
|
||||
envIndex: 17,
|
||||
envVarConstant: "CLONE_WALE_S3_PREFIX",
|
||||
envVarConstant: "CLONE_WALG_S3_PREFIX",
|
||||
envVarValue: "s3://another-bucket",
|
||||
},
|
||||
{
|
||||
|
|
@ -730,7 +730,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
|||
expectedStandbyEnvSecret := []ExpectedValue{
|
||||
{
|
||||
envIndex: 15,
|
||||
envVarConstant: "STANDBY_WALE_GS_PREFIX",
|
||||
envVarConstant: "STANDBY_WALG_GS_PREFIX",
|
||||
envVarValue: "gs://some/path/",
|
||||
},
|
||||
{
|
||||
|
|
@ -767,7 +767,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
|||
{
|
||||
subTest: "will set WAL_S3_BUCKET env",
|
||||
opConfig: config.Config{
|
||||
WALES3Bucket: "global-s3-bucket",
|
||||
WALS3Bucket: "global-s3-bucket",
|
||||
},
|
||||
cloneDescription: &acidv1.CloneDescription{},
|
||||
standbyDescription: &acidv1.StandbyDescription{},
|
||||
|
|
@ -815,7 +815,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
|||
Name: testPodEnvironmentConfigMapName,
|
||||
},
|
||||
},
|
||||
WALES3Bucket: "global-s3-bucket",
|
||||
WALS3Bucket: "global-s3-bucket",
|
||||
},
|
||||
cloneDescription: &acidv1.CloneDescription{},
|
||||
standbyDescription: &acidv1.StandbyDescription{},
|
||||
|
|
@ -903,7 +903,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
|||
Name: testPodEnvironmentConfigMapName,
|
||||
},
|
||||
},
|
||||
WALES3Bucket: "global-s3-bucket",
|
||||
WALS3Bucket: "global-s3-bucket",
|
||||
},
|
||||
cloneDescription: &acidv1.CloneDescription{
|
||||
ClusterName: "test-cluster",
|
||||
|
|
@ -923,7 +923,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
|||
Name: testPodEnvironmentConfigMapName,
|
||||
},
|
||||
},
|
||||
WALES3Bucket: "global-s3-bucket",
|
||||
WALS3Bucket: "global-s3-bucket",
|
||||
},
|
||||
cloneDescription: &acidv1.CloneDescription{
|
||||
ClusterName: "test-cluster",
|
||||
|
|
@ -953,7 +953,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
|||
Name: testPodEnvironmentConfigMapName,
|
||||
},
|
||||
},
|
||||
WALES3Bucket: "global-s3-bucket",
|
||||
WALS3Bucket: "global-s3-bucket",
|
||||
},
|
||||
cloneDescription: &acidv1.CloneDescription{
|
||||
ClusterName: "test-cluster",
|
||||
|
|
@ -971,7 +971,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
|||
ResourceCheckInterval: time.Duration(testResourceCheckInterval),
|
||||
ResourceCheckTimeout: time.Duration(testResourceCheckTimeout),
|
||||
},
|
||||
WALES3Bucket: "global-s3-bucket",
|
||||
WALS3Bucket: "global-s3-bucket",
|
||||
},
|
||||
cloneDescription: &acidv1.CloneDescription{
|
||||
ClusterName: "test-cluster",
|
||||
|
|
@ -989,7 +989,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
|||
ResourceCheckInterval: time.Duration(testResourceCheckInterval),
|
||||
ResourceCheckTimeout: time.Duration(testResourceCheckTimeout),
|
||||
},
|
||||
WALES3Bucket: "global-s3-bucket",
|
||||
WALS3Bucket: "global-s3-bucket",
|
||||
},
|
||||
cloneDescription: &acidv1.CloneDescription{},
|
||||
standbyDescription: &acidv1.StandbyDescription{
|
||||
|
|
@ -1177,7 +1177,7 @@ func TestCloneEnv(t *testing.T) {
|
|||
EndTimestamp: "somewhen",
|
||||
},
|
||||
env: v1.EnvVar{
|
||||
Name: "CLONE_WALE_S3_PREFIX",
|
||||
Name: "CLONE_WALG_S3_PREFIX",
|
||||
Value: "s3://some/path/",
|
||||
},
|
||||
envPos: 1,
|
||||
|
|
@ -1191,7 +1191,7 @@ func TestCloneEnv(t *testing.T) {
|
|||
},
|
||||
env: v1.EnvVar{
|
||||
Name: "CLONE_WAL_S3_BUCKET",
|
||||
Value: "wale-bucket",
|
||||
Value: "wal-bucket",
|
||||
},
|
||||
envPos: 1,
|
||||
},
|
||||
|
|
@ -1213,7 +1213,7 @@ func TestCloneEnv(t *testing.T) {
|
|||
var cluster = New(
|
||||
Config{
|
||||
OpConfig: config.Config{
|
||||
WALES3Bucket: "wale-bucket",
|
||||
WALS3Bucket: "wal-bucket",
|
||||
ProtectedRoles: []string{"admin"},
|
||||
Auth: config.Auth{
|
||||
SuperUsername: superUserName,
|
||||
|
|
@ -1325,7 +1325,7 @@ func TestStandbyEnv(t *testing.T) {
|
|||
S3WalPath: "s3://some/path/",
|
||||
},
|
||||
env: v1.EnvVar{
|
||||
Name: "STANDBY_WALE_S3_PREFIX",
|
||||
Name: "STANDBY_WALG_S3_PREFIX",
|
||||
Value: "s3://some/path/",
|
||||
},
|
||||
envPos: 0,
|
||||
|
|
@ -1339,7 +1339,7 @@ func TestStandbyEnv(t *testing.T) {
|
|||
},
|
||||
env: v1.EnvVar{
|
||||
Name: "STANDBY_METHOD",
|
||||
Value: "STANDBY_WITH_WALE",
|
||||
Value: "STANDBY_WITH_WALG",
|
||||
},
|
||||
envPos: 1,
|
||||
envLen: 3,
|
||||
|
|
|
|||
|
|
@ -1027,8 +1027,8 @@ func (c *Cluster) syncStandbyClusterConfiguration() error {
|
|||
standbyOptionsToSet := make(map[string]interface{})
|
||||
if c.Spec.StandbyCluster != nil {
|
||||
c.logger.Infof("turning %q into a standby cluster", c.Name)
|
||||
standbyOptionsToSet["create_replica_methods"] = []string{"bootstrap_standby_with_wale", "basebackup_fast_xlog"}
|
||||
standbyOptionsToSet["restore_command"] = "envdir \"/run/etc/wal-e.d/env-standby\" /scripts/restore_command.sh \"%f\" \"%p\""
|
||||
standbyOptionsToSet["create_replica_methods"] = []string{"bootstrap_standby_with_walg", "basebackup_fast_xlog"}
|
||||
standbyOptionsToSet["restore_command"] = "envdir \"/run/etc/wal-g.d/env-standby\" /scripts/restore_command.sh \"%f\" \"%p\""
|
||||
|
||||
} else {
|
||||
c.logger.Infof("promoting standby cluster and detach from source")
|
||||
|
|
|
|||
|
|
@ -715,7 +715,7 @@ func TestSyncStandbyClusterConfiguration(t *testing.T) {
|
|||
mockClient.EXPECT().Get(gomock.Any()).Return(&response, nil).AnyTimes()
|
||||
|
||||
// mocking a config after setConfig is called
|
||||
standbyJson := `{"standby_cluster":{"create_replica_methods":["bootstrap_standby_with_wale","basebackup_fast_xlog"],"restore_command":"envdir \"/run/etc/wal-e.d/env-standby\" /scripts/restore_command.sh \"%f\" \"%p\""}}`
|
||||
standbyJson := `{"standby_cluster":{"create_replica_methods":["bootstrap_standby_with_walg","basebackup_fast_xlog"],"restore_command":"envdir \"/run/etc/wal-g.d/env-standby\" /scripts/restore_command.sh \"%f\" \"%p\""}}`
|
||||
r = io.NopCloser(bytes.NewReader([]byte(standbyJson)))
|
||||
response = http.Response{
|
||||
StatusCode: 200,
|
||||
|
|
@ -741,7 +741,7 @@ func TestSyncStandbyClusterConfiguration(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
|
||||
// check that pods do not have a STANDBY_* environment variable
|
||||
assert.NotContains(t, sts.Spec.Template.Spec.Containers[0].Env, v1.EnvVar{Name: "STANDBY_METHOD", Value: "STANDBY_WITH_WALE"})
|
||||
assert.NotContains(t, sts.Spec.Template.Spec.Containers[0].Env, v1.EnvVar{Name: "STANDBY_METHOD", Value: "STANDBY_WITH_WALG"})
|
||||
|
||||
// add standby section
|
||||
cluster.Spec.StandbyCluster = &acidv1.StandbyDescription{
|
||||
|
|
@ -751,13 +751,13 @@ func TestSyncStandbyClusterConfiguration(t *testing.T) {
|
|||
updatedSts := cluster.Statefulset
|
||||
|
||||
// check that pods do not have a STANDBY_* environment variable
|
||||
assert.Contains(t, updatedSts.Spec.Template.Spec.Containers[0].Env, v1.EnvVar{Name: "STANDBY_METHOD", Value: "STANDBY_WITH_WALE"})
|
||||
assert.Contains(t, updatedSts.Spec.Template.Spec.Containers[0].Env, v1.EnvVar{Name: "STANDBY_METHOD", Value: "STANDBY_WITH_WALG"})
|
||||
|
||||
// this should update the Patroni config
|
||||
err = cluster.syncStandbyClusterConfiguration()
|
||||
assert.NoError(t, err)
|
||||
|
||||
configJson = `{"standby_cluster":{"create_replica_methods":["bootstrap_standby_with_wale","basebackup_fast_xlog"],"restore_command":"envdir \"/run/etc/wal-e.d/env-standby\" /scripts/restore_command.sh \"%f\" \"%p\""}, "ttl": 20}`
|
||||
configJson = `{"standby_cluster":{"create_replica_methods":["bootstrap_standby_with_g","basebackup_fast_xlog"],"restore_command":"envdir \"/run/etc/wal-g.d/env-standby\" /scripts/restore_command.sh \"%f\" \"%p\""}, "ttl": 20}`
|
||||
r = io.NopCloser(bytes.NewReader([]byte(configJson)))
|
||||
response = http.Response{
|
||||
StatusCode: 200,
|
||||
|
|
@ -773,8 +773,8 @@ func TestSyncStandbyClusterConfiguration(t *testing.T) {
|
|||
// ToDo extend GetConfig to return standy_cluster setting to compare
|
||||
/*
|
||||
defaultStandbyParameters := map[string]interface{}{
|
||||
"create_replica_methods": []string{"bootstrap_standby_with_wale", "basebackup_fast_xlog"},
|
||||
"restore_command": "envdir \"/run/etc/wal-e.d/env-standby\" /scripts/restore_command.sh \"%f\" \"%p\"",
|
||||
"create_replica_methods": []string{"bootstrap_standby_with_walg", "basebackup_fast_xlog"},
|
||||
"restore_command": "envdir \"/run/etc/wal-g.d/env-standby\" /scripts/restore_command.sh \"%f\" \"%p\"",
|
||||
}
|
||||
assert.True(t, reflect.DeepEqual(defaultStandbyParameters, standbyCluster))
|
||||
*/
|
||||
|
|
@ -784,7 +784,7 @@ func TestSyncStandbyClusterConfiguration(t *testing.T) {
|
|||
updatedSts2 := cluster.Statefulset
|
||||
|
||||
// check that pods do not have a STANDBY_* environment variable
|
||||
assert.NotContains(t, updatedSts2.Spec.Template.Spec.Containers[0].Env, v1.EnvVar{Name: "STANDBY_METHOD", Value: "STANDBY_WITH_WALE"})
|
||||
assert.NotContains(t, updatedSts2.Spec.Template.Spec.Containers[0].Env, v1.EnvVar{Name: "STANDBY_METHOD", Value: "STANDBY_WITH_WALG"})
|
||||
|
||||
// this should update the Patroni config again
|
||||
err = cluster.syncStandbyClusterConfiguration()
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ func (c *Controller) importConfigurationFromCRD(fromCRD *acidv1.OperatorConfigur
|
|||
result.ExternalTrafficPolicy = util.Coalesce(fromCRD.LoadBalancer.ExternalTrafficPolicy, "Cluster")
|
||||
|
||||
// AWS or GCP config
|
||||
result.WALES3Bucket = fromCRD.AWSGCP.WALES3Bucket
|
||||
result.WALS3Bucket = fromCRD.AWSGCP.WALS3Bucket
|
||||
result.AWSRegion = fromCRD.AWSGCP.AWSRegion
|
||||
result.LogS3Bucket = fromCRD.AWSGCP.LogS3Bucket
|
||||
result.KubeIAMRole = fromCRD.AWSGCP.KubeIAMRole
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ type Config struct {
|
|||
MasterPodMoveTimeout time.Duration `name:"master_pod_move_timeout" default:"20m"`
|
||||
DbHostedZone string `name:"db_hosted_zone" default:"db.example.com"`
|
||||
AWSRegion string `name:"aws_region" default:"eu-central-1"`
|
||||
WALES3Bucket string `name:"wal_s3_bucket"`
|
||||
WALS3Bucket string `name:"wal_s3_bucket"`
|
||||
LogS3Bucket string `name:"log_s3_bucket"`
|
||||
KubeIAMRole string `name:"kube_iam_role"`
|
||||
WALGSBucket string `name:"wal_gs_bucket"`
|
||||
|
|
|
|||
Loading…
Reference in New Issue