{{- if .Values.session.reaper.cronjob.enabled }} apiVersion: batch/v1 kind: CronJob metadata: name: {{ include "claude-code.fullname" . }}-reaper namespace: {{ .Release.Namespace }} labels: {{- include "claude-code.labels" . | nindent 4 }} app.kubernetes.io/component: reaper spec: schedule: {{ .Values.session.reaper.cronjob.schedule | quote }} concurrencyPolicy: Forbid successfulJobsHistoryLimit: 1 failedJobsHistoryLimit: 3 startingDeadlineSeconds: 120 jobTemplate: spec: activeDeadlineSeconds: 300 backoffLimit: 1 template: metadata: labels: {{- include "claude-code.selectorLabels" . | nindent 12 }} app.kubernetes.io/component: reaper spec: restartPolicy: Never serviceAccountName: {{ include "claude-code.managerServiceAccountName" . }} automountServiceAccountToken: true securityContext: {{- include "claude-code.podSecurityContext" . | nindent 12 }} containers: - name: reaper image: "{{ .Values.image.manager.registry }}/{{ .Values.image.manager.repository }}:{{ .Values.image.manager.tag }}" imagePullPolicy: {{ .Values.image.manager.pullPolicy }} command: ["python3", "-u", "/app/manager.py", "--reap-once"] env: - name: PYTHONDONTWRITEBYTECODE value: "1" - name: LOG_LEVEL value: {{ .Values.manager.logLevel | quote }} - name: SESSIONS_NAMESPACE value: {{ include "claude-code.sessionsNamespace" . | quote }} - name: FULLNAME value: {{ include "claude-code.fullname" . | quote }} - name: IDLE_TIMEOUT_SECONDS value: {{ .Values.session.idleTimeoutSeconds | quote }} - name: MAX_LIFETIME_SECONDS value: {{ .Values.session.maxLifetimeSeconds | quote }} - name: TTYD_PORT value: {{ .Values.session.ttydPort | quote }} securityContext: {{- include "claude-code.containerSecurityContext" . | nindent 16 }} resources: requests: { cpu: 20m, memory: 32Mi } limits: { cpu: 200m, memory: 128Mi } volumeMounts: - name: manager-app mountPath: /app readOnly: true - name: tmp mountPath: /tmp volumes: - name: manager-app configMap: name: {{ include "claude-code.fullname" . }}-manager defaultMode: 0555 - name: tmp emptyDir: medium: Memory sizeLimit: 8Mi {{- end }}