mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-06 05:52:00 +02:00
Merge branch 'master' into rolling-update-pod-annotation
This commit is contained in:
@@ -604,7 +604,7 @@ var PostgresCRDResourceValidation = apiextv1.CustomResourceValidation{
|
||||
Items: &apiextv1.JSONSchemaPropsOrArray{
|
||||
Schema: &apiextv1.JSONSchemaProps{
|
||||
Type: "object",
|
||||
Required: []string{"preference, weight"},
|
||||
Required: []string{"preference", "weight"},
|
||||
Properties: map[string]apiextv1.JSONSchemaProps{
|
||||
"preference": {
|
||||
Type: "object",
|
||||
|
||||
@@ -319,14 +319,17 @@ func getLocalAndBoostrapPostgreSQLParameters(parameters map[string]string) (loca
|
||||
return
|
||||
}
|
||||
|
||||
func generateCapabilities(capabilities []string) v1.Capabilities {
|
||||
func generateCapabilities(capabilities []string) *v1.Capabilities {
|
||||
additionalCapabilities := make([]v1.Capability, 0, len(capabilities))
|
||||
for _, capability := range capabilities {
|
||||
additionalCapabilities = append(additionalCapabilities, v1.Capability(strings.ToUpper(capability)))
|
||||
}
|
||||
return v1.Capabilities{
|
||||
Add: additionalCapabilities,
|
||||
if len(additionalCapabilities) > 0 {
|
||||
return &v1.Capabilities{
|
||||
Add: additionalCapabilities,
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func nodeAffinity(nodeReadinessLabel map[string]string, nodeAffinity *v1.NodeAffinity) *v1.Affinity {
|
||||
@@ -439,7 +442,7 @@ func generateContainer(
|
||||
envVars []v1.EnvVar,
|
||||
volumeMounts []v1.VolumeMount,
|
||||
privilegedMode bool,
|
||||
additionalPodCapabilities v1.Capabilities,
|
||||
additionalPodCapabilities *v1.Capabilities,
|
||||
) *v1.Container {
|
||||
return &v1.Container{
|
||||
Name: name,
|
||||
@@ -466,7 +469,7 @@ func generateContainer(
|
||||
AllowPrivilegeEscalation: &privilegedMode,
|
||||
Privileged: &privilegedMode,
|
||||
ReadOnlyRootFilesystem: util.False(),
|
||||
Capabilities: &additionalPodCapabilities,
|
||||
Capabilities: additionalPodCapabilities,
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -1912,7 +1915,7 @@ func (c *Cluster) generateLogicalBackupJob() (*batchv1beta1.CronJob, error) {
|
||||
envVars,
|
||||
[]v1.VolumeMount{},
|
||||
c.OpConfig.SpiloPrivileged, // use same value as for normal DB pods
|
||||
v1.Capabilities{},
|
||||
nil,
|
||||
)
|
||||
|
||||
labels := map[string]string{
|
||||
|
||||
@@ -1496,25 +1496,25 @@ func TestGenerateCapabilities(t *testing.T) {
|
||||
tests := []struct {
|
||||
subTest string
|
||||
configured []string
|
||||
capabilities v1.Capabilities
|
||||
capabilities *v1.Capabilities
|
||||
err error
|
||||
}{
|
||||
{
|
||||
subTest: "no capabilities",
|
||||
configured: nil,
|
||||
capabilities: v1.Capabilities{Add: []v1.Capability{}},
|
||||
capabilities: nil,
|
||||
err: fmt.Errorf("could not parse capabilities configuration of nil"),
|
||||
},
|
||||
{
|
||||
subTest: "empty capabilities",
|
||||
configured: []string{},
|
||||
capabilities: v1.Capabilities{Add: []v1.Capability{}},
|
||||
capabilities: nil,
|
||||
err: fmt.Errorf("could not parse empty capabilities configuration"),
|
||||
},
|
||||
{
|
||||
subTest: "configured capability",
|
||||
configured: []string{"SYS_NICE"},
|
||||
capabilities: v1.Capabilities{
|
||||
capabilities: &v1.Capabilities{
|
||||
Add: []v1.Capability{"SYS_NICE"},
|
||||
},
|
||||
err: fmt.Errorf("could not generate one configured capability"),
|
||||
@@ -1522,7 +1522,7 @@ func TestGenerateCapabilities(t *testing.T) {
|
||||
{
|
||||
subTest: "configured capabilities",
|
||||
configured: []string{"SYS_NICE", "CHOWN"},
|
||||
capabilities: v1.Capabilities{
|
||||
capabilities: &v1.Capabilities{
|
||||
Add: []v1.Capability{"SYS_NICE", "CHOWN"},
|
||||
},
|
||||
err: fmt.Errorf("could not generate multiple configured capabilities"),
|
||||
|
||||
@@ -39,7 +39,7 @@ func (c *Controller) importConfigurationFromCRD(fromCRD *acidv1.OperatorConfigur
|
||||
result.EnableSpiloWalPathCompat = fromCRD.EnableSpiloWalPathCompat
|
||||
result.EtcdHost = fromCRD.EtcdHost
|
||||
result.KubernetesUseConfigMaps = fromCRD.KubernetesUseConfigMaps
|
||||
result.DockerImage = util.Coalesce(fromCRD.DockerImage, "registry.opensource.zalan.do/acid/spilo-13:2.0-p2")
|
||||
result.DockerImage = util.Coalesce(fromCRD.DockerImage, "registry.opensource.zalan.do/acid/spilo-13:2.0-p4")
|
||||
result.Workers = util.CoalesceUInt32(fromCRD.Workers, 8)
|
||||
result.MinInstances = fromCRD.MinInstances
|
||||
result.MaxInstances = fromCRD.MaxInstances
|
||||
@@ -146,7 +146,7 @@ func (c *Controller) importConfigurationFromCRD(fromCRD *acidv1.OperatorConfigur
|
||||
|
||||
// logical backup config
|
||||
result.LogicalBackupSchedule = util.Coalesce(fromCRD.LogicalBackup.Schedule, "30 00 * * *")
|
||||
result.LogicalBackupDockerImage = util.Coalesce(fromCRD.LogicalBackup.DockerImage, "registry.opensource.zalan.do/acid/logical-backup:v1.6.0")
|
||||
result.LogicalBackupDockerImage = util.Coalesce(fromCRD.LogicalBackup.DockerImage, "registry.opensource.zalan.do/acid/logical-backup:v1.6.1")
|
||||
result.LogicalBackupProvider = util.Coalesce(fromCRD.LogicalBackup.BackupProvider, "s3")
|
||||
result.LogicalBackupS3Bucket = fromCRD.LogicalBackup.S3Bucket
|
||||
result.LogicalBackupS3Region = fromCRD.LogicalBackup.S3Region
|
||||
|
||||
@@ -113,7 +113,7 @@ type Scalyr struct {
|
||||
// LogicalBackup defines configuration for logical backup
|
||||
type LogicalBackup struct {
|
||||
LogicalBackupSchedule string `name:"logical_backup_schedule" default:"30 00 * * *"`
|
||||
LogicalBackupDockerImage string `name:"logical_backup_docker_image" default:"registry.opensource.zalan.do/acid/logical-backup:v1.6.0"`
|
||||
LogicalBackupDockerImage string `name:"logical_backup_docker_image" default:"registry.opensource.zalan.do/acid/logical-backup:v1.6.1"`
|
||||
LogicalBackupProvider string `name:"logical_backup_provider" default:"s3"`
|
||||
LogicalBackupS3Bucket string `name:"logical_backup_s3_bucket" default:""`
|
||||
LogicalBackupS3Region string `name:"logical_backup_s3_region" default:""`
|
||||
@@ -151,7 +151,7 @@ type Config struct {
|
||||
WatchedNamespace string `name:"watched_namespace"` // special values: "*" means 'watch all namespaces', the empty string "" means 'watch a namespace where operator is deployed to'
|
||||
KubernetesUseConfigMaps bool `name:"kubernetes_use_configmaps" default:"false"`
|
||||
EtcdHost string `name:"etcd_host" default:""` // special values: the empty string "" means Patroni will use K8s as a DCS
|
||||
DockerImage string `name:"docker_image" default:"registry.opensource.zalan.do/acid/spilo-13:2.0-p2"`
|
||||
DockerImage string `name:"docker_image" default:"registry.opensource.zalan.do/acid/spilo-13:2.0-p4"`
|
||||
SidecarImages map[string]string `name:"sidecar_docker_images"` // deprecated in favour of SidecarContainers
|
||||
SidecarContainers []v1.Container `name:"sidecars"`
|
||||
PodServiceAccountName string `name:"pod_service_account_name" default:"postgres-pod"`
|
||||
|
||||
Reference in New Issue
Block a user