@@ -47,54 +47,56 @@ import (
47
47
const (
48
48
// envPrefix = "pg"
49
49
50
- metricsAddrSvcMgrFlg = "metrics-addr-svc-mgr"
51
- metricsAddrCtrlMgrFlg = "metrics-addr-ctrl-mgr"
52
- enableLeaderElectionFlg = "enable-leader-election"
53
- partitionIDFlg = "partition-id"
54
- tenantFlg = "tenant"
55
- ctrlPlaneKubeConfifgFlg = "controlplane-kubeconfig"
56
- loadBalancerIPFlg = "load-balancer-ip"
57
- portRangeStartFlg = "port-range-start"
58
- portRangeSizeFlg = "port-range-size"
59
- customPSPNameFlg = "custom-psp-name"
60
- storageClassFlg = "storage-class"
61
- postgresImageFlg = "postgres-image"
62
- etcdHostFlg = "etcd-host"
63
- crdRegistrationFlg = "enable-crd-registration"
64
- operatorImageFlg = "operator-image"
65
- pgParamBlockListFlg = "postgres-param-blocklist" // nolint
66
- majorVersionUpgradeModeFlg = "major-version-upgrade-mode"
67
- standbyClustersSourceRangesFlg = "standby-clusters-source-ranges"
68
- postgresletNamespaceFlg = "postgreslet-namespace"
69
- sidecarsCMNameFlg = "sidecars-configmap-name"
70
- enableNetPolFlg = "enable-netpol"
71
- enablePodAntiaffinityFlg = "enable-pod-antiaffinity"
72
- patroniRetryTimeoutFlg = "patroni-retry-timeout"
73
- enableStandbyLeaderSelectorFlg = "enable-standby-leader-selector"
74
- ControlPlaneNamespaceFlg = "control-plane-namespace"
75
- enableLegacyStandbySelectorFlg = "enable-legacy-standby-selector"
76
- deployEtcdFlg = "deploy-etcd"
77
- etcdImageFlg = "etcd-image"
78
- etcdBackupSidecarImageFlg = "etcd-backup-sidecar-image"
79
- etcdBackupSecretNameFlg = "etcd-backup-secret-name" // nolint
80
- etcdPSPNameFlg = "etcd-psp-name"
81
- replicationChangeRequeueTimeFlg = "replication-change-requeue-time-in-seconds"
82
- postgresletFullnameFlg = "postgreslet-fullname"
83
- enableLBSourceRangesFlg = "enable-lb-source-ranges"
84
- enableRandomStorageEncryptionSecretFlg = "enable-random-storage-encryption-secret"
85
- enableWalGEncryptionFlg = "enable-walg-encryption"
86
- enableForceSharedIPFlg = "enable-force-shared-ip"
87
- initDBJobCMNameFlg = "initdb-job-configmap-name"
88
- enableBootstrapStandbyFromS3Flg = "enable-bootsrtap-standby-from-s3"
89
- enableSuperUserForDBOFlg = "enable-superuser-for-dbo"
90
- tlsClusterIssuerFlg = "tls-cluster-issuer"
91
- tlsSubDomainFlg = "tls-sub-domain"
92
- enablePatroniFailsafeModeFlg = "enable-patroni-failsafe-mode"
93
- enableFsGroupChangePolicyWebhookFlg = "enable-fsgroup-change-policy-webhook"
94
- enableWalGExporterFlg = "enable-walg-exporter"
95
- walGExporterImageFlg = "walg-exporter-image"
96
- walGExporterCPULimitFlg = "walg-exporter-cpu-limit"
97
- walGExporterMemoryLimitFlg = "walg-exporter-memory-limit"
50
+ metricsAddrSvcMgrFlg = "metrics-addr-svc-mgr"
51
+ metricsAddrCtrlMgrFlg = "metrics-addr-ctrl-mgr"
52
+ enableLeaderElectionFlg = "enable-leader-election"
53
+ partitionIDFlg = "partition-id"
54
+ tenantFlg = "tenant"
55
+ ctrlPlaneKubeConfifgFlg = "controlplane-kubeconfig"
56
+ loadBalancerIPFlg = "load-balancer-ip"
57
+ portRangeStartFlg = "port-range-start"
58
+ portRangeSizeFlg = "port-range-size"
59
+ customPSPNameFlg = "custom-psp-name"
60
+ storageClassFlg = "storage-class"
61
+ postgresImageFlg = "postgres-image"
62
+ etcdHostFlg = "etcd-host"
63
+ crdRegistrationFlg = "enable-crd-registration"
64
+ operatorImageFlg = "operator-image"
65
+ pgParamBlockListFlg = "postgres-param-blocklist" // nolint
66
+ majorVersionUpgradeModeFlg = "major-version-upgrade-mode"
67
+ standbyClustersSourceRangesFlg = "standby-clusters-source-ranges"
68
+ postgresletNamespaceFlg = "postgreslet-namespace"
69
+ sidecarsCMNameFlg = "sidecars-configmap-name"
70
+ enableNetPolFlg = "enable-netpol"
71
+ enablePodAntiaffinityFlg = "enable-pod-antiaffinity"
72
+ patroniRetryTimeoutFlg = "patroni-retry-timeout"
73
+ enableStandbyLeaderSelectorFlg = "enable-standby-leader-selector"
74
+ ControlPlaneNamespaceFlg = "control-plane-namespace"
75
+ enableLegacyStandbySelectorFlg = "enable-legacy-standby-selector"
76
+ deployEtcdFlg = "deploy-etcd"
77
+ etcdImageFlg = "etcd-image"
78
+ etcdBackupSidecarImageFlg = "etcd-backup-sidecar-image"
79
+ etcdBackupSecretNameFlg = "etcd-backup-secret-name" // nolint
80
+ etcdPSPNameFlg = "etcd-psp-name"
81
+ replicationChangeRequeueTimeFlg = "replication-change-requeue-time-in-seconds"
82
+ postgresletFullnameFlg = "postgreslet-fullname"
83
+ enableLBSourceRangesFlg = "enable-lb-source-ranges"
84
+ enableRandomStorageEncryptionSecretFlg = "enable-random-storage-encryption-secret"
85
+ enableWalGEncryptionFlg = "enable-walg-encryption"
86
+ enableForceSharedIPFlg = "enable-force-shared-ip"
87
+ initDBJobCMNameFlg = "initdb-job-configmap-name"
88
+ enableBootstrapStandbyFromS3Flg = "enable-bootsrtap-standby-from-s3"
89
+ enableSuperUserForDBOFlg = "enable-superuser-for-dbo"
90
+ tlsClusterIssuerFlg = "tls-cluster-issuer"
91
+ tlsSubDomainFlg = "tls-sub-domain"
92
+ enablePatroniFailsafeModeFlg = "enable-patroni-failsafe-mode"
93
+ enableFsGroupChangePolicyWebhookFlg = "enable-fsgroup-change-policy-webhook"
94
+ enableWalGExporterFlg = "enable-walg-exporter"
95
+ walGExporterImageFlg = "walg-exporter-image"
96
+ walGExporterCPULimitFlg = "walg-exporter-cpu-limit"
97
+ walGExporterMemoryLimitFlg = "walg-exporter-memory-limit"
98
+ podAntiaffinityPreferredDuringSchedulingFlg = "pod-antiaffinity-preferred-during-scheduling"
99
+ podAntiaffinityTopologyKeyFlg = "pod-antiaffinity-topology-key"
98
100
)
99
101
100
102
var (
@@ -117,49 +119,51 @@ func init() {
117
119
func main () {
118
120
119
121
var (
120
- metricsAddrCtrlMgr string
121
- metricsAddrSvcMgr string
122
- partitionID string
123
- tenant string
124
- ctrlClusterKubeconfig string
125
- pspName string
126
- lbIP string
127
- storageClass string
128
- postgresImage string
129
- etcdHost string
130
- operatorImage string
131
- majorVersionUpgradeMode string
132
- postgresletNamespace string
133
- sidecarsCMName string
134
- controlPlaneNamespace string
135
- etcdImage string
136
- etcdBackupSidecarImage string
137
- etcdBackupSecretName string
138
- etcdPSPName string
139
- postgresletFullname string
140
- initDBJobCMName string
141
- tlsClusterIssuer string
142
- tlsSubDomain string
143
- walGExporterImage string
144
- walGExporterCPULimit string
145
- walGExporterMemoryLimit string
146
-
147
- enableLeaderElection bool
148
- enableCRDRegistration bool
149
- enableNetPol bool
150
- enablePodAntiaffinity bool
151
- enableStandbyLeaderSelector bool
152
- enableLegacyStandbySelector bool
153
- deployEtcd bool
154
- enableLBSourceRanges bool
155
- enableRandomStorageEncryptionSecret bool
156
- enableWalGEncryption bool
157
- enableForceSharedIP bool
158
- enableBootstrapStandbyFromS3 bool
159
- enableSuperUserForDBO bool
160
- enablePatroniFailsafeMode bool
161
- enableFsGroupChangePolicyWebhook bool
162
- enableWalGExporter bool
122
+ metricsAddrCtrlMgr string
123
+ metricsAddrSvcMgr string
124
+ partitionID string
125
+ tenant string
126
+ ctrlClusterKubeconfig string
127
+ pspName string
128
+ lbIP string
129
+ storageClass string
130
+ postgresImage string
131
+ etcdHost string
132
+ operatorImage string
133
+ majorVersionUpgradeMode string
134
+ postgresletNamespace string
135
+ sidecarsCMName string
136
+ controlPlaneNamespace string
137
+ etcdImage string
138
+ etcdBackupSidecarImage string
139
+ etcdBackupSecretName string
140
+ etcdPSPName string
141
+ postgresletFullname string
142
+ initDBJobCMName string
143
+ tlsClusterIssuer string
144
+ tlsSubDomain string
145
+ walGExporterImage string
146
+ walGExporterCPULimit string
147
+ walGExporterMemoryLimit string
148
+ podAntiaffinityTopologyKey string
149
+
150
+ enableLeaderElection bool
151
+ enableCRDRegistration bool
152
+ enableNetPol bool
153
+ enablePodAntiaffinity bool
154
+ enableStandbyLeaderSelector bool
155
+ enableLegacyStandbySelector bool
156
+ deployEtcd bool
157
+ enableLBSourceRanges bool
158
+ enableRandomStorageEncryptionSecret bool
159
+ enableWalGEncryption bool
160
+ enableForceSharedIP bool
161
+ enableBootstrapStandbyFromS3 bool
162
+ enableSuperUserForDBO bool
163
+ enablePatroniFailsafeMode bool
164
+ enableFsGroupChangePolicyWebhook bool
165
+ enableWalGExporter bool
166
+ podAntiaffinityPreferredDuringScheduling bool
163
167
164
168
portRangeStart int32
165
169
portRangeSize int32
@@ -261,6 +265,11 @@ func main() {
261
265
viper .SetDefault (enablePodAntiaffinityFlg , false )
262
266
enablePodAntiaffinity = viper .GetBool (enablePodAntiaffinityFlg )
263
267
268
+ viper .SetDefault (podAntiaffinityPreferredDuringSchedulingFlg , false )
269
+ podAntiaffinityPreferredDuringScheduling = viper .GetBool (podAntiaffinityPreferredDuringSchedulingFlg )
270
+
271
+ podAntiaffinityTopologyKey = viper .GetString (podAntiaffinityTopologyKeyFlg )
272
+
264
273
// hard coded value
265
274
patroniLoopWait = databasev1 .DefaultPatroniParamValueLoopWait
266
275
@@ -369,6 +378,8 @@ func main() {
369
378
sidecarsCMNameFlg , sidecarsCMName ,
370
379
enableNetPolFlg , enableNetPol ,
371
380
enablePodAntiaffinityFlg , enablePodAntiaffinity ,
381
+ podAntiaffinityPreferredDuringSchedulingFlg , podAntiaffinityPreferredDuringScheduling ,
382
+ podAntiaffinityTopologyKeyFlg , podAntiaffinityTopologyKey ,
372
383
patroniRetryTimeoutFlg , patroniRetryTimeout ,
373
384
enableStandbyLeaderSelectorFlg , enableStandbyLeaderSelector ,
374
385
ControlPlaneNamespaceFlg , controlPlaneNamespace ,
@@ -455,17 +466,19 @@ func main() {
455
466
}
456
467
457
468
var opMgrOpts operatormanager.Options = operatormanager.Options {
458
- PspName : pspName ,
459
- OperatorImage : operatorImage ,
460
- DockerImage : postgresImage ,
461
- EtcdHost : etcdHost ,
462
- CRDRegistration : enableCRDRegistration ,
463
- MajorVersionUpgradeMode : majorVersionUpgradeMode ,
464
- PostgresletNamespace : postgresletNamespace ,
465
- SidecarsConfigMapName : sidecarsCMName ,
466
- PodAntiaffinity : enablePodAntiaffinity ,
467
- PartitionID : partitionID ,
468
- PatroniFailsafeMode : enablePatroniFailsafeMode ,
469
+ PspName : pspName ,
470
+ OperatorImage : operatorImage ,
471
+ DockerImage : postgresImage ,
472
+ EtcdHost : etcdHost ,
473
+ CRDRegistration : enableCRDRegistration ,
474
+ MajorVersionUpgradeMode : majorVersionUpgradeMode ,
475
+ PostgresletNamespace : postgresletNamespace ,
476
+ SidecarsConfigMapName : sidecarsCMName ,
477
+ PodAntiaffinity : enablePodAntiaffinity ,
478
+ PartitionID : partitionID ,
479
+ PatroniFailsafeMode : enablePatroniFailsafeMode ,
480
+ PodAntiaffinityPreferredDuringScheduling : podAntiaffinityPreferredDuringScheduling ,
481
+ PodAntiaffinityTopologyKey : podAntiaffinityTopologyKey ,
469
482
}
470
483
opMgr , err := operatormanager .New (svcClusterConf , "external/svc-postgres-operator.yaml" , scheme , ctrl .Log .WithName ("OperatorManager" ), opMgrOpts )
471
484
if err != nil {
0 commit comments