Skip to content

CNTRLPLANE-2012: Add PKI config types, validation, and CR manifest generation#10593

Open
hasbro17 wants to merge 1 commit into
openshift:mainfrom
hasbro17:pki-1-types-and-manifest
Open

CNTRLPLANE-2012: Add PKI config types, validation, and CR manifest generation#10593
hasbro17 wants to merge 1 commit into
openshift:mainfrom
hasbro17:pki-1-types-and-manifest

Conversation

@hasbro17
Copy link
Copy Markdown
Contributor

@hasbro17 hasbro17 commented Jun 3, 2026

Summary

Part 1 of splitting #10396 into smaller, independently reviewable PRs.

This PR adds the configurable PKI API surface behind the ConfigurablePKI feature gate:

  • Types: PKIConfig, CertificateConfig, KeyConfig and related types on InstallConfig.PKI
  • Validation: ValidatePKIConfig() validates algorithm, key size, and curve parameters (FIPS-aware)
  • Feature gate: ConfigurablePKI registered as a TechPreview gate
  • CRD schema: install-config.yaml schema updated with pki field
  • PKI CR manifest: When the gate is active, generates a config.openshift.io/v1alpha1 PKI custom resource (cluster-pki-02-config.yaml) for day-2 operator certificate rotation
  • Defaults: DefaultPKIProfile() uses RSA-4096 until day-2 operators (CKAO, CKMO) support ECDSA rotation

No certificate generation changes — all certs remain RSA-2048. Non-TechPreview clusters are completely unaffected.

PR chain

  1. This PR — PKI types, validation, CRD, feature gate, PKI CR manifest
  2. CNTRLPLANE-2012: Refactor TLS cert generation to support configurable key algorithms #10594 —TLS engine refactoring (configurable key algorithm support)
  3. CNTRLPLANE-2012: Wire signer certs to read PKI config via SignerKeyParams #10595 — Wire signer certs + SignerKeyParams
  4. Documentation

Summary by CodeRabbit

  • New Features

    • Expose a new PKI section in the install configuration to customize signer certificate parameters (RSA or ECDSA); installer will emit PKI manifests when the ConfigurablePKI feature is enabled.
    • CLI/printer now documents the PKI section in long field output.
  • Tests

    • Added end-to-end and unit tests covering PKI defaults, validation, manifest generation, and feature-gate behavior.

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented Jun 3, 2026

@hasbro17: This pull request references CNTRLPLANE-2012 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 story to target either version "5.0." or "openshift-5.0.", but it targets "openshift-4.22" instead.

Details

In response to this:

Summary

Part 1 of splitting #10396 into smaller, independently reviewable PRs.

This PR adds the configurable PKI API surface behind the ConfigurablePKI feature gate:

  • Types: PKIConfig, CertificateConfig, KeyConfig and related types on InstallConfig.PKI
  • Validation: ValidatePKIConfig() validates algorithm, key size, and curve parameters (FIPS-aware)
  • Feature gate: ConfigurablePKI registered as a TechPreview gate
  • CRD schema: install-config.yaml schema updated with pki field
  • PKI CR manifest: When the gate is active, generates a config.openshift.io/v1alpha1 PKI custom resource (cluster-pki-02-config.yaml) for day-2 operator certificate rotation
  • Defaults: DefaultPKIProfile() uses RSA-4096 until day-2 operators (CKAO, CKMO) support ECDSA rotation

No certificate generation changes — all certs remain RSA-2048. Non-TechPreview clusters are completely unaffected.

PR chain

  1. This PR — PKI types, validation, CRD, feature gate, PKI CR manifest
  2. TLS engine refactoring (configurable key algorithm support)
  3. Wire signer certs + SignerKeyParams
  4. Documentation

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 Jun 3, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 3, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: fbe843f3-999b-4153-803c-bd159b3f5ad3

📥 Commits

Reviewing files that changed from the base of the PR and between f1faa3f and 6f6a58a.

⛔ Files ignored due to path filters (1)
  • pkg/types/zz_generated.deepcopy.go is excluded by !**/zz_generated*
