Merge branch 'master' into add-ignore-slots-dcs-config

This commit is contained in:
Felix Kunde 2026-05-29 11:44:23 +02:00 committed by GitHub
commit 38d2efa23b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 3864 additions and 348 deletions

File diff suppressed because it is too large Load Diff

View File

@ -4,6 +4,7 @@ allow_concurrent_steps: true
build_env: &BUILD_ENV build_env: &BUILD_ENV
PYTHON_BASE_IMAGE: container-registry.zalando.net/library/python-3.11-slim PYTHON_BASE_IMAGE: container-registry.zalando.net/library/python-3.11-slim
ALPINE_BASE_IMAGE: container-registry.zalando.net/library/alpine-3 ALPINE_BASE_IMAGE: container-registry.zalando.net/library/alpine-3
UBUNTU_BASE_IMAGE: container-registry.zalando.net/library/ubuntu-22.04
MULTI_ARCH_REGISTRY: container-registry-test.zalando.net/acid MULTI_ARCH_REGISTRY: container-registry-test.zalando.net/acid
pipeline: pipeline:
@ -126,6 +127,7 @@ pipeline:
docker buildx create --config /etc/cdp-buildkitd.toml --driver-opt network=host --bootstrap --use docker buildx create --config /etc/cdp-buildkitd.toml --driver-opt network=host --bootstrap --use
docker buildx build --platform linux/amd64,linux/arm64 \ docker buildx build --platform linux/amd64,linux/arm64 \
--build-arg BASE_IMAGE="${UBUNTU_BASE_IMAGE}" \
-t ${IMAGE}:${CDP_BUILD_VERSION} \ -t ${IMAGE}:${CDP_BUILD_VERSION} \
--push . --push .

View File

@ -1,4 +1,4 @@
ARG BASE_IMAGE=registry.opensource.zalan.do/library/ubuntu-22.04:latest ARG BASE_IMAGE=ubuntu:22.04
FROM ${BASE_IMAGE} FROM ${BASE_IMAGE}
LABEL maintainer="Team ACID @ Zalando <team-acid@zalando.de>" LABEL maintainer="Team ACID @ Zalando <team-acid@zalando.de>"

View File

@ -1293,7 +1293,7 @@ func (c *Cluster) Delete() error {
// If we are done deleting our various resources we remove the finalizer to let K8S finally delete the Postgres CR // If we are done deleting our various resources we remove the finalizer to let K8S finally delete the Postgres CR
if anyErrors { if anyErrors {
c.eventRecorder.Event(c.GetReference(), v1.EventTypeWarning, "Delete", "some resources could be successfully deleted yet") c.eventRecorder.Event(c.GetReference(), v1.EventTypeWarning, "Delete", "some resources could be successfully deleted yet")
return fmt.Errorf("some error(s) occured when deleting resources, NOT removing finalizer yet") return fmt.Errorf("some error(s) occurred when deleting resources, NOT removing finalizer yet")
} }
if err := c.removeFinalizer(); err != nil { if err := c.removeFinalizer(); err != nil {
return fmt.Errorf("done cleaning up, but error when removing finalizer: %v", err) return fmt.Errorf("done cleaning up, but error when removing finalizer: %v", err)

View File

@ -1581,8 +1581,8 @@ func newCronJob(image, schedule string, vars []v1.EnvVar, mounts []v1.VolumeMoun
func TestCompareLogicalBackupJob(t *testing.T) { func TestCompareLogicalBackupJob(t *testing.T) {
img1 := "registry.opensource.zalan.do/acid/logical-backup:v1.0" img1 := "ghcr.io/zalando/postgres-operator/logical-backup:v1.14.0"
img2 := "registry.opensource.zalan.do/acid/logical-backup:v2.0" img2 := "ghcr.io/zalando/postgres-operator/logical-backup:v1.15.1"
clientSet := fake.NewSimpleClientset() clientSet := fake.NewSimpleClientset()
acidClientSet := fakeacidv1.NewSimpleClientset() acidClientSet := fakeacidv1.NewSimpleClientset()

View File

@ -187,7 +187,7 @@ func (c *Cluster) generateConnectionPoolerAuthSecret(connectionPooler *Connectio
return &v1.Secret{ return &v1.Secret{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Labels: c.connectionPoolerLabels(connectionPooler.Role, true).MatchLabels, Labels: c.connectionPoolerLabels(connectionPooler.Role, true).MatchLabels,
Name: fmt.Sprintf("%s-userlist", connectionPooler.Name), Name: fmt.Sprintf("%s-u", connectionPooler.Name),
Namespace: connectionPooler.Namespace, Namespace: connectionPooler.Namespace,
Annotations: c.annotationsSet(nil), Annotations: c.annotationsSet(nil),
OwnerReferences: c.ownerReferences(), OwnerReferences: c.ownerReferences(),
@ -393,15 +393,15 @@ func (c *Cluster) generateConnectionPoolerPodTemplate(role PostgresRole) (
// mount secret volume with userlist.txt for pgBouncer to authenticate users // mount secret volume with userlist.txt for pgBouncer to authenticate users
poolerVolumes = append(poolerVolumes, v1.Volume{ poolerVolumes = append(poolerVolumes, v1.Volume{
Name: fmt.Sprintf("%s-userlist-volume", c.connectionPoolerName(role)), Name: fmt.Sprintf("%s-u", c.connectionPoolerName(role)),
VolumeSource: v1.VolumeSource{ VolumeSource: v1.VolumeSource{
Secret: &v1.SecretVolumeSource{ Secret: &v1.SecretVolumeSource{
SecretName: fmt.Sprintf("%s-userlist", c.connectionPoolerName(role)), SecretName: fmt.Sprintf("%s-u", c.connectionPoolerName(role)),
}, },
}, },
}) })
volumeMounts = append(volumeMounts, v1.VolumeMount{ volumeMounts = append(volumeMounts, v1.VolumeMount{
Name: fmt.Sprintf("%s-userlist-volume", c.connectionPoolerName(role)), Name: fmt.Sprintf("%s-u", c.connectionPoolerName(role)),
MountPath: "/etc/pgbouncer/userlist.txt", MountPath: "/etc/pgbouncer/userlist.txt",
SubPath: "userlist.txt", SubPath: "userlist.txt",
ReadOnly: true, ReadOnly: true,
@ -1063,7 +1063,7 @@ func (c *Cluster) syncConnectionPoolerWorker(oldSpec, newSpec *acidv1.Postgresql
// create extra secret for connection pooler authentication // create extra secret for connection pooler authentication
newAuthSecret = c.generateConnectionPoolerAuthSecret(c.ConnectionPooler[role]) newAuthSecret = c.generateConnectionPoolerAuthSecret(c.ConnectionPooler[role])
if authSecret, err = c.KubeClient.Secrets(c.Namespace).Get(context.TODO(), fmt.Sprintf("%s-userlist", c.connectionPoolerName(role)), metav1.GetOptions{}); err == nil { if authSecret, err = c.KubeClient.Secrets(c.Namespace).Get(context.TODO(), fmt.Sprintf("%s-u", c.connectionPoolerName(role)), metav1.GetOptions{}); err == nil {
c.ConnectionPooler[role].AuthSecret = authSecret c.ConnectionPooler[role].AuthSecret = authSecret
// make sure existing annotations are preserved // make sure existing annotations are preserved
newAuthSecret.Annotations = c.annotationsSet(authSecret.Annotations) newAuthSecret.Annotations = c.annotationsSet(authSecret.Annotations)
@ -1077,7 +1077,7 @@ func (c *Cluster) syncConnectionPoolerWorker(oldSpec, newSpec *acidv1.Postgresql
} }
if k8sutil.ResourceNotFound(err) { if k8sutil.ResourceNotFound(err) {
c.logger.Warningf("auth secret %s for connection pooler is not found, create it", fmt.Sprintf("%s-userlist", c.connectionPoolerName(role))) c.logger.Warningf("auth secret %s for connection pooler is not found, create it", fmt.Sprintf("%s-u", c.connectionPoolerName(role)))
authSecret, err = c.KubeClient. authSecret, err = c.KubeClient.
Secrets(newAuthSecret.Namespace). Secrets(newAuthSecret.Namespace).
Create(context.TODO(), newAuthSecret, metav1.CreateOptions{}) Create(context.TODO(), newAuthSecret, metav1.CreateOptions{})

View File

@ -39,7 +39,7 @@ func (c *Cluster) syncVolumes() error {
} else { } else {
err = c.syncUnderlyingEBSVolume() err = c.syncUnderlyingEBSVolume()
if err != nil { if err != nil {
c.logger.Errorf("errors occured during EBS volume adjustments: %v", err) c.logger.Errorf("errors occurred during EBS volume adjustments: %v", err)
} }
} }
} }