Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
9a6e8e3
ovnkube.sh: use node name as zone as default if ovn-ic
flavio-fernandes May 8, 2025
df487d2
UDN: verify specific error messages in NAD rendering unit tests
Jul 15, 2025
410550f
Remove support for receiving advertised routes on nodes
tssurya Mar 21, 2025
ea1b6a0
Don't use match as a criteria for isEquivalentMatch
tssurya Jul 22, 2025
15adf65
Advertised networks: SNAT Traffic to nodeIP
tssurya Jun 19, 2025
f32731c
BGP,UDN,LGW: Ensure both masqueradeIP and podsubnet ip rules are present
tssurya Jul 2, 2025
501bcbf
Convert LGW postrouting rules to NFT
tssurya Jul 9, 2025
a67872d
rename/reuse pmtud nft sets to remote-node-ips
tssurya Jul 9, 2025
04d48c3
BGP, default network, LGW: Conditionally Masquerade
tssurya Jul 9, 2025
8a65723
Add E2E's for these traffic flows
tssurya Jul 2, 2025
10ea4ab
Add masqueradeIP flows back for advertised networks in breth0
tssurya Jul 11, 2025
8f5b3d4
Change priority of ovn-kube-local-gw-masq to 101
tssurya Jul 12, 2025
659010c
Add all remote nodeIPs for the PMTUD/BGP remote node NFT set
tssurya Jul 21, 2025
0635cae
cleanupStalePodSNATs: Don't blow all SNATs for advertised Networks
tssurya Jul 21, 2025
5056d4d
Fix CreateOrUpdateNATs to update non-default values
tssurya Jul 23, 2025
bcd0656
Bump OVN to 25.03
tssurya Jul 28, 2025
e8fc764
UDN,L2: UDN pod in networkA to nodePort on networkB works for IPV6!
tssurya Jul 28, 2025
515b984
Merge pull request #5420 from tssurya/bump-ovn-25.03
tssurya Jul 29, 2025
9b21fc0
Change OVN-Kubernetes community meeting time
tssurya Jul 29, 2025
cc6fe11
udn, pre assigned port net ids: provision the default net NAD CR
maiqueb Jun 19, 2025
fd29332
Merge pull request #5424 from tssurya/change-ovnk-upstream-meeting-time
tssurya Jul 30, 2025
ee8088c
Merge pull request #5320 from maiqueb/create-default-net-nad-creating…
tssurya Jul 30, 2025
b85c0f5
chore: Update libovsdb bindings to ovn 25.03
dave-tucker Jul 30, 2025
575a08c
dnsnameresolver: fix ever growing address set
arkadeepsen Jul 29, 2025
4780a5e
dnsnameresolver: add unit test for DNSNameResolver resource update
arkadeepsen Jul 30, 2025
0a88ff7
Merge pull request #5140 from tssurya/bgp-isolation-part1
tssurya Jul 30, 2025
d82b233
Merge pull request #5432 from dave-tucker/bindings-up
tssurya Jul 30, 2025
03ccdf9
Bump ubuntu to 25.04
crnithya Jul 29, 2025
6082160
Merge pull request #5427 from crnithya/ubuntu_25_04
girishmg Jul 31, 2025
6241b27
dnsnameresolver: add e2e test to verify connectivity after DNS name T…
arkadeepsen Jul 30, 2025
8eb02f9
dnsnameresolver: run tests on dualstack instead of IPv6 only support
arkadeepsen Jul 30, 2025
5180a46
bump: network-attachment-definition-client 1.7.7
qinqon Jun 25, 2025
fa7558f
go, deps: Pin CNI library to v1.2.3 to prevent OVN-K parsing issues
qinqon Jul 1, 2025
13bbcf2
udn, util: Add ip, mac and ipamclaimref request to active network
qinqon Jun 19, 2025
532d991
allocator: Allow static IP with ipam
qinqon Jun 23, 2025
6b76f22
gh, actions: Enable custon net conf for net-seg and virt
qinqon Jul 1, 2025
5679396
e2e, kv: Add p-udn test for static ip and mac
qinqon Jun 23, 2025
d9f26e4
e2e: Add happy test
qinqon Jun 19, 2025
a3de868
allocator, pod: Validate consistency of ipRequest and ipamClaims IPs
qinqon Aug 1, 2025
d49c46c
gh, actions: Add multihoming + net-seg + static IPs to test workflow
qinqon Aug 1, 2025
c0fad85
Remove NetworkUnavailable condition from node
pperiyasamy Jul 29, 2025
eaf91a7
fix flow update error
cathy-zhou Aug 2, 2025
9494484
fixes fedora image build script
tsebastiani Aug 4, 2025
aab04ad
Merge pull request #5321 from qinqon/udn-static-ips-default-network
tssurya Aug 4, 2025
535ad75
Merge pull request #5422 from pperiyasamy/gcp-network-unavailable-taint
tssurya Aug 4, 2025
e18ed9a
docs: remove dead link to topology google document
booxter Aug 4, 2025
2b508cf
Merge pull request #5446 from booxter/remove-dead-link
tssurya Aug 5, 2025
a5b9799
kind.sh: Don't build go-controller twice
booxter Aug 5, 2025
8ad2074
Merge branch 'master' into fedora_script_fix
tsebastiani Aug 6, 2025
bd7ebab
Add UDN user facing docs
tssurya Jun 27, 2025
dda44c8
ovnkube: Do not exit early on ovs CLI initialization errors
kyrtapz Aug 6, 2025
27752bc
Merge pull request #5335 from tssurya/udn-docs
tssurya Aug 6, 2025
5b57c92
Merge pull request #5381 from l8huang/udn-ut
trozet Aug 6, 2025
e17cb79
Merge pull request #5442 from tsebastiani/fedora_script_fix
trozet Aug 6, 2025
d3cacaf
Merge pull request #5449 from booxter/dont-build-twice
trozet Aug 6, 2025
3976dbf
Merge pull request #5439 from cathy-zhou/bridgeError
trozet Aug 6, 2025
2a0cd67
nit-fix: The filename point to UDN docs is wrong
tssurya Aug 7, 2025
5a1ff44
Merge pull request #5454 from tssurya/nit-fix-udn-docs-path
tssurya Aug 7, 2025
b2fa79a
Add config file for coderabbit AI bot
asood-rh Aug 6, 2025
b1864a4
[kind] Use control-plane node IP instead of DNS name.
npinaeva Jul 29, 2025
afad0c8
K8s rebase 1.33.3
asood-rh Jul 25, 2025
b681345
K8s rebase 1.33.3
asood-rh Jul 25, 2025
4b75652
egressip: fix race condition when a node becomes reachable
kyrtapz Jul 25, 2025
e307c17
Skip conformance tests for upgrade CI
asood-rh Jul 31, 2025
ee7d6f3
> test/conformance
asood-rh Aug 6, 2025
0db72a0
Add BGP docs
jcaamano Jul 15, 2025
8334c00
Merge pull request #5447 from kyrtapz/log_exit_err
tssurya Aug 8, 2025
ef65658
Merge pull request #5385 from npinaeva/apiserver-client
npinaeva Aug 8, 2025
0b3356e
Merge pull request #5241 from flavio-fernandes/interconnect_get_node_…
trozet Aug 8, 2025
4d79dc3
Restore "Fixes FDB learning" commit after bridge refactoring
Aug 8, 2025
188e55e
Merge pull request #5423 from jcaamano/bgp-docs
trozet Aug 8, 2025
ba74bfb
Upstreams BGP enhancement
trozet Jun 11, 2025
627204a
Merge pull request #5297 from trozet/okep_5296_bgp
tssurya Aug 8, 2025
92e2e9b
Merge pull request #5319 from asood-rh/CORENET-5959
tssurya Aug 8, 2025
311ebbd
chore: Bump libovsdb to v0.8.1
dave-tucker Aug 5, 2025
e04a14d
OVN-Kubernetes 1.1 release
tssurya Aug 8, 2025
495a3eb
Change OVN_DAEMONSET_VERSION to 1.1.0
tssurya Aug 8, 2025
856f027
Update helm-chat version to 1.1.0
tssurya Aug 8, 2025
4e44c1b
Make Interconnect the KIND default.
trozet Aug 8, 2025
cf9c8a4
Fix bugs in the kind-helm script
trozet Aug 8, 2025
bd054ab
Merge pull request #5465 from ricky-rav/prio10flow
trozet Aug 8, 2025
32d56b7
Revert "Skip conformance tests for upgrade CI"
asood-rh Aug 8, 2025
492421e
Merge pull request #5467 from asood-rh/issue-5460
tssurya Aug 11, 2025
d690221
Merge pull request #5466 from trozet/default_IC
tssurya Aug 11, 2025
c409d87
Merge pull request #5426 from dave-tucker/libovsdb-up
tssurya Aug 11, 2025
68bd339
Merge pull request #5464 from tssurya/release-1.1
tssurya Aug 11, 2025
d2cffb8
Allow CI workflow dispatcher on release-1.1 branch
tssurya Aug 11, 2025
f135548
Update makefile go version
tssurya Aug 11, 2025
149d92f
Make upgrade jobs run IC=true always
tssurya Aug 11, 2025
377bf45
Merge pull request #5468 from tssurya/allow-CI-workflow-on-release-1.1
tssurya Aug 11, 2025
cf97f47
Merge pull request #5471 from tssurya/update-makefile-goversion
tssurya Aug 11, 2025
8f7fc5a
Merge pull request #5473 from tssurya/fix-upgrades-post-IC-default
trozet Aug 11, 2025
519a160
crd, virt: consume an updated IPAMClaim version
maiqueb Aug 7, 2025
c3ddbad
Prevent UDN deletion race condition by checking controller state
kyrtapz Aug 6, 2025
14175f2
(C)UDN Controller: use rate limiting instead of delayed addition, do …
kyrtapz Aug 6, 2025
a54f168
Merge pull request #5457 from maiqueb/update-ipamclaim-crd-manifest
tssurya Aug 13, 2025
4a54413
Prevent changes to default-network pod annotation
kyrtapz Jul 29, 2025
f5cc61e
ci: enable preconfigured-udn-addresses for all interconnect network-s…
kyrtapz Jul 15, 2025
64f1613
Adds logging for informer waitForCacheSync
trozet Feb 11, 2025
f9326e2
Merge pull request #5425 from kyrtapz/default_pod_anno_vap
tssurya Aug 13, 2025
1aa6734
Fix Node Admission Webhook for OVNNodePrimaryDPUHostAddr annotation
wizhaoredhat Aug 13, 2025
e64f540
Fix mgmt port allocation with VFs provided as resource for DPU
wizhaoredhat Aug 13, 2025
bcfce1b
SNAT traffic from advertised UDNs towards UDN enabled default services
jcaamano Aug 6, 2025
7db6c99
Reapply "Add the IP rule for a UDN only when it is advertised to the …
jcaamano Aug 7, 2025
75730a4
Merge pull request #5051 from trozet/print_informer_sync_time
trozet Aug 14, 2025
30176f6
Merge pull request #5481 from wizhaoredhat/fix_dpu_host
trozet Aug 14, 2025
5155c91
Merge pull request #5429 from arkadeepsen/fix-dnsnameresolver-address…
trozet Aug 14, 2025
da01d12
Merge pull request #5463 from jcaamano/udn-snat-kapi-dns
tssurya Aug 14, 2025
6cbf833
[node/anno] Stop using OVNNodeGRLRPAddrs annotaion.
npinaeva Jul 17, 2025
f0dd327
[podannotation] Move AddRoutesGatewayIP to the allocator/pod.
npinaeva Aug 13, 2025
04cc24f
Fix unit test: use node-id annotation instead of OVNNodeGRLRPAddrs.
npinaeva Jul 21, 2025
0e565af
Fix unit test: egressIP.
npinaeva Jul 17, 2025
0bbfdd8
[e2e fix] Parse JoinIPs from the NAD spec instead of annotation.
npinaeva Jul 18, 2025
e4d2b28
[node_allocator] Add stale annotation cleanup.
npinaeva Jul 21, 2025
4a06d4b
Merge pull request #5396 from npinaeva/remove-joinip-anno
trozet Aug 15, 2025
03c55f7
Merge upstream/master into master with conflicts (08-16-2025)
Aug 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .coderabbit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
paths_ignore:
- "**/vendor/**"
2 changes: 1 addition & 1 deletion .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: ovn-docker-images

