diff --git a/.github/workflows/conformance.yml b/.github/workflows/conformance.yml index b6a1cdcbf6b..a92bcab2a91 100644 --- a/.github/workflows/conformance.yml +++ b/.github/workflows/conformance.yml @@ -65,7 +65,8 @@ jobs: sudo mv kind /usr/local/bin - name: Create K8s cluster run: | - # The command also loads local antrea/antrea-ubuntu:latest into Nodes if it exists. + # The command also loads local antrea/antrea-agent-ubuntu:latest and antrea/antrea-controller-ubuntu:latest + # into Nodes if they exist. ./ci/kind/kind-setup.sh create kind \ --k8s-version "${{ inputs.k8s-version }}" - name: Install Antrea diff --git a/.github/workflows/kind.yml b/.github/workflows/kind.yml index 5d5847d1c07..2b4c7532fc5 100644 --- a/.github/workflows/kind.yml +++ b/.github/workflows/kind.yml @@ -41,7 +41,7 @@ jobs: run: | ./hack/build-antrea-linux-all.sh --pull --coverage - name: Save Antrea image to tarball - run: docker save -o antrea-ubuntu.tar antrea/antrea-ubuntu-coverage:latest + run: docker save -o antrea-ubuntu.tar antrea/antrea-agent-ubuntu-coverage:latest antrea/antrea-controller-ubuntu-coverage:latest - name: Upload Antrea image for subsequent jobs uses: actions/upload-artifact@v4 with: @@ -488,7 +488,8 @@ jobs: - name: Load Antrea image run: | docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest + docker tag antrea/antrea-agent-ubuntu-coverage:latest antrea/antrea-agent-ubuntu:latest + docker tag antrea/antrea-controller-ubuntu-coverage:latest antrea/antrea-controller-ubuntu:latest - name: Install Kind run: | KIND_VERSION=$(head -n1 ./ci/kind/version) @@ -533,7 +534,8 @@ jobs: - name: Load Antrea image run: | docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest + docker tag antrea/antrea-agent-ubuntu-coverage:latest antrea/antrea-agent-ubuntu:latest + docker tag antrea/antrea-controller-ubuntu-coverage:latest antrea/antrea-controller-ubuntu:latest - name: Install Kind run: | KIND_VERSION=$(head -n1 ./ci/kind/version) @@ -578,7 +580,8 @@ jobs: - name: Load Antrea image run: | docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest + docker tag antrea/antrea-agent-ubuntu-coverage:latest antrea/antrea-agent-ubuntu:latest + docker tag antrea/antrea-controller-ubuntu-coverage:latest antrea/antrea-controller-ubuntu:latest - name: Install Kind run: | KIND_VERSION=$(head -n1 ./ci/kind/version) @@ -623,7 +626,8 @@ jobs: - name: Load Antrea image run: | docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest + docker tag antrea/antrea-agent-ubuntu-coverage:latest antrea/antrea-agent-ubuntu:latest + docker tag antrea/antrea-controller-ubuntu-coverage:latest antrea/antrea-controller-ubuntu:latest - name: Install Kind run: | KIND_VERSION=$(head -n1 ./ci/kind/version) @@ -668,7 +672,8 @@ jobs: - name: Load Antrea image run: | docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest + docker tag antrea/antrea-agent-ubuntu-coverage:latest antrea/antrea-agent-ubuntu:latest + docker tag antrea/antrea-controller-ubuntu-coverage:latest antrea/antrea-controller-ubuntu:latest - name: Install Kind run: | KIND_VERSION=$(head -n1 ./ci/kind/version) @@ -710,7 +715,8 @@ jobs: - name: Load Antrea image run: | docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest + docker tag antrea/antrea-agent-ubuntu-coverage:latest antrea/antrea-agent-ubuntu:latest + docker tag antrea/antrea-controller-ubuntu-coverage:latest antrea/antrea-controller-ubuntu:latest - name: Install Kind run: | KIND_VERSION=$(head -n1 ./ci/kind/version) diff --git a/.github/workflows/trivy_scan_before_release.yml b/.github/workflows/trivy_scan_before_release.yml index 39ab639d86f..b26573e505f 100644 --- a/.github/workflows/trivy_scan_before_release.yml +++ b/.github/workflows/trivy_scan_before_release.yml @@ -14,9 +14,21 @@ jobs: - name: Build Antrea Docker image run: | ./hack/build-antrea-linux-all.sh --pull - - name: Run Trivy vulnerability scanner on Antrea Docker image + - name: Run Trivy vulnerability scanner on Antrea unified Docker image uses: aquasecurity/trivy-action@0.16.1 with: scan-type: 'image' image-ref: 'antrea/antrea-ubuntu:latest' trivy-config: '.trivy.yml' + - name: Run Trivy vulnerability scanner on the antrea-agent Docker image + uses: aquasecurity/trivy-action@0.16.1 + with: + scan-type: 'image' + image-ref: 'antrea/antrea-agent-ubuntu:latest' + trivy-config: '.trivy.yml' + - name: Run Trivy vulnerability scanner on the antrea-controller Docker image + uses: aquasecurity/trivy-action@0.16.1 + with: + scan-type: 'image' + image-ref: 'antrea/antrea-controller-ubuntu:latest' + trivy-config: '.trivy.yml' diff --git a/build/charts/antrea/README.md b/build/charts/antrea/README.md index a09c461c571..6bb3322804e 100644 --- a/build/charts/antrea/README.md +++ b/build/charts/antrea/README.md @@ -52,6 +52,7 @@ Kubernetes: `>= 1.16.0-0` | agent.priorityClassName | string | `"system-node-critical"` | Prority class to use for the antrea-agent Pods. | | agent.tolerations | list | `[{"key":"CriticalAddonsOnly","operator":"Exists"},{"effect":"NoSchedule","operator":"Exists"},{"effect":"NoExecute","operator":"Exists"}]` | Tolerations for the antrea-agent Pods. | | agent.updateStrategy | object | `{"type":"RollingUpdate"}` | Update strategy for the antrea-agent DaemonSet. | +| agentImage | object | `{"pullPolicy":"IfNotPresent","repository":"antrea/antrea-agent-ubuntu","tag":""}` | Container image to use for the antrea-agent component. | | antreaProxy.defaultLoadBalancerMode | string | `"nat"` | Determines how external traffic is processed when it's load balanced across Nodes by default. It must be one of "nat" or "dsr". | | antreaProxy.enable | bool | `true` | To disable AntreaProxy, set this to false. | | antreaProxy.nodePortAddresses | list | `[]` | String array of values which specifies the host IPv4/IPv6 addresses for NodePort. By default, all host addresses are used. | @@ -82,6 +83,7 @@ Kubernetes: `>= 1.16.0-0` | controller.priorityClassName | string | `"system-cluster-critical"` | Prority class to use for the antrea-controller Pod. | | controller.selfSignedCert | bool | `true` | Indicates whether to use auto-generated self-signed TLS certificates. If false, a Secret named "antrea-controller-tls" must be provided with the following keys: ca.crt, tls.crt, tls.key. | | controller.tolerations | list | `[{"key":"CriticalAddonsOnly","operator":"Exists"},{"effect":"NoSchedule","key":"node-role.kubernetes.io/master"},{"effect":"NoSchedule","key":"node-role.kubernetes.io/control-plane"},{"effect":"NoExecute","key":"node.kubernetes.io/unreachable","operator":"Exists","tolerationSeconds":0}]` | Tolerations for the antrea-controller Pod. | +| controllerImage | object | `{"pullPolicy":"IfNotPresent","repository":"antrea/antrea-controller-ubuntu","tag":""}` | Container image to use for the antrea-controller component. | | defaultMTU | int | `0` | Default MTU to use for the host gateway interface and the network interface of each Pod. By default, antrea-agent will discover the MTU of the Node's primary interface and adjust it to accommodate for tunnel encapsulation overhead if applicable. | | disableTXChecksumOffload | bool | `false` | Disable TX checksum offloading for container network interfaces. It's supposed to be set to true when the datapath doesn't support TX checksum offloading, which causes packets to be dropped due to bad checksum. It affects Pods running on Linux Nodes only. | | dnsServerOverride | string | `""` | Address of DNS server, to override the kube-dns Service. It's used to resolve hostnames in a FQDN policy. | @@ -95,7 +97,7 @@ Kubernetes: `>= 1.16.0-0` | flowExporter.flowPollInterval | string | `"5s"` | Determines how often the flow exporter polls for new connections. | | flowExporter.idleFlowExportTimeout | string | `"15s"` | timeout after which a flow record is sent to the collector for idle flows. | | hostGateway | string | `"antrea-gw0"` | Name of the interface antrea-agent will create and use for host <-> Pod communication. | -| image | object | `{"pullPolicy":"IfNotPresent","repository":"antrea/antrea-ubuntu","tag":""}` | Container image to use for Antrea components. | +| image | object | `{}` | Container image to use for Antrea components. DEPRECATED: use agentImage and controllerImage instead. | | ipsec.authenticationMode | string | `"psk"` | The authentication mode to use for IPsec. Must be one of "psk" or "cert". | | ipsec.csrSigner.autoApprove | bool | `true` | Enable auto approval of Antrea signer for IPsec certificates. | | ipsec.csrSigner.selfSignedCA | bool | `true` | Whether or not to use auto-generated self-signed CA. | diff --git a/build/charts/antrea/templates/_helpers.tpl b/build/charts/antrea/templates/_helpers.tpl index e3573baa7d1..b8b1475486b 100644 --- a/build/charts/antrea/templates/_helpers.tpl +++ b/build/charts/antrea/templates/_helpers.tpl @@ -18,8 +18,56 @@ {{- end }} {{- end -}} -{{- define "antreaImage" -}} +{{- define "antreaAgentImageTag" -}} +{{- if .Values.agentImage.tag }} +{{- .Values.agentImage.tag -}} +{{- else if eq .Chart.AppVersion "latest" }} +{{- print "latest" -}} +{{- else }} +{{- print "v" .Chart.AppVersion -}} +{{- end }} +{{- end -}} + +{{- define "antreaControllerImageTag" -}} +{{- if .Values.controllerImage.tag }} +{{- .Values.controllerImage.tag -}} +{{- else if eq .Chart.AppVersion "latest" }} +{{- print "latest" -}} +{{- else }} +{{- print "v" .Chart.AppVersion -}} +{{- end }} +{{- end -}} + +{{- define "antreaControllerImage" -}} +{{- if .Values.image }} {{- print .Values.image.repository ":" (include "antreaImageTag" .) -}} +{{- else }} +{{- print .Values.controllerImage.repository ":" (include "antreaControllerImageTag" .) -}} +{{- end }} +{{- end -}} + +{{- define "antreaAgentImage" -}} +{{- if .Values.image }} +{{- print .Values.image.repository ":" (include "antreaImageTag" .) -}} +{{- else }} +{{- print .Values.agentImage.repository ":" (include "antreaAgentImageTag" .) -}} +{{- end }} +{{- end -}} + +{{- define "antreaAgentImagePullPolicy" -}} +{{- if .Values.image }} +{{- print .Values.image.pullPolicy -}} +{{- else }} +{{- print .Values.agentImage.pullPolicy -}} +{{- end }} +{{- end -}} + +{{- define "antreaControllerImagePullPolicy" -}} +{{- if .Values.image }} +{{- print .Values.image.pullPolicy -}} +{{- else }} +{{- print .Values.controllerImage.pullPolicy -}} +{{- end }} {{- end -}} {{- define "validateValues" -}} diff --git a/build/charts/antrea/templates/agent/daemonset.yaml b/build/charts/antrea/templates/agent/daemonset.yaml index 96e2e3fb2b9..cc90ee4d6ea 100644 --- a/build/charts/antrea/templates/agent/daemonset.yaml +++ b/build/charts/antrea/templates/agent/daemonset.yaml @@ -71,8 +71,8 @@ spec: containers: {{- end }} - name: install-cni - image: {{ include "antreaImage" . | quote }} - imagePullPolicy: {{ .Values.image.pullPolicy }} + image: {{ include "antreaAgentImage" . | quote }} + imagePullPolicy: {{ include "antreaAgentImagePullPolicy" . }} resources: {{- .Values.agent.installCNI.resources | toYaml | nindent 12 }} {{- if eq .Values.trafficEncapMode "networkPolicyOnly" }} command: ["install_cni_chaining"] @@ -127,8 +127,8 @@ spec: containers: {{- end }} - name: antrea-agent - image: {{ include "antreaImage" . | quote }} - imagePullPolicy: {{ .Values.image.pullPolicy }} + image: {{ include "antreaAgentImage" . | quote }} + imagePullPolicy: {{ include "antreaAgentImagePullPolicy" . }} {{- if ((.Values.testing).coverage) }} command: ["/bin/sh"] args: ["-c", "sleep 2; antrea-agent-coverage -test.run=TestBincoverRunMain -test.coverprofile=antrea-agent.cov.out -args-file=/agent-arg-file; while true; do sleep 5 & wait $!; done"] @@ -257,8 +257,8 @@ spec: {{- toYaml . | trim | nindent 10 }} {{- end }} - name: antrea-ovs - image: {{ include "antreaImage" . | quote }} - imagePullPolicy: {{ .Values.image.pullPolicy }} + image: {{ include "antreaAgentImage" . | quote }} + imagePullPolicy: {{ include "antreaAgentImagePullPolicy" . }} resources: {{- .Values.agent.antreaOVS.resources | toYaml | nindent 12 }} command: ["start_ovs"] args: @@ -313,8 +313,8 @@ spec: subPath: openvswitch {{- if eq .Values.trafficEncryptionMode "ipsec" }} - name: antrea-ipsec - image: {{ include "antreaImage" . | quote }} - imagePullPolicy: {{ .Values.image.pullPolicy }} + image: {{ include "antreaAgentImage" . | quote }} + imagePullPolicy: {{ include "antreaAgentImagePullPolicy" . }} resources: {{- .Values.agent.antreaIPsec.resources | toYaml | nindent 12 }} command: ["start_ovs_ipsec"] livenessProbe: diff --git a/build/charts/antrea/templates/controller/deployment.yaml b/build/charts/antrea/templates/controller/deployment.yaml index 78f70479d56..c2ec527e981 100644 --- a/build/charts/antrea/templates/controller/deployment.yaml +++ b/build/charts/antrea/templates/controller/deployment.yaml @@ -60,8 +60,8 @@ spec: serviceAccountName: antrea-controller containers: - name: antrea-controller - image: {{ include "antreaImage" . | quote }} - imagePullPolicy: {{ .Values.image.pullPolicy }} + image: {{ include "antreaControllerImage" . | quote }} + imagePullPolicy: {{ include "antreaControllerImagePullPolicy" . }} resources: {{- .Values.controller.antreaController.resources | toYaml | nindent 12 }} {{- if ((.Values.testing).coverage) }} command: ["/bin/sh"] diff --git a/build/charts/antrea/values.yaml b/build/charts/antrea/values.yaml index 5c55eafcdae..afc096b8f98 100644 --- a/build/charts/antrea/values.yaml +++ b/build/charts/antrea/values.yaml @@ -1,6 +1,14 @@ # -- Container image to use for Antrea components. -image: - repository: "antrea/antrea-ubuntu" +# DEPRECATED: use agentImage and controllerImage instead. +image: {} +# -- Container image to use for the antrea-agent component. +agentImage: + repository: "antrea/antrea-agent-ubuntu" + pullPolicy: "IfNotPresent" + tag: "" +# -- Container image to use for the antrea-controller component. +controllerImage: + repository: "antrea/antrea-controller-ubuntu" pullPolicy: "IfNotPresent" tag: "" diff --git a/build/yamls/antrea-aks.yml b/build/yamls/antrea-aks.yml index 7c09defd871..d0f8737c613 100644 --- a/build/yamls/antrea-aks.yml +++ b/build/yamls/antrea-aks.yml @@ -6952,7 +6952,7 @@ spec: initContainers: containers: - name: install-cni - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -6985,7 +6985,7 @@ spec: - name: host-var-run-antrea mountPath: /var/run/antrea - name: antrea-agent - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent command: ["antrea-agent"] # Log to both "/var/log/antrea/" and stderr (so "kubectl logs" can work).- @@ -7076,7 +7076,7 @@ spec: - name: xtables-lock mountPath: /run/xtables.lock - name: antrea-ovs - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -7192,7 +7192,7 @@ spec: serviceAccountName: antrea-controller containers: - name: antrea-controller - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-controller-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: diff --git a/build/yamls/antrea-eks.yml b/build/yamls/antrea-eks.yml index bb63cda8f94..4e4cd7e8973 100644 --- a/build/yamls/antrea-eks.yml +++ b/build/yamls/antrea-eks.yml @@ -6951,7 +6951,7 @@ spec: initContainers: containers: - name: install-cni - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -6984,7 +6984,7 @@ spec: - name: host-var-run-antrea mountPath: /var/run/antrea - name: antrea-agent - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent command: ["antrea-agent"] # Log to both "/var/log/antrea/" and stderr (so "kubectl logs" can work).- @@ -7077,7 +7077,7 @@ spec: - name: xtables-lock mountPath: /run/xtables.lock - name: antrea-ovs - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -7193,7 +7193,7 @@ spec: serviceAccountName: antrea-controller containers: - name: antrea-controller - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-controller-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: diff --git a/build/yamls/antrea-gke.yml b/build/yamls/antrea-gke.yml index 5280fdece64..482b5c87676 100644 --- a/build/yamls/antrea-gke.yml +++ b/build/yamls/antrea-gke.yml @@ -6950,7 +6950,7 @@ spec: serviceAccountName: antrea-agent initContainers: - name: install-cni - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -6983,7 +6983,7 @@ spec: mountPath: /var/run/antrea containers: - name: antrea-agent - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent command: ["antrea-agent"] # Log to both "/var/log/antrea/" and stderr (so "kubectl logs" can work).- @@ -7074,7 +7074,7 @@ spec: - name: xtables-lock mountPath: /run/xtables.lock - name: antrea-ovs - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -7190,7 +7190,7 @@ spec: serviceAccountName: antrea-controller containers: - name: antrea-controller - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-controller-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: diff --git a/build/yamls/antrea-ipsec.yml b/build/yamls/antrea-ipsec.yml index 2edcb4f2658..a431b60cdee 100644 --- a/build/yamls/antrea-ipsec.yml +++ b/build/yamls/antrea-ipsec.yml @@ -6964,7 +6964,7 @@ spec: serviceAccountName: antrea-agent initContainers: - name: install-cni - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -6997,7 +6997,7 @@ spec: mountPath: /var/run/antrea containers: - name: antrea-agent - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent command: ["antrea-agent"] # Log to both "/var/log/antrea/" and stderr (so "kubectl logs" can work).- @@ -7097,7 +7097,7 @@ spec: - name: xtables-lock mountPath: /run/xtables.lock - name: antrea-ovs - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -7133,7 +7133,7 @@ spec: mountPath: /var/log/openvswitch subPath: openvswitch - name: antrea-ipsec - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -7249,7 +7249,7 @@ spec: serviceAccountName: antrea-controller containers: - name: antrea-controller - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-controller-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: diff --git a/build/yamls/antrea.yml b/build/yamls/antrea.yml index d3c980a7ff8..66601292006 100644 --- a/build/yamls/antrea.yml +++ b/build/yamls/antrea.yml @@ -6950,7 +6950,7 @@ spec: serviceAccountName: antrea-agent initContainers: - name: install-cni - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -6983,7 +6983,7 @@ spec: mountPath: /var/run/antrea containers: - name: antrea-agent - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent command: ["antrea-agent"] # Log to both "/var/log/antrea/" and stderr (so "kubectl logs" can work).- @@ -7074,7 +7074,7 @@ spec: - name: xtables-lock mountPath: /run/xtables.lock - name: antrea-ovs - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -7190,7 +7190,7 @@ spec: serviceAccountName: antrea-controller containers: - name: antrea-controller - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-controller-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: diff --git a/ci/jenkins/mellanox/scripts/start_ci.sh b/ci/jenkins/mellanox/scripts/start_ci.sh index e8c68f69e32..1963e5a8199 100755 --- a/ci/jenkins/mellanox/scripts/start_ci.sh +++ b/ci/jenkins/mellanox/scripts/start_ci.sh @@ -27,6 +27,8 @@ export ANTREA_CNI_REPO=${ANTREA_CNI_REPO:-'https://github.com/antrea-io/antrea.g export ANTREA_CNI_BRANCH=${ANTREA_CNI_BRANCH:-''} export ANTREA_CNI_PR=${ANTREA_CNI_PR:-''} export ANTREA_CNI_HARBOR_IMAGE=${ANTREA_CNI_HARBOR_IMAGE:-${HARBOR_REGISTRY}/${HARBOR_PROJECT}/antrea} +export ANTREA_AGENT_CNI_HARBOR_IMAGE=${ANTREA_AGENT_CNI_HARBOR_IMAGE:-${HARBOR_REGISTRY}/${HARBOR_PROJECT}/antrea-agent-ubuntu} +export ANTREA_CONTROLLER_CNI_HARBOR_IMAGE=${ANTREA_CONTROLLER_CNI_HARBOR_IMAGE:-${HARBOR_REGISTRY}/${HARBOR_PROJECT}/antrea-controller-ubuntu} export GOPATH=${WORKSPACE} export PATH=/usr/local/go/bin/:$GOPATH/src/k8s.io/kubernetes/third_party/etcd:$PATH @@ -110,8 +112,10 @@ EOF fi sudo docker tag antrea/antrea-ubuntu "$ANTREA_CNI_HARBOR_IMAGE" + sudo docker tag antrea/antrea-agent-ubuntu "$ANTREA_AGENT_CNI_HARBOR_IMAGE" + sudo docker tag antrea/antrea-controller-ubuntu "$ANTREA_CONTROLLER_CNI_HARBOR_IMAGE" - IMG_NAME="$ANTREA_CNI_HARBOR_IMAGE" bash $WORKSPACE/antrea-cni/hack/generate-manifest.sh --hw-offload > $ARTIFACTS/antrea.yml + AGENT_IMG_NAME="$ANTREA_AGENT_CNI_HARBOR_IMAGE" CONTROLLER_IMG_NAME="$ANTREA_CONTROLLER_CNI_HARBOR_IMAGE" bash $WORKSPACE/antrea-cni/hack/generate-manifest.sh --hw-offload > $ARTIFACTS/antrea.yml let status=status+$? if [ "$status" != 0 ]; then echo "ERROR: Failed to generate antrea manifest!" diff --git a/ci/jenkins/test-mc.sh b/ci/jenkins/test-mc.sh index b92cad7c3d6..36f7968dc25 100755 --- a/ci/jenkins/test-mc.sh +++ b/ci/jenkins/test-mc.sh @@ -298,12 +298,13 @@ function deliver_antrea_multicluster { DOCKER_REGISTRY="${DOCKER_REGISTRY}" ./hack/build-antrea-linux-all.sh --pull echo "====== Delivering Antrea to all Nodes ======" - docker save -o ${WORKDIR}/antrea-ubuntu.tar antrea/antrea-ubuntu:latest + docker save -o ${WORKDIR}/antrea-ubuntu.tar antrea/antrea-agent-ubuntu:latest antrea/antrea-controller-ubuntu:latest if [[ ${KIND} == "true" ]]; then for name in ${CLUSTER_NAMES[*]}; do - kind load docker-image antrea/antrea-ubuntu:latest --name ${name} + kind load docker-image antrea/antrea-agent-ubuntu:latest --name ${name} + kind load docker-image antrea/antrea-controller-ubuntu:latest --name ${name} done else for kubeconfig in "${multicluster_kubeconfigs[@]}" diff --git a/ci/jenkins/test-rancher.sh b/ci/jenkins/test-rancher.sh index 4916f13b1e7..bb2d82eec71 100644 --- a/ci/jenkins/test-rancher.sh +++ b/ci/jenkins/test-rancher.sh @@ -155,7 +155,7 @@ function deliver_antrea { scp -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i "${WORKDIR}/.ssh/id_rsa" build/yamls/*.yml ubuntu@[${control_plane_ip}]:~/ echo "====== Delivering Antrea to all the Nodes ======" - docker save -o antrea-ubuntu.tar antrea/antrea-ubuntu:latest + docker save -o antrea-ubuntu.tar antrea/antrea-agent-ubuntu:latest antrea/antrea-controller-ubuntu:latest docker save -o flow-aggregator.tar antrea/flow-aggregator:latest kubectl get nodes -o wide --no-headers=true | awk '{print $6}' | while read IP; do rsync -avr --progress --inplace -e "ssh -o StrictHostKeyChecking=no" antrea-ubuntu.tar ubuntu@[${IP}]:~/antrea-ubuntu.tar diff --git a/ci/jenkins/test-vm.sh b/ci/jenkins/test-vm.sh index 982d477d03a..556999e9200 100755 --- a/ci/jenkins/test-vm.sh +++ b/ci/jenkins/test-vm.sh @@ -142,7 +142,7 @@ function apply_antrea { fi fi TEMP_ANTREA_TAR="antrea-image.tar" - docker save antrea/antrea-ubuntu:latest -o $TEMP_ANTREA_TAR + docker save antrea/antrea-agent-ubuntu:latest antrea/antrea-controller-ubuntu:latest -o $TEMP_ANTREA_TAR ctr -n k8s.io image import $TEMP_ANTREA_TAR rm $TEMP_ANTREA_TAR echo "====== Applying Antrea yaml ======" diff --git a/ci/jenkins/test-vmc.sh b/ci/jenkins/test-vmc.sh index ae0a17e7749..8376edac8c5 100755 --- a/ci/jenkins/test-vmc.sh +++ b/ci/jenkins/test-vmc.sh @@ -411,7 +411,7 @@ function deliver_antrea { OLD_ANTREA_VERSION="$(cd $GIT_CHECKOUT_DIR | git tag | sort -Vr | head -n 1)" fi # Let antrea controller use new Antrea image - sed -i "0,/antrea-ubuntu:latest/{s/antrea-ubuntu:latest/antrea-ubuntu:$DOCKER_IMG_VERSION/}" ${GIT_CHECKOUT_DIR}/build/yamls/$antrea_yml + sed -i "0,/antrea-controller-ubuntu:latest/{s/antrea-controller-ubuntu:latest/antrea-controller-ubuntu:$DOCKER_IMG_VERSION/}" ${GIT_CHECKOUT_DIR}/build/yamls/$antrea_yml fi sed -i "s|#serviceCIDR: 10.96.0.0/12|serviceCIDR: 100.64.0.0/13|g" $GIT_CHECKOUT_DIR/build/yamls/$antrea_yml @@ -424,10 +424,12 @@ function deliver_antrea { export KUBECONFIG=${GIT_CHECKOUT_DIR}/jenkins/out/kubeconfig if [[ "$COVERAGE" == true ]]; then - docker save -o antrea-ubuntu-coverage.tar antrea/antrea-ubuntu-coverage:${DOCKER_IMG_VERSION} + docker save -o antrea-agent-ubuntu-coverage.tar antrea/antrea-agent-ubuntu-coverage:${DOCKER_IMG_VERSION} + docker save -o antrea-controller-ubuntu-coverage.tar antrea/antrea-controller-ubuntu-coverage:${DOCKER_IMG_VERSION} docker save -o flow-aggregator-coverage.tar antrea/flow-aggregator-coverage:${DOCKER_IMG_VERSION} else - docker save -o antrea-ubuntu.tar antrea/antrea-ubuntu:${DOCKER_IMG_VERSION} + docker save -o antrea-agent-ubuntu.tar antrea/antrea-agent-ubuntu:${DOCKER_IMG_VERSION} + docker save -o antrea-controller-ubuntu.tar antrea/antrea-controller-ubuntu:${DOCKER_IMG_VERSION} docker save -o flow-aggregator.tar antrea/flow-aggregator:${DOCKER_IMG_VERSION} fi @@ -439,10 +441,12 @@ function deliver_antrea { do ssh-keygen -f "/var/lib/jenkins/.ssh/known_hosts" -R ${IPs[$i]} if [[ "$COVERAGE" == true ]]; then - copy_image antrea-ubuntu-coverage.tar docker.io/antrea/antrea-ubuntu-coverage ${IPs[$i]} ${DOCKER_IMG_VERSION} true + copy_image antrea-agent-ubuntu-coverage.tar docker.io/antrea/antrea-agent-ubuntu-coverage ${IPs[$i]} ${DOCKER_IMG_VERSION} true + copy_image antrea-controller-ubuntu-coverage.tar docker.io/antrea/antrea-controller-ubuntu-coverage ${IPs[$i]} ${DOCKER_IMG_VERSION} true copy_image flow-aggregator-coverage.tar docker.io/antrea/flow-aggregator-coverage ${IPs[$i]} ${DOCKER_IMG_VERSION} true else - copy_image antrea-ubuntu.tar docker.io/antrea/antrea-ubuntu ${IPs[$i]} ${DOCKER_IMG_VERSION} true + copy_image antrea-agent-ubuntu.tar docker.io/antrea/antrea-agent-ubuntu ${IPs[$i]} ${DOCKER_IMG_VERSION} true + copy_image antrea-controller-ubuntu.tar docker.io/antrea/antrea-controller-ubuntu ${IPs[$i]} ${DOCKER_IMG_VERSION} true copy_image flow-aggregator.tar docker.io/antrea/flow-aggregator ${IPs[$i]} ${DOCKER_IMG_VERSION} true fi done diff --git a/ci/jenkins/test.sh b/ci/jenkins/test.sh index 0558cb952b0..b8f31dc4d91 100755 --- a/ci/jenkins/test.sh +++ b/ci/jenkins/test.sh @@ -400,7 +400,7 @@ function deliver_antrea_linux { fi cp -f build/yamls/*.yml $WORKDIR - docker save -o antrea-ubuntu.tar antrea/antrea-ubuntu:latest + docker save -o antrea-ubuntu.tar antrea/antrea-agent-ubuntu:latest antrea/antrea-controller-ubuntu:latest echo "===== Pull necessary images on Control-Plane node =====" harbor_images=("agnhost:2.13" "nginx:1.15-alpine") @@ -581,7 +581,7 @@ function deliver_antrea_linux_containerd { echo "==== Start building and delivering Linux containerd images ====" DOCKER_REGISTRY="${DOCKER_REGISTRY}" ./hack/build-antrea-linux-all.sh --pull - docker save -o antrea-ubuntu.tar antrea/antrea-ubuntu:latest + docker save -o antrea-ubuntu.tar antrea/antrea-agent-ubuntu:latest antrea/antrea-controller-ubuntu:latest echo "===== Pull necessary images on Control-Plane node =====" harbor_images=("agnhost:2.13" "nginx:1.15-alpine") antrea_images=("e2eteam/agnhost:2.13" "docker.io/library/nginx:1.15-alpine") @@ -740,7 +740,7 @@ function deliver_antrea { cp -f build/yamls/*.yml $WORKDIR echo "====== Delivering Antrea to all Nodes ======" - docker save -o antrea-ubuntu.tar antrea/antrea-ubuntu:latest + docker save -o antrea-ubuntu.tar antrea/antrea-agent-ubuntu:latest antrea/antrea-controller-ubuntu:latest docker save -o flow-aggregator.tar antrea/flow-aggregator:latest if [[ $TESTBED_TYPE == "flexible-ipam" ]]; then @@ -750,8 +750,9 @@ function deliver_antrea { ssh -o StrictHostKeyChecking=no -i "${WORKDIR}/jenkins_id_rsa" -n jenkins@${IP} "${CLEAN_STALE_IMAGES_CONTAINERD}; ${PRINT_CONTAINERD_STATUS}; ctr -n=k8s.io images import ${DEFAULT_WORKDIR}/antrea-ubuntu.tar; ctr -n=k8s.io images import ${DEFAULT_WORKDIR}/flow-aggregator.tar" || true done elif [[ $TESTBED_TYPE == "kind" ]]; then - kind load docker-image antrea/antrea-ubuntu:latest --name ${KIND_CLUSTER} - kind load docker-image antrea/flow-aggregator:latest --name ${KIND_CLUSTER} + kind load docker-image antrea/antrea-agent-ubuntu:latest --name ${KIND_CLUSTER} + kind load docker-image antrea/antrea-controller-ubuntu:latest --name ${KIND_CLUSTER} + kind load docker-image antrea/flow-aggregator:latest --name ${KIND_CLUSTER} kubectl config use-context kind-${KIND_CLUSTER} docker cp ./build/yamls/antrea.yml ${KIND_CLUSTER}-control-plane:/root/antrea.yml elif [[ $TESTBED_TYPE == "jumper" ]]; then diff --git a/ci/kind/kind-setup.sh b/ci/kind/kind-setup.sh index ee2311282c7..868e0ef75e9 100755 --- a/ci/kind/kind-setup.sh +++ b/ci/kind/kind-setup.sh @@ -19,8 +19,8 @@ # and docker bridge network connecting to worker Node. CLUSTER_NAME="" -ANTREA_IMAGE="antrea/antrea-ubuntu:latest" -IMAGES=$ANTREA_IMAGE +ANTREA_IMAGES="antrea/antrea-agent-ubuntu:latest antrea/antrea-controller-ubuntu:latest" +IMAGES=$ANTREA_IMAGES ANTREA_CNI=false ACTION="" UNTIL_TIME_IN_MINS="" diff --git a/ci/kind/test-e2e-kind.sh b/ci/kind/test-e2e-kind.sh index 60bef8dbabe..51e7c384c62 100755 --- a/ci/kind/test-e2e-kind.sh +++ b/ci/kind/test-e2e-kind.sh @@ -235,9 +235,11 @@ done # The Antrea images should not be pulled, as we want to use the local build. if $coverage; then manifest_args="$manifest_args --coverage" - COMMON_IMAGES_LIST+=("antrea/antrea-ubuntu-coverage:latest") + COMMON_IMAGES_LIST+=("antrea/antrea-agent-ubuntu-coverage:latest" \ + "antrea/antrea-controller-ubuntu-coverage:latest") else - COMMON_IMAGES_LIST+=("antrea/antrea-ubuntu:latest") + COMMON_IMAGES_LIST+=("antrea/antrea-agent-ubuntu:latest" \ + "antrea/antrea-controller-ubuntu:latest") fi if $flow_visibility; then if $coverage; then diff --git a/ci/kind/test-netpol-v2-conformance-kind.sh b/ci/kind/test-netpol-v2-conformance-kind.sh index 1363db49f06..29bca5257ce 100755 --- a/ci/kind/test-netpol-v2-conformance-kind.sh +++ b/ci/kind/test-netpol-v2-conformance-kind.sh @@ -106,7 +106,8 @@ if [ -n "$feature_gates" ]; then fi IMAGE_LIST=("registry.k8s.io/e2e-test-images/agnhost:2.43" \ - "antrea/antrea-ubuntu:latest") + "antrea/antrea-agent-ubuntu:latest" \ + "antrea/antrea-controller-ubuntu:latest") printf -v IMAGES "%s " "${IMAGE_LIST[@]}" diff --git a/ci/kind/test-upgrade-antrea.sh b/ci/kind/test-upgrade-antrea.sh index 845c7e8183d..63a69d54824 100755 --- a/ci/kind/test-upgrade-antrea.sh +++ b/ci/kind/test-upgrade-antrea.sh @@ -158,7 +158,8 @@ for img in "${DOCKER_IMAGES[@]}"; do done done -DOCKER_IMAGES+=("antrea/antrea-ubuntu:latest") +DOCKER_IMAGES+=("antrea/antrea-agent-ubuntu:latest" \ + "antrea/antrea-controller-ubuntu:latest") echo "Creating Kind cluster" IMAGES="${DOCKER_IMAGES[@]}" diff --git a/ci/test-conformance-aks.sh b/ci/test-conformance-aks.sh index c5c1803b0ee..4d508434d70 100755 --- a/ci/test-conformance-aks.sh +++ b/ci/test-conformance-aks.sh @@ -204,10 +204,11 @@ function deliver_antrea_to_aks() { echo "=== Loading the Antrea image to each Node ===" - antrea_image="antrea-ubuntu" + antrea_images_tar="antrea-ubuntu.tar" DOCKER_IMG_VERSION=${CLUSTER} - DOCKER_IMG_NAME="antrea/antrea-ubuntu" - docker save -o ${antrea_image}.tar ${DOCKER_IMG_NAME}:${DOCKER_IMG_VERSION} + DOCKER_AGENT_IMG_NAME="antrea/antrea-agent-ubuntu" + DOCKER_CONTROLLER_IMG_NAME="antrea/antrea-controller-ubuntu" + docker save -o ${antrea_images_tar} ${DOCKER_AGENT_IMG_NAME}:${DOCKER_IMG_VERSION} ${DOCKER_CONTROLLER_IMG_NAME}:${DOCKER_IMG_VERSION} CLUSTER_RESOURCE_GROUP=$(az aks show --resource-group ${RESOURCE_GROUP} --name ${CLUSTER} --query nodeResourceGroup -o tsv) SCALE_SET_NAME=$(az vmss list --resource-group ${CLUSTER_RESOURCE_GROUP} --query [0].name -o tsv) @@ -221,10 +222,10 @@ function deliver_antrea_to_aks() { sleep 30 for IP in ${NODE_IPS}; do - scp -o StrictHostKeyChecking=no -i ${SSH_PRIVATE_KEY_PATH} ${antrea_image}.tar azureuser@${IP}:~ - ssh -o StrictHostKeyChecking=no -i ${SSH_PRIVATE_KEY_PATH} -n azureuser@${IP} "sudo ctr -n=k8s.io images import ~/${antrea_image}.tar ; sudo ctr -n=k8s.io images tag docker.io/${DOCKER_IMG_NAME}:${DOCKER_IMG_VERSION} docker.io/${DOCKER_IMG_NAME}:latest" + scp -o StrictHostKeyChecking=no -i ${SSH_PRIVATE_KEY_PATH} ${antrea_images_tar} azureuser@${IP}:~ + ssh -o StrictHostKeyChecking=no -i ${SSH_PRIVATE_KEY_PATH} -n azureuser@${IP} "sudo ctr -n=k8s.io images import ~/${antrea_images_tar} ; sudo ctr -n=k8s.io images tag docker.io/${DOCKER_AGENT_IMG_NAME}:${DOCKER_IMG_VERSION} docker.io/${DOCKER_AGENT_IMG_NAME}:latest ; sudo ctr -n=k8s.io images tag docker.io/${DOCKER_CONTROLLER_IMG_NAME}:${DOCKER_IMG_VERSION} docker.io/${DOCKER_CONTROLLER_IMG_NAME}:latest" done - rm ${antrea_image}.tar + rm ${antrea_images_tar} echo "=== Configuring Antrea for AKS cluster ===" diff --git a/ci/test-conformance-eks.sh b/ci/test-conformance-eks.sh index 463e5008560..aaf915e1b6b 100755 --- a/ci/test-conformance-eks.sh +++ b/ci/test-conformance-eks.sh @@ -280,16 +280,17 @@ function deliver_antrea_to_eks() { fi echo "=== Loading the Antrea image to each Node ===" - antrea_image="antrea-ubuntu" + antrea_images_tar="antrea-ubuntu.tar" DOCKER_IMG_VERSION=${CLUSTER} - DOCKER_IMG_NAME="antrea/antrea-ubuntu" - docker save -o ${antrea_image}.tar ${DOCKER_IMG_NAME}:${DOCKER_IMG_VERSION} + DOCKER_AGENT_IMG_NAME="antrea/antrea-agent-ubuntu" + DOCKER_CONTROLLER_IMG_NAME="antrea/antrea-controller-ubuntu" + docker save -o ${antrea_images_tar} ${DOCKER_AGENT_IMG_NAME}:${DOCKER_IMG_VERSION} ${DOCKER_CONTROLLER_IMG_NAME}:${DOCKER_IMG_VERSION} kubectl get nodes -o wide --no-headers=true | awk '{print $7}' | while read IP; do - scp -o StrictHostKeyChecking=no -i ${SSH_PRIVATE_KEY_PATH} ${antrea_image}.tar ec2-user@${IP}:~ - ssh -o StrictHostKeyChecking=no -i ${SSH_PRIVATE_KEY_PATH} -n ec2-user@${IP} "sudo ctr -n=k8s.io images import ~/${antrea_image}.tar ; sudo ctr -n=k8s.io images tag docker.io/${DOCKER_IMG_NAME}:${DOCKER_IMG_VERSION} docker.io/${DOCKER_IMG_NAME}:latest --force" + scp -o StrictHostKeyChecking=no -i ${SSH_PRIVATE_KEY_PATH} ${antrea_images_tar} ec2-user@${IP}:~ + ssh -o StrictHostKeyChecking=no -i ${SSH_PRIVATE_KEY_PATH} -n ec2-user@${IP} "sudo ctr -n=k8s.io images import ~/${antrea_images_tar} ; sudo ctr -n=k8s.io images tag docker.io/${DOCKER_AGENT_IMG_NAME}:${DOCKER_IMG_VERSION} docker.io/${DOCKER_AGENT_IMG_NAME}:latest --force ; sudo ctr -n=k8s.io images tag docker.io/${DOCKER_CONTROLLER_IMG_NAME}:${DOCKER_IMG_VERSION} docker.io/${DOCKER_CONTROLLER_IMG_NAME}:latest --force" done - rm ${antrea_image}.tar + rm ${antrea_images_tar} echo "=== Configuring Antrea for cluster ===" kubectl apply -f ${GIT_CHECKOUT_DIR}/build/yamls/antrea-eks-node-init.yml diff --git a/ci/test-conformance-gke.sh b/ci/test-conformance-gke.sh index 302a0b28ede..283413d2865 100755 --- a/ci/test-conformance-gke.sh +++ b/ci/test-conformance-gke.sh @@ -221,17 +221,18 @@ function deliver_antrea_to_gke() { fi echo "=== Loading the Antrea image to each Node ===" - antrea_image="antrea-ubuntu" + antrea_images_tar="antrea-ubuntu.tar" DOCKER_IMG_VERSION=${CLUSTER} - DOCKER_IMG_NAME="antrea/antrea-ubuntu" - docker save -o ${antrea_image}.tar ${DOCKER_IMG_NAME}:${DOCKER_IMG_VERSION} + DOCKER_AGENT_IMG_NAME="antrea/antrea-agent-ubuntu" + DOCKER_CONTROLLER_IMG_NAME="antrea/antrea-controller-ubuntu" + docker save -o ${antrea_images_tar} ${DOCKER_AGENT_IMG_NAME}:${DOCKER_IMG_VERSION} ${DOCKER_CONTROLLER_IMG_NAME}:${DOCKER_IMG_VERSION} node_names=$(kubectl get nodes -o wide --no-headers=true | awk '{print $1}') for node_name in ${node_names}; do - gcloud compute scp ${antrea_image}.tar ubuntu@${node_name}:~ --zone ${GKE_ZONE} - gcloud compute ssh ubuntu@${node_name} --command="sudo ctr -n=k8s.io images import ~/${antrea_image}.tar ; sudo ctr -n=k8s.io images tag docker.io/${DOCKER_IMG_NAME}:${DOCKER_IMG_VERSION} docker.io/${DOCKER_IMG_NAME}:latest" --zone ${GKE_ZONE} + gcloud compute scp ${antrea_images_tar} ubuntu@${node_name}:~ --zone ${GKE_ZONE} + gcloud compute ssh ubuntu@${node_name} --command="sudo ctr -n=k8s.io images import ~/${antrea_images_tar} ; sudo ctr -n=k8s.io images tag docker.io/${DOCKER_AGENT_IMG_NAME}:${DOCKER_IMG_VERSION} docker.io/${DOCKER_AGENT_IMG_NAME}:latest ; sudo ctr -n=k8s.io images tag docker.io/${DOCKER_CONTROLLER_IMG_NAME}:${DOCKER_IMG_VERSION} docker.io/${DOCKER_CONTROLLER_IMG_NAME}:latest" --zone ${GKE_ZONE} done - rm ${antrea_image}.tar + rm ${antrea_images_tar} echo "=== Configuring Antrea for cluster ===" if [[ -n ${SVC_ACCOUNT_NAME+x} ]]; then diff --git a/hack/externalnode/install-vm.sh b/hack/externalnode/install-vm.sh index 14aadaa51d8..d591da2dc67 100644 --- a/hack/externalnode/install-vm.sh +++ b/hack/externalnode/install-vm.sh @@ -58,8 +58,8 @@ ANTREA_AGENT_ANTREA_KUBECONFIG="antrea-agent.antrea.kubeconfig" # Docker variables ANTREA_VERSION="latest" -ANTREA_DOCKER_REGISTRY="antrea/antrea-ubuntu" -ANTREA_DOCKER_IMAGE="${ANTREA_DOCKER_REGISTRY}:${ANTREA_VERSION}" +ANTREA_AGENT_DOCKER_REGISTRY="antrea/antrea-agent-ubuntu" +ANTREA_AGENT_DOCKER_IMAGE="${ANTREA_DOCKER_REGISTRY}:${ANTREA_VERSION}" NODE_NAME="$(hostname)" OS_NAME="" @@ -227,7 +227,7 @@ version: "3" services: antrea-ovs: - image: $ANTREA_DOCKER_IMAGE + image: $ANTREA_AGENT_DOCKER_IMAGE container_name: antrea-ovs volumes: - /var/log/openvswitch:/var/log/openvswitch @@ -248,7 +248,7 @@ services: window: 10s antrea-agent: - image: $ANTREA_DOCKER_IMAGE + image: $ANTREA_AGENT_DOCKER_IMAGE container_name: antrea-agent volumes: - /etc/antrea/:/etc/antrea @@ -356,15 +356,15 @@ EOF # Function to deploy and run Antrea specific containers. deploy_antrea_containers() { set +eo pipefail - if [ -z "$(docker images -q $ANTREA_DOCKER_IMAGE)" ]; then - echo "Downloading the Docker image $ANTREA_DOCKER_IMAGE" - docker pull $ANTREA_DOCKER_IMAGE + if [ -z "$(docker images -q $ANTREA_AGENT_DOCKER_IMAGE)" ]; then + echo "Downloading the Docker image $ANTREA_AGENT_DOCKER_IMAGE" + docker pull $ANTREA_AGENT_DOCKER_IMAGE if [[ "$?" -ne 0 ]]; then - echoerr "Error, Downloading the Docker image $ANTREA_DOCKER_IMAGE" + echoerr "Error, Downloading the Docker image $ANTREA_AGENT_DOCKER_IMAGE" exit 2 fi else - echo "$ANTREA_DOCKER_IMAGE image is already loaded to Docker" + echo "$ANTREA_AGENT_DOCKER_IMAGE image is already loaded to Docker" fi # Start Antrea/OVS containers as part of system startup. setup_antrea_agent_service @@ -450,7 +450,7 @@ case $key in ;; --antrea-version) ANTREA_VERSION="$2" - ANTREA_DOCKER_IMAGE="${ANTREA_DOCKER_REGISTRY}:${ANTREA_VERSION}" + ANTREA_AGENT_DOCKER_IMAGE="${ANTREA_DOCKER_REGISTRY}:${ANTREA_VERSION}" validate_argument $1 $2 shift 2 ;; diff --git a/hack/generate-helm-release.sh b/hack/generate-helm-release.sh index f82fb8dfe47..07691f14f26 100755 --- a/hack/generate-helm-release.sh +++ b/hack/generate-helm-release.sh @@ -94,7 +94,8 @@ ANTREA_CHART="$THIS_DIR/../build/charts/antrea" # ignored as per the .helmignore file. cp "$ANTREA_CHART/Chart.yaml" "$ANTREA_CHART/Chart.yaml.bak" yq -i '.annotations."artifacthub.io/prerelease" = strenv(PRERELEASE)' "$ANTREA_CHART/Chart.yaml" -sed -i.bak 's=antrea/antrea-ubuntu=projects.registry.vmware.com/antrea/antrea-ubuntu=g' "$ANTREA_CHART/values.yaml" +sed -i.bak 's=antrea/antrea-agent-ubuntu=projects.registry.vmware.com/antrea/antrea-agent-ubuntu=g' "$ANTREA_CHART/values.yaml" +sed -i.bak 's=antrea/antrea-controller-ubuntu=projects.registry.vmware.com/antrea/antrea-controller-ubuntu=g' "$ANTREA_CHART/values.yaml" $HELM package --app-version $VERSION --version $VERSION $ANTREA_CHART mv "antrea-$VERSION.tgz" "$OUT/antrea-chart.tgz" mv "$ANTREA_CHART/Chart.yaml.bak" "$ANTREA_CHART/Chart.yaml" diff --git a/hack/generate-manifest.sh b/hack/generate-manifest.sh index 8a35cfc8ed0..d62df65a456 100755 --- a/hack/generate-manifest.sh +++ b/hack/generate-manifest.sh @@ -45,9 +45,9 @@ Generate a YAML manifest for Antrea using Helm and print it to stdout. --extra-helm-values-file Optional extra helm values file to override the default config values --extra-helm-values Optional extra helm values to override the default config values -In 'release' mode, environment variables IMG_NAME and IMG_TAG must be set. +In 'release' mode, environment variables AGENT_IMG_NAME, CONTROLLER_IMG_NAME, and IMG_TAG must be set. -In 'dev' mode, environment variable IMG_NAME can be set to use a custom image. +In 'dev' mode, environment variables AGENT_IMG_NAME & CONTROLLER_IMG_NAME can be set to use a custom image. This tool uses Helm 3 (https://helm.sh/) to generate manifests for Antrea. You can set the HELM environment variable to the path of the helm binary you want us to use. Otherwise we will download @@ -201,8 +201,8 @@ if [ "$TUN_TYPE" != "geneve" ] && [ "$TUN_TYPE" != "vxlan" ] && [ "$TUN_TYPE" != exit 1 fi -if [ "$MODE" == "release" ] && [ -z "$IMG_NAME" ]; then - echoerr "In 'release' mode, environment variable IMG_NAME must be set" +if ([ "$MODE" == "release" ] && ([ -z "$AGENT_IMG_NAME" ] || [ -z "$CONTROLLER_IMG_NAME" ])) then + echoerr "In 'release' mode, environment variables AGENT_IMG_NAME and CONTROLLER_IMG_NAME must be set" print_help exit 1 fi @@ -323,12 +323,23 @@ EOF fi if [ "$MODE" == "dev" ]; then - if [[ -z "$IMG_NAME" ]]; then + if [[ -z "$AGENT_IMG_NAME" ]]; then if $COVERAGE; then - HELM_VALUES+=("image.repository=antrea/antrea-ubuntu-coverage") + HELM_VALUES+=("agentImage.repository=antrea/antrea-agent-ubuntu-coverage") + else + HELM_VALUES+=("agentImage.repository=antrea/antrea-agent-ubuntu") fi else - HELM_VALUES+=("image.repository=$IMG_NAME") + HELM_VALUES+=("agentImage.repository=$AGENT_IMG_NAME") + fi + if [[ -z "$CONTROLLER_IMG_NAME" ]]; then + if $COVERAGE; then + HELM_VALUES+=("controllerImage.repository=antrea/antrea-controller-ubuntu-coverage") + else + HELM_VALUES+=("controllerImage.repository=antrea/antrea-controller-ubuntu") + fi + else + HELM_VALUES+=("controllerImage.repository=$CONTROLLER_IMG_NAME") fi if $VERBOSE_LOG; then @@ -344,7 +355,7 @@ if [ "$MODE" == "dev" ]; then fi if [ "$MODE" == "release" ]; then - HELM_VALUES+=("image.repository=$IMG_NAME,image.tag=$IMG_TAG") + HELM_VALUES+=("agentImage.repository=$AGENT_IMG_NAME,agentImage.tag=$IMG_TAG,controllerImage.repository=$CONTROLLER_IMG_NAME,controllerImage.tag=$IMG_TAG") fi delim="" diff --git a/hack/generate-standard-manifests.sh b/hack/generate-standard-manifests.sh index 8fc80e0d3a3..c15a1361fbd 100755 --- a/hack/generate-standard-manifests.sh +++ b/hack/generate-standard-manifests.sh @@ -26,9 +26,9 @@ Generate standard YAML manifests for Antrea using Helm and writes them to output --out Output directory for generated manifests --help, -h Print this message and exit -In 'release' mode, environment variables IMG_NAME and IMG_TAG must be set. +In 'release' mode, environment variables AGENT_IMG_NAME, CONTROLLER_IMG_NAME, and IMG_TAG must be set. -In 'dev' mode, environment variable IMG_NAME can be set to use a custom image. +In 'dev' mode, environment variables AGENT_IMG_NAME & CONTROLLER_IMG_NAME can be set to use a custom image. This tool uses Helm 3 (https://helm.sh/) to generate the \"standard\" manifests for Antrea. These are the manifests that are checked-in into the Antrea source tree, and that are uploaded as release @@ -80,8 +80,8 @@ if [ "$MODE" != "dev" ] && [ "$MODE" != "release" ]; then exit 1 fi -if [ "$MODE" == "release" ] && [ -z "$IMG_NAME" ]; then - echoerr "In 'release' mode, environment variable IMG_NAME must be set" +if ([ "$MODE" == "release" ] && ([ -z "$AGENT_IMG_NAME" ] || [ -z "$CONTROLLER_IMG_NAME" ])); then + echoerr "In 'release' mode, environment variables AGENT_IMG_NAME and CONTROLLER_IMG_NAME must be set" print_help exit 1 fi @@ -112,7 +112,7 @@ fi EXTRA_VALUES="" if [ "$MODE" == "release" ]; then - EXTRA_VALUES="--set image.repository=$IMG_NAME,image.tag=$IMG_TAG" + EXTRA_VALUES="--set agentImage.repository=$AGENT_IMG_NAME,agentImage.tag=$IMG_TAG,controllerImage.repository=$CONTROLLER_IMG_NAME,controllerImage.tag=$IMG_TAG" fi ANTREA_CHART="$THIS_DIR/../build/charts/antrea" diff --git a/hack/netpol-generator/test-kind.sh b/hack/netpol-generator/test-kind.sh index 16056e325ff..698b9cab927 100755 --- a/hack/netpol-generator/test-kind.sh +++ b/hack/netpol-generator/test-kind.sh @@ -27,7 +27,8 @@ JOB_NAME=job.batch/cyclonus kind create cluster --config "$KIND_CONFIG" -kind load docker-image antrea/antrea-ubuntu:latest +kind load docker-image antrea/antrea-agent-ubuntu:latest +kind load docker-image antrea/antrea-controller-ubuntu:latest # pre-load cyclonus image docker pull mfenwick100/cyclonus:v0.4.7 diff --git a/hack/release/prepare-assets.sh b/hack/release/prepare-assets.sh index bcd537ec356..81a8aee36c0 100755 --- a/hack/release/prepare-assets.sh +++ b/hack/release/prepare-assets.sh @@ -104,7 +104,8 @@ cp ./hack/externalnode/install-vm.ps1 "$OUTPUT_DIR/" export IMG_TAG=$VERSION -export IMG_NAME=projects.registry.vmware.com/antrea/antrea-ubuntu +export AGENT_IMG_NAME=projects.registry.vmware.com/antrea/antrea-agent-ubuntu +export CONTROLLER_IMG_NAME=projects.registry.vmware.com/antrea/antrea-controller-ubuntu ./hack/generate-standard-manifests.sh --mode release --out "$OUTPUT_DIR" export IMG_NAME=projects.registry.vmware.com/antrea/antrea-windows diff --git a/test/e2e/infra/vagrant/push_antrea.sh b/test/e2e/infra/vagrant/push_antrea.sh index bdf51fb4f2d..6b2e0122e99 100755 --- a/test/e2e/infra/vagrant/push_antrea.sh +++ b/test/e2e/infra/vagrant/push_antrea.sh @@ -62,7 +62,8 @@ esac done SAVED_ANTREA_IMG=/tmp/antrea-ubuntu.tar -ANTREA_IMG_NAME=antrea/antrea-ubuntu:latest +ANTREA_AGENT_IMG_NAME=antrea/antrea-agent-ubuntu:latest +ANTREA_CONTROLLER_IMG_NAME=antrea/antrea-controller-ubuntu:latest THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" @@ -168,7 +169,8 @@ if [[ $FLOW_COLLECTOR != "" ]]; then fi # Push Antrea image and related manifest. -pushImgToNodes "$ANTREA_IMG_NAME" "$SAVED_ANTREA_IMG" +pushImgToNodes "$ANTREA_AGENT_IMG_NAME" "$SAVED_ANTREA_IMG" +pushImgToNodes "$ANTREA_CONTROLLER_IMG_NAME" "$SAVED_ANTREA_IMG" copyManifestToNodes "$ANTREA_YML" copyManifestToNodes "$ANTREA_IPSEC_YML"