Skip to content

Conversation

@mnencia
Copy link
Member

@mnencia mnencia commented Jan 12, 2026

Pin all e2e test emulator images to specific SHA256 digests to ensure immutability and prevent unexpected breakage from upstream changes.

The three emulators (Azurite for Azure, MinIO for S3, and fake-gcs-server for GCS) were previously using the :latest tag, which could cause test failures when new versions with breaking changes or bugs were released.

Using SHA256 digests instead of version tags provides immutability (ensures we always pull the exact same image), transparency (easy to verify what's running via digest comparison), and Renovate compatibility (can still track and propose updates). All pinned SHAs match the current :latest tag, confirming we're using the same images that were previously tested.

Updated Renovate configuration to track digest-based updates while preserving version information in comments for human readability. Fixed Renovate to scan test directories and handle multi-line regex patterns for .go files.

Also fixed Azurite compatibility issue by adding the --skipApiVersionCheck flag. Tests were failing because the PostgreSQL container images install Python dependencies without version pinning, which resulted in azure-storage-blob 12.28.0 (released January 6, 2026) being installed. This version uses API version 2026-02-06 which Azurite 3.35.0 doesn't support yet. The flag allows Azurite to accept any API version in the test environment.

Note that MinIO is now in maintenance mode and will not receive further updates, but it has been included for completeness.

@mnencia mnencia requested a review from a team as a code owner January 12, 2026 14:14
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Jan 12, 2026
@mnencia

This comment was marked as resolved.

@mnencia mnencia force-pushed the dev/pin-emulator-versions branch from 4e06fe9 to ab944e4 Compare January 12, 2026 15:04
Pin all e2e test emulator images to specific SHA256 digests to ensure
immutability and prevent unexpected breakage from upstream changes:
- Azurite (Azure): 3.35.0 @sha256:647c63a9...
- MinIO (S3): RELEASE.2025-09-07T16-13-09Z @sha256:14cea493...
- fake-gcs-server (GCS): 1.52.3 @sha256:666f86b8...

All pinned SHAs match the current :latest tag, ensuring we're using
the same images that were previously tested.

Updated renovate configuration to track digest-based updates while
preserving version information in comments for context.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
@mnencia mnencia force-pushed the dev/pin-emulator-versions branch from ab944e4 to d589729 Compare January 12, 2026 15:08
The custom regex manager wasn't detecting emulator image dependencies
in test/e2e/internal/objectstore/ because Renovate's default ignorePaths
blocks test directories. Removed the `**/test/**` pattern while keeping
other sensible defaults to allow scanning test files.

Also fixed the regex pattern to handle the multi-line format where
renovate comments span three lines, and corrected all managerFilePatterns
to use the proper `/pattern$/` format.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
@dosubot dosubot bot added size:M This PR changes 30-99 lines, ignoring generated files. and removed size:S This PR changes 10-29 lines, ignoring generated files. labels Jan 12, 2026
The PostgreSQL container images install Python dependencies without
pinning versions. When azure-storage-blob 12.28.0 was released on
January 6, 2026, it introduced API version 2026-02-06 which Azurite
3.35.0 doesn't support yet.

Adding the --skipApiVersionCheck flag allows Azurite to accept any API
version, which is appropriate for test environments and prevents failures
when Azure SDK libraries are updated.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
@mnencia mnencia changed the title fix(e2e): pin emulator versions to prevent CI failures ci(e2e): pin emulator versions and fix Azurite compatibility Jan 12, 2026
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Jan 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants