Skip to content

[DNM] Configure ovnkube-node and ovn-ipsec for IPsec Child SA metric#3036

Open
pperiyasamy wants to merge 2 commits into
openshift:masterfrom
pperiyasamy:ipsec_child_sa_metric
Open

[DNM] Configure ovnkube-node and ovn-ipsec for IPsec Child SA metric#3036
pperiyasamy wants to merge 2 commits into
openshift:masterfrom
pperiyasamy:ipsec_child_sa_metric

Conversation

@pperiyasamy

@pperiyasamy pperiyasamy commented Jun 22, 2026

Copy link
Copy Markdown
Member

cc @SachinNinganure

Summary by CodeRabbit

  • New Features
    • Added support for enabling IPsec in OVN-Kubernetes deployments
    • Configured required system paths and volumes for IPsec daemon operation in both managed and self-hosted cluster environments

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Ignore keyword(s) in the title.

⛔ Ignored keywords (2)
  • WIP
  • DNM

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: dfd2e0f8-4ce2-4cea-832b-095ff191248b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

The PR adds IPsec enablement to OVN-Kubernetes node components: the startup script conditionally passes --enable-ipsec to the ovnkube binary, and the /var/run/pluto host directory is mounted into the ovnkube-controller container (managed and self-hosted manifests) and the ovn-ipsec container (containerized manifest), all gated on .OVNIPsecEnable. The PR also removes obsolete /usr/sbin and /usr/libexec mounts from the ipsec-host DaemonSet.

Changes

OVN IPsec enablement across node components

Layer / File(s) Summary
--enable-ipsec CLI flag in startup script
bindata/network/ovn-kubernetes/common/008-script-lib.yaml
Initializes ipsec_enable_flag as empty, sets it to --enable-ipsec when .OVNIPsecEnable is true, and appends ${ipsec_enable_flag} to the ovnkube exec argument list.
Pluto volume mount in containerized ipsec container
bindata/network/ovn-kubernetes/common/ipsec-containerized.yaml
Adds a volumeMount for /var/run/pluto to the ovn-ipsec container and defines the corresponding host-var-run-pluto hostPath volume with DirectoryOrCreate type.
Pluto volume mount in managed ovnkube-controller
bindata/network/ovn-kubernetes/managed/ovnkube-node.yaml
Under .OVNIPsecEnable condition, adds a read-only volumeMount for /var/run/pluto to the ovnkube-controller container and defines the host-var-run-pluto hostPath volume in the pod spec.
Pluto volume mount in self-hosted ovnkube-controller
bindata/network/ovn-kubernetes/self-hosted/ovnkube-node.yaml
Under .OVNIPsecEnable condition, adds a read-only volumeMount for /var/run/pluto to the ovnkube-controller container and defines the host-var-run-pluto hostPath volume in the pod spec.
Remove unused sbin and libexec mounts from ipsec-host
bindata/network/ovn-kubernetes/common/ipsec-host.yaml
Removes the /usr/sbin and /usr/libexec host directory mounts from the ovn-ipsec container volumeMounts and removes the corresponding hostPath volume definitions from the DaemonSet spec.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes


Important

Pre-merge checks failed

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

❌ Failed checks (1 error)

Check name Status Explanation Resolution
No-Sensitive-Data-In-Logs ❌ Error The bash scripts (ipsec-containerized.yaml, ipsec-host.yaml) have 'set -x' enabled, which logs all shell commands. They execute 'openssl req' commands with CN=${cn} where cn is the Kubernetes node'... Disable command tracing for sections that handle internal hostnames, or exclude CN from logged commands by redirecting output or using set +x around sensitive operations.
✅ Passed checks (14 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main changes involving IPsec configuration for ovnkube-node and ovn-ipsec, though it is marked [DNM] indicating work-in-progress status.
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 Check is not applicable: PR modifies only YAML Kubernetes manifests, not Ginkgo test files or any Go test code.
Test Structure And Quality ✅ Passed This PR contains only YAML configuration file changes for IPsec in OVN-Kubernetes; no Ginkgo test files are modified, making the test code quality check not applicable.
Microshift Test Compatibility ✅ Passed No Ginkgo e2e tests are added in this PR; changes are YAML manifests and scripts for IPsec configuration. MicroShift test compatibility check does not apply.
Single Node Openshift (Sno) Test Compatibility ✅ Passed This PR contains only infrastructure/deployment manifest changes (YAML files) with no Ginkgo e2e tests added, so the SNO compatibility check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed PR changes only add conditional IPsec volume mounts to DaemonSets. No problematic scheduling constraints (anti-affinity with maxUnavailable:0, topology spread constraints, control-plane-targeting s...
Ote Binary Stdout Contract ✅ Passed PR modifies only YAML configuration files in bindata/, not Go source code. OTE stdout contract check applies to Go code execution in binaries, not YAML configuration data.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests are present in this PR. All changes are YAML configuration files for OVN-Kubernetes and IPsec manifests, not test code.
No-Weak-Crypto ✅ Passed PR contains only Kubernetes manifests and shell script configs for IPsec setup; no weak crypto algorithms, custom crypto implementations, or timing-sensitive comparisons detected.
Container-Privileges ✅ Passed PR adds IPsec volume mounts and daemon configurations with pre-existing, justified privileged: true, hostPID, hostNetwork settings for encryption/tunneling. No new privilege escalations, SYS_ADMIN,...
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci openshift-ci Bot requested review from mattedallo and miheer June 22, 2026 08:22
@openshift-ci

openshift-ci Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: pperiyasamy
Once this PR has been reviewed and has the lgtm label, please assign kyrtapz 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

@pperiyasamy

Copy link
Copy Markdown
Member Author

/testwith openshift/cluster-network-operator/master/e2e-ovn-ipsec-step-registry openshift/ovn-kubernetes#3259

Signed-off-by: Periyasamy Palanisamy <pepalani@redhat.com>
Signed-off-by: Periyasamy Palanisamy <pepalani@redhat.com>
@pperiyasamy pperiyasamy force-pushed the ipsec_child_sa_metric branch from 4227e6c to e56f3b8 Compare July 6, 2026 08:41
@openshift-ci

openshift-ci Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

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

Test name Commit Details Required Rerun command
ci/prow/5.0-upgrade-from-stable-4.22-e2e-azure-ovn-upgrade e56f3b8 link false /test 5.0-upgrade-from-stable-4.22-e2e-azure-ovn-upgrade
ci/prow/e2e-metal-ipi-ovn-dualstack-bgp-local-gw e56f3b8 link true /test e2e-metal-ipi-ovn-dualstack-bgp-local-gw
ci/prow/e2e-aws-ovn-upgrade e56f3b8 link true /test e2e-aws-ovn-upgrade
ci/prow/5.0-upgrade-from-stable-4.22-e2e-aws-ovn-upgrade e56f3b8 link false /test 5.0-upgrade-from-stable-4.22-e2e-aws-ovn-upgrade
ci/prow/e2e-aws-ovn-rhcos10-techpreview e56f3b8 link false /test e2e-aws-ovn-rhcos10-techpreview
ci/prow/e2e-azure-ovn-upgrade e56f3b8 link true /test e2e-azure-ovn-upgrade
ci/prow/e2e-metal-ipi-ovn-ipv6-ipsec e56f3b8 link true /test e2e-metal-ipi-ovn-ipv6-ipsec
ci/prow/e2e-aws-ovn-fdp-qe e56f3b8 link true /test e2e-aws-ovn-fdp-qe
ci/prow/e2e-gcp-ovn e56f3b8 link true /test e2e-gcp-ovn
ci/prow/e2e-aws-ovn-upgrade-ipsec e56f3b8 link true /test e2e-aws-ovn-upgrade-ipsec
ci/prow/e2e-ovn-ipsec-step-registry e56f3b8 link true /test e2e-ovn-ipsec-step-registry

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.

SachinNinganure pushed a commit to SachinNinganure/release that referenced this pull request Jul 7, 2026
Created custom test suite for validating IPsec Child SA state metrics from
ovn-kubernetes PR openshift#3259 and CNO PR openshift#3036.

Test: ipsec-metrics-250nodes
- Scale to 250 worker nodes (m5.xlarge)
- Run control-plane tests
- Run data-path tests
- Run IPsec metrics validation:
  * Verify ovnkube_controller_ipsec_tunnel_ike_child_sa_state metric exists
  * Check metric labels (node, remote_ip, local_ip)
  * Validate IPsec tunnel states (INSTALLED, REKEYED, etc)
  * Run 250×250 pod-to-pod connectivity matrix test

ConfigMap Integration:
- Test script reads registry URL from ConfigMap (ipsec-registry-config in ci namespace)
- No config file edits needed - just create ConfigMap and trigger test
- Helper script: ~/Devel/ipsec-2025/set-registry-url.sh <registry-url>

Workflow:
- openshift-qe-installer-aws-ovn-ipsec (cluster + infra setup)
- openshift-qe-workers-scale (scales to 250 nodes)
- openshift-qe-control-plane (control plane validation)
- openshift-qe-data-path-tests (network/ingress tests)
- openshift-qe-ipsec-metrics-validation (custom IPsec validation)

Trigger: /test ipsec-metrics-250nodes

Future: 500-node test commented out, will enable after 250-node is stable

Related:
- openshift/ovn-kubernetes#3259
- openshift/cluster-network-operator#3036
- CORENET-5852
SachinNinganure pushed a commit to SachinNinganure/release that referenced this pull request Jul 8, 2026
Created custom test suite for validating IPsec Child SA state metrics from
ovn-kubernetes PR openshift#3259 and CNO PR openshift#3036.

Test: ipsec-metrics-250nodes
- Scale to 250 worker nodes (m5.xlarge)
- Run control-plane tests
- Run data-path tests
- Run IPsec metrics validation:
  * Verify ovnkube_controller_ipsec_tunnel_ike_child_sa_state metric exists
  * Check metric labels (node, remote_ip, local_ip)
  * Validate IPsec tunnel states (INSTALLED, REKEYED, etc)
  * Run 250×250 pod-to-pod connectivity matrix test

ConfigMap Integration:
- Test script reads registry URL from ConfigMap (ipsec-registry-config in ci namespace)
- No config file edits needed - just create ConfigMap and trigger test
- Helper script: ~/Devel/ipsec-2025/set-registry-url.sh <registry-url>

Workflow:
- openshift-qe-installer-aws-ovn-ipsec (cluster + infra setup)
- openshift-qe-workers-scale (scales to 250 nodes)
- openshift-qe-control-plane (control plane validation)
- openshift-qe-data-path-tests (network/ingress tests)
- openshift-qe-ipsec-metrics-validation (custom IPsec validation)

Trigger: /test ipsec-metrics-250nodes

Future: 500-node test commented out, will enable after 250-node is stable

Related:
- openshift/ovn-kubernetes#3259
- openshift/cluster-network-operator#3036
- CORENET-5852
SachinNinganure pushed a commit to SachinNinganure/release that referenced this pull request Jul 8, 2026
Registry: registry.build07.ci.openshift.org/ci-ln-kh2v56k/release:latest

This commit sets CUSTOM_OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE to test
the IPsec Child SA state metric from:
- openshift/ovn-kubernetes#3259
- openshift/cluster-network-operator#3036
SachinNinganure pushed a commit to SachinNinganure/release that referenced this pull request Jul 9, 2026
Created custom test suite for validating IPsec Child SA state metrics from
ovn-kubernetes PR openshift#3259 and CNO PR openshift#3036.

Test: ipsec-metrics-250nodes
- Scale to 250 worker nodes (m5.xlarge)
- Run control-plane tests
- Run data-path tests
- Run IPsec metrics validation:
  * Verify ovnkube_controller_ipsec_tunnel_ike_child_sa_state metric exists
  * Check metric labels (node, remote_ip, local_ip)
  * Validate IPsec tunnel states (INSTALLED, REKEYED, etc)
  * Run 250×250 pod-to-pod connectivity matrix test

ConfigMap Integration:
- Test script reads registry URL from ConfigMap (ipsec-registry-config in ci namespace)
- No config file edits needed - just create ConfigMap and trigger test
- Helper script: ~/Devel/ipsec-2025/set-registry-url.sh <registry-url>

Workflow:
- openshift-qe-installer-aws-ovn-ipsec (cluster + infra setup)
- openshift-qe-workers-scale (scales to 250 nodes)
- openshift-qe-control-plane (control plane validation)
- openshift-qe-data-path-tests (network/ingress tests)
- openshift-qe-ipsec-metrics-validation (custom IPsec validation)

Trigger: /test ipsec-metrics-250nodes

Future: 500-node test commented out, will enable after 250-node is stable

Related:
- openshift/ovn-kubernetes#3259
- openshift/cluster-network-operator#3036
- CORENET-5852
SachinNinganure pushed a commit to SachinNinganure/release that referenced this pull request Jul 9, 2026
Registry: registry.build07.ci.openshift.org/ci-ln-kh2v56k/release:latest

This commit sets CUSTOM_OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE to test
the IPsec Child SA state metric from:
- openshift/ovn-kubernetes#3259
- openshift/cluster-network-operator#3036
SachinNinganure pushed a commit to SachinNinganure/release that referenced this pull request Jul 10, 2026
Created custom test suite for validating IPsec Child SA state metrics from
ovn-kubernetes PR openshift#3259 and CNO PR openshift#3036.

Test: ipsec-metrics-250nodes
- Scale to 250 worker nodes (m5.xlarge)
- Run control-plane tests
- Run data-path tests
- Run IPsec metrics validation:
  * Verify ovnkube_controller_ipsec_tunnel_ike_child_sa_state metric exists
  * Check metric labels (node, remote_ip, local_ip)
  * Validate IPsec tunnel states (INSTALLED, REKEYED, etc)
  * Run 250×250 pod-to-pod connectivity matrix test

ConfigMap Integration:
- Test script reads registry URL from ConfigMap (ipsec-registry-config in ci namespace)
- No config file edits needed - just create ConfigMap and trigger test
- Helper script: ~/Devel/ipsec-2025/set-registry-url.sh <registry-url>

Workflow:
- openshift-qe-installer-aws-ovn-ipsec (cluster + infra setup)
- openshift-qe-workers-scale (scales to 250 nodes)
- openshift-qe-control-plane (control plane validation)
- openshift-qe-data-path-tests (network/ingress tests)
- openshift-qe-ipsec-metrics-validation (custom IPsec validation)

Trigger: /test ipsec-metrics-250nodes

Future: 500-node test commented out, will enable after 250-node is stable

Related:
- openshift/ovn-kubernetes#3259
- openshift/cluster-network-operator#3036
- CORENET-5852
SachinNinganure pushed a commit to SachinNinganure/release that referenced this pull request Jul 10, 2026
Registry: registry.build07.ci.openshift.org/ci-ln-kh2v56k/release:latest

This commit sets CUSTOM_OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE to test
the IPsec Child SA state metric from:
- openshift/ovn-kubernetes#3259
- openshift/cluster-network-operator#3036
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant