Skip to content

CNTRLPLANE-2916: restore conditional deletion of openshift-ingress NetworkPolicy - #8754

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
csrwng:undo-revert-8662
Jun 24, 2026
Merged

CNTRLPLANE-2916: restore conditional deletion of openshift-ingress NetworkPolicy#8754
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
csrwng:undo-revert-8662

Conversation

@csrwng

@csrwng csrwng commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Test plan

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Improved handling of the ingress network policy. The “openshift-ingress” policy is now conditionally created or removed based on your route labeling configuration, better aligning network isolation with your ingress controller setup.
  • Tests

    • Expanded coverage for ingress network policy behavior across more platform and publishing scenarios, including validation of both creation and deletion outcomes.

@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: LGTM mode

@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 17, 2026
@openshift-ci-robot

openshift-ci-robot commented Jun 17, 2026

Copy link
Copy Markdown

@csrwng: This pull request references CNTRLPLANE-2916 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 the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

Test plan

🤖 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

openshift-ci Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: csrwng

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 approved Indicates a PR has been approved by an approver from all required OWNERS files. area/hypershift-operator Indicates the PR includes changes for the hypershift operator and API - outside an OCP release and removed do-not-merge/needs-area labels Jun 17, 2026
@openshift-ci
openshift-ci Bot requested review from Nirshal and enxebre June 17, 2026 14:28
@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 1e24cb79-0371-4116-b276-2fbf216b0e91

📥 Commits

Reviewing files that changed from the base of the PR and between 1b9f915 and a156efb.

📒 Files selected for processing (2)
  • hypershift-operator/controllers/hostedcluster/network_policies.go
  • hypershift-operator/controllers/hostedcluster/network_policies_test.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • hypershift-operator/controllers/hostedcluster/network_policies.go
  • hypershift-operator/controllers/hostedcluster/network_policies_test.go

📝 Walkthrough

Walkthrough

reconcileNetworkPolicies is updated to delegate the openshift-ingress NetworkPolicy handling to a new helper function, reconcileIngressNetworkPolicy. This helper checks netutil.LabelHCPRoutes(hcp): when true, it deletes the existing openshift-ingress NetworkPolicy using k8sutil.DeleteIfNeeded; when false, it reconciles (creates/updates) the policy as before. The k8sutil package is added as an import. Tests in TestReconcileNetworkPolicies_OpenshiftIngressPolicy are extended with expectCreated and expectDeleted fields, new cases for AWS, GCP, IBM Cloud, Agent, and KubeVirt platforms, pre-creation of the policy for deletion scenarios, and conditional post-reconcile assertions.

🚥 Pre-merge checks | ✅ 11
✅ Passed checks (11 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: restoring conditional deletion logic for the openshift-ingress NetworkPolicy based on route labeling configuration.
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 All test names in the modified test file are stable and deterministic, using static descriptive strings without any dynamic information like generated suffixes, timestamps, UUIDs, or node/namespace...
Test Structure And Quality ✅ Passed Tests demonstrate strong quality: table-driven subtests provide single responsibility per case, meaningful error messages guide diagnosis, proper fake client isolation for each test, consistent cod...
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies NetworkPolicy reconciliation logic only (network security rules), not pod scheduling constraints (affinity, replicas, nodeSelector, topology spread, PDB). Check targets scheduling const...
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR adds standard Go unit tests, not Ginkgo e2e tests. Check requires Ginkgo tests (It(), Describe(), Context(), When()), so it's not applicable here.
No-Weak-Crypto ✅ Passed The pull request modifies only network policy reconciliation code. No cryptographic operations, weak algorithms (MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB), custom crypto implementations, or non-con...
Container-Privileges ✅ Passed PR modifies only Go source files (network_policies.go/test.go), not container/K8s manifests. The container-privileges check applies only to manifest files defining container security specs.
No-Sensitive-Data-In-Logs ✅ Passed No sensitive data (passwords, tokens, API keys, PII, session IDs, hostnames, customer data) is exposed in logs. Error messages are generic with no credential leakage.

✏️ 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.

@codecov

codecov Bot commented Jun 17, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 55.55556% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 41.79%. Comparing base (b228747) to head (a156efb).
⚠️ Report is 90 commits behind head on main.

Files with missing lines Patch % Lines
...ator/controllers/hostedcluster/network_policies.go 55.55% 5 Missing and 3 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8754      +/-   ##
==========================================
- Coverage   41.83%   41.79%   -0.04%     
==========================================
  Files         759      759              
  Lines       94043    94048       +5     
==========================================
- Hits        39342    39309      -33     
- Misses      51946    51987      +41     
+ Partials     2755     2752       -3     
Files with missing lines Coverage Δ
...ator/controllers/hostedcluster/network_policies.go 76.83% <55.55%> (-0.36%) ⬇️

... and 3 files with indirect coverage changes

Flag Coverage Δ
cmd-support 35.11% <ø> (ø)
cpo-hostedcontrolplane 44.10% <ø> (ø)
cpo-other 43.45% <ø> (ø)
hypershift-operator 51.87% <55.55%> (-0.15%) ⬇️
other 31.56% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@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.

🧹 Nitpick comments (1)
hypershift-operator/controllers/hostedcluster/network_policies_test.go (1)

477-497: ⚡ Quick win

Add an explicit KubeVirt delete-path case in the ingress policy matrix.

KubeVirt currently has only the create-path assertion. Please add a KubeVirt case where APIServer uses Route with hostname and assert deletion, so the matrix directly covers both outcomes for that platform and guards future branch drift.

💡 Suggested test-case addition
 		{
 			name: "When KubeVirt cluster uses KAS LoadBalancer it should create policy",
 			hcluster: &hyperv1.HostedCluster{
 				ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "test-ns"},
 				Spec: hyperv1.HostedClusterSpec{
 					Platform: hyperv1.PlatformSpec{Type: hyperv1.KubevirtPlatform, Kubevirt: &hyperv1.KubevirtPlatformSpec{}},
 					Services: []hyperv1.ServicePublishingStrategyMapping{
 						{Service: hyperv1.APIServer, ServicePublishingStrategy: hyperv1.ServicePublishingStrategy{Type: hyperv1.LoadBalancer}},
 					},
 				},
 			},
 			hcp: &hyperv1.HostedControlPlane{
 				Spec: hyperv1.HostedControlPlaneSpec{
 					Platform: hyperv1.PlatformSpec{Type: hyperv1.KubevirtPlatform, Kubevirt: &hyperv1.KubevirtPlatformSpec{}},
 					Services: []hyperv1.ServicePublishingStrategyMapping{
 						{Service: hyperv1.APIServer, ServicePublishingStrategy: hyperv1.ServicePublishingStrategy{Type: hyperv1.LoadBalancer}},
 					},
 				},
 			},
 			expectCreated: true,
 		},
