Skip to content

USHIFT-6985: Add retry to Root CA ConfigMap signer verification#6806

Merged
kasturinarra merged 2 commits into
openshift:release-4.22from
kasturinarra:fix-root-ca-configmap-retry
Jun 5, 2026
Merged

USHIFT-6985: Add retry to Root CA ConfigMap signer verification#6806
kasturinarra merged 2 commits into
openshift:release-4.22from
kasturinarra:fix-root-ca-configmap-retry

Conversation

@kasturinarra
Copy link
Copy Markdown
Contributor

@kasturinarra kasturinarra commented Jun 4, 2026

Summary

  • The Root CA ConfigMap Contains All Signers test fails intermittently on ARM (aarch64) in ISO image scenarios (el98-lrel@iso-standard2) because the kube-root-ca.crt ConfigMap is not fully populated by the time the test runs.
  • Wraps the entire verification (ConfigMap fetch + openssl subject extraction + signer assertions) in Wait Until Keyword Succeeds with a 60s timeout and 5s retry interval.
  • The test passes consistently on x86_64 and on ARM in non-ISO scenarios; only the ISO installation path on ARM exhibits this timing issue.

Evidence

Test plan

  • Verify the test passes on ARM ISO scenarios with the retry
  • Confirm no regression on x86_64 standard2 scenarios

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests
    • Enhanced Root CA ConfigMap validation test with retry logic to improve reliability in verifying certificate signer identities.
    • Refactored CA bundle verification logic into a dedicated test keyword for improved test organization and maintainability.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 4, 2026

Walkthrough

This PR refactors a service account CA bundle test to add retry logic. The "Root CA ConfigMap Contains All Signers" test case now wraps validation in a Wait Until Keyword Succeeds loop with a new Verify Root CA ConfigMap Has All Signers keyword that centralizes ConfigMap retrieval, bundle validation, and signer identity assertions.

Changes

CA Bundle Verification Refactor

Layer / File(s) Summary
CA Bundle Verification Keyword and Retry
test/suites/standard2/validate-service-account-ca-bundle.robot
Test case wrapped in Wait Until Keyword Succeeds retry loop calling new Verify Root CA ConfigMap Has All Signers keyword. Keyword fetches kube-root-ca.crt ConfigMap, validates ca.crt is non-empty, extracts certificate subjects, and asserts the three expected signer names.

🎯 2 (Simple) | ⏱️ ~10 minutes

ready-for-human-review

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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.
Stable And Deterministic Test Names ✅ Passed Custom check is for Ginkgo tests, but PR only modifies Robot Framework tests (.robot files). No Ginkgo tests affected; test names in Robot file are stable and deterministic.
Test Structure And Quality ✅ Passed PR modifies Robot Framework tests, not Ginkgo tests. Check specifies Ginkgo test review (It blocks, BeforeEach/AfterEach, Eventually patterns). Check is not applicable to this PR.
Microshift Test Compatibility ✅ Passed Custom check targets Ginkgo e2e tests; this PR modifies Robot Framework tests only, so the check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed This PR modifies a Robot Framework test file, not a Ginkgo e2e test. The SNO compatibility check only applies to Ginkgo tests (Go syntax), not MicroShift robot tests.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only a test file (Robot Framework) to add retry logic; no deployment manifests, operator code, controllers, or scheduling constraints are introduced.
Ote Binary Stdout Contract ✅ Passed PR modifies only Robot Framework test file (.robot), not Go test code. OTE Binary Stdout Contract check applies exclusively to Go binaries/Ginkgo tests, making it inapplicable here.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR modifies Robot Framework tests, not Ginkgo e2e tests. The custom check applies only to Ginkgo tests, making it not applicable.
No-Weak-Crypto ✅ Passed Test file contains no weak crypto (MD5, SHA1, DES, etc.), custom crypto implementations, or non-constant-time secret comparisons. OpenSSL usage is for certificate parsing only.
Container-Privileges ✅ Passed PR modifies only a Robot Framework test file (validate-service-account-ca-bundle.robot), which contains no K8s manifests or container configurations. The container-privileges check is inapplicable.
No-Sensitive-Data-In-Logs ✅ Passed The logging statement outputs X.509 certificate subject names, which are public metadata. No passwords, tokens, API keys, PII, or sensitive data are exposed.
Title check ✅ Passed The title clearly and concisely describes the main change: adding retry logic to the Root CA ConfigMap signer verification test, which directly matches the refactoring from inline assertions to a Wait Until Keyword Succeeds retry loop.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci openshift-ci Bot requested review from agullon and pacevedom June 4, 2026 18:56
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 4, 2026
@coderabbitai coderabbitai Bot added the ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review label Jun 4, 2026
@kasturinarra kasturinarra changed the base branch from main to release-4.22 June 4, 2026 18:58
The Root CA ConfigMap Contains All Signers test fails intermittently
on ARM (aarch64) in ISO image scenarios because the kube-root-ca.crt
ConfigMap is not fully populated when the test runs. Wrap the
verification in Wait Until Keyword Succeeds to retry for up to 60s.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@kasturinarra kasturinarra force-pushed the fix-root-ca-configmap-retry branch from 3feabaf to 2102aa0 Compare June 4, 2026 18:59
@kasturinarra
Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-bootc-release-arm-el9
/test e2e-aws-tests-bootc-release-arm-el10

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@kasturinarra
Copy link
Copy Markdown
Contributor Author

/retest

Copy link
Copy Markdown
Contributor

@pacevedom pacevedom left a comment

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 5, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jun 5, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: kasturinarra, pacevedom

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:
  • OWNERS [kasturinarra,pacevedom]

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

@kasturinarra kasturinarra changed the title Add retry to Root CA ConfigMap signer verification USHIFT-6985: Add retry to Root CA ConfigMap signer verification Jun 5, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jun 5, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Jun 5, 2026

@kasturinarra: This pull request references USHIFT-6985 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 bug to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Summary

  • The Root CA ConfigMap Contains All Signers test fails intermittently on ARM (aarch64) in ISO image scenarios (el98-lrel@iso-standard2) because the kube-root-ca.crt ConfigMap is not fully populated by the time the test runs.
  • Wraps the entire verification (ConfigMap fetch + openssl subject extraction + signer assertions) in Wait Until Keyword Succeeds with a 60s timeout and 5s retry interval.
  • The test passes consistently on x86_64 and on ARM in non-ISO scenarios; only the ISO installation path on ARM exhibits this timing issue.

Evidence

Test plan

  • Verify the test passes on ARM ISO scenarios with the retry
  • Confirm no regression on x86_64 standard2 scenarios

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests
  • Enhanced Root CA ConfigMap validation test with retry logic to improve reliability in verifying certificate signer identities.
  • Refactored CA bundle verification logic into a dedicated test keyword for improved test organization and maintainability.

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.

@kasturinarra
Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-bootc-release-arm-el9
/test e2e-aws-tests-bootc-release-arm-el10

@kasturinarra
Copy link
Copy Markdown
Contributor Author

/override ci/prow/e2e-aws-tests-bootc-release-arm-el9

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jun 5, 2026

@kasturinarra: Overrode contexts on behalf of kasturinarra: ci/prow/e2e-aws-tests-bootc-release-arm-el9

Details

In response to this:

/override ci/prow/e2e-aws-tests-bootc-release-arm-el9

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.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jun 5, 2026

@kasturinarra: The following test 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-aws-tests-bootc-release-arm-el9 587f5dd link true /test e2e-aws-tests-bootc-release-arm-el9

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.

@pacevedom
Copy link
Copy Markdown
Contributor

/label backport-risk-assessed
/verified by CI

@openshift-ci openshift-ci Bot added the backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. label Jun 5, 2026
@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jun 5, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@pacevedom: This PR has been marked as verified by CI.

Details

In response to this:

/label backport-risk-assessed
/verified by CI

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.

@kasturinarra
Copy link
Copy Markdown
Contributor Author

/jira refresh

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Jun 5, 2026

@kasturinarra: This pull request references USHIFT-6985 which is a valid jira issue.

Details

In response to this:

/jira refresh

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.

@kasturinarra kasturinarra merged commit e9aa1c6 into openshift:release-4.22 Jun 5, 2026
14 checks passed
@kasturinarra
Copy link
Copy Markdown
Contributor Author

/cherry-pick release-4.21

@openshift-cherrypick-robot
Copy link
Copy Markdown

@kasturinarra: new pull request created: #6813

Details

In response to this:

/cherry-pick release-4.21

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.

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. backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants