Skip to content

Commit 05f1bde

Browse files
authored
Merge branch 'main' into test/fix-foreign-upstream-test-failing
2 parents 7ef81ca + 99024b0 commit 05f1bde

File tree

33 files changed

+1675
-99
lines changed

33 files changed

+1675
-99
lines changed

.github/workflows/build-base-images.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ jobs:
100100

101101
- name: Docker meta
102102
id: meta
103-
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
103+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
104104
with:
105105
images: |
106106
name=gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-base/oss
@@ -195,7 +195,7 @@ jobs:
195195

196196
- name: Docker meta
197197
id: meta
198-
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
198+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
199199
with:
200200
images: |
201201
name=gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-base/plus
@@ -305,7 +305,7 @@ jobs:
305305

306306
- name: Docker meta
307307
id: meta
308-
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
308+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
309309
with:
310310
images: |
311311
name=gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-base/plus

.github/workflows/build-oss.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ jobs:
126126

127127
- name: Docker meta
128128
id: meta
129-
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
129+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
130130
with:
131131
context: workflow
132132
images: |

.github/workflows/build-plus.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ jobs:
155155

156156
- name: Docker meta
157157
id: meta
158-
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
158+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
159159
with:
160160
images: |
161161
name=gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic${{ contains(inputs.nap-modules, 'dos') && '-dos' || '' }}${{ contains(inputs.nap-modules, 'waf') && '-nap' || '' }}${{ contains(inputs.image, 'v5') && '-v5' || '' }}/nginx-plus-ingress

.github/workflows/build-ubi-dependency.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252

5353
- name: Docker meta
5454
id: meta
55-
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
55+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
5656
with:
5757
images: |
5858
name=${{ env.IMAGE_NAME }},enable=true

.github/workflows/image-promotion.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ jobs:
349349
350350
- name: Docker meta
351351
id: meta
352-
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
352+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
353353
with:
354354
context: workflow
355355
images: |
@@ -465,7 +465,7 @@ jobs:
465465
466466
- name: Docker meta
467467
id: meta
468-
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
468+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
469469
with:
470470
context: workflow
471471
images: |
@@ -588,7 +588,7 @@ jobs:
588588
589589
- name: Docker meta
590590
id: meta
591-
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
591+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
592592
with:
593593
context: workflow
594594
images: |

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ VER = $(shell grep IC_VERSION .github/data/version.txt | cut -d '=' -f 2)
33
GIT_TAG = $(shell git describe --exact-match --tags || echo untagged)
44
VERSION = $(VER)-SNAPSHOT
55
# renovate: datasource=docker depName=nginx/nginx
6-
NGINX_OSS_VERSION ?= 1.29.1
6+
NGINX_OSS_VERSION ?= 1.29.3
77
NGINX_PLUS_VERSION ?= R35
88
NAP_WAF_VERSION ?= 35+5.527
99
NAP_WAF_COMMON_VERSION ?= 11.559
1010
NAP_WAF_PLUGIN_VERSION ?= 6.23.0
1111
NAP_AGENT_VERSION ?= 2
12-
NGINX_AGENT_VERSION ?= 3.3
12+
NGINX_AGENT_VERSION ?= 3.5
1313
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
1414

1515
# Variables that can be overridden
@@ -25,7 +25,7 @@ TELEMETRY_ENDPOINT ?= oss.edge.df.f5.com:443
2525
# renovate: datasource=docker depName=golangci/golangci-lint
2626
GOLANGCI_LINT_VERSION ?= v2.6.2 ## The version of golangci-lint to use
2727
# renovate: datasource=go depName=golang.org/x/tools
28-
GOIMPORTS_VERSION ?= v0.38.0 ## The version of goimports to use
28+
GOIMPORTS_VERSION ?= v0.39.0 ## The version of goimports to use
2929
# renovate: datasource=go depName=mvdan.cc/gofumpt
3030
GOFUMPT_VERSION ?= v0.9.2 ## The version of gofumpt to use
3131

build/Dockerfile

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# syntax=docker/dockerfile:1.20
22
ARG BUILD_OS=debian
33
# renovate: datasource=docker depName=nginx/nginx
4-
ARG NGINX_OSS_VERSION=1.29.1
4+
ARG NGINX_OSS_VERSION=1.29.3
55
ARG NGINX_PLUS_VERSION=R35
66
ARG NAP_WAF_VERSION=35+5.527
77
ARG NAP_WAF_COMMON_VERSION=11.559
88
ARG NAP_WAF_PLUGIN_VERSION=6.23.0
9-
ARG NGINX_AGENT_VERSION=3.3
9+
ARG NGINX_AGENT_VERSION=3.5
1010
ARG NAP_AGENT_VERSION=2
1111
ARG DOWNLOAD_TAG=edge
1212
ARG DEBIAN_FRONTEND=noninteractive
@@ -16,7 +16,7 @@ ARG PACKAGE_REPO=pkgs.nginx.com
1616

1717

1818
############################################# Base images containing libs for FIPS #############################################
19-
FROM ghcr.io/nginx/dependencies/nginx-ubi:ubi8@sha256:fa931e9868a709aa995197c6d115344d0d2bbf2b0bde01643fbc2fe9cf33ad0c AS ubi8-packages
19+
FROM ghcr.io/nginx/dependencies/nginx-ubi:ubi8@sha256:c896e532dd9cbb57407aeff5895fb02d64a33a93deaa748512f38b46ebb960f2 AS ubi8-packages
2020
FROM ghcr.io/nginx/dependencies/nginx-ubi:ubi9@sha256:cd8693e02cd22ad05d1c5c57f7dd7ccfcf3cca23fac158381a760ff6f4d0f292 AS ubi9-packages
2121
FROM ghcr.io/nginx/alpine-fips:0.4.0-alpine3.19@sha256:0b400b81b5f403d69535a54839296ae35ced374eb1bb04db5b4282f380fef09a AS alpine-fips-3.19
2222
FROM ghcr.io/nginx/alpine-fips:0.4.0-alpine3.22@sha256:61ed75f252bde7da1e6db33d2709456e87478280dfae3d11084f94c361e9f329 AS alpine-fips-3.22
@@ -88,7 +88,7 @@ USER 101
8888

8989

9090
############################################# Base image for Alpine #############################################
91-
FROM nginx:1.29.1-alpine3.22@sha256:42a516af16b852e33b7682d5ef8acbd5d13fe08fecadc7ed98605ba5e3b26ab8 AS alpine
91+
FROM nginx:1.29.3-alpine3.22@sha256:b3c656d55d7ad751196f21b7fd2e8d4da9cb430e32f646adcf92441b72f82b14 AS alpine
9292
ARG PACKAGE_REPO
9393
ARG NGINX_OSS_VERSION
9494
ARG NGINX_AGENT_VERSION
@@ -107,7 +107,7 @@ RUN --mount=type=bind,from=nginx-files,src=nginx_signing.rsa.pub,target=/etc/apk
107107

108108

109109
############################################# Base image for Debian #############################################
110-
FROM nginx:1.29.1@sha256:8adbdcb969e2676478ee2c7ad333956f0c8e0e4c5a7463f4611d7a2e7a7ff5dc AS debian
110+
FROM nginx:1.29.3@sha256:553f64aecdc31b5bf944521731cd70e35da4faed96b2b7548a3d8e2598c52a42 AS debian
111111
ARG NGINX_OSS_VERSION
112112
ARG NGINX_AGENT_VERSION
113113

@@ -512,7 +512,7 @@ RUN --mount=type=secret,id=nginx-repo.crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode
512512

513513

514514
############################################# Base image for UBI8 with NGINX Plus and App Protect WAF #############################################
515-
FROM redhat/ubi8@sha256:7d7ca86d832d1dc7aba4583414475c15686291b1c2cf75fe63ca03526c3b89ae AS ubi-8-plus-nap
515+
FROM redhat/ubi8@sha256:a444712276a635c9312d83a4ff7c6ee7f2ce08eeb5bd9ca291b5fdba257a5e63 AS ubi-8-plus-nap
516516
ARG NGINX_PLUS_VERSION
517517
ARG NAP_WAF_VERSION
518518
ARG BUILD_OS
@@ -553,7 +553,7 @@ RUN --mount=type=secret,id=nginx-repo.crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode
553553

554554

555555
############################################# Base image for UBI8 with NGINX Plus and App Protect WAFv5 #############################################
556-
FROM redhat/ubi8@sha256:7d7ca86d832d1dc7aba4583414475c15686291b1c2cf75fe63ca03526c3b89ae AS ubi-8-plus-nap-v5
556+
FROM redhat/ubi8@sha256:a444712276a635c9312d83a4ff7c6ee7f2ce08eeb5bd9ca291b5fdba257a5e63 AS ubi-8-plus-nap-v5
557557
ARG NGINX_PLUS_VERSION
558558
ARG NAP_WAF_VERSION
559559
ARG NAP_AGENT_VERSION

build/dependencies/Dockerfile.ubi8

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# syntax=docker/dockerfile:1.20
2-
FROM redhat/ubi8@sha256:7d7ca86d832d1dc7aba4583414475c15686291b1c2cf75fe63ca03526c3b89ae AS rpm-build
2+
FROM redhat/ubi8@sha256:a444712276a635c9312d83a4ff7c6ee7f2ce08eeb5bd9ca291b5fdba257a5e63 AS rpm-build
33
RUN mkdir -p /rpms/ \
44
&& dnf install rpm-build gcc make cmake -y \
55
&& rpmbuild --rebuild --nodebuginfo https://mirror.stream.centos.org/9-stream/BaseOS/source/tree/Packages/c-ares-1.19.1-1.el9.src.rpm \
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
NGINX Ingress Controller {{ .Chart.AppVersion }} has been installed.
22

3-
For release notes for this version please see: https://docs.nginx.com/nginx-ingress-controller/releases/
3+
For release notes, see: https://docs.nginx.com/nginx-ingress-controller/changelog/
44

5-
Installation and upgrade instructions: https://docs.nginx.com/nginx-ingress-controller/install/helm/
5+
For Helm installation instructions, see: https://docs.nginx.com/nginx-ingress-controller/install/helm/
66

77
{{ if .Release.IsUpgrade -}}
88
If you are upgrading from a version of the chart that uses older Custom Resource Definitions (CRD) it is necessary to manually upgrade the CRDs as this is not managed by Helm.
99
To update to the latest version of the CRDs:
1010
$ kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v{{ .Chart.AppVersion }}/deploy/crds.yaml
1111

12-
More details on upgrading the CRDs: https://docs.nginx.com/nginx-ingress-controller/install/helm#upgrading-the-crds
12+
For more details on upgrading the CRDs, see: https://docs.nginx.com/nginx-ingress-controller/install/upgrade/#upgrade-nginx-ingress-controller-crds
1313
{{- end -}}

config/crd/bases/k8s.nginx.org_policies.yaml

Lines changed: 132 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,29 @@ spec:
140140
x-kubernetes-validations:
141141
- message: 'allowed methods must be one of: GET, HEAD, POST'
142142
rule: self.all(method, method in ['GET', 'HEAD', 'POST'])
143+
cacheBackgroundUpdate:
144+
default: false
145+
description: |-
146+
CacheBackgroundUpdate allows starting a background subrequest to update an expired cache item (proxy_cache_background_update).
147+
A stale cached response is returned to the client while the cache is being updated.
148+
type: boolean
149+
cacheKey:
150+
description: |-
151+
CacheKey defines a key for caching (proxy_cache_key).
152+
By default, close to "$scheme$proxy_host$uri$is_args$args".
153+
Must not contain command execution patterns: $(, `, ;, &&, ||
154+
maxLength: 1024
155+
type: string
156+
x-kubernetes-validations:
157+
- message: 'cache key must not contain command execution patterns:
158+
$(, `, ;, &&, ||'
159+
rule: '!self.contains(''$('') && !self.contains(''`'') && !self.contains('';'')
160+
&& !self.contains(''&&'') && !self.contains(''||'')'
161+
cacheMinUses:
162+
description: CacheMinUses sets the number of requests after which
163+
the response will be cached (proxy_cache_min_uses).
164+
minimum: 1
165+
type: integer
143166
cachePurgeAllow:
144167
description: |-
145168
CachePurgeAllow defines IP addresses or CIDR blocks allowed to purge cache.
@@ -149,6 +172,20 @@ spec:
149172
items:
150173
type: string
151174
type: array
175+
cacheRevalidate:
176+
default: false
177+
description: |-
178+
CacheRevalidate enables revalidation of expired cache items using conditional requests (proxy_cache_revalidate).
179+
Uses "If-Modified-Since" and "If-None-Match" header fields.
180+
type: boolean
181+
cacheUseStale:
182+
description: |-
183+
CacheUseStale determines in which cases a stale cached response can be used (proxy_cache_use_stale).
184+
Valid parameters: error, timeout, invalid_header, updating, http_500, http_502, http_503, http_504, http_403, http_404, http_429, off.
185+
items:
186+
type: string
187+
maxItems: 11
188+
type: array
152189
cacheZoneName:
153190
description: |-
154191
CacheZoneName defines the name of the cache zone. Must start with a lowercase letter,
@@ -159,9 +196,34 @@ spec:
159196
cacheZoneSize:
160197
description: |-
161198
CacheZoneSize defines the size of the cache zone. Must be a number followed by a size unit:
162-
'k' for kilobytes, 'm' for megabytes, or 'g' for gigabytes.
199+
'k' or 'K' for kilobytes, 'm' or 'M' for megabytes, or 'g' or 'G' for gigabytes.
163200
Examples: "10m", "1g", "512k".
164-
pattern: ^[0-9]+[kmg]$
201+
pattern: ^[0-9]+[kmgKMG]$
202+
type: string
203+
conditions:
204+
description: Conditions defines when responses should not be cached
205+
or taken from cache.
206+
properties:
207+
bypass:
208+
description: |-
209+
Bypass defines conditions under which the response will not be taken from a cache (proxy_cache_bypass).
210+
If at least one value of the string parameters is not empty and is not equal to "0" then the response will not be taken from the cache.
211+
items:
212+
type: string
213+
type: array
214+
noCache:
215+
description: |-
216+
NoCache defines conditions under which the response will not be saved to a cache (proxy_no_cache).
217+
If at least one value of the string parameters is not empty and is not equal to "0" then the response will not be saved.
218+
items:
219+
type: string
220+
type: array
221+
type: object
222+
inactive:
223+
description: |-
224+
Inactive sets the time after which cached data that are not accessed get removed from the cache (inactive parameter).
225+
By default, inactive is set to 10 minutes.
226+
pattern: ^[0-9]+[smhd]$
165227
type: string
166228
levels:
167229
description: |-
@@ -172,6 +234,67 @@ spec:
172234
Invalid: "3:1", "1:3", "1:2:3".
173235
pattern: ^[12](?::[12]){0,2}$
174236
type: string
237+
lock:
238+
description: Lock configures cache locking to prevent multiple
239+
identical requests from populating the same cache element simultaneously.
240+
properties:
241+
age:
242+
description: |-
243+
Age sets the maximum time a cache lock can be held (proxy_cache_lock_age).
244+
If the last request passed to the proxied server for populating a new cache element has not completed for the specified time, one more request may be passed.
245+
pattern: ^[0-9]+[smhd]$
246+
type: string
247+
enable:
248+
default: false
249+
description: |-
250+
Enable sets whether cache locking is enabled (proxy_cache_lock).
251+
When enabled, only one request at a time will be allowed to populate a new cache element according to the proxy_cache_key.
252+
type: boolean
253+
timeout:
254+
description: |-
255+
Timeout sets a timeout for proxy_cache_lock.
256+
When the time expires, the request will be passed to the proxied server, however, the response will not be cached.
257+
pattern: ^[0-9]+[smhd]$
258+
type: string
259+
type: object
260+
x-kubernetes-validations:
261+
- message: timeout or age require enable=true
262+
rule: (!has(self.timeout) && !has(self.age)) || self.enable
263+
manager:
264+
description: Manager configures the cache manager process parameters
265+
(manager_files, manager_sleep, manager_threshold).
266+
properties:
267+
files:
268+
description: |-
269+
Files sets the maximum number of files that will be deleted in one iteration by the cache manager.
270+
During one iteration no more than manager_files items are deleted (by default, 100).
271+
minimum: 1
272+
type: integer
273+
sleep:
274+
description: |-
275+
Sleep sets the pause between cache manager iterations.
276+
Between iterations, a pause configured by manager_sleep (by default, 50 milliseconds) is made.
277+
pattern: ^[0-9]+[mu]?s$
278+
type: string
279+
threshold:
280+
description: |-
281+
Threshold sets the maximum duration of one cache manager iteration.
282+
The duration of one iteration is limited by manager_threshold (by default, 200 milliseconds).
283+
pattern: ^[0-9]+[mu]?s$
284+
type: string
285+
type: object
286+
maxSize:
287+
description: |-
288+
MaxSize sets the maximum cache size (max_size parameter).
289+
When the size is exceeded, the cache manager removes the least recently used data.
290+
pattern: ^[0-9]+[kmgKMG]$
291+
type: string
292+
minFree:
293+
description: |-
294+
MinFree sets the minimum amount of free space required on the file system with cache (min_free parameter).
295+
When there is not enough free space, the cache manager removes the least recently used data.
296+
pattern: ^[0-9]+[kmgKMG]$
297+
type: string
175298
overrideUpstreamCache:
176299
default: false
177300
description: |-
@@ -188,6 +311,13 @@ spec:
188311
Examples: "30s", "5m", "1h", "2d".
189312
pattern: ^[0-9]+[smhd]$
190313
type: string
314+
useTempPath:
315+
default: false
316+
description: |-
317+
UseTempPath controls whether temporary files and the cache are put on different file systems (use_temp_path parameter).
318+
If set to false, temporary files will be put directly in the cache directory (use_temp_path=off).
319+
Default: false (use_temp_path=off, which puts temp files directly in cache directory for better performance).
320+
type: boolean
191321
required:
192322
- cacheZoneName
193323
- cacheZoneSize

0 commit comments

Comments
 (0)