+		{
+			name: "When KubeVirt cluster uses KAS Route with hostname it should delete policy",
+			hcluster: &hyperv1.HostedCluster{
+				ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "test-ns"},
+				Spec: hyperv1.HostedClusterSpec{
+					Platform: hyperv1.PlatformSpec{Type: hyperv1.KubevirtPlatform, Kubevirt: &hyperv1.KubevirtPlatformSpec{}},
+					Services: []hyperv1.ServicePublishingStrategyMapping{
+						{Service: hyperv1.APIServer, ServicePublishingStrategy: hyperv1.ServicePublishingStrategy{
+							Type:  hyperv1.Route,
+							Route: &hyperv1.RoutePublishingStrategy{Hostname: "api.example.com"},
+						}},
+					},
+				},
+			},
+			hcp: &hyperv1.HostedControlPlane{
+				Spec: hyperv1.HostedControlPlaneSpec{
+					Platform: hyperv1.PlatformSpec{Type: hyperv1.KubevirtPlatform, Kubevirt: &hyperv1.KubevirtPlatformSpec{}},
+					Services: []hyperv1.ServicePublishingStrategyMapping{
+						{Service: hyperv1.APIServer, ServicePublishingStrategy: hyperv1.ServicePublishingStrategy{
+							Type:  hyperv1.Route,
+							Route: &hyperv1.RoutePublishingStrategy{Hostname: "api.example.com"},
+						}},
+					},
+				},
+			},
+			expectDeleted: true,
+		},

As per coding guidelines, "Unit test any code changes and additions and include e2e tests when changes impact consumer behaviour."

🤖 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 `@hypershift-operator/controllers/hostedcluster/network_policies_test.go`
around lines 477 - 497, The KubeVirt platform test case in the test matrix only
covers the creation path where APIServer uses LoadBalancer type. Add a new test
case entry following the existing KubeVirt test to cover the deletion path by
creating a case where the KubeVirt cluster uses Route for the APIServer
ServicePublishingStrategy (instead of LoadBalancer) and set expectCreated to
false. This ensures the test matrix covers both creation and deletion outcomes
for the KubeVirt platform and prevents future branch drift.

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.

Nitpick comments:
In `@hypershift-operator/controllers/hostedcluster/network_policies_test.go`:
- Around line 477-497: The KubeVirt platform test case in the test matrix only
covers the creation path where APIServer uses LoadBalancer type. Add a new test
case entry following the existing KubeVirt test to cover the deletion path by
creating a case where the KubeVirt cluster uses Route for the APIServer
ServicePublishingStrategy (instead of LoadBalancer) and set expectCreated to
false. This ensures the test matrix covers both creation and deletion outcomes
for the KubeVirt platform and prevents future branch drift.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 28896680-8e1c-4b7c-9df7-5e15e637232e

📥 Commits

Reviewing files that changed from the base of the PR and between 30a12e6 and 1b9f915.

📒 Files selected for processing (2)
  • hypershift-operator/controllers/hostedcluster/network_policies.go
  • hypershift-operator/controllers/hostedcluster/network_policies_test.go

…gress NetworkPolicy

Reverts the revert PR openshift#8662 to re-apply the original PR openshift#7872 behavior:
conditionally create or delete the openshift-ingress NetworkPolicy based
on whether routes are labeled for the HCP router (LabelHCPRoutes).

The OVN-Kubernetes port group race that prompted the revert is being
addressed via PR openshift#8689 (--hcp-egress-block-cidrs flag), making the
blanket always-create workaround unnecessary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@csrwng
csrwng force-pushed the undo-revert-8662 branch from 1b9f915 to a156efb Compare June 17, 2026 14:55
@enxebre

enxebre commented Jun 17, 2026

Copy link
Copy Markdown
Member

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 17, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aks-4-22
/test e2e-aws-4-22
/test e2e-aks
/test e2e-aws
/test e2e-aws-upgrade-hypershift-operator
/test e2e-azure-v2-self-managed
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws
/test e2e-v2-gke

@csrwng

csrwng commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

/test e2e-aks-422

The job failed during CI infrastructure setup — specifically while importing the initial-422 release payload —

@csrwng

csrwng commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

/test e2e-aks-4-22

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-aks | Build: 2067261699257274368 | Cost: $3.398175599999999 | Failed step: hypershift-azure-run-e2e

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@cwbotbot

cwbotbot commented Jun 17, 2026

Copy link
Copy Markdown

Test Results

e2e-aws

e2e-aks

@csrwng

csrwng commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

/test e2e-aks

From failure analysis:

This failure is unrelated to the PR changes. PR #8754 modifies network_policies.go to conditionally create/delete the openshift-ingress NetworkPolicy based on whether HCP routes are labeled for the HCP router. The failing test (TestAdditionalTrustBundlePropagation) exercises NodePool config update propagation through the trust bundle mechanism — a completely different code path. The network policy changes cannot cause the NodePool controller to skip setting UpdatingConfig=True.

@csrwng

csrwng commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-4-22

This test failed the Karpenter test in the same way that e2e-aks-4-22 failed (and eventually passed):

    karpenter_test.go:1318: Created kubelet-config-checker pod on nodepool kubelet-config-test
    karpenter_test.go:1331: 
        Unexpected error:
            <*errors.StatusError | 0xc0073a6e60>: 
            Get "https://10.0.129.17:10250/containerLogs/kube-system/kubelet-config-checker/checker": net/http: TLS handshake timeout
            {
                ErrStatus: {
                    TypeMeta: {Kind: "", APIVersion: ""},
                    ListMeta: {
                        SelfLink: "",
                        ResourceVersion: "",
                        Continue: "",
                        RemainingItemCount: nil,
                    },
                    Status: "Failure",
                    Message: "Get \"https://10.0.129.17:10250/containerLogs/kube-system/kubelet-config-checker/checker\": net/http: TLS handshake timeout",
                    Reason: "",
                    Details: nil,
                    Code: 500,
                },
            }
        occurred
            --- FAIL: TestKarpenter/Main/Parallel_provisioning_tests/OpenshiftEC2NodeClass_Kubelet_propagation (719.11s)

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-aks | Build: 2067326323855986688 | Cost: $3.240120500000001 | Failed step: hypershift-azure-run-e2e

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@csrwng

csrwng commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

/retest-required

Failures in e2e-aks and kubevirt are not related to this PR

@hypershift-jira-solve-ci

hypershift-jira-solve-ci Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

I now have all the evidence needed for the complete report.

Test Failure Analysis Complete

Job Information

  • Prow Job: codecov/project (GitHub Actions check, not a Prow CI job)
  • Build ID: Check Run ID 82204321438
  • PR: #8754CNTRLPLANE-2916: restore conditional deletion of openshift-ingress NetworkPolicy
  • Author: csrwng
  • Commit: a156efb

Test Failure Analysis

Error

codecov/project: 41.79% (-0.04%) compared to b228747
Patch coverage is 55.55% with 8 lines in your changes missing coverage.

Summary

The codecov/project check failed because the PR reduced overall project test coverage by 0.04% (from 41.83% to 41.79%). The new reconcileIngressNetworkPolicy method in network_policies.go has only 55.55% patch coverage — 8 of 18 changed lines are not exercised by unit tests. These uncovered lines are error-return paths (fmt.Errorf lines) and partial branch conditions in the new method. Codecov's default behavior (no explicit threshold configured in codecov.yml) is to fail when project coverage decreases relative to the base branch. Notably, codecov/patch passed, meaning the patch-level threshold is satisfied — only the aggregate project-level check fails. Additionally, the Codecov report is 29 commits behind main, meaning indirect coverage changes from stale baseline comparison may be inflating the delta.

Root Cause

The PR refactored the openshift-ingress NetworkPolicy reconciliation from an unconditional createOrUpdate into a new method reconcileIngressNetworkPolicy that conditionally creates or deletes the policy based on netutil.LabelHCPRoutes(hcp). This introduced two new code paths:

  1. Create path (when !netutil.LabelHCPRoutes(hcp) is true): calls createOrUpdate — the happy path is covered, but the err != nil error-return branch is not.
  2. Delete path (the else branch): calls k8sutil.DeleteIfNeeded — the happy path is covered by tests with expectDeleted: true, but the err != nil error-return branch is not.

The 8 uncovered lines break down as:

  • 5 missing lines: The two return fmt.Errorf(...) error paths (lines ~111 and ~115), the function signature, and branch entry points that are only partially reached.
  • 3 partial lines: The if !netutil.LabelHCPRoutes(hcp) condition and the two if err != nil checks — both branches of the condition are tested (some test cases set expectCreated, others expectDeleted), but the error branches within each path are never triggered because the fakeClient and trackingCreateOrUpdate wrapper never return errors.

The tests are otherwise well-written and thorough — they cover 10 platform/access-mode combinations across AWS, GCP, IBMCloud, Agent, and KubeVirt. The gap is specifically in error injection: no test case forces createOrUpdate or k8sutil.DeleteIfNeeded to fail.

The aggregate project coverage dropped -0.04% due to these 8 uncovered lines plus indirect coverage drift in 3 other files (the Codecov baseline is 29 commits stale against main).

Recommendations
  1. This failure is non-blocking and likely informational. The codecov/project check is not typically a required merge gate in OpenShift repos. The codecov/patch check passed. If the team confirms codecov/project is not required, this can be safely ignored.

  2. To fix the coverage gap (optional): Add 1-2 test cases that inject errors to cover the error-return paths:

    • Add a test where createOrUpdate returns an error (e.g., by wrapping trackingCreateOrUpdate to return an error for the openshift-ingress policy name) and verify the "failed to reconcile ingress network policy" error is returned.
    • Add a test where the fake client's Delete method is rigged to fail (e.g., using a fake.ClientBuilder interceptor) to cover the "failed to delete ingress network policy" error path.
  3. To address the stale baseline: Rebase the PR onto current main to eliminate the "29 commits behind" staleness. This may reduce or eliminate the indirect coverage changes that contribute to the -0.04% delta.

  4. Long-term: Consider adding a coverage.status.project.default.threshold in codecov.yml (e.g., 0.1%) to allow minor coverage fluctuations without failing the check, since error-return paths in Go are routinely untested.

Evidence
Evidence Detail
Check name codecov/project (GitHub Actions check run, ID 82204321438)
Conclusion failure
Project coverage 41.79% (down from 41.83% on base b228747)
Coverage delta -0.04%
Patch coverage 55.55% (10 of 18 lines covered)
Uncovered lines 8 lines (5 missing + 3 partial) in network_policies.go
File coverage network_policies.go: 76.83% (down from 77.19%, -0.36%)
Uncovered code Error-return paths in reconcileIngressNetworkPolicy: fmt.Errorf("failed to reconcile...") and fmt.Errorf("failed to delete...")
Baseline staleness Codecov report is 29 commits behind main
codecov/patch status ✅ Passed
Codecov config No explicit coverage.status.project threshold in codecov.yml — uses default (no decrease allowed)
Indirect changes 3 files with indirect coverage changes contributing to -33 hits overall

@csrwng

csrwng commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

/override codecov/project
/verified later @csrwng

@openshift-ci

openshift-ci Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

@csrwng: Overrode contexts on behalf of csrwng: codecov/project

Details

In response to this:

/override codecov/project
/verified later @csrwng

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-robot openshift-ci-robot added verified-later verified Signifies that the PR passed pre-merge verification criteria labels Jun 24, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@csrwng: This PR has been marked to be verified later by @csrwng.

Details

In response to this:

/override codecov/project
/verified later @csrwng

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

openshift-ci Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

@csrwng: 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.

@openshift-merge-bot
openshift-merge-bot Bot merged commit 49cdfcf into openshift:main Jun 24, 2026
41 of 42 checks passed
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. area/hypershift-operator Indicates the PR includes changes for the hypershift operator and API - outside an OCP release 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 verified-later

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants