Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
809ad11
Use `nft destroy` to simplify the UDN cleanup code
danwinship Jan 19, 2026
1d5e616
Improve nodenft.MatchNFTRules behavior
danwinship Dec 5, 2024
0974f2e
Unify the metrics servers used by ovnkube-node and OVS/OVN metrics
Jan 27, 2026
6ddb8b7
Handle stale PCI address in mgmt port Init for DPU Host case
ykulazhenkov Feb 10, 2026
e527aa8
Adds DPU blog
trozet Feb 11, 2026
0b5af87
Merge pull request #5956 from trozet/dpu-blog
trozet Feb 12, 2026
2edd430
fix kind load docker-image content digest not found
Feb 13, 2026
8dffca2
Merge pull request #5968 from l8huang/kind-vteps-ci
kyrtapz Feb 13, 2026
31ee5d7
Add SAIC Motor to ADOPTERS
fangyuchen86 Feb 13, 2026
6f78d1d
Handle Docker 29+ "invalid IP" response for IP addresses
kyrtapz Feb 13, 2026
e95dc86
Make node gateway Dynamic UDN aware
trozet Feb 5, 2026
e624ec9
Fix GetActiveNetworkForNamespace usage for NetPol
trozet Feb 5, 2026
b79e6f9
Fix Dynamic UDN with services controller
trozet Feb 5, 2026
3ae25d2
Guard GetPrimaryNADForNamespace when netseg not enabled
trozet Feb 5, 2026
f1a65d4
Fix EgressFirewall GetActiveNetworkForNamespace
trozet Feb 6, 2026
9ab81e5
Bring EgressIP inline with NAD Reconciliation
trozet Feb 6, 2026
a114896
E2E: Add integration UDN test
trozet Feb 6, 2026
90e65d6
egressip: force pod assignment reprogram when pod IP changes
trozet Feb 7, 2026
67dfeaf
egressip: trigger immediate retry when UDN pod port cache is populated
trozet Feb 7, 2026
1624049
GetActiveNetworkForNamespace Refactor
trozet Feb 10, 2026
a760e77
Improve EgressFW subnet parsing
trozet Feb 13, 2026
0e44890
EgressIP: Fix crash from mutating node informer object
trozet Feb 9, 2026
3cfbaff
Fix hybrid overlay mutating informer pod object
trozet Feb 11, 2026
b95fc80
Fixes gateway egress IP node update logic
trozet Feb 11, 2026
16480b9
fix issues for adding SAIC Motor to Adopters
fangyuchen86 Feb 14, 2026
3fe75a1
Merge branch 'master' into add-saic-motor-adopter
fangyuchen86 Feb 14, 2026
3444172
Merge pull request #5951 from trozet/coredump_egressip
trozet Feb 14, 2026
1a5c4b6
Merge pull request #5943 from trozet/fix-dudn-startup
trozet Feb 14, 2026
32f5e7c
Fixes Egress IP Tracker UT
trozet Feb 15, 2026
7606fd8
CUDN: cleanup NADs in terminating namespaces without pods
kyrtapz Jan 28, 2026
c2c8e8e
Reduce obj_retry.go log spam
kyrtapz Feb 12, 2026
56f2d8d
Update OVN observability documentation
jotak Feb 16, 2026
777d7bf
Merge pull request #5888 from kyrtapz/cudn_nad_cleanup
kyrtapz Feb 16, 2026
8f35d00
Merge pull request #5964 from kyrtapz/log_spam
kyrtapz Feb 17, 2026
447b8d1
Mention -add-ovs-collector to start sampling
jotak Feb 17, 2026
db0d055
Merge pull request #5982 from trozet/issue-5953
trozet Feb 17, 2026
d9888a1
fix live migration link navigation
Feb 18, 2026
c656ee6
Merge pull request #5991 from ayushich76/fix-live-migration-link-clean
trozet Feb 18, 2026
cda27a6
Merge pull request #5972 from fangyuchen86/add-saic-motor-adopter
trozet Feb 18, 2026
32cbabc
Speed up BGP isolation e2e tests
kyrtapz Feb 12, 2026
24efc26
Reuse test setup across BGP isolation table entries
kyrtapz Feb 12, 2026
d1daa85
E2E: Fixes flaking ANP ACL logging
trozet Feb 18, 2026
9caab0e
cleanup logical entities for stale primary networks
cathy-zhou Feb 6, 2026
005e15b
add unit tests for stale primary UDN cleanup
cathy-zhou Feb 7, 2026
6f5d79a
Merge pull request #5994 from trozet/fix_e2e_anp_test
trozet Feb 18, 2026
9137553
Reduce memory allocation by OpenFlow Manager
trozet Feb 15, 2026
2d3e48b
Adds benchmark test for OpenFlow stream reader
trozet Feb 15, 2026
2b1f4a8
e2e: clean up stale networks before VRF-Lite BGP tests
booxter Feb 4, 2026
9185b71
Merge pull request #5931 from booxter/e2e-clean-up-old-networks-if-cl…
trozet Feb 19, 2026
3b98dae
Fixes race with egress ip + node ip mgr
trozet Feb 13, 2026
7feb123
Continue trying to assign egressIP on conflict
trozet Feb 13, 2026
fd27015
Minimize ACLs by combining ipBlocks into single ACL
pperiyasamy Feb 11, 2026
843ceff
Trivial E2E egress IP fixes
trozet Feb 18, 2026
75d2f8e
e2e: fix static IP collision in ValidatingAdmissionPolicy test
booxter Feb 19, 2026
0231350
Merge pull request #5981 from trozet/openflow_mgr_scale
trozet Feb 19, 2026
625f232
Merge pull request #5944 from cathy-zhou/cleanup
trozet Feb 19, 2026
6abe05d
Merge pull request #5998 from booxter/e2e-fix-ip-allocated-already-error
trozet Feb 19, 2026
6fa4173
Merge pull request #5857 from danwinship/nftables-unit-test-debugging
trozet Feb 20, 2026
92a6268
Merge pull request #5959 from pperiyasamy/reduce-acls-np-ipblocks
trozet Feb 20, 2026
1ae04e5
Merge pull request #5973 from trozet/fix-egress-ip-node-race
trozet Feb 20, 2026
2728e94
Merge pull request #5858 from danwinship/nftables-destroy
npinaeva Feb 20, 2026
58c5dc9
Adds support for bypassing network policy for ICMP/ICMPv6
trozet May 13, 2025
25a4e05
docs: Add section on how to debug coredumps from non-go binaries
booxter Feb 20, 2026
a35227a
Merge pull request #6003 from booxter/debug-gdb
trozet Feb 20, 2026
bcb7ec9
Allow emitting metrics on a single endpoint
Jan 28, 2026
c270210
Merge pull request #5884 from l8huang/metrics-one-ep
npinaeva Feb 23, 2026
8a2ef28
Merge pull request #5992 from trozet/fix_e2e_egressip_frag
trozet Feb 23, 2026
6b86da4
Merge pull request #5986 from jotak/ovnkobserv-doc
trozet Feb 23, 2026
63468cc
Adds kind.sh and helm support for --allow-icmp-network-policy
trozet May 14, 2025
69afd47
Adds E2E testing for ICMP NP bypass
trozet Jan 30, 2026
ca967b8
Adds unit test for stale ICMP network policy ACL
trozet Feb 23, 2026
d033767
Add Nutanix to adopters page
Aminiok Feb 24, 2026
158c9c2
Merge pull request #6008 from Aminiok/patch-2
trozet Feb 24, 2026
533f66e
Fix UDN network controller deadlock due to stopChan nil race
trozet Feb 23, 2026
9d7b70f
docs: user-defined-networks: Fix markdown syntax
tonejito Feb 25, 2026
0b82e64
docs: user-defined-network: Fix 'l2-UDN' image link
tonejito Feb 25, 2026
6bb7849
Merge branch 'master' into pr-drop-stale-mgmt-port
ykulazhenkov Feb 25, 2026
8c2c758
Merge pull request #6005 from trozet/fix_stop_channel_race
npinaeva Feb 25, 2026
3c67139
(B)ANP conformance: update framework to use retries
npinaeva Feb 25, 2026
15d73b3
Revert "(B)ANP conformance: update framework to use retries"
npinaeva Feb 25, 2026
721400a
(B)ANP conformance: update framework to use retries
npinaeva Feb 25, 2026
b254782
Merge pull request #6015 from tonejito/tonejito-6014-udn-markdown
trozet Feb 25, 2026
7e7538d
Merge pull request #5247 from trozet/allow_global_icmp_netpol
trozet Feb 25, 2026
99107d3
Implements DPU Health Check
trozet Dec 4, 2025
51c6172
Merge pull request #5957 from ykulazhenkov/pr-drop-stale-mgmt-port
trozet Feb 25, 2026
b1e2485
Merge pull request #6018 from npinaeva/conformance-update
tssurya Feb 26, 2026
845456d
Moves OVN-K to CNI 1.1.0
trozet Feb 13, 2026
5576a02
Merge pull request #5777 from trozet/implement_dpu_healthcheck
trozet Feb 26, 2026
314a3ed
Merge remote-tracking branch 'upstream/master' into d/s-merge-02-27-2026
Feb 27, 2026
d92494b
sync test annotations with upstream changes
Feb 27, 2026
eafe465
add ListNetworks() method to openshift infra provider
jluhrsen Feb 27, 2026
0516832
Merge pull request #3011 from jluhrsen/d/s-merge-02-27-2026
openshift-merge-bot[bot] Mar 22, 2026
ec47d40
Merge remote-tracking branch 'origin/release-4.22' into sync-release-…
Mar 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/performance-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,20 @@ jobs:
run: |
sudo ufw disable

- name: Disable containerd image store
# Workaround for https://github.com/kubernetes-sigs/kind/issues/3795
run: |
sudo mkdir -p /etc/docker
docker --version || true
containerd --version || true
[ -s "/etc/docker/daemon.json" ] && {
cat "/etc/docker/daemon.json" | jq '. + {"features":{"containerd-snapshotter": false}}' | sudo tee /etc/docker/daemon.$$
} || {
echo '{"features":{"containerd-snapshotter": false}}' | sudo tee /etc/docker/daemon.$$
}
sudo mv -f /etc/docker/daemon.$$ /etc/docker/daemon.json
sudo systemctl restart docker

- name: Download test-image-pr
uses: actions/download-artifact@v4
with:
Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -355,9 +355,24 @@ jobs:
run: |
sudo ufw disable

- name: Disable containerd image store
# Workaround for https://github.com/kubernetes-sigs/kind/issues/3795
run: |
sudo mkdir -p /etc/docker
docker --version || true
containerd --version || true
[ -s "/etc/docker/daemon.json" ] && {
cat "/etc/docker/daemon.json" | jq '. + {"features":{"containerd-snapshotter": false}}' | sudo tee /etc/docker/daemon.$$
} || {
echo '{"features":{"containerd-snapshotter": false}}' | sudo tee /etc/docker/daemon.$$
}
sudo mv -f /etc/docker/daemon.$$ /etc/docker/daemon.json
sudo systemctl restart docker

- name: Load docker image
run: |
docker load --input ${CI_IMAGE_BASE_TAR} && rm -rf ${CI_IMAGE_BASE_TAR}
docker images || true

- name: kind setup
run: |
Expand Down Expand Up @@ -634,9 +649,24 @@ jobs:
with:
name: test-image-pr

- name: Disable containerd image store
# Workaround for https://github.com/kubernetes-sigs/kind/issues/3795
run: |
sudo mkdir -p /etc/docker
docker --version || true
containerd --version || true
[ -s "/etc/docker/daemon.json" ] && {
cat "/etc/docker/daemon.json" | jq '. + {"features":{"containerd-snapshotter": false}}' | sudo tee /etc/docker/daemon.$$
} || {
echo '{"features":{"containerd-snapshotter": false}}' | sudo tee /etc/docker/daemon.$$
}
sudo mv -f /etc/docker/daemon.$$ /etc/docker/daemon.json
sudo systemctl restart docker

- name: Load docker image
run: |
docker load --input ${CI_IMAGE_PR_TAR} && rm -rf ${CI_IMAGE_PR_TAR}
docker images || true

- name: kind setup
timeout-minutes: 30
Expand Down Expand Up @@ -791,9 +821,25 @@ jobs:
with:
name: test-image-pr

- name: Disable containerd image store
# Workaround for https://github.com/kubernetes-sigs/kind/issues/3795
run: |
sudo mkdir -p /etc/docker
docker --version || true
containerd --version || true
[ -s "/etc/docker/daemon.json" ] && {
cat "/etc/docker/daemon.json" | jq '. + {"features":{"containerd-snapshotter": false}}' | sudo tee /etc/docker/daemon.$$
} || {
echo '{"features":{"containerd-snapshotter": false}}' | sudo tee /etc/docker/daemon.$$
}
sudo mv -f /etc/docker/daemon.$$ /etc/docker/daemon.json
sudo systemctl restart docker

