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