diff --git a/ci/jenkins/mellanox/common/common_functions.sh b/ci/jenkins/mellanox/common/common_functions.sh index 61370201c34..41606a75262 100755 --- a/ci/jenkins/mellanox/common/common_functions.sh +++ b/ci/jenkins/mellanox/common/common_functions.sh @@ -344,7 +344,7 @@ function change_k8s_resource { name=$(yq r -d "$doc_num" $resource_file metadata.name) if [[ "$name" == "$resource_name" ]];then echo "changing $resource_key to $resource_new_value" - yq w -i -d "$doc_num" "$resource_file" "$resource_key" "$resource_new_value" + yq w -i -d "$doc_num" "$resource_file" "$resource_key" -- "$resource_new_value" changed="true" break fi @@ -360,6 +360,39 @@ function change_k8s_resource { return 0 } +function get_daemonset_container_index_from_container_name { + local daemonset_name="$1" + local desired_container_name="$2" + local file="$3" + + let doc_num=0 + changed="false" + for kind in $(yq r -d "*" $file kind);do + if [[ "$kind" == "DaemonSet" ]];then + name=$(yq r -d "$doc_num" $file metadata.name) + if [[ "$name" == "$daemonset_name" ]];then + let container_index=0 + for container_name in $(yq r -d "$doc_num" $file spec.template.spec.containers[*].name );do + if [[ "$container_name" == "$desired_container_name" ]];then + echo "$container_index" + changed="true" + break + fi + let container_index=$container_index+1 + done + fi + fi + let doc_num=$doc_num+1 + done + + if [[ "$changed" == "false" ]];then + return 1 + fi + + return 0 +} + + function deploy_sriov_device_plugin { build_github_project "sriov-network-device-plugin" \ "sed -i 's;^TAG=.*;TAG=$SRIOV_NETWORK_DEVICE_PLUGIN_HARBOR_IMAGE;' Makefile && make image" diff --git a/ci/jenkins/mellanox/scripts/start_ci.sh b/ci/jenkins/mellanox/scripts/start_ci.sh index c512b66114e..0b2a2a3505e 100755 --- a/ci/jenkins/mellanox/scripts/start_ci.sh +++ b/ci/jenkins/mellanox/scripts/start_ci.sh @@ -94,10 +94,18 @@ EOF if [[ -z "${ANTREA_CNI_PR}${ANTREA_CNI_BRANCH}" ]];then change_image_name $ANTREA_CNI_HARBOR_IMAGE antrea/antrea-ubuntu fi - - if [[ -z "$(grep hw-offload $WORKSPACE/antrea-cni/build/yamls/antrea.yml)" ]];then - sed -i '/start_ovs/a\ - --hw-offload' $WORKSPACE/antrea-cni/build/yamls/antrea.yml - fi + + change_image_name antrea/antrea-ubuntu antrea/antrea-ubuntu:ci + + change_k8s_resource "DaemonSet" "antrea-agent" spec.template.spec.containers[*].image "antrea/antrea-ubuntu:ci" "$WORKSPACE/antrea-cni/build/yamls/antrea.yml" + change_k8s_resource "DaemonSet" "antrea-agent" spec.template.spec.initContainers[*].image "antrea/antrea-ubuntu:ci" "$WORKSPACE/antrea-cni/build/yamls/antrea.yml" + + change_k8s_resource "Deployment" "antrea-controller" spec.template.spec.containers[*].image "antrea/antrea-ubuntu:ci" "$WORKSPACE/antrea-cni/build/yamls/antrea.yml" + + local antrea_ovs_container_index=$(get_daemonset_container_index_from_container_name "antrea-agent" "antrea-ovs" "$WORKSPACE/antrea-cni/build/yamls/antrea.yml") + change_k8s_resource "DaemonSet" "antrea-agent" spec.template.spec.containers["$antrea_ovs_container_index"].command[+] "--hw-offload" "$WORKSPACE/antrea-cni/build/yamls/antrea.yml" + + cp $WORKSPACE/antrea-cni/build/yamls/antrea.yml $ARTIFACTS/antrea.yml cat > $ARTIFACTS/antrea-net.yaml <