Skip to content

Commit

Permalink
Add OVN IC CI
Browse files Browse the repository at this point in the history
Fixes: submariner-io/enhancements#209
Signed-off-by: Daniel Farrell <[email protected]>
  • Loading branch information
dfarrell07 committed Aug 10, 2023
1 parent 9135eda commit 9efcdf0
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 4 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,11 @@ jobs:
lighthouse: lighthouse
- extra-toggles: air-gap
ovn: ovn
- extra-toggles: air-gap
ovn: ovn-ic
- extra-toggles: dual-stack
- extra-toggles: ovn
- extra-toggles: ovn-ic
- deploytool: operator
extra-toggles: lighthouse
- deploytool: helm
Expand All @@ -132,7 +135,7 @@ jobs:
- extra-toggles: prometheus
steps:
- name: Reclaim space on GHA host (if the job needs it)
if: ${{ matrix.ovn != '' }}
if: ${{ matrix.ovn != '' }} || ${{ matrix.ovn-ic != '' }}
run: rm -rf /usr/share/dotnet

- name: Check out the repository
Expand Down
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,16 @@ ifneq (,$(DAPPER_HOST_ARCH))

# Running in Dapper

ifneq (,$(filter ovn,$(USING)))
ifneq (,$(filter ovn%,$(USING)))
SETTINGS ?= $(DAPPER_SOURCE)/.shipyard.e2e.ovn.yml
else
SETTINGS ?= $(DAPPER_SOURCE)/.shipyard.e2e.yml
endif

ifneq (,$(filter ovn-ic,$(USING)))
OVN_IC = true
endif

export LAZY_DEPLOY = false

scale: SETTINGS = $(DAPPER_SOURCE)/.shipyard.scale.yml
Expand Down
1 change: 1 addition & 0 deletions Makefile.inc
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ override PRELOAD_IMAGES += submariner-globalnet
endif
ifneq (,$(shell grep -w ovn $(SETTINGS)))
override PRELOAD_IMAGES += submariner-networkplugin-syncer
# TODO Peload OVN IC image for air-gapped
endif
ifeq ($(LIGHTHOUSE),true)
override PRELOAD_IMAGES += lighthouse-agent lighthouse-coredns
Expand Down
29 changes: 27 additions & 2 deletions scripts/shared/lib/clusters_kind
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ function provider_create_cluster() {
deploy_kind_ovn
return
fi
fi


generate_cluster_yaml
local image_flag=''
Expand Down Expand Up @@ -202,7 +204,8 @@ function deploy_kind_ovn(){
docker tag "${OVN_SRC_IMAGE}" "${OVN_IMAGE}"
docker push "${OVN_IMAGE}"

delete_cluster_on_fail ./ovn-kubernetes/contrib/kind.sh -ov "$OVN_IMAGE" -cn "${KIND_CLUSTER_NAME}" -ric -lr -dd "${KIND_CLUSTER_NAME}.local"
[[ "$OVN_IC" = true ]] && delete_cluster_on_fail ./ovn-kubernetes/contrib/kind.sh -ov "$OVN_IMAGE" -cn "${KIND_CLUSTER_NAME}" -ric -ic -npz 1 -wk 3 -lr -dd "${KIND_CLUSTER_NAME}.local"
[[ "$OVN_IC" != true ]] && delete_cluster_on_fail ./ovn-kubernetes/contrib/kind.sh -ov "$OVN_IMAGE" -cn "${KIND_CLUSTER_NAME}" -ric -lr -dd "${KIND_CLUSTER_NAME}.local"

[[ "$AIR_GAPPED" = true ]] && air_gap_iptables
}
Expand Down Expand Up @@ -264,11 +267,33 @@ function download_ovnk() {
)
}

function build_ovnk_ic() {
echo "Building ovn-kubernetes with IC from source"
rm -rf ovn-kubernetes || true
git clone https://github.com/ovn-org/ovn-kubernetes

# Build some binaries TODO better description of what they are/why needed
pushd go-controller
make
popd

# Copy binaries to container build directory, note SHA of built commit
cp go-controller/_output/go/bin/* dist/images
pushd dist/images
echo "ref: $(git rev-parse --symbolic-full-name HEAD) commit: $(git rev-parse HEAD)" > git_info

# Build OVN IC container image and push to local registry
local OVN_IMAGE="${KIND_REGISTRY}/ovn-daemonset-f:latest"
docker build -t "${OVN_IMAGE}" -f Dockerfile.fedora .
docker push "${OVN_IMAGE}" || echo "Failed to push ${OVN_IMAGE} to registry."
}

function provider_prepare() {
[[ -z "${K8S_VERSION}" ]] && K8S_VERSION="${DEFAULT_K8S_VERSION}"
[[ -n "${kind_k8s_versions[$K8S_VERSION]}" ]] && K8S_VERSION="${kind_k8s_versions[$K8S_VERSION]}"

download_kind
[[ "${cluster_cni[*]}" != *"ovn"* ]] || download_ovnk
[[ "${cluster_cni[*]}" = *"ovn"* ]] && [[ "$OVN_IC" = true ]] && build_ovnk_ic
[[ "${cluster_cni[*]}" = *"ovn"* ]] && [[ "$OVN_IC" != true ]] && download_ovnk
run_local_registry
}

0 comments on commit 9efcdf0

Please sign in to comment.