Skip to content

DNM: test for Grout freestyle configuration - #305

Open
zeeke wants to merge 60 commits into
openshift-kni:mainfrom
zeeke:ds/grout-freestyle
Open

DNM: test for Grout freestyle configuration#305
zeeke wants to merge 60 commits into
openshift-kni:mainfrom
zeeke:ds/grout-freestyle

Conversation

@zeeke

@zeeke zeeke commented Jun 10, 2026

Copy link
Copy Markdown
Member

do not merge
This PR is intended to create a sandbox version of the perouter where the grout commands are not executed.
This way, we can deploy an openperouter controller/router, apply the Underlay/L2VNI/L3VNI/... resources so that the FRR configuration is applied, then we can manually issue grcli ... commands to adjust the scenario.

The goal is to have an environment to speed up the test/dev cycle.

Operator image is available at the pullspec

quay.io/redhat-user-workloads/telco-5g-tenant/openperouter-operator-edge-5-0:pr-305

dependabot Bot and others added 12 commits May 18, 2026 08:23
Bumps [github.com/apparentlymart/go-cidr](https://github.com/apparentlymart/go-cidr) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/apparentlymart/go-cidr/releases)
- [Commits](apparentlymart/go-cidr@v1.1.0...v1.1.1)

---
updated-dependencies:
- dependency-name: github.com/apparentlymart/go-cidr
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github.com/open-policy-agent/cert-controller](https://github.com/open-policy-agent/cert-controller) from 0.13.0 to 0.16.0.
- [Release notes](https://github.com/open-policy-agent/cert-controller/releases)
- [Commits](open-policy-agent/cert-controller@v0.13.0...v0.16.0)

---
updated-dependencies:
- dependency-name: github.com/open-policy-agent/cert-controller
  dependency-version: 0.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Allow L2VNIs to operate without a VRF as pure L2 east-west overlays.

- Skip VRF name validation and subnet overlap checks for disconnected
  L2VNIs (those without spec.vrf)
- Split createBridge into create + ensureBridgeMaster so disconnected
  L2VNIs get a standalone bridge with no VRF enslavement
- Skip VRF creation in setupVNI when VRF is empty
- Remove the VRFName() method; replace its last caller in
  frr_conversion.go with a direct *l2vni.Spec.VRF dereference
- Extract convertL2VNI helper from APItoHostConfig

Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Ram Lavi <ralavi@redhat.com>
Verify that two pods on a disconnected L2VNI (no VRF) can reach each
other over L2.

Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Ram Lavi <ralavi@redhat.com>
Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Ram Lavi <ralavi@redhat.com>
Replace the custom "lound" dummy interface with the namespace's built-in
loopback interface to carry the VTEP IP address. Instead of creating and
deleting a separate dummy device, the underlay now sets lo to UP and
assigns/clears IP addresses on it directly. This simplifies the underlay
setup, and avoids silly mistakes such as not setting `lo` to up (which
is required for FRR's route import for VRFs).

Reported-at: openperouter#466
Signed-off-by: Andreas Karis <ak.karis@gmail.com>
Replace lound dummy interface with namespace loopback (lo) for VTEP IP
Align EVPNConfig with RFEs 316 and 341.

Rename `EVPNConfig` to `TunnelEndpointConfig` and the field
from `evpn` to `tunnelEndpoint`. Replace `VTEPCIDR *string` with
`CIDRs []string`.

RFE: openperouter#341
RFE: openperouter#316
Signed-off-by: Andreas Karis <ak.karis@gmail.com>
API: Rename `EVPNConfig` to `TunnelEndpointConfig`
The IPFamily field for passthrough LocalNeighborV4/V6 and L3VNI
LocalNeighbor is never set by production code. For passthrough,
the underlay address family already has a one-to-one mapping to
the BGP address family (LocalNeighborV4 -> AF IPv4, LocalNeighborV6
-> AF IPv6), so the neighborenableipfamily template invocation is
a) redundant and b) its logic is actually never executed.

Remove the neighborenableipfamily template calls from
local_passthrough.tmpl and drop the IPFamily field from tests to
match production behavior. Adjust testdata accordingly.

Fixes openperouter#473

Signed-off-by: Andreas Karis <ak.karis@gmail.com>
Signed-off-by: Andreas Karis <ak.karis@gmail.com>
@openshift-ci
openshift-ci Bot requested review from fedepaol and oribon June 10, 2026 15:27
@openshift-ci

openshift-ci Bot commented Jun 10, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: zeeke

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 Jun 10, 2026
andreaskaris and others added 3 commits June 10, 2026 23:15
Log the error code and STDOUT on failure.

Signed-off-by: Andreas Karis <ak.karis@gmail.com>
Assisted-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Enrique Llorente <ellorent@redhat.com>
…flector

enhancement: internal iBGP route reflector on control plane nodes
@zeeke
zeeke force-pushed the ds/grout-freestyle branch from 0bf7593 to b81b860 Compare June 11, 2026 16:08
Proposes extending OpenPERouter API to support L3VPN over Segment
Routing IPv6 (SRv6). The proposal adds ISIS and SRV6 configuration
fields to the Underlay CRD and introduces a new L3VPN Custom Resource
Definition for managing VPN instances across Kubernetes nodes.

Signed-off-by: Andreas Karis <ak.karis@gmail.com>
@zeeke

zeeke commented Jun 12, 2026

Copy link
Copy Markdown
Member Author

/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 12, 2026
@zeeke
zeeke force-pushed the ds/grout-freestyle branch from b81b860 to 3b2d2e7 Compare June 12, 2026 13:38
zeeke and others added 2 commits June 12, 2026 16:25
This enhancement adds github.com/DPDK/grout as an optional,
DPDK-accelerated data plane that runs alongside FRR as a sidecar container.

Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
@zeeke
zeeke force-pushed the ds/grout-freestyle branch from 3b2d2e7 to b86af82 Compare June 15, 2026 10:02
The check_veths process monitors netlink events and recreates veth
pairs when they are deleted. If it is still running when clean.sh
destroys the containerlab topology, the namespace teardown fires
RTM_DELLINK events that cause check_veths to recreate interfaces
that the script is about to clean up.

Move the kill to the beginning of clean.sh so the process is stopped
before any teardown begins.

Signed-off-by: yahlifried <yfriedla@redhat.com>
The test target requires the kind node image to exist. Without this
dependency, make test fails on a fresh checkout where the image has
not been built yet.

Signed-off-by: yahlifried <yfriedla@redhat.com>
Source common.sh and use KIND_COMMAND, CONTAINER_ENGINE, and
CONTAINER_ENGINE_CLI instead of literal 'kind' and 'docker' so
the dev environment can run with alternative container engines
such as Podman.

Signed-off-by: yahlifried <yfriedla@redhat.com>
fedepaol and others added 20 commits June 16, 2026 18:02
fix(vrf): add unreachable routes to prevent VRF escape
L2VNIs do not have route targets (exportRTs and importRTs are always
nil), so the ValidateRouteTargets call was a harmless no-op. Remove it
to avoid confusion.

Closes: openperouter#475

Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Ram Lavi <ralavi@redhat.com>
…Targets_l2vni

fix(validation): remove ValidateRouteTargets from validateL2VNI
Bump to 0.36.2 and go 1.26.4

Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
Assisted-by: Claude <noreply@anthropic.com>
Bump the go version and k8s api version
operator-sdk regenerates the createdAt annotation with the current
timestamp on every `make bundle` run, causing spurious diffs and
merge conflicts. Restore the committed timestamp after generation
so only real content changes produce a diff, and remove the
workarounds in the Makefile and CI that were hiding the problem.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Federico Paolinelli <fpaoline@redhat.com>
Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
When an FRR daemon such as zebra crashes in a way that watchfrr cannot
recover by itself, the FRR container keeps running but remains in a
broken state. Add an HTTP liveness probe to the FRR container that
queries the reloader's /healthz endpoint (port 9080) so that
Kubernetes detects the persistent failure and restarts the pod,
recovering all FRR daemons.

Fixes openperouter#454

Signed-off-by: Andreas Karis <ak.karis@gmail.com>
Co-authored-by: Federico Paolinelli <fpaoline@redhat.com>
cleanup: stop updating CSV createdAt timestamp
…odules/e2etests/github.com/apparentlymart/go-cidr-1.1.1

build(deps): bump github.com/apparentlymart/go-cidr from 1.1.0 to 1.1.1 in /e2etests
…odules/github.com/open-policy-agent/cert-controller-0.16.0

build(deps): bump github.com/open-policy-agent/cert-controller from 0.13.0 to 0.16.0
Add liveness probe to FRR container to detect unrecoverable daemon failures
Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
When grout datapath is enabled, no L3VNI and L2VNI
resources can be admitted, as these scenarios are not
supported.

Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
@zeeke
zeeke force-pushed the ds/grout-freestyle branch 2 times, most recently from 0f13c20 to 53a8fe6 Compare June 17, 2026 21:34
@zeeke
zeeke force-pushed the ds/grout-freestyle branch from 53a8fe6 to 595a842 Compare June 18, 2026 08:12
Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 9, 2026
@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown

PR needs rebase.

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.

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. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants