diff --git a/.github/ISSUE_TEMPLATE/postgres-operator-issue-template.md b/.github/ISSUE_TEMPLATE/postgres-operator-issue-template.md index ee3a704ea..3b731eb72 100644 --- a/.github/ISSUE_TEMPLATE/postgres-operator-issue-template.md +++ b/.github/ISSUE_TEMPLATE/postgres-operator-issue-template.md @@ -9,7 +9,7 @@ assignees: '' Please, answer some short questions which should help us to understand your problem / question better? -- **Which image of the operator are you using?** e.g. ghcr.io/zalando/postgres-operator:v1.13.0 +- **Which image of the operator are you using?** e.g. ghcr.io/zalando/postgres-operator:v1.15.1 - **Where do you run it - cloud or metal? Kubernetes or OpenShift?** [AWS K8s | GCP ... | Bare Metal K8s] - **Are you running Postgres Operator in production?** [yes | no] - **Type of issue?** [Bug report, question, feature request, etc.] diff --git a/delivery.yaml b/delivery.yaml index 7d15c97b6..b9a826939 100644 --- a/delivery.yaml +++ b/delivery.yaml @@ -7,81 +7,86 @@ build_env: &BUILD_ENV MULTI_ARCH_REGISTRY: container-registry-test.zalando.net/acid pipeline: - - id: build-postgres-operator - env: - <<: *BUILD_ENV - type: script - vm_config: - type: linux - size: large - image: cdp-runtime/go - cache: - paths: - - /go/pkg/mod # pkg cache for Go modules - - ~/.cache/go-build # Go build cache - commands: - - desc: Run unit tests - cmd: | - make deps mocks test + - id: build-postgres-operator + env: + <<: *BUILD_ENV + type: script + vm_config: + type: linux + size: large + image: cdp-runtime/go + cache: + paths: + - /go/pkg/mod # pkg cache for Go modules + - ~/.cache/go-build # Go build cache + commands: + - desc: Run unit tests + cmd: | + make deps mocks test - - desc: Build Docker image - cmd: | - if [ -z ${CDP_SOURCE_BRANCH} ]; then - IMAGE=${MULTI_ARCH_REGISTRY}/postgres-operator - else - IMAGE=${MULTI_ARCH_REGISTRY}/postgres-operator-test - fi + - desc: Build Docker image + cmd: | + if [ -z ${CDP_SOURCE_BRANCH} ]; then + IMAGE=${MULTI_ARCH_REGISTRY}/postgres-operator + else + IMAGE=${MULTI_ARCH_REGISTRY}/postgres-operator-test + fi - docker buildx create --config /etc/cdp-buildkitd.toml --driver-opt network=host --bootstrap --use - docker buildx build --platform "linux/amd64,linux/arm64" \ - --build-arg BASE_IMAGE="${ALPINE_BASE_IMAGE}" \ - -t "${IMAGE}:${CDP_BUILD_VERSION}" \ - -f docker/Dockerfile \ - --push . + docker buildx create --config /etc/cdp-buildkitd.toml --driver-opt network=host --bootstrap --use + docker buildx build --platform "linux/amd64,linux/arm64" \ + --build-arg BASE_IMAGE="${ALPINE_BASE_IMAGE}" \ + -t "${IMAGE}:${CDP_BUILD_VERSION}" \ + -f docker/Dockerfile \ + --push . - if [ -z ${CDP_SOURCE_BRANCH} ]; then - cdp-promote-image ${IMAGE}:${CDP_BUILD_VERSION} - fi + if [ -z ${CDP_SOURCE_BRANCH} ]; then + cdp-promote-image ${IMAGE}:${CDP_BUILD_VERSION} + fi - - id: build-operator-ui - env: - <<: *BUILD_ENV - type: script - vm_config: - type: linux + - id: build-operator-ui + env: + <<: *BUILD_ENV + type: script + vm_config: + type: linux - commands: - - desc: 'Prepare environment' - cmd: | - apt-get update - apt-get install -y build-essential + commands: + - desc: 'Prepare environment' + cmd: | + apt-get update + apt-get install -y build-essential - - desc: 'Compile JavaScript app' - cmd: | - cd ui - make appjs + - desc: 'Compile JavaScript app' + cmd: | + cd ui + make appjs - - desc: 'Build and push Docker image' - cmd: | - cd ui - if [ -z ${CDP_SOURCE_BRANCH} ]; then - IMAGE=${MULTI_ARCH_REGISTRY}/postgres-operator-ui - else - IMAGE=${MULTI_ARCH_REGISTRY}/postgres-operator-ui-test - fi - - IMAGE_TAG=$(make docker-push IMAGE=${IMAGE} BASE_IMAGE=${PYTHON_BASE_IMAGE}) + - desc: 'Build and push Docker image' + cmd: | + cd ui + if [ -z ${CDP_SOURCE_BRANCH} ]; then + IMAGE=${MULTI_ARCH_REGISTRY}/postgres-operator-ui + else + IMAGE=${MULTI_ARCH_REGISTRY}/postgres-operator-ui-test + fi + + make appjs + docker buildx create --config /etc/cdp-buildkitd.toml --driver-opt network=host --bootstrap --use + docker buildx build --platform linux/amd64,linux/arm64 \ + --build-arg BASE_IMAGE="${PYTHON_BASE_IMAGE}" \ + -t ${IMAGE}:${CDP_BUILD_VERSION} \ + --push . - if [ -z ${CDP_SOURCE_BRANCH} ]; then - cdp-promote-image ${IMAGE_TAG} - fi + if [ -z ${CDP_SOURCE_BRANCH} ]; then + cdp-promote-image ${IMAGE}:${CDP_BUILD_VERSION} + fi - - id: build-logical-backup - env: - <<: *BUILD_ENV - type: script - vm_config: - type: linux + - id: build-logical-backup + env: + <<: *BUILD_ENV + type: script + vm_config: + type: linux commands: - desc: Build image diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index 9cd750e84..b6a4e24a8 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -1767,9 +1767,13 @@ func (c *Cluster) GetStatus() *ClusterStatus { } func (c *Cluster) GetSwitchoverSchedule() string { + now := time.Now().UTC() + return c.getSwitchoverScheduleAtTime(now) +} + +func (c *Cluster) getSwitchoverScheduleAtTime(now time.Time) string { var possibleSwitchover, schedule time.Time - now := time.Now().UTC() for _, window := range c.Spec.MaintenanceWindows { // in the best case it is possible today possibleSwitchover = time.Date(now.Year(), now.Month(), now.Day(), window.StartTime.Hour(), window.StartTime.Minute(), 0, 0, time.UTC) diff --git a/pkg/cluster/cluster_test.go b/pkg/cluster/cluster_test.go index 25f61db98..d78d4c92e 100644 --- a/pkg/cluster/cluster_test.go +++ b/pkg/cluster/cluster_test.go @@ -2116,7 +2116,7 @@ func TestCompareVolumeMounts(t *testing.T) { } func TestGetSwitchoverSchedule(t *testing.T) { - now := time.Now() + now, _ := time.Parse(time.RFC3339, "2025-11-11T12:35:00Z") futureTimeStart := now.Add(1 * time.Hour) futureWindowTimeStart := futureTimeStart.Format("15:04") @@ -2195,7 +2195,7 @@ func TestGetSwitchoverSchedule(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { cluster.Spec.MaintenanceWindows = tt.windows - schedule := cluster.GetSwitchoverSchedule() + schedule := cluster.getSwitchoverScheduleAtTime(now) if schedule != tt.expected { t.Errorf("Expected GetSwitchoverSchedule to return %s, returned: %s", tt.expected, schedule) } diff --git a/ui/Makefile b/ui/Makefile index 70c2018db..ff4cf94f6 100644 --- a/ui/Makefile +++ b/ui/Makefile @@ -33,18 +33,5 @@ docker: appjs echo "git describe $(shell git describe --tags --always --dirty)" docker build --rm -t "$(IMAGE):$(TAG)$(CDP_TAG)" -f Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" . -docker-push: appjs - echo "Tag ${TAG}" - echo "Version ${VERSION}" - echo "CDP tag ${CDP_TAG}" - echo "git describe $(shell git describe --tags --always --dirty)" - docker buildx create --config /etc/cdp-buildkitd.toml --driver-opt network=host --bootstrap --use - docker buildx build --platform linux/amd64,linux/arm64 \ - --build-arg BASE_IMAGE="${BASE_IMAGE}" \ - -f Dockerfile \ - -t "$(IMAGE):$(TAG)$(CDP_TAG)" \ - --push . - echo "$(IMAGE):$(TAG)$(CDP_TAG)" - mock: docker run -it -p 8081:8081 "$(IMAGE):$(TAG)" --mock