From 0ea05f76915f99d65c4c95aa2aec4011ec26ed3a Mon Sep 17 00:00:00 2001 From: Felix Kunde Date: Fri, 24 Jul 2026 09:15:26 +0200 Subject: [PATCH 1/2] Fix no space left error during e2e test setup (#3138) * fix space issues for e2e test * pin exact minor release of coveralls --- .github/workflows/run_e2e.yaml | 7 +++++++ .github/workflows/run_tests.yaml | 6 +++--- e2e/run.sh | 15 ++++++++++++--- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/run_e2e.yaml b/.github/workflows/run_e2e.yaml index 393109b00..08843ab2b 100644 --- a/.github/workflows/run_e2e.yaml +++ b/.github/workflows/run_e2e.yaml @@ -21,5 +21,12 @@ jobs: run: make codegen - name: Run unit tests run: make test + - name: Pre-pull heavy images directly on Kind nodes + run: | + FOR_NODE=$(kind get nodes --name postgres-operator-e2e-tests 2>/dev/null || true) + for node in $FOR_NODE; do + echo "Pulling Spilo image on node $node..." + docker exec "$node" crictl pull ghcr.io/zalando/spilo-18:4.1-p2 + done - name: Run end-2-end tests run: make e2e diff --git a/.github/workflows/run_tests.yaml b/.github/workflows/run_tests.yaml index c511e8fa1..5f68f6309 100644 --- a/.github/workflows/run_tests.yaml +++ b/.github/workflows/run_tests.yaml @@ -22,9 +22,9 @@ jobs: - name: Run unit tests run: go test -race -covermode atomic -coverprofile=coverage.out ./... - name: Convert coverage to lcov - uses: jandelgado/gcov2lcov-action@v1.1.1 + uses: jandelgado/gcov2lcov-action@v1.2.0 - name: Coveralls - uses: coverallsapp/github-action@master + uses: coverallsapp/github-action@v2.3.4 with: github-token: ${{ secrets.GITHUB_TOKEN }} - path-to-lcov: coverage.lcov + file: coverage.lcov diff --git a/e2e/run.sh b/e2e/run.sh index c5daf81f6..0bcf67989 100755 --- a/e2e/run.sh +++ b/e2e/run.sh @@ -24,6 +24,15 @@ esac echo "Clustername: ${cluster_name}" echo "Kubeconfig path: ${kubeconfig_path}" +# Helper function to pull images directly into kind nodes via crictl (bypasses host disk duplication) +function pull_on_kind_nodes() { + local img="$1" + echo "Pulling ${img} directly on kind nodes..." + for node in $(kind get nodes --name "${cluster_name}"); do + docker exec "$node" crictl pull "${img}" + done +} + function pull_images(){ operator_tag=$(git describe --tags --always --dirty) components=("postgres-operator" "pooler") @@ -66,14 +75,14 @@ function start_kind(){ export KUBECONFIG="${kubeconfig_path}" kind create cluster --name ${cluster_name} --config kind-cluster-postgres-operator-e2e-tests.yaml - echo "Pulling Spilo image for platform ${PLATFORM}" - docker pull --platform ${PLATFORM} "${spilo_image}" - kind load docker-image "${spilo_image}" --name ${cluster_name} + echo "Pulling Spilo image on kind nodes directly..." + pull_on_kind_nodes "${spilo_image}" } function load_operator_images() { echo "Loading operator images" export KUBECONFIG="${kubeconfig_path}" + # For locally built operator images, kind load is still fine since they're light kind load docker-image "${operator_image}" --name ${cluster_name} kind load docker-image "${pooler_image}" --name ${cluster_name} } From bffde0f5e7cc4db91e56bba709a6a02f656568e4 Mon Sep 17 00:00:00 2001 From: Felix Kunde Date: Fri, 24 Jul 2026 16:39:41 +0200 Subject: [PATCH 2/2] fix type deference when calling ebs modify volume endpoint (#3140) * fix type deference when calling ebs modify volume endpoint * only pass set variable to modify input --- pkg/util/volumes/ebs.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/util/volumes/ebs.go b/pkg/util/volumes/ebs.go index bb7506d93..212ee8ac4 100644 --- a/pkg/util/volumes/ebs.go +++ b/pkg/util/volumes/ebs.go @@ -155,23 +155,32 @@ func (r *EBSVolumeResizer) ResizeVolume(volumeID string, newSize int64) error { // ModifyVolume Modify EBS volume func (r *EBSVolumeResizer) ModifyVolume(volumeID string, newType *string, newSize *int64, iops *int64, throughput *int64) error { - /* first check if the volume is already of a requested size */ var sizeInt32 *int32 var iopsInt32 *int32 var throughputInt32 *int32 + + input := ec2.ModifyVolumeInput{ + VolumeId: &volumeID, + } if newSize != nil { s := int32(*newSize) sizeInt32 = &s + input.Size = sizeInt32 } if iops != nil { i := int32(*iops) iopsInt32 = &i + input.Iops = iopsInt32 } if throughput != nil { t := int32(*throughput) throughputInt32 = &t + input.Throughput = throughputInt32 } - input := ec2.ModifyVolumeInput{Size: sizeInt32, VolumeId: &volumeID, VolumeType: types.VolumeType(*newType), Iops: iopsInt32, Throughput: throughputInt32} + if newType != nil { + input.VolumeType = types.VolumeType(*newType) + } + output, err := r.connection.ModifyVolume(context.TODO(), &input) if err != nil { return fmt.Errorf("could not modify persistent volume: %v", err)