deploy-templates/templates/audit-clean-cron-job.yaml (61 lines of code) (raw):
apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ .Values.postgresCluster.cronJob.name }}
spec:
schedule: {{ .Values.postgresCluster.cronJob.schedule }}
jobTemplate:
spec:
template:
metadata:
labels:
app: {{ .Values.postgresCluster.cronJob.name }}
spec:
restartPolicy: OnFailure
initContainers:
- name: wait-for-postgres-cluster
image: {{ template "imageRegistry" . -}} curlimages/curl
command:
- sh
- '-c'
- >-
get_postgres_cluster_status () {
operational_curl=$(curl --max-time 5 -k https://operational-pods:8008/cluster 2>&1 | grep -o 'state.\{0,12\}')
if [[ ! "$operational_curl" ]]; then
echo 'EMPTY'
else
operational_status=$(curl --max-time 5 -k https://operational-pods:8008/cluster 2>&1 | grep -o 'state.\{0,12\}' | cut -d'"' -f3 | grep -v 'running' | wc -l)
fi
echo $operational_status;
if [[ "$operational_status" == "0" ]]; then
return 0
else
return 1
fi
};
while ! get_postgres_cluster_status; do echo waiting for postgres clusters...; sleep 10; done;
echo postgres clusters are ready!;
containers:
- name: postgres
image: {{ .Values.postgresCluster.cronJob.image }}
imagePullPolicy: IfNotPresent
args:
- psql
- "-p"
- "{{ .Values.postgresCluster.port }}"
- "-h"
- "citus-master"
- "audit"
- "-c"
- "delete from audit_event ae where received <(current_timestamp -interval '{{ .Values.postgresCluster.cronJob.interval }}' day) and (application_name ,name ) in (('process-history-service-persistence', 'Kafka request. Method: save'), ('registry-rest-api','DB request. Method: search'), ('registry-rest-api', 'HTTP request. Method: search'));"
env:
- name: PGUSER
valueFrom:
secretKeyRef:
name: {{ .Values.postgresCluster.operationalClusterSecret.name }}
key: user
- name: PGPASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.postgresCluster.operationalClusterSecret.name }}
key: password