📒 Files selected for processing (16)
  • data/data/install.openshift.io_installconfigs.yaml
  • pkg/asset/manifests/operators.go
  • pkg/asset/manifests/pki.go
  • pkg/asset/manifests/pki_test.go
  • pkg/explain/printer_test.go
  • pkg/types/defaults/installconfig.go
  • pkg/types/installconfig.go
  • pkg/types/pki/conversion.go
  • pkg/types/pki/defaults.go
  • pkg/types/pki/defaults_test.go
  • pkg/types/pki/validation.go
  • pkg/types/pki/validation_test.go
  • pkg/types/validation/featuregate_test.go
  • pkg/types/validation/featuregates.go
  • pkg/types/validation/installconfig.go
  • pkg/types/validation/installconfig_test.go
✅ Files skipped from review due to trivial changes (1)
  • pkg/types/defaults/installconfig.go
🚧 Files skipped from review as they are similar to previous changes (14)
  • pkg/types/validation/featuregates.go
  • pkg/types/validation/installconfig.go
  • pkg/types/pki/conversion.go
  • pkg/types/validation/featuregate_test.go
  • pkg/types/pki/validation_test.go
  • pkg/types/pki/validation.go
  • pkg/asset/manifests/pki.go
  • pkg/types/pki/defaults_test.go
  • pkg/asset/manifests/operators.go
  • pkg/asset/manifests/pki_test.go
  • data/data/install.openshift.io_installconfigs.yaml
  • pkg/types/pki/defaults.go
  • pkg/types/validation/installconfig_test.go
  • pkg/types/installconfig.go

Walkthrough

Adds feature-gated configurable PKI: InstallConfig types and CRD schema, defaults and conversion to upstream PKI profile, validation and feature-gate wiring, a manifest asset to emit a PKI CR, and tests/print output updates.

Changes

Configurable PKI Support

Layer / File(s) Summary
PKI Type Contracts
pkg/types/installconfig.go
InstallConfig gains optional PKI field with nested types: PKIConfigCertificateConfigKeyConfig (RSA/ECDSA union). KeyAlgorithm enum (RSA, ECDSA) and ECDSACurve enum (P256, P384, P521) define allowed values; kubebuilder validation enforces algorithm/subfield mutual exclusivity.
CRD Schema Enforcement
data/data/install.openshift.io_installconfigs.yaml
CRD schema for pki section mirrors type contract with signerCertificates.key.algorithm, required RSA key size or ECDSA curve, and x-kubernetes-validations rules enforcing correct key object presence by algorithm.
PKI Validation Rules
pkg/types/pki/validation.go, pkg/types/pki/validation_test.go
ValidatePKIConfig requires non-empty algorithm; ValidateKeyConfig enforces RSA/ECDSA mutual exclusivity, RSA key size 2048–8192 (multiple of 1024), and ECDSA curves (P256/P384/P521). Tests cover valid and invalid algorithm/key parameter combinations.
Feature-gate Enforcement
pkg/types/validation/featuregates.go, pkg/types/validation/featuregate_test.go
PKI field marked for ConfigurablePKI feature-gate validation, blocking PKI configuration when gate disabled. Tests verify error when gate missing, allow when TechPreviewNoUpgrade or CustomNoUpgrade+ConfigurablePKI=true.
InstallConfig Validation Integration
pkg/types/validation/installconfig.go, pkg/types/validation/installconfig_test.go
ValidateInstallConfig invokes PKI validation when c.PKI set. Tests validate successful ECDSA signer config, unsupported algorithms (EdDSA), and invalid RSA key sizes (1024).
PKI Defaults and Helpers
pkg/types/pki/defaults.go, pkg/types/pki/defaults_test.go, pkg/types/pki/conversion.go, pkg/types/defaults/installconfig.go
DefaultPKIProfile() returns RSA-4096 for defaults and signer certs; EffectiveSignerPKIConfig() returns user-provided or synthesized RSA-4096 config when gate enabled, nil when disabled; CertificateConfigToUpstream() converts to upstream API type.
PKI Manifest Generation
pkg/asset/manifests/pki.go, pkg/asset/manifests/pki_test.go, pkg/asset/manifests/operators.go
PKIConfiguration asset generates cluster-pki-02-config.yaml PKI CR based on feature gate (default or custom profile). Integrated into Manifests dependencies and file collection. Tests verify no output when gate disabled, correct CR identity and mode when enabled.
User-Facing Documentation
pkg/explain/printer_test.go
InstallConfig explain output updated to document pki <object> field describing signer certificate configuration and ConfigurablePKI feature gate.

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 13 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 44.44% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Test Structure And Quality ❓ Inconclusive Custom check specifies "Review Ginkgo test code" but PR contains only standard Go tests with testify, not Ginkgo tests. Check instructions assume Ginkgo framework that is not used here. Clarify whether check applies to standard Go tests too, or if Ginkgo tests are expected. The PR's tests use standard Go framework consistent with repo patterns.
✅ Passed checks (13 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: adding PKI configuration types, validation logic, and CR manifest generation for the ConfigurablePKI feature.
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 PR contains only standard Go tests (testing package), not Ginkgo tests. All test names are static and deterministic with no dynamic values (timestamps, UUIDs, pod/node/namespace names, etc.).
Microshift Test Compatibility ✅ Passed No Ginkgo e2e tests added in PR; all new tests are standard Go unit tests using testing.T, so MicroShift compatibility check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR adds only standard Go unit tests (using testing package), not Ginkgo e2e tests. Check only applies to Ginkgo e2e tests in test/extended or test/e2e directories; none were added.
Topology-Aware Scheduling Compatibility ✅ Passed PR adds only PKI cryptographic configuration types and manifest generation—no deployment manifests, operators, or scheduling constraints affecting SNO, Two-Node, or HyperShift topologies.
Ote Binary Stdout Contract ✅ Passed No stdout writes in process-level code; all source files have zero klog/fmt.Print calls, no init() functions, and no module-level output code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No Ginkgo e2e tests are added in this PR. All test files use Go's standard testing package with func Test*() patterns, not Ginkgo It()/Describe()/Context()/When() patterns. Check is not applicable.
No-Weak-Crypto ✅ Passed No weak crypto algorithms, custom implementations, or non-constant-time secret comparisons found. Code defines PKI config types and validation only.
Container-Privileges ✅ Passed No privileged container settings found in PR. Searched for: privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, allowPrivilegeEscalation, runAsRoot. All returned 0 matches.
No-Sensitive-Data-In-Logs ✅ Passed No sensitive data logging found. New PKI code has zero logging statements and handles only non-sensitive metadata (algorithm names, key sizes, curves).

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

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

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.12.2)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions


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

