atlas-iac/services/quality/zap-baseline-cronjob.yaml

78 lines
2.4 KiB
YAML
Raw Normal View History

# services/quality/zap-baseline-cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
name: zap-baseline
namespace: quality
spec:
schedule: "17 4 * * *"
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
jobTemplate:
spec:
ttlSecondsAfterFinished: 604800
backoffLimit: 1
template:
metadata:
labels:
app: zap-baseline
spec:
restartPolicy: Never
nodeSelector:
kubernetes.io/arch: arm64
node-role.kubernetes.io/worker: "true"
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 90
preference:
matchExpressions:
- key: hardware
operator: In
values: ["rpi5"]
- weight: 50
preference:
matchExpressions:
- key: hardware
operator: In
values: ["rpi4"]
containers:
- name: zap
image: ghcr.io/zaproxy/zaproxy:2.17.0
imagePullPolicy: IfNotPresent
command:
- /bin/bash
- /zap/config/run_zap_baseline.sh
env:
- name: PUSHGATEWAY_URL
value: http://platform-quality-gateway.monitoring.svc.cluster.local:9091
- name: QUALITY_GATE_JOB_NAME
value: platform-security-zap
- name: ZAP_TARGET_FILE
value: /zap/config/targets.txt
- name: ZAP_SPIDER_MINUTES
value: "1"
- name: ZAP_MAX_SCAN_MINUTES
value: "5"
resources:
requests:
cpu: 100m
memory: 1Gi
limits:
cpu: "2"
memory: 2Gi
volumeMounts:
- name: config
mountPath: /zap/config
readOnly: true
- name: work
mountPath: /zap/wrk
volumes:
- name: config
configMap:
name: zap-baseline-config
defaultMode: 0755
- name: work
emptyDir: {}