Skip to content

Commit cb70191

Browse files
authored
Merge branch 'main' into tests/conformance-fix
2 parents 319a085 + 5b38d8c commit cb70191

File tree

87 files changed

+655
-430
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+655
-430
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ jobs:
171171
- name: Build binary
172172
uses: goreleaser/goreleaser-action@9ed2f89a662bf1735a48bc8557fd212fa902bebf # v6.1.0
173173
with:
174-
version: v2.4.7 # renovate: datasource=github-tags depName=goreleaser/goreleaser
174+
version: v2.4.8 # renovate: datasource=github-tags depName=goreleaser/goreleaser
175175
args: ${{ github.ref_type == 'tag' && 'release' || 'build --snapshot' }} --clean
176176
env:
177177
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/conformance.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ jobs:
8383
- name: Build binary
8484
uses: goreleaser/goreleaser-action@9ed2f89a662bf1735a48bc8557fd212fa902bebf # v6.1.0
8585
with:
86-
version: v2.4.7 # renovate: datasource=github-tags depName=goreleaser/goreleaser
86+
version: v2.4.8 # renovate: datasource=github-tags depName=goreleaser/goreleaser
8787
args: build --single-target --snapshot --clean
8888
env:
8989
TELEMETRY_ENDPOINT: "" # disables sending telemetry

.github/workflows/docs-build-push.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build and deploy docs
1+
name: Build and deploy documentation
22
on:
33
workflow_dispatch:
44
inputs:
@@ -12,6 +12,11 @@ on:
1212
- dev
1313
- staging
1414
- prod
15+
hugo_theme_override:
16+
description: "Hugo theme version (Leave blank for latest)"
17+
required: false
18+
default: ""
19+
type: string
1520
pull_request:
1621
branches:
1722
- "*"
@@ -43,7 +48,7 @@ jobs:
4348
if: ${{ github.event.repository.fork == false && needs.vars.outputs.azure_creds == 'true' }}
4449
uses: nginxinc/docs-actions/.github/workflows/docs-build-push.yml@9c59fab05a8131f4d691ba6ea2b6a119f3ef832a # v1.0.7
4550
permissions:
46-
pull-requests: write # needed to write preview url comment to PR
51+
pull-requests: write # Required to add the preview URL comment
4752
contents: read
4853
with:
4954
production_url_path: "/nginx-gateway-fabric"
@@ -52,6 +57,7 @@ jobs:
5257
docs_build_path: "./site"
5358
doc_type: "hugo"
5459
environment: ${{ inputs.environment }}
60+
force_hugo_theme_version: ${{ inputs.hugo_theme_override }}
5561
secrets:
5662
AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS_DOCS }}
5763
AZURE_KEY_VAULT: ${{ secrets.AZURE_KEY_VAULT_DOCS }}

