Files
argocd/helm/tls-sync-wildcard/ops/templates/cronjob.yaml
2026-01-22 02:51:43 +01:00

85 lines
3.2 KiB
YAML

apiVersion: batch/v1
kind: CronJob
metadata:
name: tls-sync-wildcard
namespace: {{ .Values.tlsSync.sourceNamespace }}
labels:
app: tls-sync-wildcard
spec:
schedule: {{ .Values.tlsSync.schedule | quote }}
successfulJobsHistoryLimit: {{ .Values.tlsSync.successfulJobsHistoryLimit }}
failedJobsHistoryLimit: {{ .Values.tlsSync.failedJobsHistoryLimit }}
jobTemplate:
spec:
backoffLimit: {{ .Values.tlsSync.backoffLimit }}
activeDeadlineSeconds: {{ .Values.tlsSync.activeDeadlineSeconds }}
template:
metadata:
labels:
app: tls-sync-wildcard
spec:
restartPolicy: {{ .Values.tlsSync.restartPolicy }}
serviceAccountName: tls-sync-wildcard
containers:
- name: sync
image: {{ .Values.tlsSync.image.repository }}:{{ .Values.tlsSync.image.tag }}
imagePullPolicy: {{ .Values.tlsSync.image.pullPolicy }}
securityContext:
runAsUser: 0 # Nécessaire pour installer jq avec zypper/yum/apt-get
command:
- /bin/bash
- -c
- |
set -e
# Installer jq si nécessaire (pour SLE)
if ! command -v jq &> /dev/null; then
echo "Installation de jq..."
if command -v zypper &> /dev/null; then
zypper --non-interactive install -y jq || echo "⚠️ Impossible d'installer jq avec zypper"
elif command -v yum &> /dev/null; then
yum install -y jq || echo "⚠️ Impossible d'installer jq avec yum"
elif command -v apt-get &> /dev/null; then
apt-get update && apt-get install -y jq || echo "⚠️ Impossible d'installer jq avec apt-get"
else
echo "❌ Aucun gestionnaire de paquets trouvé pour installer jq"
exit 1
fi
fi
# Vérifier que jq est maintenant disponible
if ! command -v jq &> /dev/null; then
echo "❌ Erreur: jq n'est pas disponible et n'a pas pu être installé"
exit 1
fi
# Copier le script depuis le ConfigMap
cp /scripts/sync-all-certificates.sh /tmp/sync-all-certificates.sh
chmod +x /tmp/sync-all-certificates.sh
# Exécuter le script
/tmp/sync-all-certificates.sh \
--sourceCluster "{{ .Values.tlsSync.sourceCluster }}" \
--sourceNS "{{ .Values.tlsSync.sourceNamespace }}"
volumeMounts:
- name: kubeconfig
mountPath: /root/.kube
readOnly: true
- name: script
mountPath: /scripts
readOnly: true
env:
- name: KUBECONFIG
value: /root/.kube/config
resources:
{{- toYaml .Values.tlsSync.resources | nindent 14 }}
volumes:
- name: kubeconfig
secret:
secretName: {{ .Values.tlsSync.kubeconfigSecret }}
- name: script
configMap:
name: tls-sync-wildcard-script
defaultMode: 0755