--- # yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: &app lychee-sync spec: interval: 1h chartRef: kind: OCIRepository name: app-template install: remediation: retries: 3 upgrade: cleanupOnFail: true remediation: strategy: rollback retries: 3 values: controllers: main: type: cronjob cronjob: concurrencyPolicy: Forbid schedule: 0 0 * * 1 # At 00:00 on Monday containers: main: image: repository: ghcr.io/auricom/kubectl tag: 1.34@sha256:047d1ad07ea2f7294f0d84dd57e3f2f4981c2168935dbad428bcf0fdcc7715bf command: - /bin/bash - -c - | #!/bin/bash set -o errexit set -o nounset result=$(kubectl get pod --selector app.kubernetes.io/name=lychee --output custom-columns=:metadata.name --namespace default) LYCHEE_POD=$(echo $result | awk '{ print $NF }') if [[ $LYCHEE_POD == *"lychee"* ]]; then kubectl exec --stdin --container app $LYCHEE_POD -- php artisan lychee:sync /mnt/storage/photo/Gallery/ --skip_duplicates=1 else echo "lychee deployment not found" exit 1 fi service: app: controller: *app enabled: false serviceAccount: lychee-sync: {} rbac: roles: lychee-sync: type: ClusterRole rules: - apiGroups: [""] resources: ["pods"] verbs: ["list", "get"] - apiGroups: [""] resources: ["pods/exec"] verbs: ["create"] bindings: gatus: type: ClusterRoleBinding roleRef: identifier: lychee-sync subjects: - identifier: lychee-sync