Skip to content

OCPBUGS-83786:OCPSTRAT-3082:TLS propagation test#30801

Merged
openshift-merge-bot[bot] merged 2 commits intoopenshift:mainfrom
gangwgr:tls-ci
Apr 17, 2026
Merged

OCPBUGS-83786:OCPSTRAT-3082:TLS propagation test#30801
openshift-merge-bot[bot] merged 2 commits intoopenshift:mainfrom
gangwgr:tls-ci

Conversation

@gangwgr
Copy link
Copy Markdown
Contributor

@gangwgr gangwgr commented Feb 19, 2026

Test run -https://privatebin.corp.redhat.com/?b0f760b57d709f07#F2u5YDsSTXrxCVWyKze9Jj4bP424HE2ZfhR6HhEFRJ2Y

Summary by CodeRabbit

  • Tests

    • Added a TLS verification test suite that validates operator-observed config, TLS versions, and cipher suites across multiple components; checks TLS-related env var propagation, performs wire-level TLS handshake tests, and validates behavior during APIServer TLS profile transitions with rollout and cluster-stability checks; skips unsupported cluster types.
  • Chores

    • Registered the new TLS tests and added ownership metadata for review and approval.

@openshift-ci-robot
Copy link
Copy Markdown

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

@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Feb 19, 2026

/pipeline required

@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Feb 23, 2026

/retest

@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Feb 23, 2026

/test e2e-metal-ipi-ovn-ipv6

@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@gangwgr gangwgr changed the title [WIP]TLS propagation test TLS propagation test Feb 23, 2026
@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Feb 23, 2026

/retest-required

@openshift-trt
Copy link
Copy Markdown

openshift-trt Bot commented Feb 24, 2026

Job Failure Risk Analysis for sha: 21e1845

Job Name Failure Risk
pull-ci-openshift-origin-main-e2e-metal-ipi-ovn-ipv6 High
[sig-cluster-lifecycle][OCPFeatureGate:ImageStreamImportMode] ClusterVersion API desired architecture should be valid when architecture is set in release payload metadata [apigroup:config.openshift.io] [Suite:openshift/conformance/parallel]
This test has passed 98.31% of 3130 runs on release 4.22 [Overall] in the last week.

@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Feb 25, 2026

/retest-required

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 26, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds a new end-to-end TLS ObservedConfig test suite: registers the suite, imports the TLS extended tests, adds OWNERS, and implements per-target tests validating operator observedConfig, deployment TLS env-vars, and wire-level TLS including a TLS profile change/restore flow.

Changes

Cohort / File(s) Summary
Test Suite Registration
pkg/testsuites/standard_suites.go
Appends a new openshift/tls-observed-config entry to staticSuites with name, description, qualifiers, parallelism, timeout, and Disruptive cluster stability flag.
Test Imports
test/extended/include.go
Adds a blank import to register the TLS extended tests: _ "github.com/openshift/origin/test/extended/tls".
TLS Verification Tests
test/extended/tls/tls_observed_config.go
Adds a Ginkgo test suite implementing per-target TLS expectations, observedConfig retrieval/validation via dynamic client, deployment env-var propagation checks, wire-level TLS handshakes through port-forward, and a config-change test that sets the APIServer TLS profile to Modern and restores it with rollout/wait coordination across ClusterOperators.
Package Ownership
test/extended/tls/OWNERS
Adds OWNERS file listing reviewers and approvers for the new TLS test package.

Sequence Diagram(s)

sequenceDiagram
    participant Test as Test Suite
    participant DynClient as Dynamic Client
    participant ApiServer as Cluster APIServer
    participant Deployment as Target Deployment
    participant ClusterOp as ClusterOperator

    Test->>DynClient: Fetch operator config (observedConfig)
    DynClient-->>Test: observedConfig (minTLSVersion, cipherSuites)
    Test->>Deployment: Inspect container env vars
    Deployment-->>Test: Env var values
    Test->>Deployment: Port-forward to service and perform TLS handshake checks
    Deployment-->>Test: TLS handshake results
    Test->>ApiServer: Update TLS profile (Modern) [config-change test]
    ApiServer-->>Test: Profile updated
    Test->>ClusterOp: Wait for related ClusterOperators to stabilize
    ClusterOp-->>Test: Stable
    Test->>ApiServer: Restore original TLS profile
    ApiServer-->>Test: Profile restored
    Test->>ClusterOp: Wait for stabilization
    ClusterOp-->>Test: Stable
Loading
sequenceDiagram
    participant Test as Test Suite
    participant Validator as Validation Routines
    participant RolloutMgr as Rollout Watcher
    participant ClusterOp as ClusterOperators

    Test->>Validator: Trigger per-target validations (observedConfig, env, wire)
    Validator-->>Test: Validation results
    Test->>RolloutMgr: Initiate rollout waits after profile change
    RolloutMgr->>ClusterOp: Poll cluster operator statuses
    ClusterOp-->>RolloutMgr: Report progress/completion
    RolloutMgr-->>Test: Relevant operators stabilized
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~65 minutes


Important

Pre-merge checks failed

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

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Test Structure And Quality ⚠️ Warning Several bare Expect(err).NotTo(HaveOccurred()) calls lack descriptive failure messages in cluster detection and config reading logic. Add descriptive messages to all Expect(err).NotTo(HaveOccurred()) calls to clearly indicate which operation failed during test execution.
Stable And Deterministic Test Names ❓ Inconclusive Test file test/extended/tls/tls_observed_config.go could not be located in the repository to verify test name stability. Verify that test files are properly committed. Review all test title declarations to ensure they use static strings without dynamic values like namespace names or pod names.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed Docstring coverage is 92.31% which is sufficient. The required threshold is 80.00%.
Title check ✅ Passed The title 'OCPSTRAT-3082:TLS propagation test' directly describes the main purpose of the PR—adding a TLS propagation test suite.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@test/extended/tls/tls_observed_config.go`:
- Around line 702-712: The TLS probes use tls.Dial (in the block handling
host/shouldWork and host/shouldNotWork) which can hang; replace calls to
tls.Dial with tls.DialWithDialer using a net.Dialer that sets a reasonable
Timeout (e.g., a few seconds) so both the successful probe and the
rejected-version probe use a dialer with explicit handshake timeout, preserve
the same error handling around conn, ConnectionState(), and conn.Close(), and
ensure the dialer timeout variable is reused for both DialWithDialer invocations
to avoid duplicated magic values.
- Around line 507-510: The namespace lookup currently treats any error as "not
found" and skips the test; change the error handling after
oc.AdminKubeClient().CoreV1().Namespaces().Get(ctx, t.namespace,
metav1.GetOptions{}) to import k8s.io/apimachinery/pkg/api/errors as kapierrors
and only call g.Skip when kapierrors.IsNotFound(err) is true, otherwise fail the
test (e.g., call the test failure helper you use in this file) so
auth/transport/transient errors are not masked; apply the same change to the
second occurrence of the same oc.AdminKubeClient().CoreV1().Namespaces().Get
call in this file.
- Around line 654-676: Replace the unreliable stdout check after starting
port-forward (where e2e.StartCmdAndStreamOutput is used and
readPartialFrom(stdout, 1024) is called) with an active TCP readiness probe:
repeatedly attempt to open a TCP connection to 127.0.0.1:localPort until success
or a short deadline elapses, then proceed to call toExecute(localPort). Use the
existing ctx/cancel or a separate short timeout for the probe, keep defers for
stdout/stderr and TryKill(cmd), and ensure probe retries/backoff are short so
the test fails fast if the tunnel never becomes reachable.

ℹ️ Review info

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between a631c60 and b8f1f94.

📒 Files selected for processing (4)
  • pkg/testsuites/standard_suites.go
  • test/extended/include.go
  • test/extended/tls/OWNERS
  • test/extended/tls/tls_observed_config.go

Comment thread test/extended/tls/tls_observed_config.go
Comment thread test/extended/tls/tls_observed_config.go Outdated
Comment thread test/extended/tls/tls_observed_config.go Outdated
@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Feb 26, 2026

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Feb 26, 2026

@gangwgr, testwith: could not generate prow job. ERROR:

could not determine cluster for job pull-ci-openshift-origin-main-e2e-metal-ipi-serial-ovn-ipv6: error performing request: got unexpected http 404 status code from dispatcher: Cluster not found

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (4)
test/extended/tls/tls_observed_config.go (4)

698-755: ⚠️ Potential issue | 🟠 Major

Add explicit handshake timeouts for TLS dial operations.

tls.Dial without deadlines can hang indefinitely under network edge cases, blocking test progression. This was flagged in a previous review. Use tls.DialWithDialer with a timeout dialer.

🔧 Proposed fix
 func checkTLSConnection(localPort int, shouldWork, shouldNotWork *tls.Config, t tlsTarget) error {
 	// Try both IPv4 and IPv6 localhost addresses for dual-stack support.
 	hosts := []string{
 		fmt.Sprintf("127.0.0.1:%d", localPort), // IPv4
 		fmt.Sprintf("[::1]:%d", localPort),     // IPv6
 	}

 	var host string
 	var conn *tls.Conn
 	var err error
+	dialer := &net.Dialer{Timeout: 5 * time.Second}

 	// Find a working host (try IPv4 first, then IPv6).
 	for _, h := range hosts {
-		conn, err = tls.Dial("tcp", h, shouldWork)
+		conn, err = tls.DialWithDialer(dialer, "tcp", h, shouldWork)
 		if err == nil {
 			host = h
 			break
 		}
 		// ... error handling ...
 	}
 	// ...
 	// Test that the version that should not work is rejected.
-	conn, err = tls.Dial("tcp", host, shouldNotWork)
+	conn, err = tls.DialWithDialer(dialer, "tcp", host, shouldNotWork)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/tls/tls_observed_config.go` around lines 698 - 755, The TLS
dials in checkTLSConnection can hang; change both tls.Dial calls to use
tls.DialWithDialer with a net.Dialer that sets a timeout (e.g. Dialer{Timeout:
10*time.Second}) so the initial probe (inside the hosts loop using shouldWork)
and the subsequent negative probe (using shouldNotWork) will fail fast instead
of blocking indefinitely; locate tls.Dial invocations in checkTLSConnection and
replace them with tls.DialWithDialer(&net.Dialer{Timeout: <reasonable
duration>}, "tcp", hostOrH, tlsConfig).

506-510: ⚠️ Potential issue | 🟠 Major

Skip only on NotFound errors; fail on other namespace lookup failures.

The current code treats any API error as "namespace doesn't exist" and skips, which masks real failures like auth errors or transient issues. This was flagged in a previous review.

🐛 Proposed fix
 	g.By(fmt.Sprintf("verifying namespace %s exists", t.namespace))
 	_, err := oc.AdminKubeClient().CoreV1().Namespaces().Get(ctx, t.namespace, metav1.GetOptions{})
-	if err != nil {
+	if kapierrors.IsNotFound(err) {
 		g.Skip(fmt.Sprintf("Namespace %s does not exist in this cluster", t.namespace))
 	}
+	o.Expect(err).NotTo(o.HaveOccurred(), fmt.Sprintf("failed to query namespace %s", t.namespace))
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/tls/tls_observed_config.go` around lines 506 - 510, The code
currently skips on any error from
oc.AdminKubeClient().CoreV1().Namespaces().Get(ctx, t.namespace,
metav1.GetOptions{}); change it to only skip when the error is a NotFound (use
k8s api errors.IsNotFound(err) from "k8s.io/apimachinery/pkg/api/errors") and
for any other non-nil error fail the test (use g.Fail or a test fatal with the
error) so real API/auth/transient failures aren't masked; keep the existing
g.Skip(fmt.Sprintf("Namespace %s does not exist...", t.namespace)) branch for
IsNotFound and report the actual err in the failing branch.

648-683: ⚠️ Potential issue | 🟠 Major

Add active readiness probe for port-forward tunnel establishment.

The code starts oc port-forward and reads a chunk from stdout, but this doesn't guarantee the tunnel accepts connections. The 10-second context timeout also covers both tunnel setup and TLS test execution, which is too tight. This was flagged in a previous review.

🔧 Proposed fix with TCP readiness probe and extended timeout
 func forwardPortAndExecute(serviceName, namespace, remotePort string, toExecute func(localPort int) error) error {
 	var err error
 	for i := 0; i < 3; i++ {
 		if err = func() error {
-			ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
+			ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
 			defer cancel()
-			localPort := rand.Intn(65534-1025) + 1025
+			localPort := rand.Intn(64510) + 1025 // [1025, 65534]
 			args := []string{
 				"port-forward",
 				fmt.Sprintf("svc/%s", serviceName),
 				fmt.Sprintf("%d:%s", localPort, remotePort),
 				"-n", namespace,
 			}

 			cmd := exec.CommandContext(ctx, "oc", args...)
 			stdout, stderr, err := e2e.StartCmdAndStreamOutput(cmd)
 			if err != nil {
 				return fmt.Errorf("failed to start port-forward: %v", err)
 			}
 			defer stdout.Close()
 			defer stderr.Close()
 			defer e2e.TryKill(cmd)

-			// Give port-forward a moment to establish.
-			e2e.Logf("oc port-forward output: %s", readPartialFrom(stdout, 1024))
+			// Wait until forwarded local port is reachable via active TCP probe.
+			deadline := time.Now().Add(5 * time.Second)
+			for {
+				conn, dialErr := net.DialTimeout("tcp", fmt.Sprintf("127.0.0.1:%d", localPort), 500*time.Millisecond)
+				if dialErr == nil {
+					_ = conn.Close()
+					break
+				}
+				if time.Now().After(deadline) {
+					return fmt.Errorf("port-forward did not become ready for svc/%s in %s: %w", serviceName, namespace, dialErr)
+				}
+				time.Sleep(200 * time.Millisecond)
+			}
+			e2e.Logf("oc port-forward established to svc/%s in %s on local port %d", serviceName, namespace, localPort)
 			return toExecute(localPort)
 		}(); err == nil {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/tls/tls_observed_config.go` around lines 648 - 683,
forwardPortAndExecute currently starts oc port-forward with a single 10s context
and only reads stdout (via readPartialFrom/StartCmdAndStreamOutput), which
doesn't guarantee the tunnel accepts connections; change it to create a
dedicated, longer context for the port-forward command (e.g., 30s) and perform
an active TCP readiness probe against localhost:localPort (using net.Dial or
net.DialTimeout) with several short retries and backoff to confirm the tunnel is
accepting connections before calling toExecute; ensure you still defer
stdout.Close(), stderr.Close(), and e2e.TryKill(cmd) on failure, and separate
the port-forward lifecycle from the test execution (i.e., do not have the
port-forward context encompass the entire toExecute run).

579-583: ⚠️ Potential issue | 🟠 Major

Same issue: skip only on NotFound errors.

This has the same error handling issue as testDeploymentTLSEnvVars — any error causes a skip rather than only NotFound errors.

🐛 Proposed fix
 	g.By("verifying namespace exists")
 	_, err = oc.AdminKubeClient().CoreV1().Namespaces().Get(ctx, t.namespace, metav1.GetOptions{})
-	if err != nil {
+	if kapierrors.IsNotFound(err) {
 		g.Skip(fmt.Sprintf("Namespace %s does not exist in this cluster", t.namespace))
 	}
+	o.Expect(err).NotTo(o.HaveOccurred(), fmt.Sprintf("failed to query namespace %s", t.namespace))
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/tls/tls_observed_config.go` around lines 579 - 583, The
namespace existence check currently skips the test for any Get error; change it
to only skip when the error is a NotFound error by using
k8s.io/apimachinery/pkg/api/errors.IsNotFound(err) against the result of
oc.AdminKubeClient().CoreV1().Namespaces().Get(ctx, t.namespace,
metav1.GetOptions{}), i.e. if apierrors.IsNotFound(err) then g.Skip(...) else if
err != nil then fail the test (return or call the test failure helper used in
these tests) so genuine API errors surface instead of being treated as missing
namespace.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@test/extended/tls/tls_observed_config.go`:
- Around line 698-755: The TLS dials in checkTLSConnection can hang; change both
tls.Dial calls to use tls.DialWithDialer with a net.Dialer that sets a timeout
(e.g. Dialer{Timeout: 10*time.Second}) so the initial probe (inside the hosts
loop using shouldWork) and the subsequent negative probe (using shouldNotWork)
will fail fast instead of blocking indefinitely; locate tls.Dial invocations in
checkTLSConnection and replace them with tls.DialWithDialer(&net.Dialer{Timeout:
<reasonable duration>}, "tcp", hostOrH, tlsConfig).
- Around line 506-510: The code currently skips on any error from
oc.AdminKubeClient().CoreV1().Namespaces().Get(ctx, t.namespace,
metav1.GetOptions{}); change it to only skip when the error is a NotFound (use
k8s api errors.IsNotFound(err) from "k8s.io/apimachinery/pkg/api/errors") and
for any other non-nil error fail the test (use g.Fail or a test fatal with the
error) so real API/auth/transient failures aren't masked; keep the existing
g.Skip(fmt.Sprintf("Namespace %s does not exist...", t.namespace)) branch for
IsNotFound and report the actual err in the failing branch.
- Around line 648-683: forwardPortAndExecute currently starts oc port-forward
with a single 10s context and only reads stdout (via
readPartialFrom/StartCmdAndStreamOutput), which doesn't guarantee the tunnel
accepts connections; change it to create a dedicated, longer context for the
port-forward command (e.g., 30s) and perform an active TCP readiness probe
against localhost:localPort (using net.Dial or net.DialTimeout) with several
short retries and backoff to confirm the tunnel is accepting connections before
calling toExecute; ensure you still defer stdout.Close(), stderr.Close(), and
e2e.TryKill(cmd) on failure, and separate the port-forward lifecycle from the
test execution (i.e., do not have the port-forward context encompass the entire
toExecute run).
- Around line 579-583: The namespace existence check currently skips the test
for any Get error; change it to only skip when the error is a NotFound error by
using k8s.io/apimachinery/pkg/api/errors.IsNotFound(err) against the result of
oc.AdminKubeClient().CoreV1().Namespaces().Get(ctx, t.namespace,
metav1.GetOptions{}), i.e. if apierrors.IsNotFound(err) then g.Skip(...) else if
err != nil then fail the test (return or call the test failure helper used in
these tests) so genuine API errors surface instead of being treated as missing
namespace.

ℹ️ Review info

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between b8f1f94 and b0a3132.

📒 Files selected for processing (4)
  • pkg/testsuites/standard_suites.go
  • test/extended/include.go
  • test/extended/tls/OWNERS
  • test/extended/tls/tls_observed_config.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/extended/include.go
  • test/extended/tls/OWNERS

@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Feb 26, 2026

@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Feb 26, 2026

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Feb 26, 2026

@gangwgr, testwith: could not generate prow job. ERROR:

could not determine cluster for job pull-ci-openshift-origin-main-e2e-metal-ipi-serial-ovn-ipv6: error performing request: got unexpected http 404 status code from dispatcher: Cluster not found

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Feb 26, 2026

@gangwgr, testwith: could not generate prow job. ERROR:

could not determine ci op config from metadata: got unexpected http 404 status code from configresolver: failed to get config: could not find any config for branch master on repo openshift/origin

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@gangwgr gangwgr changed the title TLS propagation test OCPSTRAT-3082:TLS propagation test Apr 14, 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 Apr 14, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 14, 2026

@gangwgr: This pull request references OCPSTRAT-3082 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 initiative to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Test run -https://privatebin.corp.redhat.com/?b0f760b57d709f07#F2u5YDsSTXrxCVWyKze9Jj4bP424HE2ZfhR6HhEFRJ2Y

Summary by CodeRabbit

  • Tests

  • Added a TLS verification test suite that validates operator-observed config, TLS versions, and cipher suites across multiple components; checks TLS-related env var propagation, performs wire-level TLS handshake tests, and validates behavior during APIServer TLS profile transitions with rollout and cluster-stability checks; skips unsupported cluster types.

  • Chores

  • Registered the new TLS tests and added ownership metadata for review and approval.

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.

@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Apr 14, 2026

/test periodic-ci-openshift-tls-scanner-main-periodic-tls13-conformance

@ricardomaraschini
Copy link
Copy Markdown
Contributor

/lgtm

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

gangwgr commented Apr 15, 2026

/assign @dgoodwin

@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Apr 15, 2026

/verified by @gangwgr

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Apr 15, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@gangwgr: This PR has been marked as verified by @gangwgr.

Details

In response to this:

/verified by @gangwgr

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.

Copy link
Copy Markdown
Member

@bertinatto bertinatto left a comment

Choose a reason for hiding this comment

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

/approve

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 17, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bertinatto, gangwgr, ricardomaraschini

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 Apr 17, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@openshift-merge-bot openshift-merge-bot Bot merged commit dcd145e into openshift:main Apr 17, 2026
9 of 21 checks passed
@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Apr 20, 2026

/cherry-pick release-4.22

@openshift-cherrypick-robot
Copy link
Copy Markdown

@gangwgr: new pull request created: #31032

Details

In response to this:

/cherry-pick release-4.22

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.

@gangwgr gangwgr changed the title OCPSTRAT-3082:TLS propagation test OCPBUGS-83786:OCPSTRAT-3082:TLS propagation test Apr 20, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@gangwgr: Jira Issue Verification Checks: Jira Issue OCPBUGS-83786
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-83786 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

Test run -https://privatebin.corp.redhat.com/?b0f760b57d709f07#F2u5YDsSTXrxCVWyKze9Jj4bP424HE2ZfhR6HhEFRJ2Y

Summary by CodeRabbit

  • Tests

  • Added a TLS verification test suite that validates operator-observed config, TLS versions, and cipher suites across multiple components; checks TLS-related env var propagation, performs wire-level TLS handshake tests, and validates behavior during APIServer TLS profile transitions with rollout and cluster-stability checks; skips unsupported cluster types.

  • Chores

  • Registered the new TLS tests and added ownership metadata for review and approval.

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.

@gangwgr
Copy link
Copy Markdown
Contributor Author

gangwgr commented Apr 20, 2026

/cherry-pick release-4.22

@openshift-cherrypick-robot
Copy link
Copy Markdown

@gangwgr: new pull request created: #31038

Details

In response to this:

/cherry-pick release-4.22

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. 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. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants