Skip to content

fix(ci): merge the AWS RDS global CA bundle into the RDS trust store [release-1.10] - #5448

Open
gustavolira wants to merge 3 commits into
redhat-developer:release-1.10from
gustavolira:fix/rds-ca-global-bundle-1.10
Open

gustavolira wants to merge 3 commits into
redhat-developer:release-1.10from
gustavolira:fix/rds-ca-global-bundle-1.10

Conversation

@gustavolira

Copy link
Copy Markdown
Member

Description

The RDS TLS e2e tests in showcase-runtime fail with self-signed certificate in certificate chain on all four RDS instances (latest .. latest-3) — seen on e2e-osd-gcp-helm-nightly, e2e-ocp-helm-nightly and the operator variants (RHDHBUGS-3411, RHDHBUGS-3691).

Root cause

RDS_DB_CERTIFICATES_PATH points at the Vault copy of the RDS CA bundle. AWS rotates RDS CAs, and GSM cannot store the full ~170KB global bundle (RHDHBUGS-3744), so the stored copy is a trimmed snapshot that goes stale — the harness pg client (clearDatabase) and RHDH itself (via the postgres-crt secret) then reject the servers' chains.

Fix

At env-setup time, download the official AWS RDS global trust bundle and merge the Vault copy into it, pointing RDS_DB_CERTIFICATES_PATH at the merged file. Every current and future RDS CA generation/region validates, custom CAs from Vault are preserved, and if the download fails the behavior falls back to today's (Vault copy only, with a warning).

🤖 Generated with Claude Code

The RDS TLS e2e tests fail with SELF_SIGNED_CERT_IN_CHAIN on all four RDS
instances: the Vault copy of rds-db-certificates.pem no longer validates
the servers' certificate chains (AWS rotates RDS CAs, and GSM cannot hold
the full global bundle — RHDHBUGS-3744 — so the stored copy is a trimmed
snapshot that goes stale).

Download the official AWS RDS global trust bundle at env-setup time and
merge the Vault copy into it, pointing RDS_DB_CERTIFICATES_PATH at the
merged file. Both consumers pick it up: the harness pg client
(clearDatabase) and the postgres-crt secret mounted into RHDH
(configurePostgresCertificate). If the download fails, fall back to the
Vault copy alone (current behavior).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Comment thread .ci/pipelines/env_variables.sh Fixed
@gustavolira

Copy link
Copy Markdown
Member Author

/test ?

@gustavolira

Copy link
Copy Markdown
Member Author

/test e2e-osd-gcp-helm-nightly

@codecov

codecov Bot commented Sep 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.60%. Comparing base (c7b3d41) to head (7fd1019).
⚠️ Report is 3 commits behind head on release-1.10.

Additional details and impacted files
@@                Coverage Diff                @@
##           release-1.10    #5448       +/-   ##
=================================================
+ Coverage         41.03%   69.60%   +28.57%     
=================================================
  Files               121      111       -10     
  Lines              2220     4702     +2482     
  Branches            539      535        -4     
=================================================
+ Hits                911     3273     +2362     
- Misses             1304     1428      +124     
+ Partials              5        1        -4     
Flag Coverage Δ
install-dynamic-plugins 92.44% <ø> (?)
rhdh 38.81% <ø> (-2.23%) ⬇️

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c7b3d41...7fd1019. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Review follow-up: under errexit a double failure of the cat/cp fallback
chain would abort the whole job before the cleanup trap is installed;
guard it and keep pointing at the Vault copy in that case.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

The container image build workflow finished with status: cancelled.

SonarCloud: curl -L could follow a redirect to a non-HTTPS target;
restrict both the initial request and any redirect to HTTPS.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

The container image build workflow finished with status: cancelled.

@gustavolira

Copy link
Copy Markdown
Member Author

/test e2e-osd-gcp-helm-nightly

/test e2e-ocp-helm-nightly

@github-actions

Copy link
Copy Markdown
Contributor

Image was built and published successfully. It is available at:

@gustavolira

Copy link
Copy Markdown
Member Author

/test e2e-osd-gcp-helm-nightly

1 similar comment
@gustavolira

Copy link
Copy Markdown
Member Author

/test e2e-osd-gcp-helm-nightly

@gustavolira

Copy link
Copy Markdown
Member Author

Validation on e2e-ocp-helm-nightly (build 2101005129820934144):

  • Bundle download + merge ran clean (no fallback warning in the step log; zero occurrences of "self-signed" anywhere).
  • All 8 RDS tests pass — the 4 Configure and restart deployment cases that failed with self-signed certificate in certificate chain plus their 4 Verify successful DB connection checks. Azure DB suite 8/8 as well.
  • showcase (48), showcase-rbac (17) and showcase-sanity-plugins (9): 0 failures.

The job's only red is one unrelated infra flake: the schema-mode reconfig restart got stuck on a stale /dynamic-plugins-root/install-dynamic-plugins.lock left by the previous pod (Waiting for lock release in the init container; the same deployment had restarted successfully 8 times right before for the Azure/RDS cases). Fix proven — ready for review. Same change on main in #5447.

@openshift-ci

openshift-ci Bot commented Sep 19, 2026

Copy link
Copy Markdown

@gustavolira: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-ocp-helm-nightly 7fd1019 link false /test e2e-ocp-helm-nightly
ci/prow/e2e-osd-gcp-helm-nightly 7fd1019 link false /test e2e-osd-gcp-helm-nightly

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants