@@ -37,6 +37,38 @@ NODE_VERSION ?= 16-bullseye-slim
37
37
YQ_VERSION ?= 4.30.6
38
38
39
39
HELM_ARGS ?=
40
+ HELM_DAPR_EXPORT_ARGS := --set-string auditPodAnnotations.dapr\\.io/enabled=true \
41
+ --set-string auditPodAnnotations.dapr\\.io/app-id=audit \
42
+ --set-string auditPodAnnotations.dapr\\.io/metrics-port=9999 \
43
+
44
+ HELM_DISK_EXPORT_ARGS := --set audit.exportVolumeMount.path=${EXPORT_DISK_PATH} \
45
+ --set audit.exportConfig.maxAuditResults=${MAX_AUDIT_RESULTS} \
46
+ --set audit.exportSidecar.image=${FAKE_READER_IMAGE} \
47
+ --set audit.exportSidecar.imagePullPolicy=${FAKE_READER_IMAGE_PULL_POLICY} \
48
+
49
+ HELM_EXPORT_ARGS := --set enableViolationExport=${ENABLE_EXPORT} \
50
+ --set audit.connection=${AUDIT_CONNECTION} \
51
+ --set audit.channel=${AUDIT_CHANNEL} \
52
+ --set exportBackend=${EXPORT_BACKEND} \
53
+
54
+ HELM_EXTRA_ARGS := --set image.repository=${HELM_REPO} \
55
+ --set image.crdRepository=${HELM_CRD_REPO} \
56
+ --set image.release=${HELM_RELEASE} \
57
+ --set postInstall.labelNamespace.image.repository=${HELM_CRD_REPO} \
58
+ --set postInstall.labelNamespace.image.tag=${HELM_RELEASE} \
59
+ --set postInstall.labelNamespace.enabled=true \
60
+ --set postInstall.probeWebhook.enabled=true \
61
+ --set emitAdmissionEvents=true \
62
+ --set emitAuditEvents=true \
63
+ --set admissionEventsInvolvedNamespace=true \
64
+ --set auditEventsInvolvedNamespace=true \
65
+ --set disabledBuiltins={http.send} \
66
+ --set logMutations=true \
67
+ --set logLevel=${LOG_LEVEL} \
68
+ --set defaultCreateVAPForTemplates=${GENERATE_VAP} \
69
+ --set defaultCreateVAPBindingForConstraints=${GENERATE_VAPBINDING} \
70
+ --set mutationAnnotations=true;\
71
+
40
72
GATEKEEPER_NAMESPACE ?= gatekeeper-system
41
73
42
74
# When updating this, make sure to update the corresponding action in
@@ -48,6 +80,8 @@ GOLANGCI_LINT_CACHE := $(shell pwd)/.tmp/golangci-lint
48
80
49
81
BENCHMARK_FILE_NAME ?= benchmarks.txt
50
82
FAKE_SUBSCRIBER_IMAGE ?= fake-subscriber:latest
83
+ FAKE_READER_IMAGE ?= fake-reader:latest
84
+ FAKE_READER_IMAGE_PULL_POLICY ?= IfNotPresent
51
85
52
86
ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST ) ) ) )
53
87
BIN_DIR := $(abspath $(ROOT_DIR ) /bin)
@@ -106,6 +140,29 @@ MANAGER_IMAGE_PATCH := "apiVersion: apps/v1\
106
140
\n - --log-level=${LOG_LEVEL}\
107
141
\n"
108
142
143
+ HELM_EXPORT_VARIABLES := "audit:\
144
+ \n exportVolume:\
145
+ \n name: tmp-violations\
146
+ \n emptyDir: {}\
147
+ \n exportSidecar:\
148
+ \n name: go-sub\
149
+ \n image: ${FAKE_READER_IMAGE}\
150
+ \n imagePullPolicy: ${FAKE_READER_IMAGE_PULL_POLICY}\
151
+ \n securityContext:\
152
+ \n allowPrivilegeEscalation: false\
153
+ \n capabilities:\
154
+ \n drop:\
155
+ \n - ALL\
156
+ \n readOnlyRootFilesystem: true\
157
+ \n runAsGroup: 999\
158
+ \n runAsNonRoot: true\
159
+ \n runAsUser: 1000\
160
+ \n seccompProfile:\
161
+ \n type: RuntimeDefault\
162
+ \n volumeMounts:\
163
+ \n - mountPath: /tmp/violations\
164
+ \n name: tmp-violations"
165
+
109
166
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
110
167
ifeq (,$(shell go env GOBIN) )
111
168
GOBIN =$(shell go env GOPATH) /bin
@@ -202,53 +259,20 @@ e2e-helm-install:
202
259
cd .staging/helm && tar -xvf helmbin.tar.gz
203
260
./.staging/helm/linux-amd64/helm version --client
204
261
205
- e2e-helm-deploy : e2e-helm-install
262
+ e2e-helm-deploy : e2e-helm-install $( LOCALBIN )
206
263
ifeq ($(ENABLE_EXPORT ) ,true)
207
264
./.staging/helm/linux-amd64/helm install manifest_staging/charts/gatekeeper --name-template=gatekeeper \
208
265
--namespace ${GATEKEEPER_NAMESPACE} \
209
266
--debug --wait \
210
- --set image.repository=${HELM_REPO} \
211
- --set image.crdRepository=${HELM_CRD_REPO} \
212
- --set image.release=${HELM_RELEASE} \
213
- --set postInstall.labelNamespace.image.repository=${HELM_CRD_REPO} \
214
- --set postInstall.labelNamespace.image.tag=${HELM_RELEASE} \
215
- --set postInstall.labelNamespace.enabled=true \
216
- --set postInstall.probeWebhook.enabled=true \
217
- --set emitAdmissionEvents=true \
218
- --set emitAuditEvents=true \
219
- --set admissionEventsInvolvedNamespace=true \
220
- --set auditEventsInvolvedNamespace=true \
221
- --set disabledBuiltins={http.send} \
222
- --set logMutations=true \
223
- --set enableViolationExport=${ENABLE_EXPORT} \
224
- --set audit.connection=${AUDIT_CONNECTION} \
225
- --set audit.channel=${AUDIT_CHANNEL} \
226
- --set-string auditPodAnnotations.dapr\\.io/enabled=true \
227
- --set-string auditPodAnnotations.dapr\\.io/app-id=audit \
228
- --set-string auditPodAnnotations.dapr\\.io/metrics-port=9999 \
229
- --set logLevel=${LOG_LEVEL} \
230
- --set mutationAnnotations=true;
267
+ $(HELM_EXPORT_ARGS) \
268
+ $(if $(filter disk,$(EXPORT_BACKEND)),$(HELM_DISK_EXPORT_ARGS)) \
269
+ $(if $(filter dapr,$(EXPORT_BACKEND)),$(HELM_DAPR_EXPORT_ARGS)) \
270
+ $(HELM_EXTRA_ARGS)
231
271
else
232
272
./.staging/helm/linux-amd64/helm install manifest_staging/charts/gatekeeper --name-template=gatekeeper \
233
273
--namespace ${GATEKEEPER_NAMESPACE} --create-namespace \
234
274
--debug --wait \
235
- --set image.repository=${HELM_REPO} \
236
- --set image.crdRepository=${HELM_CRD_REPO} \
237
- --set image.release=${HELM_RELEASE} \
238
- --set postInstall.labelNamespace.image.repository=${HELM_CRD_REPO} \
239
- --set postInstall.labelNamespace.image.tag=${HELM_RELEASE} \
240
- --set postInstall.labelNamespace.enabled=true \
241
- --set postInstall.probeWebhook.enabled=true \
242
- --set emitAdmissionEvents=true \
243
- --set emitAuditEvents=true \
244
- --set admissionEventsInvolvedNamespace=true \
245
- --set auditEventsInvolvedNamespace=true \
246
- --set disabledBuiltins={http.send} \
247
- --set logMutations=true \
248
- --set logLevel=${LOG_LEVEL} \
249
- --set defaultCreateVAPForTemplates=${GENERATE_VAP} \
250
- --set defaultCreateVAPBindingForConstraints=${GENERATE_VAPBINDING} \
251
- --set mutationAnnotations=true;
275
+ $(HELM_EXTRA_ARGS)
252
276
endif
253
277
254
278
e2e-helm-upgrade-init : e2e-helm-install
@@ -273,23 +297,7 @@ e2e-helm-upgrade:
273
297
./.staging/helm/linux-amd64/helm upgrade gatekeeper manifest_staging/charts/gatekeeper \
274
298
--namespace ${GATEKEEPER_NAMESPACE} \
275
299
--debug --wait \
276
- --set image.repository=${HELM_REPO} \
277
- --set image.crdRepository=${HELM_CRD_REPO} \
278
- --set image.release=${HELM_RELEASE} \
279
- --set postInstall.labelNamespace.image.repository=${HELM_CRD_REPO} \
280
- --set postInstall.labelNamespace.image.tag=${HELM_RELEASE} \
281
- --set postInstall.labelNamespace.enabled=true \
282
- --set postInstall.probeWebhook.enabled=true \
283
- --set emitAdmissionEvents=true \
284
- --set emitAuditEvents=true \
285
- --set admissionEventsInvolvedNamespace=true \
286
- --set auditEventsInvolvedNamespace=true \
287
- --set disabledBuiltins={http.send} \
288
- --set logMutations=true \
289
- --set logLevel=${LOG_LEVEL} \
290
- --set defaultCreateVAPForTemplates=${GENERATE_VAP} \
291
- --set defaultCreateVAPBindingForConstraints=${GENERATE_VAPBINDING} \
292
- --set mutationAnnotations=true; \
300
+ $(HELM_EXTRA_ARGS )
293
301
294
302
e2e-subscriber-build-load-image :
295
303
docker buildx build --platform=" linux/amd64" -t ${FAKE_SUBSCRIBER_IMAGE} --load -f test/export/fake-subscriber/Dockerfile test/export/fake-subscriber
@@ -302,7 +310,10 @@ e2e-subscriber-deploy:
302
310
303
311
e2e-publisher-deploy :
304
312
kubectl get secret redis --namespace=default -o yaml | sed ' s/namespace: .*/namespace: gatekeeper-system/' | kubectl apply -f -
305
- kubectl apply -f test/export/publish-components.yaml
313
+ kubectl apply -f test/export/fake-subscriber/manifest/publish-components.yaml
314
+
315
+ e2e-reader-build-image :
316
+ docker buildx build --platform=" $( PLATFORM) " -t ${FAKE_READER_IMAGE} --load -f test/export/fake-reader/Dockerfile test/export/fake-reader
306
317
307
318
# Build manager binary
308
319
manager : generate
0 commit comments