Skip to content

Commit bb8ecae

Browse files
committed
SnippetsFilter CRD missing from crds manifest (nginx#2821)
Problem: The SnippetsFilter CRD is missing from deploy/crds.yaml, which is used to install NGF with manifests. Solution: Add SnippetsFilter CRD to the kustomization file that is used to generate the deploy/crds.yaml file.
1 parent e0b7891 commit bb8ecae

File tree

2 files changed

+190
-0
lines changed

2 files changed

+190
-0
lines changed

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: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1293,3 +1293,192 @@ spec:
12931293
storage: true
12941294
subresources:
12951295
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: {}

0 commit comments

Comments
 (0)