.github/workflows/functional.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
- name: Build binary
7171
uses: goreleaser/goreleaser-action@9ed2f89a662bf1735a48bc8557fd212fa902bebf # v6.1.0
7272
with:
73-
version: v2.4.7 # renovate: datasource=github-tags depName=goreleaser/goreleaser
73+
version: v2.4.8 # renovate: datasource=github-tags depName=goreleaser/goreleaser
7474
args: build --single-target --snapshot --clean
7575
env:
7676
TELEMETRY_ENDPOINT: otel-collector-opentelemetry-collector.collector.svc.cluster.local:4317

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ For troubleshooting help, see the [Troubleshooting](https://docs.nginx.com/nginx
105105

106106
We’d like to hear your feedback! If you experience issues with our Gateway Controller, please [open a bug][bug] in
107107
GitHub. If you have any suggestions or enhancement requests, please [open an idea][idea] on GitHub discussions. You can
108-
contact us directly via [email protected] or on the [NGINX Community Slack][slack] in
108+
contact us directly on the [NGINX Community Slack][slack] in
109109
the `#nginx-gateway-fabric`
110110
channel.
111111

apis/v1alpha1/observabilitypolicy_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ type ObservabilityPolicySpec struct {
4747
// Objects must be in the same namespace as the policy.
4848
// Support: HTTPRoute, GRPCRoute.
4949
//
50+
// +kubebuilder:validation:MinItems=1
5051
// +kubebuilder:validation:MaxItems=16
5152
// +kubebuilder:validation:XValidation:message="TargetRef Kind must be: HTTPRoute or GRPCRoute",rule="(self.exists(t, t.kind=='HTTPRoute') || self.exists(t, t.kind=='GRPCRoute'))"
5253
// +kubebuilder:validation:XValidation:message="TargetRef Group must be gateway.networking.k8s.io.",rule="self.all(t, t.group=='gateway.networking.k8s.io')"

config/crd/bases/gateway.nginx.org_observabilitypolicies.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ spec:
8585
- name
8686
type: object
8787
maxItems: 16
88+
minItems: 1
8889
type: array
8990
x-kubernetes-validations:
9091
- message: 'TargetRef Kind must be: HTTPRoute or GRPCRoute'

config/crd/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ resources:
55
- bases/gateway.nginx.org_nginxgateways.yaml
66
- bases/gateway.nginx.org_nginxproxies.yaml
77
- bases/gateway.nginx.org_observabilitypolicies.yaml
8+
- bases/gateway.nginx.org_snippetsfilters.yaml

deploy/crds.yaml

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -904,6 +904,7 @@ spec:
904904
- name
905905
type: object
906906
maxItems: 16
907+
minItems: 1
907908
type: array
908909
x-kubernetes-validations:
909910
- message: 'TargetRef Kind must be: HTTPRoute or GRPCRoute'
@@ -1292,3 +1293,192 @@ spec:
12921293
storage: true
12931294
subresources:
12941295
status: {}
1296+
---
1297+
apiVersion: apiextensions.k8s.io/v1
1298+
kind: CustomResourceDefinition
1299+
metadata:
1300+
annotations:
1301+
controller-gen.kubebuilder.io/version: v0.16.5
1302+
name: snippetsfilters.gateway.nginx.org
1303+
spec:
1304+
group: gateway.nginx.org
1305+
names:
1306+
categories:
1307+
- nginx-gateway-fabric
1308+
kind: SnippetsFilter
1309+
listKind: SnippetsFilterList
1310+
plural: snippetsfilters
1311+
shortNames:
1312+
- snippetsfilter
1313+
singular: snippetsfilter
1314+
scope: Namespaced
1315+
versions:
1316+
- additionalPrinterColumns:
1317+
- jsonPath: .metadata.creationTimestamp
1318+
name: Age
1319+
type: date
1320+
name: v1alpha1
1321+
schema:
1322+
openAPIV3Schema:
1323+
description: |-
1324+
SnippetsFilter is a filter that allows inserting NGINX configuration into the
1325+
generated NGINX config for HTTPRoute and GRPCRoute resources.
1326+
properties:
1327+
apiVersion:
1328+
description: |-
1329+
APIVersion defines the versioned schema of this representation of an object.
1330+
Servers should convert recognized schemas to the latest internal value, and
1331+
may reject unrecognized values.
1332+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
1333+
type: string
1334+
kind:
1335+
description: |-
1336+
Kind is a string value representing the REST resource this object represents.
1337+
Servers may infer this from the endpoint the client submits requests to.
1338+
Cannot be updated.
1339+
In CamelCase.
1340+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
1341+
type: string
1342+
metadata:
1343+
type: object
1344+
spec:
1345+
description: Spec defines the desired state of the SnippetsFilter.
1346+
properties:
1347+
snippets:
1348+
description: |-
1349+
Snippets is a list of NGINX configuration snippets.
1350+
There can only be one snippet per context.
1351+
Allowed contexts: main, http, http.server, http.server.location.
1352+
items:
1353+
description: Snippet represents an NGINX configuration snippet.
1354+
properties:
1355+
context:
1356+
description: Context is the NGINX context to insert the snippet
1357+
into.
1358+
enum:
1359+
- main
1360+
- http
1361+
- http.server
1362+
- http.server.location
1363+
type: string
1364+
value:
1365+
description: Value is the NGINX configuration snippet.
1366+
minLength: 1
1367+
type: string
1368+
required:
1369+
- context
1370+
- value
1371+
type: object
1372+
maxItems: 4
1373+
minItems: 1
1374+
type: array
1375+
x-kubernetes-validations:
1376+
- message: Only one snippet allowed per context
1377+
rule: self.all(s1, self.exists_one(s2, s1.context == s2.context))
1378+
required:
1379+
- snippets
1380+
type: object
1381+
status:
1382+
description: Status defines the state of the SnippetsFilter.
1383+
properties:
1384+
controllers:
1385+
description: |-
1386+
Controllers is a list of Gateway API controllers that processed the SnippetsFilter
1387+
and the status of the SnippetsFilter with respect to each controller.
1388+
items:
1389+
properties:
1390+
conditions:
1391+
description: Conditions describe the status of the SnippetsFilter.
1392+
items:
1393+
description: Condition contains details for one aspect of
1394+
the current state of this API Resource.
1395+
properties:
1396+
lastTransitionTime:
1397+
description: |-
1398+
lastTransitionTime is the last time the condition transitioned from one status to another.
1399+
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
1400+
format: date-time
1401+
type: string
1402+
message:
1403+
description: |-
1404+
message is a human readable message indicating details about the transition.
1405+
This may be an empty string.
1406+
maxLength: 32768
1407+
type: string
1408+
observedGeneration:
1409+
description: |-
1410+
observedGeneration represents the .metadata.generation that the condition was set based upon.
1411+
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
1412+
with respect to the current state of the instance.
1413+
format: int64
1414+
minimum: 0
1415+
type: integer
1416+
reason:
1417+
description: |-
1418+
reason contains a programmatic identifier indicating the reason for the condition's last transition.
1419+
Producers of specific condition types may define expected values and meanings for this field,
1420+
and whether the values are considered a guaranteed API.
1421+
The value should be a CamelCase string.
1422+
This field may not be empty.
1423+
maxLength: 1024
1424+
minLength: 1
1425+
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
1426+
type: string
1427+
status:
1428+
description: status of the condition, one of True, False,
1429+
Unknown.
1430+
enum:
1431+
- "True"
1432+
- "False"
1433+
- Unknown
1434+
type: string
1435+
type:
1436+
description: type of condition in CamelCase or in foo.example.com/CamelCase.
1437+
maxLength: 316
1438+
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
1439+
type: string
1440+
required:
1441+
- lastTransitionTime
1442+
- message
1443+
- reason
1444+
- status
1445+
- type
1446+
type: object
1447+
maxItems: 8
1448+
minItems: 1
1449+
type: array
1450+
x-kubernetes-list-map-keys:
1451+
- type
1452+
x-kubernetes-list-type: map
1453+
controllerName:
1454+
description: |-
1455+
ControllerName is a domain/path string that indicates the name of the
1456+
controller that wrote this status. This corresponds with the
1457+
controllerName field on GatewayClass.
1458+
1459+
Example: "example.net/gateway-controller".
1460+
1461+
The format of this field is DOMAIN "/" PATH, where DOMAIN and PATH are
1462+
valid Kubernetes names
1463+
(https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names).
1464+
1465+
Controllers MUST populate this field when writing status. Controllers should ensure that
1466+
entries to status populated with their ControllerName are cleaned up when they are no
1467+
longer necessary.
1468+
maxLength: 253
1469+
minLength: 1
1470+
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]+$
1471+
type: string
1472+
required:
1473+
- controllerName
1474+
type: object
1475+
maxItems: 16
1476+
type: array
1477+
type: object
1478+
required:
1479+
- spec
1480+
type: object
1481+
served: true
1482+
storage: true
1483+
subresources:
1484+
status: {}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ require (
2424
k8s.io/apimachinery v0.31.3
2525
k8s.io/client-go v0.31.3
2626
k8s.io/klog/v2 v2.130.1
27-
sigs.k8s.io/controller-runtime v0.19.1
27+
sigs.k8s.io/controller-runtime v0.19.2
2828
sigs.k8s.io/gateway-api v1.2.0
2929
)
3030

0 commit comments

Comments
 (0)