@openshift-ci openshift-ci Bot requested review from barbacbd and tthvo June 3, 2026 18:34
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jun 3, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign barbacbd for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

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: 5

🧹 Nitpick comments (2)
pkg/types/pki/validation.go (1)

12-116: ⚡ Quick win

Make the fips flag meaningful or remove it for now.

fips is threaded through every PKI validator here but never read, so FIPS-enabled installs currently accept the exact same algorithms, key sizes, and curves as non-FIPS installs. That leaves the validator contract misleading and the FIPS-specific path effectively unimplemented.

🤖 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 `@pkg/types/pki/validation.go` around lines 12 - 116, The fips boolean is never
used — either remove it from the PKI validator signatures or make it enforce
FIPS-safe choices; implement the latter: use the existing fips parameter in
ValidateKeyConfig, validateRSAKeyConfig, and validateECDSAKeyConfig to tighten
accepted values when fips==true (e.g. in validateRSAKeyConfig, require a larger
minimum RSA keySize when fips is true such as >=3072 and still multiples of
1024; in validateECDSAKeyConfig, disallow non-FIPS curves like P521 when fips is
true and limit to P256/P384; and in ValidateKeyConfig ensure the
Forbidden/Required checks still apply under the fips branch), keeping the same
function names (ValidatePKIConfig, ValidateKeyConfig, validateRSAKeyConfig,
validateECDSAKeyConfig) so callers remain consistent.
pkg/asset/manifests/pki_test.go (1)

140-142: 💤 Low value

Consider verifying the Custom field is nil/empty in Default mode.

The test correctly checks that the mode is Default, but doesn't verify that the Custom field is nil or empty. While checking the mode is sufficient, explicitly asserting pkiCR.Spec.CertificateManagement.Custom is empty would make the test more thorough.

Optional test enhancement
 			if tc.expectMode != configv1alpha1.PKICertificateManagementModeCustom {
+				assert.Empty(t, pkiCR.Spec.CertificateManagement.Custom)
 				return
 			}
🤖 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 `@pkg/asset/manifests/pki_test.go` around lines 140 - 142, The test currently
returns early when tc.expectMode !=
configv1alpha1.PKICertificateManagementModeCustom; add an explicit assertion for
the Default case to verify pkiCR.Spec.CertificateManagement.Custom is nil/empty.
Locate the check around tc.expectMode and after confirming the mode is Default,
assert that pkiCR.Spec.CertificateManagement.Custom is nil or has zero length
(using t.Fatalf/t.Errorf or your test assertion helper) to make the test more
thorough.
🤖 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 `@data/data/install.openshift.io_installconfigs.yaml`:
- Around line 5088-5098: The description for installConfig.pki currently states
signerCertificates affects "all installer-generated certificate authority (CA)
certificates" which is incorrect for this PR; update the text in the YAML
properties for signerCertificates (and any parent description referencing
installConfig.pki and ConfigurablePKI) to clearly state that the PKI block is
emitted for day-2 rotation/rotation operations and does not change
installer-time certificate generation, and mention the feature gate
ConfigurablePKI as controlling emission for rotation only so oc explain
consumers are not misled.

In `@pkg/types/pki/defaults.go`:
- Around line 41-50: EffectiveSignerPKIConfig() is hardcoding RSA-4096 signer
defaults instead of deriving them from the single source of truth
DefaultPKIProfile(); update EffectiveSignerPKIConfig() to construct its returned
*types.PKIConfig by reading DefaultPKIProfile().SignerCertificates (and nested
Key/Key.RSA fields) rather than re-encoding literal RSA-4096 values so future
changes to DefaultPKIProfile() automatically propagate to the signer path.

In `@pkg/types/validation/installconfig_test.go`:
- Around line 3121-3134: The test case "invalid PKI signer with unsupported
algorithm" is missing the TechPreview feature gate for ConfigurablePKI; update
the installConfig builder (the anonymous func returning *types.InstallConfig) to
set c.FeatureSet = configv1.TechPreviewNoUpgrade so the PKI field validation
executes, or alternatively change expectedError to the feature-gate validation
message you use elsewhere (i.e., assert a feature-gate error) — adjust either
the installConfig() setup or expectedError to consistently reflect whether
ConfigurablePKI is enabled; check symbols: types.InstallConfig, c.PKI
(types.PKIConfig), and c.FeatureSet (configv1.TechPreviewNoUpgrade).
- Around line 3136-3150: The test case creates an InstallConfig via the inline
installConfig func that sets c.PKI but does not enable the tech-preview feature
gate; to match the other PKI tests and exercise the PKI validation path, update
that inline function (the one calling validInstallConfig() and setting c.PKI /
types.PKIConfig) to also set c.FeatureSet = configv1.TechPreviewNoUpgrade (same
as in the test around line 3108) so the PKI field validation is executed; update
imports if needed to reference configv1.TechPreviewNoUpgrade.

In `@pkg/types/validation/installconfig.go`:
- Around line 288-290: ValidateInstallConfig currently validates c.PKI via
pkivalidation.ValidatePKIConfig(c.PKI, field.NewPath("pki"), c.FIPS) before
feature-gate checks, causing duplicate/noisy errors when ConfigurablePKI is
disabled; change the flow so PKI content validation only runs if the
ConfigurablePKI feature is enabled (i.e. after or guarded by
ValidateFeatureSet/feature-gate check), by wrapping the existing c.PKI
validation block with the feature-gate condition or moving that call to after
ValidateFeatureSet so that ValidatePKIConfig is invoked only when the
ConfigurablePKI gate allows it.

---

Nitpick comments:
In `@pkg/asset/manifests/pki_test.go`:
- Around line 140-142: The test currently returns early when tc.expectMode !=
configv1alpha1.PKICertificateManagementModeCustom; add an explicit assertion for
the Default case to verify pkiCR.Spec.CertificateManagement.Custom is nil/empty.
Locate the check around tc.expectMode and after confirming the mode is Default,
assert that pkiCR.Spec.CertificateManagement.Custom is nil or has zero length
(using t.Fatalf/t.Errorf or your test assertion helper) to make the test more
thorough.

In `@pkg/types/pki/validation.go`:
- Around line 12-116: The fips boolean is never used — either remove it from the
PKI validator signatures or make it enforce FIPS-safe choices; implement the
latter: use the existing fips parameter in ValidateKeyConfig,
validateRSAKeyConfig, and validateECDSAKeyConfig to tighten accepted values when
fips==true (e.g. in validateRSAKeyConfig, require a larger minimum RSA keySize
when fips is true such as >=3072 and still multiples of 1024; in
validateECDSAKeyConfig, disallow non-FIPS curves like P521 when fips is true and
limit to P256/P384; and in ValidateKeyConfig ensure the Forbidden/Required
checks still apply under the fips branch), keeping the same function names
(ValidatePKIConfig, ValidateKeyConfig, validateRSAKeyConfig,
validateECDSAKeyConfig) so callers remain consistent.
🪄 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: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 1ba2c9a4-d566-448c-9f76-1b7ae60ac656

📥 Commits

Reviewing files that changed from the base of the PR and between d3fba60 and f1faa3f.

⛔ Files ignored due to path filters (1)
  • pkg/types/zz_generated.deepcopy.go is excluded by !**/zz_generated*
📒 Files selected for processing (16)
  • data/data/install.openshift.io_installconfigs.yaml
  • pkg/asset/manifests/operators.go
  • pkg/asset/manifests/pki.go
  • pkg/asset/manifests/pki_test.go
  • pkg/explain/printer_test.go
  • pkg/types/defaults/installconfig.go
  • pkg/types/installconfig.go
  • pkg/types/pki/conversion.go
  • pkg/types/pki/defaults.go
  • pkg/types/pki/defaults_test.go
  • pkg/types/pki/validation.go
  • pkg/types/pki/validation_test.go
  • pkg/types/validation/featuregate_test.go
  • pkg/types/validation/featuregates.go
  • pkg/types/validation/installconfig.go
  • pkg/types/validation/installconfig_test.go

Comment thread data/data/install.openshift.io_installconfigs.yaml
Comment thread pkg/types/pki/defaults.go
Comment thread pkg/types/validation/installconfig_test.go
Comment thread pkg/types/validation/installconfig_test.go
Comment thread pkg/types/validation/installconfig.go Outdated
Add the configurable PKI API surface to InstallConfig behind the
ConfigurablePKI feature gate. When the gate is active, the installer
generates a config.openshift.io/v1alpha1 PKI custom resource manifest
that day-2 operators use for certificate rotation parameters.

The default PKI profile uses RSA-4096 until all day-2 operators (CKAO,
CKMO, etc.) support ECDSA rotation. When pki is not specified in
install-config the PKI CR uses mode: Default. When pki is specified the
PKI CR uses mode: Custom with DefaultPKIProfile as the base and user
signerCertificates overrides layered on top.

No certificate generation changes are included — all certs remain
RSA-2048. Non-TechPreview clusters are completely unaffected.

Assisted-by: Claude Code (Opus 4.6)
@hasbro17 hasbro17 force-pushed the pki-1-types-and-manifest branch from f1faa3f to 6f6a58a Compare June 4, 2026 19:49
Comment on lines +14 to +16
RSA: configv1alpha1.RSAKeyConfig{KeySize: local.Key.RSA.KeySize},
ECDSA: configv1alpha1.ECDSAKeyConfig{Curve: configv1alpha1.ECDSACurve(local.Key.ECDSA.Curve)},
},
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.

Can we have a test run the output through yaml.Marshall and confirms only one is set? Or, check Algorithm before setting only one of either RSA/ECDSA? I think this is ok thanks to omitzero, but a test or explicitly check might add clarity.

Comment thread pkg/types/pki/defaults.go
// ECDSA certificate rotation. Once operator support lands, switch to ECDSA P-384
// signers and ECDSA P-256 defaults to match the upstream library-go profile:
// https://github.com/openshift/library-go/blob/12d8376369b7c5b76f688d01089882ca28e351c3/pkg/pki/profile.go#L11-L26
func DefaultPKIProfile() configv1alpha1.PKIProfile {
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.

Consider removing this entire file from this PR. Just return the config below in PKIConfiguration.Generate for now. I have comments about EffectiveSignerPKIConfig , but it moke no sense if its not being called yet.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jun 4, 2026

@hasbro17: 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-ovn 6f6a58a link true /test e2e-aws-ovn

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

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants