From 60b5903fcf9a6f6a0bb4f931035a9ba49b23fafa Mon Sep 17 00:00:00 2001 From: Pulkit Jain Date: Tue, 12 Dec 2023 15:35:05 +0530 Subject: [PATCH] Use Different Images for Agent and Controller Fixes #5691. Modified the code to build separate images for antrea-agent and antrea-controller, because there are many resources that are not required by controller and are required by agent only, and unified image for both creates a burden when starting antrea-controller and thus it takes time to start. For this reason I have create separate images for antrea-agent and antrea-controller. Signed-off-by: Pulkit Jain --- .github/workflows/build.yml | 4 ++ .github/workflows/kind.yml | 20 ++++++--- Makefile | 40 +++++++++++++++++ build/charts/antrea/README.md | 2 +- build/charts/antrea/templates/_helpers.tpl | 12 +++-- .../antrea/templates/agent/daemonset.yaml | 16 +++---- .../templates/controller/deployment.yaml | 4 +- build/charts/antrea/values.yaml | 7 +-- build/images/Dockerfile.agent.build.coverage | 44 +++++++++++++++++++ build/images/Dockerfile.build.agent.ubuntu | 42 ++++++++++++++++++ .../images/Dockerfile.build.controller.ubuntu | 42 ++++++++++++++++++ .../Dockerfile.controller.build.coverage | 44 +++++++++++++++++++ build/images/base/build.sh | 34 +++++++------- build/yamls/antrea-aks.yml | 8 ++-- build/yamls/antrea-eks.yml | 8 ++-- build/yamls/antrea-gke.yml | 8 ++-- build/yamls/antrea-ipsec.yml | 10 ++--- build/yamls/antrea.yml | 8 ++-- ci/kind/kind-setup.sh | 4 +- ci/kind/test-e2e-kind.sh | 6 ++- hack/build-antrea-linux-all.sh | 4 ++ 21 files changed, 300 insertions(+), 67 deletions(-) create mode 100644 build/images/Dockerfile.agent.build.coverage create mode 100644 build/images/Dockerfile.build.agent.ubuntu create mode 100644 build/images/Dockerfile.build.controller.ubuntu create mode 100644 build/images/Dockerfile.controller.build.coverage diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 71c86d2657b..2514e6a5b30 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,7 +49,11 @@ jobs: echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin ./hack/build-antrea-linux-all.sh --pull --push-base-images docker tag antrea/antrea-ubuntu:latest antrea/antrea-ubuntu-amd64:latest + docker tag antrea/antrea-controller-ubuntu:latest antrea/antrea-controller-ubuntu-amd64:latest + docker tag antrea/antrea-agent-ubuntu:latest antrea/antrea-agent-ubuntu-amd64:latest docker push antrea/antrea-ubuntu-amd64:latest + docker push antrea/antrea-controller-ubuntu-amd64:latest + docker push antrea/antrea-agent-ubuntu-amd64:latest - name: Trigger Antrea arm builds and multi-arch manifest update if: ${{ github.repository == 'antrea-io/antrea' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} uses: benc-uk/workflow-dispatch@v1 diff --git a/.github/workflows/kind.yml b/.github/workflows/kind.yml index 83e00fd3707..cf73bd4daa3 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: @@ -487,7 +487,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) @@ -532,7 +533,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) @@ -577,7 +579,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) @@ -622,7 +625,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) @@ -667,7 +671,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) @@ -709,7 +714,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/Makefile b/Makefile index e612daeb145..5a21cd36a31 100644 --- a/Makefile +++ b/Makefile @@ -332,6 +332,26 @@ else endif docker tag antrea/antrea-ubuntu:$(DOCKER_IMG_VERSION) antrea/antrea-ubuntu +.PHONY: build-controller-ubuntu +build-controller-ubuntu: + @echo "===> Building antrea/antrea-controller-ubuntu Docker image <===" +ifneq ($(NO_PULL),) + docker build -t antrea/antrea-controller-ubuntu:$(DOCKER_IMG_VERSION) -f build/images/Dockerfile.build.controller.ubuntu $(DOCKER_BUILD_ARGS) . +else + docker build --pull -t antrea/antrea-controller-ubuntu:$(DOCKER_IMG_VERSION) -f build/images/Dockerfile.build.controller.ubuntu $(DOCKER_BUILD_ARGS) . +endif + docker tag antrea/antrea-controller-ubuntu:$(DOCKER_IMG_VERSION) antrea/antrea-controller-ubuntu + +.PHONY: build-agent-ubuntu +build-agent-ubuntu: + @echo "===> Building antrea/antrea-agent-ubuntu Docker image <===" +ifneq ($(NO_PULL),) + docker build -t antrea/antrea-agent-ubuntu:$(DOCKER_IMG_VERSION) -f build/images/Dockerfile.build.agent.ubuntu $(DOCKER_BUILD_ARGS) . +else + docker build --pull -t antrea/antrea-agent-ubuntu:$(DOCKER_IMG_VERSION) -f build/images/Dockerfile.build.agent.ubuntu $(DOCKER_BUILD_ARGS) . +endif + docker tag antrea/antrea-agent-ubuntu:$(DOCKER_IMG_VERSION) antrea/antrea-agent-ubuntu + # Build bins in a golang container, and build the antrea-ubuntu Docker image. .PHONY: build-ubuntu build-ubuntu: @@ -374,6 +394,26 @@ else endif docker tag antrea/antrea-ubuntu-coverage:$(DOCKER_IMG_VERSION) antrea/antrea-ubuntu-coverage +.PHONY: build-controller-ubuntu-coverage +build-controller-ubuntu-coverage: + @echo "===> Building Antrea bins and antrea/antrea-controller-ubuntu-coverage Docker image <===" +ifneq ($(NO_PULL),) + docker build -t antrea/antrea-controller-ubuntu-coverage:$(DOCKER_IMG_VERSION) -f build/images/Dockerfile.controller.build.coverage $(DOCKER_BUILD_ARGS) . +else + docker build --pull -t antrea/antrea-controller-ubuntu-coverage:$(DOCKER_IMG_VERSION) -f build/images/Dockerfile.controller.build.coverage $(DOCKER_BUILD_ARGS) . +endif + docker tag antrea/antrea-controller-ubuntu-coverage:$(DOCKER_IMG_VERSION) antrea/antrea-controller-ubuntu-coverage + +.PHONY: build-agent-ubuntu-coverage +build-agent-ubuntu-coverage: + @echo "===> Building Antrea bins and antrea/antrea-agent-ubuntu-coverage Docker image <===" +ifneq ($(NO_PULL),) + docker build -t antrea/antrea-agent-ubuntu-coverage:$(DOCKER_IMG_VERSION) -f build/images/Dockerfile.agent.build.coverage $(DOCKER_BUILD_ARGS) . +else + docker build --pull -t antrea/antrea-agent-ubuntu-coverage:$(DOCKER_IMG_VERSION) -f build/images/Dockerfile.agent.build.coverage $(DOCKER_BUILD_ARGS) . +endif + docker tag antrea/antrea-agent-ubuntu-coverage:$(DOCKER_IMG_VERSION) antrea/antrea-agent-ubuntu-coverage + .PHONY: build-scale-simulator build-scale-simulator: @echo "===> Building simulator bin and antrea-ubuntu-simulator image" diff --git a/build/charts/antrea/README.md b/build/charts/antrea/README.md index da824a9b1e9..9cc35d43b52 100644 --- a/build/charts/antrea/README.md +++ b/build/charts/antrea/README.md @@ -95,7 +95,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. | +| images | object | `{"agentRepository":"antrea/antrea-agent-ubuntu","controllerRepository":"antrea/antrea-controller-ubuntu","pullPolicy":"IfNotPresent","tag":""}` | Container images to be used for antrea-controller and antrea-agent components. | | 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..bfff2f8100d 100644 --- a/build/charts/antrea/templates/_helpers.tpl +++ b/build/charts/antrea/templates/_helpers.tpl @@ -9,8 +9,8 @@ {{- end -}} {{- define "antreaImageTag" -}} -{{- if .Values.image.tag }} -{{- .Values.image.tag -}} +{{- if .Values.images.tag }} +{{- .Values.images.tag -}} {{- else if eq .Chart.AppVersion "latest" }} {{- print "latest" -}} {{- else }} @@ -18,8 +18,12 @@ {{- end }} {{- end -}} -{{- define "antreaImage" -}} -{{- print .Values.image.repository ":" (include "antreaImageTag" .) -}} +{{- define "antreaControllerImage" -}} +{{- print .Values.images.controllerRepository ":" (include "antreaImageTag" .) -}} +{{- end -}} + +{{- define "antreaAgentImage" -}} +{{- print .Values.images.agentRepository ":" (include "antreaImageTag" .) -}} {{- end -}} {{- define "validateValues" -}} diff --git a/build/charts/antrea/templates/agent/daemonset.yaml b/build/charts/antrea/templates/agent/daemonset.yaml index 96e2e3fb2b9..440e1ae111c 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: {{ .Values.images.pullPolicy }} 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: {{ .Values.images.pullPolicy }} {{- 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: {{ .Values.images.pullPolicy }} 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: {{ .Values.images.pullPolicy }} 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..de512e8b74c 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: {{ .Values.images.pullPolicy }} 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 aff2df445a1..cd72c8c0dec 100644 --- a/build/charts/antrea/values.yaml +++ b/build/charts/antrea/values.yaml @@ -1,6 +1,7 @@ -# -- Container image to use for Antrea components. -image: - repository: "antrea/antrea-ubuntu" +# -- Container images to be used for antrea-controller and antrea-agent components. +images: + controllerRepository: "antrea/antrea-controller-ubuntu" + agentRepository: "antrea/antrea-agent-ubuntu" pullPolicy: "IfNotPresent" tag: "" diff --git a/build/images/Dockerfile.agent.build.coverage b/build/images/Dockerfile.agent.build.coverage new file mode 100644 index 00000000000..15ee67b9b2c --- /dev/null +++ b/build/images/Dockerfile.agent.build.coverage @@ -0,0 +1,44 @@ +# Copyright 2024 Antrea Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG GO_VERSION +ARG BUILD_TAG +FROM golang:${GO_VERSION} as antrea-build + +WORKDIR /antrea + +COPY go.mod /antrea/go.mod + +RUN go mod download + +COPY . /antrea + +RUN make antrea-agent antrea-cni antrea-agent-instr-binary +# Disable CGO for antctl in case it is copied outside of the container image. It +# also reduces the size of the binary and aligns with how we distribute antctl +# in release assets. +RUN CGO_ENABLED=0 make antctl-linux antctl-instr-binary +RUN mv bin/antctl-linux bin/antctl + +FROM antrea/base-ubuntu:${BUILD_TAG} + +LABEL maintainer="Antrea " +LABEL description="The Docker image to deploy the Antrea CNI with code coverage measurement enabled (used for testing)." + +USER root + +COPY build/images/scripts/* /usr/local/bin/ +COPY --from=antrea-build /antrea/bin/* /usr/local/bin/ +COPY --from=antrea-build /antrea/test/e2e/coverage/controller-arg-file / +COPY --from=antrea-build /antrea/test/e2e/coverage/agent-arg-file / diff --git a/build/images/Dockerfile.build.agent.ubuntu b/build/images/Dockerfile.build.agent.ubuntu new file mode 100644 index 00000000000..4623b31a309 --- /dev/null +++ b/build/images/Dockerfile.build.agent.ubuntu @@ -0,0 +1,42 @@ +# Copyright 2024 Antrea Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG GO_VERSION +ARG BUILD_TAG +FROM golang:${GO_VERSION} as antrea-build + +WORKDIR /antrea + +COPY go.mod /antrea/go.mod + +RUN go mod download + +COPY . /antrea + +RUN make antrea-agent antrea-cni +# Disable CGO for antctl in case it is copied outside of the container image. It +# also reduces the size of the binary and aligns with how we distribute antctl +# in release assets. +RUN CGO_ENABLED=0 make antctl-linux +RUN mv bin/antctl-linux bin/antctl + +FROM antrea/base-ubuntu:${BUILD_TAG} + +LABEL maintainer="Antrea " +LABEL description="The Docker image to deploy the Antrea CNI." + +USER root + +COPY build/images/scripts/* /usr/local/bin/ +COPY --from=antrea-build /antrea/bin/* /usr/local/bin/ diff --git a/build/images/Dockerfile.build.controller.ubuntu b/build/images/Dockerfile.build.controller.ubuntu new file mode 100644 index 00000000000..bf31d1e8062 --- /dev/null +++ b/build/images/Dockerfile.build.controller.ubuntu @@ -0,0 +1,42 @@ +# Copyright 2024 Antrea Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG GO_VERSION +ARG BUILD_TAG +FROM golang:${GO_VERSION} as antrea-build + +WORKDIR /antrea + +COPY go.mod /antrea/go.mod + +RUN go mod download + +COPY . /antrea + +RUN make antrea-controller +# Disable CGO for antctl in case it is copied outside of the container image. It +# also reduces the size of the binary and aligns with how we distribute antctl +# in release assets. +RUN CGO_ENABLED=0 make antctl-linux +RUN mv bin/antctl-linux bin/antctl + +FROM ubuntu:22.04 + +LABEL maintainer="Antrea " +LABEL description="The Docker image to deploy the Antrea CNI." + +USER root + +COPY build/images/scripts/* /usr/local/bin/ +COPY --from=antrea-build /antrea/bin/* /usr/local/bin/ diff --git a/build/images/Dockerfile.controller.build.coverage b/build/images/Dockerfile.controller.build.coverage new file mode 100644 index 00000000000..d6118f6f187 --- /dev/null +++ b/build/images/Dockerfile.controller.build.coverage @@ -0,0 +1,44 @@ +# Copyright 2024 Antrea Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG GO_VERSION +ARG BUILD_TAG +FROM golang:${GO_VERSION} as antrea-build + +WORKDIR /antrea + +COPY go.mod /antrea/go.mod + +RUN go mod download + +COPY . /antrea + +RUN make antrea-controller antrea-controller-instr-binary +# Disable CGO for antctl in case it is copied outside of the container image. It +# also reduces the size of the binary and aligns with how we distribute antctl +# in release assets. +RUN CGO_ENABLED=0 make antctl-linux antctl-instr-binary +RUN mv bin/antctl-linux bin/antctl + +FROM ubuntu:22.04 + +LABEL maintainer="Antrea " +LABEL description="The Docker image to deploy the Antrea CNI with code coverage measurement enabled (used for testing)." + +USER root + +COPY build/images/scripts/* /usr/local/bin/ +COPY --from=antrea-build /antrea/bin/* /usr/local/bin/ +COPY --from=antrea-build /antrea/test/e2e/coverage/controller-arg-file / +COPY --from=antrea-build /antrea/test/e2e/coverage/agent-arg-file / diff --git a/build/images/base/build.sh b/build/images/base/build.sh index 36d282345fe..5e7ef10ad3c 100755 --- a/build/images/base/build.sh +++ b/build/images/base/build.sh @@ -130,28 +130,28 @@ if $PULL; then fi docker build $PLATFORM_ARG --target cni-binaries \ - --cache-from antrea/cni-binaries:$CNI_BINARIES_VERSION \ - -t antrea/cni-binaries:$CNI_BINARIES_VERSION \ - --build-arg CNI_BINARIES_VERSION=$CNI_BINARIES_VERSION \ - --build-arg BUILD_TAG=$BUILD_TAG . + --cache-from antrea/cni-binaries:$CNI_BINARIES_VERSION \ + -t antrea/cni-binaries:$CNI_BINARIES_VERSION \ + --build-arg CNI_BINARIES_VERSION=$CNI_BINARIES_VERSION \ + --build-arg BUILD_TAG=$BUILD_TAG . if [ "$DISTRO" == "ubuntu" ]; then docker build $PLATFORM_ARG \ - --cache-from antrea/cni-binaries:$CNI_BINARIES_VERSION \ - --cache-from antrea/base-ubuntu:$BUILD_TAG \ - -t antrea/base-ubuntu:$BUILD_TAG \ - --build-arg CNI_BINARIES_VERSION=$CNI_BINARIES_VERSION \ - --build-arg SURICATA_VERSION=$SURICATA_VERSION \ - --build-arg BUILD_TAG=$BUILD_TAG . + --cache-from antrea/cni-binaries:$CNI_BINARIES_VERSION \ + --cache-from antrea/base-ubuntu:$BUILD_TAG \ + -t antrea/base-ubuntu:$BUILD_TAG \ + --build-arg CNI_BINARIES_VERSION=$CNI_BINARIES_VERSION \ + --build-arg SURICATA_VERSION=$SURICATA_VERSION \ + --build-arg BUILD_TAG=$BUILD_TAG . elif [ "$DISTRO" == "ubi" ]; then docker build $PLATFORM_ARG \ - --cache-from antrea/cni-binaries:$CNI_BINARIES_VERSION \ - --cache-from antrea/base-ubi:$BUILD_TAG \ - -t antrea/base-ubi:$BUILD_TAG \ - -f Dockerfile.ubi \ - --build-arg CNI_BINARIES_VERSION=$CNI_BINARIES_VERSION \ - --build-arg SURICATA_VERSION=$SURICATA_VERSION \ - --build-arg BUILD_TAG=$BUILD_TAG . + --cache-from antrea/cni-binaries:$CNI_BINARIES_VERSION \ + --cache-from antrea/base-ubi:$BUILD_TAG \ + -t antrea/base-ubi:$BUILD_TAG \ + -f Dockerfile.ubi \ + --build-arg CNI_BINARIES_VERSION=$CNI_BINARIES_VERSION \ + --build-arg SURICATA_VERSION=$SURICATA_VERSION \ + --build-arg BUILD_TAG=$BUILD_TAG . fi if $PUSH; then diff --git a/build/yamls/antrea-aks.yml b/build/yamls/antrea-aks.yml index 494c88f78c4..4f4cde623c5 100644 --- a/build/yamls/antrea-aks.yml +++ b/build/yamls/antrea-aks.yml @@ -6924,7 +6924,7 @@ spec: initContainers: containers: - name: install-cni - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -6957,7 +6957,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).- @@ -7048,7 +7048,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: @@ -7164,7 +7164,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 bf31133d0f5..36f58a9a5aa 100644 --- a/build/yamls/antrea-eks.yml +++ b/build/yamls/antrea-eks.yml @@ -6923,7 +6923,7 @@ spec: initContainers: containers: - name: install-cni - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -6956,7 +6956,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).- @@ -7049,7 +7049,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: @@ -7165,7 +7165,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 8ef0f76ffe2..b39c981c32f 100644 --- a/build/yamls/antrea-gke.yml +++ b/build/yamls/antrea-gke.yml @@ -6922,7 +6922,7 @@ spec: serviceAccountName: antrea-agent initContainers: - name: install-cni - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -6955,7 +6955,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).- @@ -7046,7 +7046,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: @@ -7162,7 +7162,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 8c644ea62ad..24c15eeb9dc 100644 --- a/build/yamls/antrea-ipsec.yml +++ b/build/yamls/antrea-ipsec.yml @@ -6936,7 +6936,7 @@ spec: serviceAccountName: antrea-agent initContainers: - name: install-cni - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -6969,7 +6969,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).- @@ -7069,7 +7069,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: @@ -7105,7 +7105,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: @@ -7221,7 +7221,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 4c297d211a1..641c5bc92f4 100644 --- a/build/yamls/antrea.yml +++ b/build/yamls/antrea.yml @@ -6922,7 +6922,7 @@ spec: serviceAccountName: antrea-agent initContainers: - name: install-cni - image: "antrea/antrea-ubuntu:latest" + image: "antrea/antrea-agent-ubuntu:latest" imagePullPolicy: IfNotPresent resources: requests: @@ -6955,7 +6955,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).- @@ -7046,7 +7046,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: @@ -7162,7 +7162,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/kind/kind-setup.sh b/ci/kind/kind-setup.sh index 11296ce1fa9..346dbf48121 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 a1a560d1778..02f9a0c9558 100755 --- a/ci/kind/test-e2e-kind.sh +++ b/ci/kind/test-e2e-kind.sh @@ -223,9 +223,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/hack/build-antrea-linux-all.sh b/hack/build-antrea-linux-all.sh index 9cf787bc1be..433a9c6e60c 100755 --- a/hack/build-antrea-linux-all.sh +++ b/hack/build-antrea-linux-all.sh @@ -161,8 +161,12 @@ cd - export NO_PULL=1 if [ "$DISTRO" == "ubuntu" ]; then if $COVERAGE; then + make build-controller-ubuntu-coverage + make build-agent-ubuntu-coverage make build-ubuntu-coverage else + make build-controller-ubuntu + make build-agent-ubuntu make fi elif [ "$DISTRO" == "ubi" ]; then