apiVersion: batch/v1 kind: CronJob metadata: name: quartz-build spec: schedule: "0 */12 * * *" jobTemplate: spec: backoffLimit: 1 template: spec: initContainers: - name: s3-sync image: s3 env: - name: AWS_ACCESS_KEY_ID valueFrom: secretKeyRef: name: s3-credentials key: S3_ACCESS_KEY_ID - name: AWS_SECRET_ACCESS_KEY valueFrom: secretKeyRef: name: s3-credentials key: S3_SECRET_ACCESS_KEY - name: S3_BUCKET value: obsidian-eth - name: S3_REGION value: us-west-1 command: ["/bin/sh", "-c"] args: ["aws --endpoint-url https://s3.kluster.moll.re s3 sync s3://$S3_BUCKET /vault --delete"] volumeMounts: - name: vault mountPath: /vault - name: git-clone image: git env: - name: GIT_URL value: https://git.kluster.moll.re/remoll/eth-physics.git volumeMounts: - name: config mountPath: /config command: ["/bin/sh", "-c"] args: ["git clone $GIT_URL /config"] containers: - name: quartz-build image: node command: ["/bin/sh", "-c"] args: - >- cd /config && ln -s /vault content && npm ci && npx quartz build && rm -rfv /dist/* && cp --verbose -r /config/public/* /dist # can't just ln to the dist folder, because quartz deletes it before rebuilding volumeMounts: - name: vault mountPath: /vault - name: dist mountPath: /dist - name: config mountPath: /config restartPolicy: Never volumes: - name: vault persistentVolumeClaim: claimName: vault - name: dist persistentVolumeClaim: claimName: quartz - name: config emptyDir: {}