Skip to content

TRT-2865: Support external Postgres DSN for integration tests - #3856

Open
mstaeble wants to merge 1 commit into
openshift:mainfrom
mstaeble:worktree-integration-ci-dsn-passthrough
Open

TRT-2865: Support external Postgres DSN for integration tests#3856
mstaeble wants to merge 1 commit into
openshift:mainfrom
mstaeble:worktree-integration-ci-dsn-passthrough

Conversation

@mstaeble

@mstaeble mstaeble commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add INTEGRATION_DATABASE_DSN environment variable to run integration tests against an external PostgreSQL server instead of requiring testcontainers-go to spin up a container. This enables integration tests to run in CI environments (ci-operator) that lack a container runtime.
  • Add Dockerfile.integration that layers PostgreSQL 16 on top of the build root image, and scripts/integration-ci.sh that starts a local Postgres instance and runs the tests.
  • Refactor test database setup to use randomly named template and test databases, allowing safe concurrent execution against a shared server.
  • Add DSN format validation for the external Postgres path.
  • Document the integration test workflow in DEVELOPMENT.md and Makefile.

Test plan

  • Integration tests pass locally via testcontainers (default path unchanged)
  • Integration tests pass inside a container built from Dockerfile.integration using the external DSN path

🤖 Generated with Claude Code

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

    • Integration tests can now run against an automatically provisioned PostgreSQL database or an existing database.
    • Test databases use randomized names and are cleaned up reliably after execution.
    • Added a containerized integration-test environment with PostgreSQL 16 support.
  • Documentation

    • Added guidance for configuring database-backed integration tests and safely handling concurrent runs.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: automatic mode

@openshift-ci-robot

openshift-ci-robot commented Jul 31, 2026

Copy link
Copy Markdown

@mstaeble: This pull request references TRT-2865 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the spike to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add INTEGRATION_DATABASE_DSN environment variable to run integration tests against an external PostgreSQL server instead of requiring testcontainers-go to spin up a container. This enables integration tests to run in CI environments (ci-operator) that lack a container runtime.
  • Add Dockerfile.integration that layers PostgreSQL 16 on top of the build root image, and scripts/integration-ci.sh that starts a local Postgres instance and runs the tests.
  • Refactor test database setup to use randomly named template and test databases, allowing safe concurrent execution against a shared server.
  • Add DSN format validation for the external Postgres path.
  • Document the integration test workflow in DEVELOPMENT.md and Makefile.

Test plan

  • Integration tests pass locally via testcontainers (default path unchanged)
  • Integration tests pass inside a container built from Dockerfile.integration using the external DSN path
  • CI job added in openshift/release to build the integration image and run the tests (separate PR)

🤖 Generated with Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 31, 2026
@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 31, 2026
@openshift-ci

openshift-ci Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci

openshift-ci Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mstaeble

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 31, 2026
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@mstaeble, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 15 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 08c40ed9-c49e-452b-8cf5-ffc0f5e0e8cc

📥 Commits

Reviewing files that changed from the base of the PR and between 9f9998a and a32196b.

📒 Files selected for processing (5)
  • DEVELOPMENT.md
  • Dockerfile.integration
  • Makefile
  • scripts/integration-ci.sh
  • test/integration/util/testdb.go

Walkthrough

Integration tests now support PostgreSQL from either testcontainers or INTEGRATION_DATABASE_DSN. Database names use randomized values. CI provisions PostgreSQL 16, runs the integration target, and cleans up temporary data.

Changes

PostgreSQL integration testing

Layer / File(s) Summary
Database selection and isolation
test/integration/util/testdb.go
The test database utility selects an external DSN or a managed PostgreSQL container. It creates, clones, and removes randomized template and test databases.
CI provisioning and test execution
Dockerfile.integration, scripts/integration-ci.sh
The integration image installs PostgreSQL 16. The CI script starts a temporary database, exports its DSN, runs make integration, and cleans up on exit.
Integration test usage documentation
DEVELOPMENT.md, Makefile
Documentation describes the testcontainer default, the external DSN override, and concurrent-run behavior.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CI
  participant PostgreSQL
  participant IntegrationTests
  CI->>PostgreSQL: start temporary PostgreSQL 16 instance
  CI->>IntegrationTests: export INTEGRATION_DATABASE_DSN
  IntegrationTests->>PostgreSQL: create and clone randomized databases
  IntegrationTests-->>CI: complete make integration
  CI->>PostgreSQL: stop instance and remove temporary data
Loading

Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore

❌ Failed checks (2 errors, 3 warnings)

Check name Status Explanation Resolution
Container-Privileges ❌ Error Dockerfile.integration has no USER directive, so its UBI/build-root-derived image runs integration commands as root without a runtime justification or non-root transition. Create a non-root test user, grant it access to PostgreSQL and temporary data, and add USER after package installation; document any unavoidable root-only step.
No-Sensitive-Data-In-Logs ❌ Error Invalid external DSNs are embedded verbatim in an error at testdb.go:113 and propagated to panic output at jobs_test.go:36, which can expose credentials or hostnames. Do not include the raw DSN in errors. Report only scheme and a sanitized host/database, or redact URL userinfo and sensitive query parameters.
Go Error Handling ⚠️ Warning testdb.go ignores cleanupOnErr's DROP DATABASE error and multiple Close/Setenv results; randomSuffix also panics instead of returning the rand.Read error. Handle cleanup and Close errors, and propagate randomSuffix errors to callers instead of panicking; wrap secondary errors with %w where applicable.
Test Coverage For New Features ⚠️ Warning The PR adds external-DSN validation, template cleanup, and randomized database behavior without adding tests; existing integration tests do not assert these new paths. Add unit tests for DSN validation and random database naming, plus integration coverage for external setup, cleanup, and concurrent runs.
Single Responsibility And Clear Naming ⚠️ Warning The external-DSN path returns a PostgresContainer and uses StartPostgresContainer/Terminate even though it manages an external server and only drops a template database. Rename the abstraction and lifecycle API to describe a PostgreSQL test server fixture, then update callers and log messages.
✅ Passed checks (16 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: support for external PostgreSQL DSNs in integration tests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Sql Injection Prevention ✅ Passed Changed SQL interpolates only locally generated hex database names and static Postgres function names; the external DSN is passed to the driver, not embedded in SQL text.
Excessive Css In React Should Use Styles ✅ Passed The PR changes only Markdown, Dockerfile, Makefile, Bash, and Go files; no React components or inline CSS were added.
Feature Documentation ✅ Passed DEVELOPMENT.md and Makefile document the integration workflow, external INTEGRATION_DATABASE_DSN path, default testcontainers path, and concurrent database runs; docs/features has no related feature.
Stable And Deterministic Test Names ✅ Passed No Ginkgo imports or It/Describe/Context/When declarations exist; integration tests use static testing.T names, and the PR only randomizes database identifiers.
Test Structure And Quality ✅ Passed The PR adds no Ginkgo tests or It blocks. Its integration helper uses t.Cleanup, TestMain defer cleanup, and a 30-second startup timeout; no cluster waits or assertions were added.
Microshift Test Compatibility ✅ Passed The patch adds no Ginkgo e2e tests or Describe/Context/When/It declarations, so no MicroShift-incompatible test requires review.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The PR changes only integration database utilities, CI files, and documentation; it adds no Ginkgo e2e tests or new It/Describe/Context/When declarations.
Topology-Aware Scheduling Compatibility ✅ Passed The patch changes PostgreSQL integration-test docs, scripts, Dockerfile, and database test utilities only; it adds no deployment manifests, operator/controller code, or scheduling constraints.
Ote Binary Stdout Contract ✅ Passed Changed integration setup has no fmt, klog, Ginkgo, or os.Stdout writes; its log.Printf calls use Go's standard logger, whose default output is os.Stderr.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The patch adds no new Ginkgo e2e declarations; it changes integration database utilities, documentation, Dockerfile, and CI scripting only.
No-Weak-Crypto ✅ Passed The PR adds only crypto/rand for database-name suffixes; its diff contains no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto, or secret comparisons.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (3)
Dockerfile.integration (1)

5-9: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Document why repo_gpgcheck is disabled.

Disabling repo_gpgcheck removes GPG verification of the PGDG repository metadata itself, weakening supply-chain integrity for packages installed during the build. This is a documented workaround for known PGDG repository signature issues: "encounter the error of [Error -1] repomd.xml signature could not be verified for pgdg-common". Add a short comment stating why this is needed (the specific known issue) so a future maintainer does not remove it blindly or assume it is unnecessary hardening debt.

As per coding guidelines, "Keep comments minimal and helpful, and make them explain the 'why' rather than the 'what'."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Dockerfile.integration` around lines 5 - 9, Add a brief why-comment
immediately before the repo_gpgcheck modification in the Dockerfile command,
stating that disabling metadata verification works around the known PGDG
“repomd.xml signature could not be verified for pgdg-common” error. Keep the
comment minimal and leave the existing installation flow unchanged.

Source: Coding guidelines

scripts/integration-ci.sh (1)

14-17: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Restrict trust auth to the Unix socket only.

initdb --auth=trust applies trust authentication to both local (Unix socket) and default host (TCP loopback) entries in pg_hba.conf. Since pg_ctl start -o "-k /tmp" does not disable TCP listening, this instance also accepts unauthenticated TCP connections on 127.0.0.1. Since the DSN only uses the Unix socket (host=/tmp), disable TCP listening entirely to reduce the unauthenticated surface.

🔒 Proposed fix
-pg_ctl start -D "$PGDATA" -o "-k /tmp" -w
+pg_ctl start -D "$PGDATA" -o "-k /tmp -c listen_addresses=''" -w
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/integration-ci.sh` around lines 14 - 17, Update the PostgreSQL
startup invocation using pg_ctl in scripts/integration-ci.sh to disable TCP
listening entirely while preserving the Unix socket at /tmp. Ensure the
integration DSN’s socket-based connection continues to work and unauthenticated
trust access is not exposed over loopback TCP.
test/integration/util/testdb.go (1)

179-180: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Avoid building DDL identifiers with fmt.Sprintf.

OpenGrep and ast-grep both flag fmt.Sprintf-built SQL passed to Exec at these five locations. The interpolated values (templateDB, dbName) are generated internally as "tmpl_" + randomSuffix() or "test_" + randomSuffix(), so the immediate injection risk is low since they are not derived from external input. However, CREATE/ALTER/DROP DATABASE cannot use query placeholders for identifiers, so quote or validate the identifier explicitly (e.g., pgx.Identifier{templateDB}.Sanitize()) instead of raw string interpolation, so the code does not silently become unsafe if a future change derives these names from external or test-supplied input.

As per coding guidelines, "Do not build SQL queries by concatenating or formatting user input directly; use placeholders and prepared statements instead," and as per path instructions, "SQL: parameterized queries only; no string concatenation."

Also applies to: 195-195, 215-215, 234-234

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/integration/util/testdb.go` around lines 179 - 180, Replace the
fmt.Sprintf-built DDL statements passed to adminDB.Exec in the database
setup/cleanup flow with explicitly sanitized PostgreSQL identifiers, such as
pgx.Identifier{templateDB}.Sanitize() or the equivalent established helper.
Update all affected CREATE, ALTER, and DROP DATABASE statements, including the
locations using templateDB and dbName, while preserving their existing behavior
and removing raw identifier interpolation.

Sources: Coding guidelines, Path instructions, Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/integration/util/testdb.go`:
- Around line 110-121: Update startExternalPostgres to validate that u.Scheme is
a supported Postgres scheme, such as postgres or postgresql, in addition to
rejecting an empty scheme. Return the existing clear DSN validation error for
unsupported schemes before calling createTemplateDB.
- Around line 173-182: Update dropTemplateDB to accept the context provided by
Terminate, use ExecContext for both database operations, and check the
IS_TEMPLATE reset error before attempting the drop. Wrap and return that error
with descriptive context, while preserving the existing drop error handling.
- Around line 184-220: Update createTemplateDB to clean up templateDB after
CREATE DATABASE succeeds but db.New, dbc.DB.DB(), or SetupIntegrationSchema
fails. Drop the database through adminDB before returning each setup error,
while preserving the original error context and existing successful flow.

---

Nitpick comments:
In `@Dockerfile.integration`:
- Around line 5-9: Add a brief why-comment immediately before the repo_gpgcheck
modification in the Dockerfile command, stating that disabling metadata
verification works around the known PGDG “repomd.xml signature could not be
verified for pgdg-common” error. Keep the comment minimal and leave the existing
installation flow unchanged.

In `@scripts/integration-ci.sh`:
- Around line 14-17: Update the PostgreSQL startup invocation using pg_ctl in
scripts/integration-ci.sh to disable TCP listening entirely while preserving the
Unix socket at /tmp. Ensure the integration DSN’s socket-based connection
continues to work and unauthenticated trust access is not exposed over loopback
TCP.

In `@test/integration/util/testdb.go`:
- Around line 179-180: Replace the fmt.Sprintf-built DDL statements passed to
adminDB.Exec in the database setup/cleanup flow with explicitly sanitized
PostgreSQL identifiers, such as pgx.Identifier{templateDB}.Sanitize() or the
equivalent established helper. Update all affected CREATE, ALTER, and DROP
DATABASE statements, including the locations using templateDB and dbName, while
preserving their existing behavior and removing raw identifier interpolation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 42ab77d9-a7e8-479f-84c3-162caa7f970b

📥 Commits

Reviewing files that changed from the base of the PR and between 75af67f and 43f6e11.

📒 Files selected for processing (5)
  • DEVELOPMENT.md
  • Dockerfile.integration
  • Makefile
  • scripts/integration-ci.sh
  • test/integration/util/testdb.go

Comment thread test/integration/util/testdb.go
Comment thread test/integration/util/testdb.go Outdated
Comment thread test/integration/util/testdb.go
@mstaeble
mstaeble force-pushed the worktree-integration-ci-dsn-passthrough branch from 43f6e11 to 9f9998a Compare July 31, 2026 22:04

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
test/integration/util/testdb.go (2)

202-224: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Complete template cleanup on every setup failure.

Line 203 discards the DROP DATABASE error. Line 223 bypasses cleanupOnErr. If either cleanup or ALTER DATABASE ... IS_TEMPLATE = true fails, the function can leave an orphan template database on the external server.

Pass ctx into createTemplateDB, use ExecContext, preserve cleanup failures with context, and route the Line 223 error through cleanupOnErr.

As per path instructions, “Never ignore error returns” and “context.Context for cancellation and timeouts.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/integration/util/testdb.go` around lines 202 - 224, Update
createTemplateDB to accept ctx and use ExecContext for database cleanup and
ALTER DATABASE operations. In cleanupOnErr, capture DROP DATABASE failures and
preserve them alongside the original setup error with contextual wrapping. Route
the ALTER DATABASE failure through cleanupOnErr so every setup failure attempts
cleanup without discarding errors.

Sources: Coding guidelines, Path instructions


110-120: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add tests for external PostgreSQL lifecycle.

No unit tests cover test/integration/util/testdb.go, so add coverage for invalid INTEGRATION_DATABASE_DSN, successful external template database cleanup, and cleanup failures for startExternalPostgres, createTemplateDB, and dropTemplateDB.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/integration/util/testdb.go` around lines 110 - 120, Add unit tests
covering invalid DSNs in startExternalPostgres, successful external template
database creation and cleanup across
startExternalPostgres/createTemplateDB/dropTemplateDB, and cleanup-error
propagation when createTemplateDB or dropTemplateDB fails. Use controllable test
dependencies or fixtures to exercise each lifecycle path without requiring a
live PostgreSQL instance.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/integration/util/testdb.go`:
- Around line 110-114: Update the validation error in startExternalPostgres so
it no longer includes the raw dsn value, which may contain credentials. Return a
fixed message or safely redacted URL while preserving the existing invalid-URL
and missing-scheme validation behavior.

---

Outside diff comments:
In `@test/integration/util/testdb.go`:
- Around line 202-224: Update createTemplateDB to accept ctx and use ExecContext
for database cleanup and ALTER DATABASE operations. In cleanupOnErr, capture
DROP DATABASE failures and preserve them alongside the original setup error with
contextual wrapping. Route the ALTER DATABASE failure through cleanupOnErr so
every setup failure attempts cleanup without discarding errors.
- Around line 110-120: Add unit tests covering invalid DSNs in
startExternalPostgres, successful external template database creation and
cleanup across startExternalPostgres/createTemplateDB/dropTemplateDB, and
cleanup-error propagation when createTemplateDB or dropTemplateDB fails. Use
controllable test dependencies or fixtures to exercise each lifecycle path
without requiring a live PostgreSQL instance.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 2681933d-341b-4cc1-ae22-e5b7868f95ab

📥 Commits

Reviewing files that changed from the base of the PR and between 43f6e11 and 9f9998a.

📒 Files selected for processing (5)
  • DEVELOPMENT.md
  • Dockerfile.integration
  • Makefile
  • scripts/integration-ci.sh
  • test/integration/util/testdb.go
💤 Files with no reviewable changes (1)
  • Dockerfile.integration
🚧 Files skipped from review as they are similar to previous changes (3)
  • DEVELOPMENT.md
  • scripts/integration-ci.sh
  • Makefile

Comment thread test/integration/util/testdb.go
@mstaeble
mstaeble force-pushed the worktree-integration-ci-dsn-passthrough branch from 9f9998a to 3f28ca1 Compare July 31, 2026 22:11
@mstaeble
mstaeble marked this pull request as ready for review July 31, 2026 22:18
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 31, 2026
@openshift-ci
openshift-ci Bot requested review from deads2k and sosiouxme July 31, 2026 22:18
@mstaeble
mstaeble force-pushed the worktree-integration-ci-dsn-passthrough branch from 3f28ca1 to 7b1424f Compare July 31, 2026 22:33
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@mstaeble
mstaeble force-pushed the worktree-integration-ci-dsn-passthrough branch from 7b1424f to a32196b Compare July 31, 2026 22:35
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e

@mstaeble

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@mstaeble

Copy link
Copy Markdown
Contributor Author

@coderabbitai resolve

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Comments resolved and changes approved.

@openshift-ci openshift-ci Bot added the ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review label Jul 31, 2026
@openshift-ci

openshift-ci Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

@mstaeble: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@mstaeble

mstaeble commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

/hold

Exploring option of using nested-podman container, as shown in openshift/release#81145.

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants