@@ -20,27 +20,37 @@ spec:
2020 app.kubernetes.io/name : rag
2121 app.kubernetes.io/instance : {{ .Release.Name }}
2222 spec :
23+ securityContext :
24+ runAsUser : {{ .Values.langfuseRetention.podSecurityContext.runAsUser }}
25+ runAsNonRoot : {{ .Values.langfuseRetention.podSecurityContext.runAsNonRoot }}
26+ {{- if .Values.shared.imagePullSecret }}
27+ imagePullSecrets :
28+ - name : {{ .Values.shared.imagePullSecret.name }}
29+ {{- end }}
2330 restartPolicy : OnFailure
2431 containers :
2532 - name : delete-expired-rows
2633 image : {{ $retentionImage | quote }}
2734 imagePullPolicy : {{ .Values.langfuseRetention.image.pullPolicy | quote }}
35+ securityContext :
36+ allowPrivilegeEscalation : {{ .Values.langfuseRetention.securityContext.allowPrivilegeEscalation }}
37+ {{- with .Values.langfuseRetention.resources }}
38+ resources :
39+ {{ toYaml . | nindent 16 }}
40+ {{- end }}
2841 command :
2942 - /bin/bash
3043 - -ec
3144 args :
3245 - |
3346 set -euo pipefail
3447
35- PASSWORD="${CLICKHOUSE_PASSWORD:-}"
36- if [ -z "${PASSWORD}" ]; then
37- PASSWORD="${CLICKHOUSE_PASSWORD_LITERAL:-}"
38- fi
39-
40- if [ -z "${PASSWORD}" ]; then
48+ if [ -z "${CLICKHOUSE_PASSWORD:-}" ] && [ -z "${CLICKHOUSE_PASSWORD_LITERAL:-}" ]; then
4149 echo "No ClickHouse password found. Check langfuse.clickhouse.auth settings and secret."
4250 exit 1
4351 fi
52+ export CLICKHOUSE_PASSWORD="${CLICKHOUSE_PASSWORD:-${CLICKHOUSE_PASSWORD_LITERAL:-}}"
53+ unset CLICKHOUSE_PASSWORD_LITERAL
4454
4555 ON_CLUSTER_CLAUSE=""
4656 if [ "${CLICKHOUSE_ON_CLUSTER}" = "true" ]; then
@@ -55,17 +65,29 @@ spec:
5565 )"
5666
5767 CUTOFF_UNIX="$(( $(date -u +%s) - RETENTION_DAYS * 86400 ))"
68+ IDENTIFIER_REGEX='^[A-Za-z_][A-Za-z0-9_]*$'
5869
5970 while IFS=$'\t' read -r table ts_col; do
6071 [ -z "${table}" ] && continue
6172
73+ if ! [[ "${table}" =~ ${IDENTIFIER_REGEX} ]]; then
74+ echo "Invalid table identifier: ${table}"
75+ exit 1
76+ fi
77+ if ! [[ "${ts_col}" =~ ${IDENTIFIER_REGEX} ]]; then
78+ echo "Invalid timestamp column identifier: ${ts_col}"
79+ exit 1
80+ fi
81+
6282 echo "Deleting rows older than ${RETENTION_DAYS}d from ${CLICKHOUSE_DATABASE}.${table} (${ts_col})"
63- clickhouse-client \
83+ if ! clickhouse-client \
6484 --host "${CLICKHOUSE_HOST}" \
6585 --port "${CLICKHOUSE_PORT}" \
6686 --user "${CLICKHOUSE_USER}" \
67- --password "${PASSWORD}" \
68- --query "ALTER TABLE ${CLICKHOUSE_DATABASE}.${table}${ON_CLUSTER_CLAUSE} DELETE WHERE toDateTime(${ts_col}) < toDateTime(${CUTOFF_UNIX}) SETTINGS mutations_sync = ${MUTATION_SYNC}"
87+ --query "ALTER TABLE ${CLICKHOUSE_DATABASE}.${table}${ON_CLUSTER_CLAUSE} DELETE WHERE ${ts_col} < toDateTime(${CUTOFF_UNIX}) SETTINGS mutations_sync = ${MUTATION_SYNC}"; then
88+ echo "Failed deleting expired rows from ${CLICKHOUSE_DATABASE}.${table}"
89+ exit 1
90+ fi
6991 done <<< "${TABLE_ROWS}"
7092 env :
7193 - name : MUTATION_SYNC
0 commit comments