Skip to content

Commit a7f003f

Browse files
committed
Implement WAFPolicy controller
1 parent e11a235 commit a7f003f

File tree

38 files changed

+3027
-25
lines changed

38 files changed

+3027
-25
lines changed

apis/v1alpha1/wafpolicy_types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ type WAFPolicySpec struct {
5959
}
6060

6161
// WAFPolicySource defines the source location and configuration for fetching WAF policy bundles.
62+
//
63+
// +kubebuilder:validation:XValidation:message="policySource is required when securityLogs are specified",rule="!has(self.securityLogs) || has(self.policySource)"
64+
//
65+
//nolint:lll
6266
type WAFPolicySource struct {
6367
// AuthSecret is the Secret containing authentication credentials for the WAF policy source.
6468
//

charts/nginx-gateway-fabric/templates/clusterrole.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ rules:
109109
- clientsettingspolicies
110110
- observabilitypolicies
111111
- upstreamsettingspolicies
112+
- wafpolicies
112113
{{- if .Values.nginxGateway.snippetsFilters.enable }}
113114
- snippetsfilters
114115
{{- end }}
@@ -122,6 +123,7 @@ rules:
122123
- clientsettingspolicies/status
123124
- observabilitypolicies/status
124125
- upstreamsettingspolicies/status
126+
- wafpolicies/status
125127
{{- if .Values.nginxGateway.snippetsFilters.enable }}
126128
- snippetsfilters/status
127129
{{- end }}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ spec:
151151
required:
152152
- fileLocation
153153
type: object
154+
x-kubernetes-validations:
155+
- message: policySource is required when securityLogs are specified
156+
rule: '!has(self.securityLogs) || has(self.policySource)'
154157
securityLogs:
155158
description: |-
156159
SecurityLogs defines the security logging configuration for app_protect_security_log directives.
@@ -331,6 +334,9 @@ spec:
331334
required:
332335
- fileLocation
333336
type: object
337+
x-kubernetes-validations:
338+
- message: policySource is required when securityLogs are specified
339+
rule: '!has(self.securityLogs) || has(self.policySource)'
334340
name:
335341
description: Name is the name of the security log configuration.
336342
maxLength: 63

deploy/azure/deploy.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ rules:
145145
- clientsettingspolicies
146146
- observabilitypolicies
147147
- upstreamsettingspolicies
148+
- wafpolicies
148149
verbs:
149150
- list
150151
- watch
@@ -155,6 +156,7 @@ rules:
155156
- clientsettingspolicies/status
156157
- observabilitypolicies/status
157158
- upstreamsettingspolicies/status
159+
- wafpolicies/status
158160
verbs:
159161
- update
160162
- apiGroups:

deploy/default/deploy.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ rules:
145145
- clientsettingspolicies
146146
- observabilitypolicies
147147
- upstreamsettingspolicies
148+
- wafpolicies
148149
verbs:
149150
- list
150151
- watch
@@ -155,6 +156,7 @@ rules:
155156
- clientsettingspolicies/status
156157
- observabilitypolicies/status
157158
- upstreamsettingspolicies/status
159+
- wafpolicies/status
158160
verbs:
159161
- update
160162
- apiGroups:

deploy/experimental-nginx-plus/deploy.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ rules:
149149
- clientsettingspolicies
150150
- observabilitypolicies
151151
- upstreamsettingspolicies
152+
- wafpolicies
152153
verbs:
153154
- list
154155
- watch
@@ -159,6 +160,7 @@ rules:
159160
- clientsettingspolicies/status
160161
- observabilitypolicies/status
161162
- upstreamsettingspolicies/status
163+
- wafpolicies/status
162164
verbs:
163165
- update
164166
- apiGroups:

deploy/experimental/deploy.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ rules:
149149
- clientsettingspolicies
150150
- observabilitypolicies
151151
- upstreamsettingspolicies
152+
- wafpolicies
152153
verbs:
153154
- list
154155
- watch
@@ -159,6 +160,7 @@ rules:
159160
- clientsettingspolicies/status
160161
- observabilitypolicies/status
161162
- upstreamsettingspolicies/status
163+
- wafpolicies/status
162164
verbs:
163165
- update
164166
- apiGroups:

deploy/nginx-plus/deploy.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ rules:
145145
- clientsettingspolicies
146146
- observabilitypolicies
147147
- upstreamsettingspolicies
148+
- wafpolicies
148149
verbs:
149150
- list
150151
- watch
@@ -155,6 +156,7 @@ rules:
155156
- clientsettingspolicies/status
156157
- observabilitypolicies/status
157158
- upstreamsettingspolicies/status
159+
- wafpolicies/status
158160
verbs:
159161
- update
160162
- apiGroups:

deploy/nodeport/deploy.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ rules:
145145
- clientsettingspolicies
146146
- observabilitypolicies
147147
- upstreamsettingspolicies
148+
- wafpolicies
148149
verbs:
149150
- list
150151
- watch
@@ -155,6 +156,7 @@ rules:
155156
- clientsettingspolicies/status
156157
- observabilitypolicies/status
157158
- upstreamsettingspolicies/status
159+
- wafpolicies/status
158160
verbs:
159161
- update
160162
- apiGroups:

deploy/openshift/deploy.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ rules:
145145
- clientsettingspolicies
146146
- observabilitypolicies
147147
- upstreamsettingspolicies
148+
- wafpolicies
148149
verbs:
149150
- list
150151
- watch
@@ -155,6 +156,7 @@ rules:
155156
- clientsettingspolicies/status
156157
- observabilitypolicies/status
157158
- upstreamsettingspolicies/status
159+
- wafpolicies/status
158160
verbs:
159161
- update
160162
- apiGroups:

0 commit comments

Comments
 (0)