- name: Load docker image
run: |
docker load --input ${CI_IMAGE_PR_TAR} && rm -rf ${CI_IMAGE_PR_TAR}
docker images || true


- name: kind IPv4 setup
run: |
Expand Down
2 changes: 2 additions & 0 deletions ADOPTERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
1. Red Hat, Inc. (Uses OVN-Kubernetes as their default CNI in OpenShift product)
2. NVIDIA (Uses OVN-Kubernetes in their production environments)
3. Internet Initiative Japan Inc. (Uses OVN-Kubernetes in their on-premise Kubernetes platform)
4. SAIC Motor Corp. Ltd (Uses OVN-Kubernetes as a networking solution to build a multi-tenant private cloud)
5. Nutanix (Builds Flow CNI on OVN-Kubernetes, integrated with Nutanix Flow and VPC networking)

## Projects

Expand Down
1 change: 1 addition & 0 deletions contrib/kind-common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ set_common_default_params() {
OVN_ENABLE_DNSNAMERESOLVER=${OVN_ENABLE_DNSNAMERESOLVER:-false}
ENABLE_COREDUMPS=${ENABLE_COREDUMPS:-false}
METRICS_IP=${METRICS_IP:-""}
OVN_ALLOW_ICMP_NETPOL=${OVN_ALLOW_ICMP_NETPOL:-false}
OVN_COMPACT_MODE=${OVN_COMPACT_MODE:-false}
if [ "$OVN_COMPACT_MODE" == true ]; then
KIND_NUM_WORKER=0
Expand Down
5 changes: 5 additions & 0 deletions contrib/kind-helm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ usage() {
echo "-ce | --enable-central [DEPRECATED] Deploy with OVN Central (Legacy Architecture)"
echo "-npz | --nodes-per-zone Specify number of nodes per zone (Default 0, which means global zone; >0 means interconnect zone, where 1 for single-node zone, >1 for multi-node zone). If this value > 1, then (total k8s nodes (workers + 1) / num of nodes per zone) should be zero."
echo "-mps | --multi-pod-subnet Use multiple subnets for the default cluster network"
echo "--allow-icmp-netpol Allows ICMP and ICMPv6 traffic globally, regardless of network policy rules"
echo ""

}
Expand Down Expand Up @@ -196,6 +197,8 @@ parse_args() {
OVN_ENABLE_INTERCONNECT=false
CENTRAL_ARG_PROVIDED=true
;;
--allow-icmp-netpol ) OVN_ALLOW_ICMP_NETPOL=true
;;
-ic | --enable-interconnect ) OVN_ENABLE_INTERCONNECT=true
IC_ARG_PROVIDED=true
;;
Expand Down Expand Up @@ -264,6 +267,7 @@ print_params() {
echo "KIND_NUM_WORKER = $KIND_NUM_WORKER"
echo "OVN_ENABLE_DNSNAMERESOLVER= $OVN_ENABLE_DNSNAMERESOLVER"
echo "MULTI_POD_SUBNET= $MULTI_POD_SUBNET"
echo "OVN_ALLOW_ICMP_NETPOL= $OVN_ALLOW_ICMP_NETPOL"
echo "OVN_ENABLE_INTERCONNECT = $OVN_ENABLE_INTERCONNECT"
echo "DYNAMIC_UDN_ALLOCATION = $DYNAMIC_UDN_ALLOCATION"
echo "DYNAMIC_UDN_GRACE_PERIOD = $DYNAMIC_UDN_GRACE_PERIOD"
Expand Down Expand Up @@ -371,6 +375,7 @@ helm install ovn-kubernetes . -f "${value_file}" \
--set global.enableNetworkQos=$(if [ "${OVN_NETWORK_QOS_ENABLE}" == "true" ]; then echo "true"; else echo "false"; fi) \
--set global.enableNoOverlay=$(if [ "${ENABLE_NO_OVERLAY}" == "true" ]; then echo "true"; else echo "false"; fi) \
--set global.enableCoredumps=$(if [ "${ENABLE_COREDUMPS}" == "true" ]; then echo "true"; else echo "false"; fi) \
--set global.allowICMPNetworkPolicy=$(if [ "${OVN_ALLOW_ICMP_NETPOL}" == "true" ]; then echo "true"; else echo "false"; fi) \
${ovnkube_db_options}
EOF
)
Expand Down
7 changes: 6 additions & 1 deletion contrib/kind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ echo "-adv | --advertise-default-network Applies a RouteAdvertisement
echo "-rud | --routed-udn-isolation-disable Disable isolation across BGP-advertised UDNs (sets advertised-udn-isolation-mode=loose). DEFAULT: strict."
echo "-mps | --multi-pod-subnet Use multiple subnets for the default cluster network"
echo "-noe | --no-overlay-enable Enable no overlay"
echo "--allow-icmp-netpol Allows ICMP and ICMPv6 traffic globally, regardless of network policy rules"
echo ""
}

Expand Down Expand Up @@ -377,6 +378,8 @@ parse_args() {
;;
-mps| --multi-pod-subnet ) MULTI_POD_SUBNET=true
;;
--allow-icmp-netpol ) OVN_ALLOW_ICMP_NETPOL=true
;;
-h | --help ) usage
exit
;;
Expand Down Expand Up @@ -481,6 +484,7 @@ print_params() {
echo "OVN_MTU= $OVN_MTU"
echo "OVN_ENABLE_DNSNAMERESOLVER= $OVN_ENABLE_DNSNAMERESOLVER"
echo "MULTI_POD_SUBNET= $MULTI_POD_SUBNET"
echo "OVN_ALLOW_ICMP_NETPOL= $OVN_ALLOW_ICMP_NETPOL"
echo ""
}

Expand Down Expand Up @@ -761,7 +765,8 @@ create_ovn_kube_manifests() {
--network-qos-enable="${OVN_NETWORK_QOS_ENABLE}" \
--mtu="${OVN_MTU}" \
--enable-dnsnameresolver="${OVN_ENABLE_DNSNAMERESOLVER}" \
--enable-observ="${OVN_OBSERV_ENABLE}"
--enable-observ="${OVN_OBSERV_ENABLE}" \
--allow-icmp-netpol="${OVN_ALLOW_ICMP_NETPOL}"
popd
}

Expand Down
15 changes: 15 additions & 0 deletions dist/images/daemonset.sh
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,8 @@ OVN_NETWORK_QOS_ENABLE=
OVN_ENABLE_DNSNAMERESOLVER="false"
OVN_NOHOSTSUBNET_LABEL=""
OVN_DISABLE_REQUESTEDCHASSIS="false"
OVN_ALLOW_ICMP_NETPOL="false"

# IN_UPGRADE is true only if called by upgrade-ovn.sh during the upgrade test,
# it will render only the parts in ovn-setup.yaml related to RBAC permissions.
IN_UPGRADE=
Expand Down Expand Up @@ -402,6 +404,9 @@ while [ "$1" != "" ]; do
--enable-dnsnameresolver)
OVN_ENABLE_DNSNAMERESOLVER=$VALUE
;;
--allow-icmp-netpol)
OVN_ALLOW_ICMP_NETPOL=$VALUE
;;
--enable-observ)
OVN_OBSERV_ENABLE=$VALUE
;;
Expand Down Expand Up @@ -653,6 +658,9 @@ echo "ovn_network_qos_enable: ${ovn_network_qos_enable}"
ovn_enable_dnsnameresolver=${OVN_ENABLE_DNSNAMERESOLVER}
echo "ovn_enable_dnsnameresolver: ${ovn_enable_dnsnameresolver}"

ovn_allow_icmp_netpol=${OVN_ALLOW_ICMP_NETPOL}
echo "ovn_allow_icmp_netpol: ${ovn_allow_icmp_netpol}"

ovn_observ_enable=${OVN_OBSERV_ENABLE}
echo "ovn_observ_enable: ${ovn_observ_enable}"

Expand Down Expand Up @@ -892,6 +900,7 @@ ovn_image=${ovnkube_image} \
ovn_enable_persistent_ips=${ovn_enable_persistent_ips} \
ovn_enable_svc_template_support=${ovn_enable_svc_template_support} \
ovn_enable_dnsnameresolver=${ovn_enable_dnsnameresolver} \
ovn_allow_icmp_netpol=${ovn_allow_icmp_netpol} \
ovn_observ_enable=${ovn_observ_enable} \
ovn_nohostsubnet_label=${ovn_nohostsubnet_label} \
ovn_disable_requestedchassis=${ovn_disable_requestedchassis} \
Expand Down Expand Up @@ -948,6 +957,7 @@ ovn_image=${ovnkube_image} \
ovn_v6_transit_subnet=${ovn_v6_transit_subnet} \
ovn_enable_persistent_ips=${ovn_enable_persistent_ips} \
ovn_enable_dnsnameresolver=${ovn_enable_dnsnameresolver} \
ovn_allow_icmp_netpol=${ovn_allow_icmp_netpol} \
ovn_observ_enable=${ovn_observ_enable} \
enable_coredumps=${enable_coredumps} \
metrics_ip=${metrics_ip} \
Expand Down Expand Up @@ -1056,6 +1066,7 @@ ovn_image=${ovnkube_image} \
ovn_enable_persistent_ips=${ovn_enable_persistent_ips} \
ovn_enable_svc_template_support=${ovn_enable_svc_template_support} \
ovn_enable_dnsnameresolver=${ovn_enable_dnsnameresolver} \
ovn_allow_icmp_netpol=${ovn_allow_icmp_netpol} \
ovn_observ_enable=${ovn_observ_enable} \
enable_coredumps=${enable_coredumps} \
jinjanate ../templates/ovnkube-single-node-zone.yaml.j2 -o ${output_dir}/ovnkube-single-node-zone.yaml
Expand Down Expand Up @@ -1226,6 +1237,7 @@ ovn_image=${ovnkube_image} \
ovn_enable_persistent_ips=${ovn_enable_persistent_ips} \
ovn_enable_svc_template_support=${ovn_enable_svc_template_support} \
ovn_enable_dnsnameresolver=${ovn_enable_dnsnameresolver} \
ovn_allow_icmp_netpol=${ovn_allow_icmp_netpol} \
ovn_observ_enable=${ovn_observ_enable} \
enable_coredumps=${enable_coredumps} \
metrics_ip=${metrics_ip} \
Expand Down Expand Up @@ -1292,18 +1304,21 @@ net_cidr=${net_cidr} svc_cidr=${svc_cidr} \
ovn_enable_interconnect=${ovn_enable_interconnect} \
ovn_enable_ovnkube_identity=${ovn_enable_ovnkube_identity} \
ovn_enable_dnsnameresolver=${ovn_enable_dnsnameresolver} \
ovn_allow_icmp_netpol=${ovn_allow_icmp_netpol} \
jinjanate ../templates/rbac-ovnkube-node.yaml.j2 -o ${output_dir}/rbac-ovnkube-node.yaml

ovn_network_segmentation_enable=${ovn_network_segmentation_enable} \
ovn_pre_conf_udn_addr_enable=${ovn_pre_conf_udn_addr_enable} \
ovn_enable_dnsnameresolver=${ovn_enable_dnsnameresolver} \
ovn_allow_icmp_netpol=${ovn_allow_icmp_netpol} \
ovn_route_advertisements_enable=${ovn_route_advertisements_enable} \
ovn_evpn_enable=${ovn_evpn_enable} \
ovn_advertised_udn_isolation_mode=${ovn_advertised_udn_isolation_mode} \
jinjanate ../templates/rbac-ovnkube-cluster-manager.yaml.j2 -o ${output_dir}/rbac-ovnkube-cluster-manager.yaml

ovn_network_segmentation_enable=${ovn_network_segmentation_enable} \
ovn_enable_dnsnameresolver=${ovn_enable_dnsnameresolver} \
ovn_allow_icmp_netpol=${ovn_allow_icmp_netpol} \
ovn_route_advertisements_enable=${ovn_route_advertisements_enable} \
ovn_pre_conf_udn_addr_enable=${ovn_pre_conf_udn_addr_enable} \
ovn_advertised_udn_isolation_mode=${ovn_advertised_udn_isolation_mode} \
Expand Down
31 changes: 31 additions & 0 deletions dist/images/ovnkube.sh
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ fi
# OVN_NORTHD_BACKOFF_INTERVAL - ovn northd backoff interval in ms (default 300)
# OVN_ENABLE_SVC_TEMPLATE_SUPPORT - enable svc template support
# OVN_ENABLE_DNSNAMERESOLVER - enable dns name resolver support
# OVN_ALLOW_ICMP_NETPOL - allow ICMP and ICMPv6 regardless of network policy
# OVN_OBSERV_ENABLE - enable observability for ovnkube

# The argument to the command is the operation to be performed
Expand Down Expand Up @@ -328,6 +329,8 @@ ovn_enable_svc_template_support=${OVN_ENABLE_SVC_TEMPLATE_SUPPORT:-true}
ovn_network_qos_enable=${OVN_NETWORK_QOS_ENABLE:-false}
# OVN_ENABLE_DNSNAMERESOLVER - enable dns name resolver support
ovn_enable_dnsnameresolver=${OVN_ENABLE_DNSNAMERESOLVER:-false}
# OVN_ALLOW_ICMP_NETPOL - allow ICMP/ICMPv6 with network policy
ovn_allow_icmp_netpol=${OVN_ALLOW_ICMP_NETPOL:-false}
# OVN_OBSERV_ENABLE - enable observability for ovnkube
ovn_observ_enable=${OVN_OBSERV_ENABLE:-false}
# OVN_NOHOSTSUBNET_LABEL - node label indicating nodes managing their own network
Expand Down Expand Up @@ -1501,6 +1504,12 @@ ovn-master() {
fi
echo "ovn_enable_dnsnameresolver_flag=${ovn_enable_dnsnameresolver_flag}"

ovn_allow_icmp_netpol_flag=
if [[ ${ovn_allow_icmp_netpol} == "true" ]]; then
ovn_allow_icmp_netpol_flag="--allow-icmp-network-policy"
fi
echo "ovn_allow_icmp_netpol_flag=${ovn_allow_icmp_netpol_flag}"

/usr/bin/ovnkube --init-master ${K8S_NODE} \
${anp_enabled_flag} \
${disable_forwarding_flag} \
Expand Down Expand Up @@ -1537,6 +1546,7 @@ ovn-master() {
${persistent_ips_enabled_flag} \
${network_qos_enabled_flag} \
${ovn_enable_dnsnameresolver_flag} \
${ovn_allow_icmp_netpol_flag} \
${nohostsubnet_label_option} \
${ovn_stateless_netpol_enable_flag} \
${ovn_disable_requestedchassis_flag} \
Expand Down Expand Up @@ -1844,6 +1854,12 @@ ovnkube-controller() {
fi
echo "ovn_enable_dnsnameresolver_flag=${ovn_enable_dnsnameresolver_flag}"

ovn_allow_icmp_netpol_flag=
if [[ ${ovn_allow_icmp_netpol} == "true" ]]; then
ovn_allow_icmp_netpol_flag="--allow-icmp-network-policy"
fi
echo "ovn_allow_icmp_netpol_flag=${ovn_allow_icmp_netpol_flag}"

ovn_observ_enable_flag=
if [[ ${ovn_observ_enable} == "true" ]]; then
ovn_observ_enable_flag="--enable-observability"
Expand Down Expand Up @@ -1898,6 +1914,7 @@ ovnkube-controller() {
${ovn_enable_dnsnameresolver_flag} \
${dynamic_udn_allocation_flag} \
${dynamic_udn_grace_period} \
${ovn_allow_icmp_netpol_flag} \
--cluster-subnets ${net_cidr} --k8s-service-cidr=${svc_cidr} \
--gateway-mode=${ovn_gateway_mode} \
--host-network-namespace ${ovn_host_network_namespace} \
Expand Down Expand Up @@ -2334,6 +2351,12 @@ ovnkube-controller-with-node() {
fi
echo "ovn_enable_dnsnameresolver_flag=${ovn_enable_dnsnameresolver_flag}"

ovn_allow_icmp_netpol_flag=
if [[ ${ovn_allow_icmp_netpol} == "true" ]]; then
ovn_allow_icmp_netpol_flag="--allow-icmp-network-policy"
fi
echo "ovn_allow_icmp_netpol_flag=${ovn_allow_icmp_netpol_flag}"

ovn_observ_enable_flag=
if [[ ${ovn_observ_enable} == "true" ]]; then
ovn_observ_enable_flag="--enable-observability"
Expand Down Expand Up @@ -2433,6 +2456,7 @@ ovnkube-controller-with-node() {
${ovn_enable_dnsnameresolver_flag} \
${ovn_disable_requestedchassis_flag} \
${cluster_access_opts} \
${ovn_allow_icmp_netpol_flag} \
--cluster-subnets ${net_cidr} --k8s-service-cidr=${svc_cidr} \
--export-ovs-metrics \
--gateway-mode=${ovn_gateway_mode} ${ovn_gateway_opts} \
Expand Down Expand Up @@ -2664,6 +2688,12 @@ ovn-cluster-manager() {
fi
echo "dynamic_udn_grace_period=${dynamic_udn_grace_period}"

ovn_allow_icmp_netpol_flag=
if [[ ${ovn_allow_icmp_netpol} == "true" ]]; then
ovn_allow_icmp_netpol_flag="--allow-icmp-network-policy"
fi
echo "ovn_allow_icmp_netpol_flag=${ovn_allow_icmp_netpol_flag}"

echo "=============== ovn-cluster-manager ========== MASTER ONLY"
/usr/bin/ovnkube --init-cluster-manager ${K8S_NODE} \
${anp_enabled_flag} \
Expand Down Expand Up @@ -2698,6 +2728,7 @@ ovn-cluster-manager() {
${dynamic_udn_allocation_flag} \
${dynamic_udn_grace_period} \
${ovn_enable_dnsnameresolver_flag} \
${ovn_allow_icmp_netpol_flag} \
--gateway-mode=${ovn_gateway_mode} \
--cluster-subnets ${net_cidr} --k8s-service-cidr=${svc_cidr} \
--host-network-namespace ${ovn_host_network_namespace} \
Expand Down
2 changes: 2 additions & 0 deletions dist/templates/ovnkube-control-plane.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,8 @@ spec:
value: "{{ ovn_network_qos_enable }}"
- name: OVN_ENABLE_DNSNAMERESOLVER
value: "{{ ovn_enable_dnsnameresolver }}"
- name: OVN_ALLOW_ICMP_NETPOL
value: "{{ ovn_allow_icmp_netpol }}"
# end of container

volumes:
Expand Down
2 changes: 2 additions & 0 deletions dist/templates/ovnkube-master.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,8 @@ spec:
value: "{{ ovn_network_qos_enable }}"
- name: OVN_ENABLE_DNSNAMERESOLVER
value: "{{ ovn_enable_dnsnameresolver }}"
- name: OVN_ALLOW_ICMP_NETPOL
value: "{{ ovn_allow_icmp_netpol }}"
# end of container

volumes:
Expand Down
2 changes: 2 additions & 0 deletions dist/templates/ovnkube-single-node-zone.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,8 @@ spec:
value: "{{ ovn_network_qos_enable }}"
- name: OVN_ENABLE_DNSNAMERESOLVER
value: "{{ ovn_enable_dnsnameresolver }}"
- name: OVN_ALLOW_ICMP_NETPOL
value: "{{ ovn_allow_icmp_netpol }}"

readinessProbe:
exec:
Expand Down
Loading