diff --git a/Makefile b/Makefile index 3583c132b0..00e087f223 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ GIT_TAG = $(shell git describe --exact-match --tags || echo untagged) VERSION = $(VER)-SNAPSHOT NGINX_OSS_VERSION ?= 1.29 NGINX_PLUS_VERSION ?= R35 +NGINX_AGENT_VERSION ?= 3.3 PLUS_ARGS = --build-arg NGINX_PLUS_VERSION=$(NGINX_PLUS_VERSION) --secret id=nginx-repo.crt,src=nginx-repo.crt --secret id=nginx-repo.key,src=nginx-repo.key # Variables that can be overridden @@ -136,19 +137,19 @@ build-goreleaser: ## Build Ingress Controller binary using GoReleaser .PHONY: debian-image debian-image: build ## Create Docker image for Ingress Controller (Debian) - $(DOCKER_CMD) --build-arg BUILD_OS=debian --build-arg NGINX_OSS_VERSION=$(NGINX_OSS_VERSION) + $(DOCKER_CMD) --build-arg BUILD_OS=debian --build-arg NGINX_OSS_VERSION=$(NGINX_OSS_VERSION) --build-arg NGINX_AGENT_VERSION=$(NGINX_AGENT_VERSION) .PHONY: alpine-image alpine-image: build ## Create Docker image for Ingress Controller (Alpine) - $(DOCKER_CMD) --build-arg BUILD_OS=alpine --build-arg NGINX_OSS_VERSION=$(NGINX_OSS_VERSION) + $(DOCKER_CMD) --build-arg BUILD_OS=alpine --build-arg NGINX_OSS_VERSION=$(NGINX_OSS_VERSION) --build-arg NGINX_AGENT_VERSION=$(NGINX_AGENT_VERSION) .PHONY: alpine-image-plus alpine-image-plus: build ## Create Docker image for Ingress Controller (Alpine with NGINX Plus) - $(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=alpine-plus + $(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=alpine-plus --build-arg NGINX_AGENT_VERSION=$(NGINX_AGENT_VERSION) .PHONY: alpine-image-plus-fips alpine-image-plus-fips: build ## Create Docker image for Ingress Controller (Alpine with NGINX Plus and FIPS) - $(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=alpine-plus-fips + $(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=alpine-plus-fips --build-arg NGINX_AGENT_VERSION=$(NGINX_AGENT_VERSION) .PHONY: alpine-image-nap-plus-fips alpine-image-nap-plus-fips: build ## Create Docker image for Ingress Controller (Alpine with NGINX Plus, NGINX App Protect WAF and FIPS) @@ -161,7 +162,7 @@ alpine-image-nap-v5-plus-fips: build ## Create Docker image for Ingress Controll .PHONY: debian-image-plus debian-image-plus: build ## Create Docker image for Ingress Controller (Debian with NGINX Plus) - $(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=debian-plus + $(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=debian-plus --build-arg NGINX_AGENT_VERSION=$(NGINX_AGENT_VERSION) .PHONY: debian-image-nap-plus debian-image-nap-plus: build ## Create Docker image for Ingress Controller (Debian with NGINX Plus and NGINX App Protect WAF) @@ -181,11 +182,11 @@ debian-image-nap-dos-plus: build ## Create Docker image for Ingress Controller ( .PHONY: ubi-image ubi-image: build ## Create Docker image for Ingress Controller (UBI) - $(DOCKER_CMD) --build-arg BUILD_OS=ubi --build-arg NGINX_OSS_VERSION=$(NGINX_OSS_VERSION) + $(DOCKER_CMD) --build-arg BUILD_OS=ubi --build-arg NGINX_OSS_VERSION=$(NGINX_OSS_VERSION) --build-arg NGINX_AGENT_VERSION=$(NGINX_AGENT_VERSION) .PHONY: ubi-image-plus ubi-image-plus: build ## Create Docker image for Ingress Controller (UBI with NGINX Plus) - $(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=ubi-9-plus + $(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=ubi-9-plus --build-arg NGINX_AGENT_VERSION=$(NGINX_AGENT_VERSION) .PHONY: ubi-image-nap-plus ubi-image-nap-plus: build ## Create Docker image for Ingress Controller (UBI with NGINX Plus and NGINX App Protect WAF) diff --git a/build/Dockerfile b/build/Dockerfile index d7f6680acb..e2c9b177d2 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -2,6 +2,7 @@ ARG BUILD_OS=debian ARG NGINX_OSS_VERSION=1.29 ARG NGINX_PLUS_VERSION=R35 +ARG NGINX_AGENT_VERSION=3.3 ARG DOWNLOAD_TAG=edge ARG DEBIAN_FRONTEND=noninteractive ARG PREBUILT_BASE_IMG=nginx/nginx-ingress:${DOWNLOAD_TAG} @@ -85,6 +86,7 @@ USER 101 FROM nginx:1.29.1-alpine3.22@sha256:42a516af16b852e33b7682d5ef8acbd5d13fe08fecadc7ed98605ba5e3b26ab8 AS alpine ARG PACKAGE_REPO ARG NGINX_OSS_VERSION +ARG NGINX_AGENT_VERSION RUN --mount=type=bind,from=nginx-files,src=nginx_signing.rsa.pub,target=/etc/apk/keys/nginx_signing.rsa.pub \ --mount=type=bind,from=nginx-files,src=user_agent,target=/tmp/user_agent \ @@ -93,7 +95,7 @@ RUN --mount=type=bind,from=nginx-files,src=nginx_signing.rsa.pub,target=/etc/apk && export $(cat /tmp/user_agent) \ && printf "%s%s%s\n" "http://packages.nginx.org/nginx/mainline/alpine/v" `egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release` "/main" >> /etc/apk/repositories \ && printf "%s%s%s\n" "http://packages.nginx.org/nginx-agent/alpine/v" `egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release` "/main" >> /etc/apk/repositories \ - && apk add --no-cache nginx-module-otel~${NGINX_OSS_VERSION} nginx-agent~3.2 \ + && apk add --no-cache nginx-module-otel~${NGINX_OSS_VERSION} nginx-agent~${NGINX_AGENT_VERSION} \ && ldconfig /usr/local/lib/ \ && agent.sh \ && sed -i -e '/nginx.org/d' /etc/apk/repositories @@ -101,6 +103,7 @@ RUN --mount=type=bind,from=nginx-files,src=nginx_signing.rsa.pub,target=/etc/apk ############################################# Base image for Debian ############################################# FROM nginx:1.29.1@sha256:33e0bbc7ca9ecf108140af6288c7c9d1ecc77548cbfd3952fd8466a75edefe57 AS debian +ARG NGINX_AGENT_VERSION RUN --mount=type=bind,from=nginx-files,src=nginx_signing.key,target=/tmp/nginx_signing.key \ --mount=type=bind,from=nginx-files,src=90pkgs-nginx,target=/etc/apt/apt.conf.d/90pkgs-nginx \ @@ -115,7 +118,7 @@ RUN --mount=type=bind,from=nginx-files,src=nginx_signing.key,target=/tmp/nginx_s http://packages.nginx.org/nginx-agent/debian `lsb_release -cs` agent" >> /etc/apt/sources.list.d/nginx.list \ && printf "%s" "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" > /etc/apt/preferences.d/99nginx \ && apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y nginx-agent=3.2.* nginx-module-otel=${NGINX_OSS_VERSION}* \ + && apt-get install --no-install-recommends --no-install-suggests -y nginx-agent=${NGINX_AGENT_VERSION}* nginx-module-otel=${NGINX_OSS_VERSION}* \ && apt-get purge --auto-remove -y gpg \ && rm -rf /var/lib/apt/lists/* /etc/apt/preferences.d/99nginx /etc/apt/sources.list.d/nginx.list \ && agent.sh @@ -125,6 +128,7 @@ RUN --mount=type=bind,from=nginx-files,src=nginx_signing.key,target=/tmp/nginx_s FROM ubi-minimal AS ubi ARG IC_VERSION ARG NGINX_OSS_VERSION +ARG NGINX_AGENT_VERSION LABEL name="NGINX Ingress Controller" \ maintainer="kubernetes@nginx.com" \ @@ -158,7 +162,7 @@ RUN --mount=type=bind,from=nginx-files,src=nginx_signing.key,target=/tmp/nginx_s && printf "%s\n" "[agent]" "name=agent repo" \ "baseurl=https://packages.nginx.org/nginx-agent/centos/9/\$basearch/" \ "gpgcheck=1" "enabled=1" "module_hotfixes=true" >> /etc/yum.repos.d/nginx.repo \ - && microdnf --nodocs install -y nginx-${NGINX_OSS_VERSION}* nginx-module-njs-${NGINX_OSS_VERSION}* nginx-module-otel-${NGINX_OSS_VERSION}* nginx-module-image-filter-${NGINX_OSS_VERSION}* nginx-module-xslt-${NGINX_OSS_VERSION}* nginx-agent-3.2.* \ + && microdnf --nodocs install -y nginx-${NGINX_OSS_VERSION}* nginx-module-njs-${NGINX_OSS_VERSION}* nginx-module-otel-${NGINX_OSS_VERSION}* nginx-module-image-filter-${NGINX_OSS_VERSION}* nginx-module-xslt-${NGINX_OSS_VERSION}* nginx-agent-${NGINX_AGENT_VERSION}* \ && rm /etc/yum.repos.d/nginx.repo \ && ubi-clean.sh @@ -166,6 +170,7 @@ RUN --mount=type=bind,from=nginx-files,src=nginx_signing.key,target=/tmp/nginx_s FROM alpine:3.22@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1 AS alpine-plus ARG NGINX_PLUS_VERSION ARG PACKAGE_REPO +ARG NGINX_AGENT_VERSION ENV NGINX_VERSION=${NGINX_PLUS_VERSION} @@ -178,7 +183,7 @@ RUN --mount=type=secret,id=nginx-repo.crt,dst=/etc/apk/cert.pem,mode=0644 \ export $(cat /tmp/user_agent) \ && printf "%s\n" "https://${PACKAGE_REPO}/plus/${NGINX_PLUS_VERSION}/alpine/v$(grep -E -o '^[0-9]+\.[0-9]+' /etc/alpine-release)/main" >> /etc/apk/repositories \ && printf "%s\n" "https://${PACKAGE_REPO}/nginx-agent/alpine/v$(grep -E -o '^[0-9]+\.[0-9]+' /etc/alpine-release)/main" >> /etc/apk/repositories \ - && apk add --no-cache nginx-plus nginx-plus-module-njs nginx-plus-module-otel nginx-plus-module-fips-check nginx-agent~3.2 libcap libcurl \ + && apk add --no-cache nginx-plus nginx-plus-module-njs nginx-plus-module-otel nginx-plus-module-fips-check nginx-agent~${NGINX_AGENT_VERSION} libcap libcurl \ && mkdir -p /etc/nginx/reporting/ && cp -av /tmp/nginx/reporting/tracking.info /etc/nginx/reporting/tracking.info \ && agent.sh \ && sed -i -e '/nginx.com/d' /etc/apk/repositories @@ -295,6 +300,7 @@ RUN --mount=type=secret,id=nginx-repo.crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode ############################################# Base image for Debian with NGINX Plus ############################################# FROM debian-plus-only AS debian-plus ARG NGINX_PLUS_VERSION +ARG NGINX_AGENT_VERSION ENV NGINX_VERSION=${NGINX_PLUS_VERSION} @@ -307,7 +313,7 @@ RUN --mount=type=secret,id=nginx-repo.crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode apt-get update \ && cp /tmp/nginx-agent.sources /etc/apt/sources.list.d/nginx-agent.sources \ && apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y nginx-agent=3.2.* \ + && apt-get install --no-install-recommends --no-install-suggests -y nginx-agent=${NGINX_AGENT_VERSION}* \ && agent.sh \ && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx-agent.sources @@ -367,6 +373,7 @@ RUN --mount=type=secret,id=nginx-repo.crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode ############################################# Base image for UBI with NGINX Plus ############################################# FROM ubi-minimal AS ubi-9-plus ARG NGINX_PLUS_VERSION +ARG NGINX_AGENT_VERSION ENV NGINX_VERSION=${NGINX_PLUS_VERSION} @@ -384,7 +391,7 @@ RUN --mount=type=secret,id=nginx-repo.crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode mkdir -p /etc/nginx/reporting/ && cp -av /tmp/nginx/reporting/tracking.info /etc/nginx/reporting/tracking.info \ && ubi-setup.sh \ && rpm -Uvh /ubi-bin/c-ares-*.rpm \ - && microdnf --nodocs install -y nginx-plus nginx-plus-module-njs nginx-plus-module-otel nginx-plus-module-fips-check nginx-agent-3.2.* \ + && microdnf --nodocs install -y nginx-plus nginx-plus-module-njs nginx-plus-module-otel nginx-plus-module-fips-check nginx-agent-${NGINX_AGENT_VERSION}* \ && agent.sh \ && ubi-clean.sh diff --git a/tests/data/modules/data.json b/tests/data/modules/data.json index 1a80bcd7b6..ead2e1dfd2 100644 --- a/tests/data/modules/data.json +++ b/tests/data/modules/data.json @@ -18,7 +18,7 @@ }, { "name": "nginx-agent", - "version": "3.2" + "version": "3.3" } ], "system": "debian", @@ -49,7 +49,7 @@ }, { "name": "nginx-agent", - "version": "3.2" + "version": "3.3" } ], "system": "debian", @@ -252,7 +252,7 @@ }, { "name": "nginx-agent", - "version": "3.2" + "version": "3.3" } ], "system": "alpine", @@ -283,7 +283,7 @@ }, { "name": "nginx-agent", - "version": "3.2" + "version": "3.3" } ], "system": "alpine", @@ -314,7 +314,7 @@ }, { "name": "nginx-agent", - "version": "3.2" + "version": "3.3" } ], "system": "alpine", @@ -429,7 +429,7 @@ }, { "name": "nginx-agent", - "version": "3.2" + "version": "3.3" } ], "system": "ubi", @@ -460,7 +460,7 @@ }, { "name": "nginx-agent", - "version": "3.2" + "version": "3.3" } ], "system": "ubi",