on:
push:
branches: [ master,release-1.0 ]
branches: [ master,release-1.0,release-1.1 ]

permissions:
contents: read
Expand Down
15 changes: 8 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ concurrency:
cancel-in-progress: true

env:
K8S_VERSION: v1.32.3
K8S_VERSION: v1.33.1
KIND_CLUSTER_NAME: ovn
KIND_INSTALL_INGRESS: true
KIND_ALLOW_SYSTEM_WRITES: true
Expand Down Expand Up @@ -61,7 +61,7 @@ jobs:
- name: Verify
uses: golangci/golangci-lint-action@v6
with:
version: v1.60.3
version: v1.64.8
working-directory: go-controller
args: --modules-download-mode=vendor --timeout=15m0s --verbose

Expand Down Expand Up @@ -454,20 +454,20 @@ jobs:
- {"target": "shard-conformance", "ha": "HA", "gateway-mode": "local", "ipfamily": "dualstack", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "routeadvertisements": "advertise-default"}
- {"target": "shard-conformance", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv6", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-single-node-zones"}
- {"target": "shard-conformance", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-single-node-zones"}
- {"target": "control-plane", "ha": "HA", "gateway-mode": "shared", "ipfamily": "ipv6", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-disabled", "dns-name-resolver": "enable-dns-name-resolver"}
- {"target": "control-plane", "ha": "HA", "gateway-mode": "shared", "ipfamily": "ipv6", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-disabled"}
- {"target": "control-plane", "ha": "HA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-disabled", "traffic-flow-tests": "1,2,3"}
- {"target": "control-plane-helm","ha": "HA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-disabled", "dns-name-resolver": "enable-dns-name-resolver"}
- {"target": "control-plane-helm","ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "dns-name-resolver": "enable-dns-name-resolver"}
- {"target": "control-plane", "ha": "noHA", "gateway-mode": "local", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "dns-name-resolver": "enable-dns-name-resolver"}
- {"target": "control-plane", "ha": "noHA", "gateway-mode": "local", "ipfamily": "ipv6", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones"}
- {"target": "control-plane", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "2br", "ic": "ic-single-node-zones"}
- {"target": "control-plane", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv6", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "2br", "ic": "ic-single-node-zones", "dns-name-resolver": "enable-dns-name-resolver"}
- {"target": "control-plane", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv6", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "2br", "ic": "ic-single-node-zones"}
- {"target": "multi-homing", "ha": "noHA", "gateway-mode": "local", "ipfamily": "ipv4", "disable-snat-multiple-gws": "SnatGW", "second-bridge": "1br", "ic": "ic-disabled"}
- {"target": "multi-homing-helm", "ha": "HA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-disabled", "network-segmentation": "enable-network-segmentation"}
- {"target": "node-ip-mac-migration", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv6", "disable-snat-multiple-gws": "SnatGW", "second-bridge": "1br", "ic": "ic-disabled"}
- {"target": "node-ip-mac-migration", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "SnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones"}
- {"target": "compact-mode", "ha": "noHA", "gateway-mode": "local", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-disabled"}
- {"target": "multi-homing", "ha": "noHA", "gateway-mode": "local", "ipfamily": "dualstack", "disable-snat-multiple-gws": "SnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones"}
- {"target": "multi-homing", "ha": "noHA", "gateway-mode": "local", "ipfamily": "dualstack", "disable-snat-multiple-gws": "SnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "network-segmentation": "enable-network-segmentation"}
- {"target": "multi-node-zones", "ha": "noHA", "gateway-mode": "local", "ipfamily": "ipv4", "disable-snat-multiple-gws": "SnatGW", "second-bridge": "1br", "ic": "ic-multi-node-zones", "num-workers": "3", "num-nodes-per-zone": "2"}
- {"target": "external-gateway", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "2br", "ic": "ic-single-node-zones"}
- {"target": "external-gateway", "ha": "noHA", "gateway-mode": "local", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones"}
Expand All @@ -481,8 +481,8 @@ jobs:
- {"target": "network-segmentation", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "dualstack", "disable-snat-multiple-gws": "SnatGW", "second-bridge": "1br", "ic": "ic-disabled"}
- {"target": "network-segmentation", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones"}
- {"target": "network-segmentation", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv6", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones"}
- {"target": "bgp", "ha": "noHA", "gateway-mode": "local", "ipfamily": "dualstack", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "routeadvertisements": "advertise-default", "network-segmentation": "enable-network-segmentation"}
- {"target": "bgp", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "dualstack", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "routeadvertisements": "advertise-default", "network-segmentation": "enable-network-segmentation"}
- {"target": "bgp", "ha": "noHA", "gateway-mode": "local", "ipfamily": "dualstack", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "routeadvertisements": "advertise-default", "network-segmentation": "enable-network-segmentation", "dns-name-resolver": "enable-dns-name-resolver"}
- {"target": "bgp", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "dualstack", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "routeadvertisements": "advertise-default", "network-segmentation": "enable-network-segmentation", "dns-name-resolver": "enable-dns-name-resolver"}
- {"target": "traffic-flow-test-only","ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "traffic-flow-tests": "1-24", "network-segmentation": "enable-network-segmentation"}
- {"target": "tools", "ha": "noHA", "gateway-mode": "local", "ipfamily": "dualstack", "disable-snat-multiple-gws": "SnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "network-segmentation": "enable-network-segmentation"}
needs: [ build-pr ]
Expand Down Expand Up @@ -513,6 +513,7 @@ jobs:
TRAFFIC_FLOW_TESTS: "${{ matrix.traffic-flow-tests }}"
ENABLE_ROUTE_ADVERTISEMENTS: "${{ matrix.routeadvertisements != '' }}"
ADVERTISE_DEFAULT_NETWORK: "${{ matrix.routeadvertisements == 'advertise-default' }}"
ENABLE_PRE_CONF_UDN_ADDR: "${{ matrix.ic == 'ic-single-node-zones' && (matrix.target == 'network-segmentation' || matrix.network-segmentation == 'enable-network-segmentation') }}"
steps:

- name: Install VRF kernel module
Expand Down
2 changes: 1 addition & 1 deletion MEETINGS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ All are welcome to join our meetings! If you want to discuss something with the

## Meeting time

We meet alternate Monday's at 6:00 PM CET/CEST.
We meet alternate Monday's at 5:00 PM CET/CEST.
In order to figure out when our next meeting is, please check our agenda for previous meeting history.
The meetings last up to 1 hour.

Expand Down
61 changes: 53 additions & 8 deletions contrib/kind-common
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ if_error_exit() {

set_common_default_params() {
KIND_IMAGE=${KIND_IMAGE:-kindest/node}
K8S_VERSION=${K8S_VERSION:-v1.32.3}
K8S_VERSION=${K8S_VERSION:-v1.33.1}
}

run_kubectl() {
Expand All @@ -55,6 +55,37 @@ run_kubectl() {
done
}

setup_kubectl_bin() {
###########################################################################
# Description: #
# setup kubectl for querying the cluster #
# #
# Arguments: #
# $1 - error message if not provided, it will just exit #
###########################################################################
if [ ! -d "./bin" ]
then
mkdir -p ./bin
if_error_exit "Failed to create bin dir!"
fi

if [[ "$OSTYPE" == "linux-gnu" ]]; then
OS_TYPE="linux"
elif [[ "$OSTYPE" == "darwin"* ]]; then
OS_TYPE="darwin"
fi

pushd ./bin
if [ ! -f ./kubectl ]; then
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/${OS_TYPE}/${ARCH}/kubectl"
if_error_exit "Failed to download kubectl failed!"
fi
popd

chmod +x ./bin/kubectl
export PATH=${PATH}:$(pwd)/bin
}

command_exists() {
cmd="$1"
command -v ${cmd} >/dev/null 2>&1
Expand All @@ -63,12 +94,20 @@ command_exists() {
detect_apiserver_url() {
# Detect API_URL used for in-cluster communication
#
# Despite OVN run in pod they will only obtain the VIRTUAL apiserver address
# and since OVN has to provide the connectivity to service
# it can not be bootstrapped
#
# This is the address of the node with the control-plane
API_URL=$(kind get kubeconfig --internal --name "${KIND_CLUSTER_NAME}" | grep server | awk '{ print $2 }')
# This will return apiserver address in format https://<node-name>:<port>
DNS_NAME_URL=$(kind get kubeconfig --internal --name "${KIND_CLUSTER_NAME}" | grep server | awk '{ print $2 }')
# cut https:// from the URL
CP_NODE=${DNS_NAME_URL#*//}
# cut port from the URL
CP_NODE=${CP_NODE%:*}
# find node IP address in the kind network
if [ "$PLATFORM_IPV4_SUPPORT" == false ] && [ "$PLATFORM_IPV6_SUPPORT" == true ]; then
NODE_IP="[$($OCI_BIN inspect -f '{{.NetworkSettings.Networks.kind.GlobalIPv6Address}}' $CP_NODE)]"
else
NODE_IP=$($OCI_BIN inspect -f '{{.NetworkSettings.Networks.kind.IPAddress}}' "$CP_NODE")
fi
# replace node name with node IP address
API_URL=${DNS_NAME_URL/$CP_NODE/$NODE_IP}
}

docker_disable_ipv6() {
Expand Down Expand Up @@ -421,7 +460,7 @@ install_mpolicy_crd() {

install_ipamclaim_crd() {
echo "Installing IPAMClaim CRD ..."
ipamclaims_manifest="https://raw.githubusercontent.com/k8snetworkplumbingwg/ipamclaims/v0.4.0-alpha/artifacts/k8s.cni.cncf.io_ipamclaims.yaml"
ipamclaims_manifest="https://raw.githubusercontent.com/k8snetworkplumbingwg/ipamclaims/v0.5.1-alpha/artifacts/k8s.cni.cncf.io_ipamclaims.yaml"
run_kubectl apply -f "$ipamclaims_manifest"
}

Expand Down Expand Up @@ -837,3 +876,9 @@ EOF
done
fi
}

interconnect_arg_check() {
if [ "${IC_ARG_PROVIDED:-}" = "true" ]; then
echo "INFO: Interconnect mode is now the default mode, you do not need to use pass -ic or --enable-interconnect anymore"
fi
}
33 changes: 26 additions & 7 deletions contrib/kind-helm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ set_default_params() {
KIND_NUM_MASTER=3
fi

OVN_ENABLE_INTERCONNECT=${OVN_ENABLE_INTERCONNECT:-false}
OVN_ENABLE_INTERCONNECT=${OVN_ENABLE_INTERCONNECT:-true}
if [ "$OVN_COMPACT_MODE" == true ] && [ "$OVN_ENABLE_INTERCONNECT" != false ]; then
echo "Compact mode cannot be used together with Interconnect"
exit 1
Expand Down Expand Up @@ -129,7 +129,7 @@ usage() {
echo "-wk | --num-workers Number of worker nodes. DEFAULT: 2 workers"
echo "-cn | --cluster-name Configure the kind cluster's name"
echo "-dns | --enable-dnsnameresolver Enable DNSNameResolver for resolving the DNS names used in the DNS rules of EgressFirewall."
echo "-ic | --enable-interconnect Enable interconnect with each node as a zone (only valid if OVN_HA is false)"
echo "-ce | --enable-central 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 ""

Expand Down Expand Up @@ -193,7 +193,11 @@ parse_args() {
;;
-dns | --enable-dnsnameresolver ) OVN_ENABLE_DNSNAMERESOLVER=true
;;
-ce | --enable-central ) OVN_ENABLE_INTERCONNECT=false
CENTRAL_ARG_PROVIDED=true
;;
-ic | --enable-interconnect ) OVN_ENABLE_INTERCONNECT=true
IC_ARG_PROVIDED=true
;;
-npz | --nodes-per-zone ) shift
if ! [[ "$1" =~ ^[0-9]+$ ]]; then
Expand All @@ -208,6 +212,11 @@ parse_args() {
esac
shift
done

if [[ -n "${CENTRAL_ARG_PROVIDED:-}" && -n "${IC_ARG_PROVIDED:-}" ]]; then
echo "Cannot specify both --enable-central and --enable-interconnect" >&2
exit 1
fi
}

print_params() {
Expand Down Expand Up @@ -246,15 +255,23 @@ print_params() {
}

check_dependencies() {
for cmd in $OCI_BIN kubectl kind helm go ; do \
if ! command_exists $cmd ; then
2&>1 echo "Dependency not met: $cmd"
if ! command_exists kubectl ; then
echo "'kubectl' not found, installing"
setup_kubectl_bin
fi

for cmd in "$OCI_BIN" kind helm go ; do \
if ! command_exists "$cmd" ; then
echo "Dependency not met: $cmd"
exit 1
fi
done

# check for currently unsupported features
[ "${PLATFORM_IPV6_SUPPORT}" == "true" ] && { &>1 echo "Fatal: PLATFORM_IPV6_SUPPORT support not implemented yet"; exit 1; } ||:
if [ "${PLATFORM_IPV6_SUPPORT:-}" = "true" ]; then
echo "Fatal: PLATFORM_IPV6_SUPPORT support not implemented yet"
exit 1
fi
}

helm_prereqs() {
Expand Down Expand Up @@ -405,7 +422,7 @@ create_ovn_kubernetes() {
label_ovn_single_node_zones
value_file="values-single-node-zone.yaml"
ovnkube_db_options=""
elif [[ $KIND_NUM_NODES_PER_ZONE > 1 ]]; then
elif [[ $KIND_NUM_NODES_PER_ZONE -gt 1 ]]; then
label_ovn_multiple_nodes_zones
value_file="values-multi-node-zone.yaml"
ovnkube_db_options=""
Expand Down Expand Up @@ -506,3 +523,5 @@ fi
if [ "$KIND_INSTALL_KUBEVIRT" == true ]; then
install_kubevirt
fi

interconnect_arg_check
Loading