Skip to content

Add support for Agent V3 and Connecting to NGINX One Console #7916

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 98 commits into from
Jun 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
c99d334
build plus image
pdabelf5 Jan 6, 2025
d1dbbf9
update file path
pdabelf5 Jan 6, 2025
5b277fd
update creds
pdabelf5 Jan 6, 2025
09eadcd
change directory
pdabelf5 Jan 6, 2025
0ab7fda
update to NAP
pdabelf5 Jan 6, 2025
b7093d5
testing agentv3
pdabelf5 Jan 8, 2025
0a9f037
updates to build process
pdabelf5 Mar 21, 2025
eeb115a
updates after sync with agent team
pdabelf5 Mar 26, 2025
19846b3
add dataplane key to helm schema
pdabelf5 Mar 26, 2025
1436960
remove unused tls config
pdabelf5 Mar 26, 2025
b6d4c42
revert change to default instanceGroup parameter
pdabelf5 Mar 26, 2025
92aaa0e
revert to initial values file inputs for agent v2
pdabelf5 Mar 26, 2025
659844f
revert to agentv2 config
pdabelf5 Mar 26, 2025
6db8a96
clean separation from v2 to v3 config
pdabelf5 Mar 26, 2025
1389878
do version check of agent for agent 2 instancegroup parameter
pdabelf5 Mar 26, 2025
2b2cb4a
correct equality check for dataplaneKey value
pdabelf5 Mar 26, 2025
78b3809
add helm unit template tests
pdabelf5 Mar 26, 2025
7e0bba8
re-shuffle oss image builds to allow access to nginx-files stage
pdabelf5 Mar 26, 2025
0798ab3
remove config sync groups
pdabelf5 Mar 27, 2025
cef3aff
add certs to OSS builds for installing agent
pdabelf5 Mar 27, 2025
b3fb021
add agent v3 to OSS & Plus only images
pdabelf5 Mar 27, 2025
f5e300f
remove unsupported architctures for agent v3
pdabelf5 Mar 27, 2025
f4ed1d5
fix oss alpine build
pdabelf5 Apr 1, 2025
c63337a
removal of agent toggle flags
pdabelf5 Apr 1, 2025
f5bfb63
tidy waf & agent docker build steps
pdabelf5 Apr 1, 2025
f950d55
fix ubi 9 nap images
AlexFenlon Apr 1, 2025
ecec2d4
clean up debian dockerfile targets
AlexFenlon Apr 1, 2025
cc233d2
allow setting of pull policy for minikube tests
pdabelf5 Apr 2, 2025
844ae6e
remove custom agent v3 make target
pdabelf5 Apr 2, 2025
d9a7113
Merge branch 'main' into agent-v3
pdabelf5 Apr 4, 2025
7a968e5
remove unused build args
pdabelf5 Apr 4, 2025
5160862
remove unused opentracing steps
pdabelf5 Apr 4, 2025
c1cc257
add secrets for installing agentv3
pdabelf5 Apr 4, 2025
1c59431
ensure repo credentials are always available
pdabelf5 Apr 4, 2025
9780cdf
re-add setcap
pdabelf5 Apr 7, 2025
418b489
allow more than single digit agent versions
pdabelf5 Apr 7, 2025
83e4f98
add policy markers for WAF tests
pdabelf5 Apr 7, 2025
dde207a
make agent tests run on all images
pdabelf5 Apr 7, 2025
499a475
merge main
AlexFenlon Apr 23, 2025
3192e2d
cleanup removal of ConfigSyncGroups
AlexFenlon Apr 23, 2025
b6d6a5b
merge main
AlexFenlon Apr 29, 2025
ed2d25a
remove old config from agent.conf
pdabelf5 Apr 30, 2025
1419914
Merge branch 'agent-v3' of github.com:nginx/kubernetes-ingress into a…
pdabelf5 Apr 30, 2025
0b218e8
remove collector from agent config
AlexFenlon May 1, 2025
178c0a0
update agent repo, fix docker images, remove opentracing
AlexFenlon May 1, 2025
d1ddd5f
Merge remote-tracking branch 'origin/main' into agent-v3
AlexFenlon May 13, 2025
18881ca
Merge branch 'agent-v3' of github.com:nginx/kubernetes-ingress into a…
pdabelf5 May 13, 2025
94e7b93
update snaps
pdabelf5 May 13, 2025
9ea5e39
Merge remote-tracking branch 'origin/main' into agent-v3
AlexFenlon May 15, 2025
96c86bb
restore nginx_test package and made extractAgentVersion based on feed…
AlexFenlon May 15, 2025
e05881c
fix values file to align with main
AlexFenlon May 15, 2025
e1fa4be
fix pytests to align with feedback, add a separate file for agent tests
AlexFenlon May 15, 2025
6ef2f0d
Merge remote-tracking branch 'origin/main' into agent-v3
AlexFenlon May 15, 2025
851aeab
update default agent log level to match agent.conf
AlexFenlon May 20, 2025
e81cfdd
Merge branch 'main' into agent-v3
AlexFenlon May 20, 2025
8246032
Merge remote-tracking branch 'origin/main' into agent-v3
AlexFenlon May 21, 2025
70a7645
rename deployment metadata to required fields
AlexFenlon May 22, 2025
2d5ea96
update kubernetes version to v1.33.1 in helm schema (#7808)
nginx-bot May 21, 2025
f8fb460
fix markdown linter issues (#7822)
jjngx May 21, 2025
c3b18ca
chore(deps): bump the go group with 2 updates (#7824)
dependabot[bot] May 22, 2025
87fead8
Docker image update 5b83e3f7 (#7825)
nginx-bot May 22, 2025
2a8520e
Rename Agent Deployment metadata to match N1C requirements (#7827)
AlexFenlon May 23, 2025
995ef42
add request_method to rate-limit policy (#7832)
vepatel May 23, 2025
af2d7a1
Docker image update 76ca6f7d (#7833)
nginx-bot May 26, 2025
85f7814
Merge remote-tracking branch 'origin/main' into agent-v3
AlexFenlon May 28, 2025
213db5a
add control-id as required for N1C
AlexFenlon May 28, 2025
c7fe9ee
update snaps
AlexFenlon May 29, 2025
489803e
fix agent for WAF v4 with FIPS
AlexFenlon May 30, 2025
7b6703d
merge main (dockerfile needs update)
AlexFenlon May 30, 2025
14830b6
update Dockerfile to supprot agentv3 and otel
AlexFenlon Jun 3, 2025
e535f35
Merge branch 'main' into agent-v3
AlexFenlon Jun 3, 2025
2276015
Merge branch 'main' into agent-v3
AlexFenlon Jun 10, 2025
441fbe8
Merge remote-tracking branch 'origin/main' into agent-v3
AlexFenlon Jun 16, 2025
b54f8e7
add changeable dataplane key via Kubernetes secrets
AlexFenlon Jun 16, 2025
a5c3b9b
Merge remote-tracking branch 'origin/main' into agent-v3
AlexFenlon Jun 18, 2025
15c5559
add dockerfile changes from main
AlexFenlon Jun 18, 2025
09ae446
update comment on the dataplane key in helm
AlexFenlon Jun 18, 2025
c36292a
pin to current version of agent v3.0.2
AlexFenlon Jun 18, 2025
ea3d68e
Merge branch 'main' into agent-v3
AlexFenlon Jun 18, 2025
698d842
update snaps
AlexFenlon Jun 18, 2025
524ee7f
update snaps
vepatel Jun 18, 2025
215ccdc
Remove crts from OSS images as they are no longer required for agent
AlexFenlon Jun 19, 2025
f74b767
pin agent v3 to latest patch
AlexFenlon Jun 19, 2025
a4700b9
update helm snaps
AlexFenlon Jun 19, 2025
0e00ce5
Merge remote-tracking branch 'origin/agent-v3' into agent-v3
AlexFenlon Jun 19, 2025
5328fce
Merge branch 'main' into agent-v3
AlexFenlon Jun 19, 2025
ba469d8
fix ubi nap image and remove not needed crts from oss images
AlexFenlon Jun 19, 2025
ccb056b
remove exotic archs
AlexFenlon Jun 19, 2025
3785acb
Merge remote-tracking branch 'origin/agent-v3' into agent-v3
AlexFenlon Jun 19, 2025
7970911
Merge remote-tracking branch 'origin/main' into agent-v3
AlexFenlon Jun 19, 2025
d86c92f
rename dataplaneKey to dataplaneSecretName for clearer name similar t…
AlexFenlon Jun 19, 2025
7ece9e1
Merge branch 'main' into agent-v3
AlexFenlon Jun 19, 2025
1c7d0dd
Apply suggestions from code review
AlexFenlon Jun 19, 2025
3d194f4
add build_os to breaking ubi8 waf image
AlexFenlon Jun 20, 2025
4753fa3
Merge branch 'main' into agent-v3
AlexFenlon Jun 20, 2025
da9cae6
Merge branch 'main' into agent-v3
AlexFenlon Jun 20, 2025
e8de4ee
Merge branch 'main' into agent-v3
AlexFenlon Jun 20, 2025
6d045ea
Update .github/data/matrix-smoke-oss.json
AlexFenlon Jun 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/data/matrix-smoke-oss.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,13 @@
"type": "oss",
"marker": "'ts or otel'",
"platforms": "linux/arm64, linux/amd64"
},
{
"label": "agent 1/1",
"image": "debian",
"type": "oss",
"marker": "'agentv3'",
"platforms": "linux/arm64, linux/amd64"
}
],
"k8s": []
Expand Down
7 changes: 7 additions & 0 deletions .github/data/matrix-smoke-plus.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,13 @@
"marker": "policies_rl",
"platforms": "linux/arm64, linux/amd64"
},
{
"label": "agent 1/1",
"image": "debian-plus",
"type": "plus",
"marker": "agentv3",
"platforms": "linux/arm64, linux/amd64"
},
{
"label": "OIDC-UI 1/1",
"image": "debian-plus",
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/build-base-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -213,8 +213,6 @@ jobs:
run: |
[[ "${{ matrix.nap_modules }}" == "waf,dos" ]] && modules="waf-dos" || modules="${{ matrix.nap_modules }}"
echo "modules=${modules}" >> $GITHUB_OUTPUT
[[ "${{ matrix.nap_modules }}" =~ waf ]] && agent="true" || agent="false"
echo "agent=${agent}" >> $GITHUB_OUTPUT
if: ${{ matrix.nap_modules != '' }}

- name: Docker meta
Expand Down Expand Up @@ -244,7 +242,6 @@ jobs:
BUILD_OS=${{ matrix.image }}
IC_VERSION=${{ needs.checks.outputs.ic_version }}
NAP_MODULES=${{ matrix.nap_modules }}
${{ contains(matrix.nap_modules,'waf') && format('NGINX_AGENT={0}', steps.nap_modules.outputs.agent) || '' }}
secrets: |
"nginx-repo.crt=${{ secrets.NGINX_AP_CRT }}"
"nginx-repo.key=${{ secrets.NGINX_AP_KEY }}"
Expand Down
5 changes: 0 additions & 5 deletions .github/workflows/build-plus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,6 @@ jobs:
echo "name=${name}" >> $GITHUB_OUTPUT
[[ "${{ inputs.nap-modules }}" == "waf,dos" ]] && modules="both" || modules="${{ inputs.nap-modules }}"
echo "modules=${modules}" >> $GITHUB_OUTPUT
[[ "${{ inputs.nap-modules }}" =~ waf ]] && agent="true" || agent="false"
echo "agent=${agent}" >> $GITHUB_OUTPUT
if: ${{ inputs.nap-modules != '' }}

- name: Docker meta
Expand Down Expand Up @@ -145,7 +143,6 @@ jobs:
BUILD_OS=${{ inputs.image }}
IC_VERSION=${{ inputs.ic-version && inputs.ic-version || steps.meta.outputs.version }}
${{ inputs.nap-modules != '' && format('NAP_MODULES={0}', steps.nap_modules.outputs.name) || '' }}
${{ contains(inputs.nap-modules,'waf') && format('NGINX_AGENT={0}', steps.nap_modules.outputs.agent) || '' }}
secrets: |
"nginx-repo.crt=${{ inputs.nap-modules != '' && secrets.NGINX_AP_CRT || secrets.NGINX_CRT }}"
"nginx-repo.key=${{ inputs.nap-modules != '' && secrets.NGINX_AP_KEY || secrets.NGINX_KEY }}"
Expand Down Expand Up @@ -190,9 +187,7 @@ jobs:
${{ inputs.authenticated && format('PREBUILT_BASE_IMG={0}', steps.base_name.outputs.image ) }}
IC_VERSION=${{ inputs.ic-version && inputs.ic-version || steps.meta.outputs.version }}
${{ inputs.nap-modules != '' && format('NAP_MODULES={0}', steps.nap_modules.outputs.name) || '' }}
${{ contains(inputs.nap-modules,'waf') && format('NGINX_AGENT={0}', steps.nap_modules.outputs.agent) || '' }}
${{ (contains(inputs.target, 'aws') && inputs.nap-modules != '') && format('NAP_MODULES_AWS={0}', steps.nap_modules.outputs.modules) || '' }}
${{ contains(inputs.image, 'v5') && 'WAF_VERSION=v5' || '' }}
secrets: |
"nginx-repo.crt=${{ inputs.nap-modules != '' && secrets.NGINX_AP_CRT || secrets.NGINX_CRT }}"
"nginx-repo.key=${{ inputs.nap-modules != '' && secrets.NGINX_AP_KEY || secrets.NGINX_KEY }}"
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/setup-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,6 @@ jobs:
run: |
[[ "${{ inputs.nap-modules }}" == "waf,dos" ]] && modules="waf-dos" || modules="${{ inputs.nap-modules }}"
echo "modules=${modules}" >> $GITHUB_OUTPUT
[[ "${{ inputs.nap-modules }}" =~ waf ]] && agent="true" || agent="false"
echo "agent=${agent}" >> $GITHUB_OUTPUT
if: ${{ inputs.nap-modules }}

- name: Pull build image
Expand Down Expand Up @@ -139,7 +137,6 @@ jobs:
BUILD_OS=${{ inputs.image }}
IC_VERSION=CI
${{ contains(inputs.image, 'nap') && format('NAP_MODULES={0}', steps.nap_modules.outputs.modules) || '' }}
${{ contains(inputs.nap-modules,'waf') && format('NGINX_AGENT={0}', steps.nap_modules.outputs.agent) || '' }}
${{ contains(inputs.marker, 'appprotect') && 'DEBIAN_VERSION=buster-slim' || '' }}
secrets: |
${{ contains(inputs.image, 'nap') && format('"nginx-repo.crt={0}"', secrets.NGINX_AP_CRT) || format('"nginx-repo.crt={0}"', secrets.NGINX_CRT) }}
Expand Down
35 changes: 17 additions & 18 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ PLUS_REPO ?= "pkgs.nginx.com" ## The package repo to install
override DOCKER_BUILD_OPTIONS += --build-arg IC_VERSION=$(VERSION) --build-arg PACKAGE_REPO=$(PLUS_REPO) ## The options for the docker build command. For example, --pull
ARCH ?= amd64 ## The architecture of the image or binary. For example: amd64, arm64, ppc64le, s390x. Not all architectures are supported for all targets
GOOS ?= linux ## The OS of the binary. For example linux, darwin
NGINX_AGENT ?= true
TELEMETRY_ENDPOINT ?= oss.edge.df.f5.com:443

# Additional flags added here can be accessed in main.go.
Expand Down Expand Up @@ -151,38 +150,32 @@ alpine-image-plus-fips: build ## Create Docker image for Ingress Controller (Alp

.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)
$(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=alpine-plus-nap-fips --build-arg NGINX_AGENT=$(NGINX_AGENT)
$(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=alpine-plus-nap-fips

.PHONY: alpine-image-nap-v5-plus-fips
alpine-image-nap-v5-plus-fips: build ## Create Docker image for Ingress Controller (Alpine with NGINX Plus, NGINX App Protect WAFv5 and FIPS)
$(DOCKER_CMD) $(PLUS_ARGS) \
--build-arg BUILD_OS=alpine-plus-nap-v5-fips \
--build-arg NGINX_AGENT=$(NGINX_AGENT) \
--build-arg WAF_VERSION=v5
--build-arg BUILD_OS=alpine-plus-nap-v5-fips

.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

.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)
$(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=debian-plus-nap --build-arg NAP_MODULES=waf --build-arg NGINX_AGENT=$(NGINX_AGENT)
$(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=debian-plus-nap --build-arg NAP_MODULES=waf

.PHONY: debian-image-nap-v5-plus
debian-image-nap-v5-plus: build ## Create Docker image for Ingress Controller (Debian with NGINX Plus and NGINX App Protect WAFv5)
$(DOCKER_CMD) $(PLUS_ARGS) \
--build-arg BUILD_OS=debian-plus-nap-v5 \
--build-arg NAP_MODULES=waf \
--build-arg NGINX_AGENT=$(NGINX_AGENT) \
--build-arg WAF_VERSION=v5
$(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=debian-plus-nap-v5

.PHONY: debian-image-dos-plus
debian-image-dos-plus: build ## Create Docker image for Ingress Controller (Debian with NGINX Plus and NGINX App Protect DoS)
$(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=debian-plus-nap --build-arg NAP_MODULES=dos

.PHONY: debian-image-nap-dos-plus
debian-image-nap-dos-plus: build ## Create Docker image for Ingress Controller (Debian with NGINX Plus, NGINX App Protect WAF and DoS)
$(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=debian-plus-nap --build-arg NAP_MODULES=waf,dos --build-arg NGINX_AGENT=$(NGINX_AGENT)
$(DOCKER_CMD) $(PLUS_ARGS) --build-arg BUILD_OS=debian-plus-nap --build-arg NAP_MODULES=waf,dos

.PHONY: ubi-image
ubi-image: build ## Create Docker image for Ingress Controller (UBI)
Expand All @@ -194,23 +187,29 @@ ubi-image-plus: build ## Create Docker image for Ingress Controller (UBI with NG

.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)
$(DOCKER_CMD) $(PLUS_ARGS) --secret id=rhel_license,src=rhel_license --build-arg BUILD_OS=ubi-9-plus-nap --build-arg NAP_MODULES=waf --build-arg NGINX_AGENT=$(NGINX_AGENT)
$(DOCKER_CMD) $(PLUS_ARGS) --secret id=rhel_license,src=rhel_license --build-arg BUILD_OS=ubi-9-plus-nap --build-arg NAP_MODULES=waf

.PHONY: ubi8-image-nap-plus
ubi8-image-nap-plus: build ## Create Docker image for Ingress Controller (UBI with NGINX Plus and NGINX App Protect WAF)
$(DOCKER_CMD) $(PLUS_ARGS) --secret id=rhel_license,src=rhel_license --build-arg BUILD_OS=ubi-8-plus-nap --build-arg NAP_MODULES=waf

.PHONY: ubi-image-nap-v5-plus
ubi-image-nap-v5-plus: build ## Create Docker image for Ingress Controller (UBI with NGINX Plus and NGINX App Protect WAFv5)
$(DOCKER_CMD) $(PLUS_ARGS) --secret id=rhel_license,src=rhel_license \
--build-arg BUILD_OS=ubi-9-plus-nap-v5 \
--build-arg NAP_MODULES=waf \
--build-arg NGINX_AGENT=$(NGINX_AGENT) \
--build-arg WAF_VERSION=v5
--build-arg BUILD_OS=ubi-9-plus-nap-v5

.PHONY: ubi8-image-nap-v5-plus
ubi8-image-nap-v5-plus: build ## Create Docker image for Ingress Controller (UBI with NGINX Plus and NGINX App Protect WAFv5)
$(DOCKER_CMD) $(PLUS_ARGS) --secret id=rhel_license,src=rhel_license \
--build-arg BUILD_OS=ubi-8-plus-nap-v5

.PHONY: ubi-image-dos-plus
ubi-image-dos-plus: build ## Create Docker image for Ingress Controller (UBI with NGINX Plus and NGINX App Protect DoS)
$(DOCKER_CMD) $(PLUS_ARGS) --secret id=rhel_license,src=rhel_license --build-arg BUILD_OS=ubi-9-plus-nap --build-arg NAP_MODULES=dos

.PHONY: ubi-image-nap-dos-plus
ubi-image-nap-dos-plus: build ## Create Docker image for Ingress Controller (UBI with NGINX Plus, NGINX App Protect WAF and DoS)
$(DOCKER_CMD) $(PLUS_ARGS) --secret id=rhel_license,src=rhel_license --build-arg BUILD_OS=ubi-9-plus-nap --build-arg NAP_MODULES=waf,dos --build-arg NGINX_AGENT=$(NGINX_AGENT)
$(DOCKER_CMD) $(PLUS_ARGS) --secret id=rhel_license,src=rhel_license --build-arg BUILD_OS=ubi-9-plus-nap --build-arg NAP_MODULES=waf,dos

.PHONY: all-images ## Create all the Docker images for Ingress Controller
all-images: alpine-image alpine-image-plus alpine-image-plus-fips alpine-image-nap-plus-fips debian-image debian-image-plus debian-image-nap-plus debian-image-dos-plus debian-image-nap-dos-plus ubi-image ubi-image-plus ubi-image-nap-plus ubi-image-dos-plus ubi-image-nap-dos-plus
Expand Down
Loading