From d9d4c16f172e88aa1c707aa11c8d7e3330923f0b Mon Sep 17 00:00:00 2001 From: Ben Morrice <ben.morrice@cern.ch> Date: Wed, 17 Mar 2021 08:54:55 +0100 Subject: [PATCH] add gitlabci/nomad configuration --- .gitlab-ci.yml | 31 +++++++++++++++++++++++ dev.variables.sh | 7 ++++++ prod.variables.sh | 7 ++++++ stream8_backups.nomad | 58 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 dev.variables.sh create mode 100644 prod.variables.sh create mode 100644 stream8_backups.nomad diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..cafb485 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,31 @@ +--- +include: 'https://gitlab.cern.ch/linuxsupport/cronjobs/base/raw/master/gitlab-ci.yml' + + +build_stream8_backups: + stage: build + tags: + - docker-image-build + script: "echo" # unused but this line is required by GitLab CI + variables: + CONTEXT_DIR: stream8_backups + TO: $CI_REGISTRY_IMAGE/stream8_backups:$CI_COMMIT_REF_NAME + +deploy: + extends: .nomad + stage: deploy + script: + - for j in *.nomad; do echo -e "\n${j}:"; nomad job run <(envsubst < $j); done + only: + - tags + - master + +deploy_dev: + extends: .nomad + stage: deploy + script: + - for j in *.nomad; do echo -e "\n${j}:"; nomad job run <(envsubst < $j); done + except: + - tags + - master + when: manual diff --git a/dev.variables.sh b/dev.variables.sh new file mode 100644 index 0000000..7e68e7a --- /dev/null +++ b/dev.variables.sh @@ -0,0 +1,7 @@ +SCHEDULE="15 9 * * 1" +DATA="/mnt/data1/dist" +PATH_SNAPSHOTS="tmp" +S3_REPOSITORY="s8-backups-testing" +PRUNE_SNAPSHOTS_OLDER_THAN="2d" +EMAIL_FROM="Linux.Support@cern.ch" +EMAIL_ADMIN="morrice@cern.ch" diff --git a/prod.variables.sh b/prod.variables.sh new file mode 100644 index 0000000..5e1a4bb --- /dev/null +++ b/prod.variables.sh @@ -0,0 +1,7 @@ +SCHEDULE="15 9 * * *" +DATA="/mnt/data1/dist" +PATH_SNAPSHOTS="cern/centos" +S3_REPOSITORY="s8-backups-production" +PRUNE_SNAPSHOTS_OLDER_THAN="730d" +EMAIL_FROM="Linux.Support@cern.ch" +EMAIL_ADMIN="lxsoft-admins@cern.ch" diff --git a/stream8_backups.nomad b/stream8_backups.nomad new file mode 100644 index 0000000..ee82da9 --- /dev/null +++ b/stream8_backups.nomad @@ -0,0 +1,58 @@ +job "${PREFIX}_stream8_backups" { + datacenters = ["meyrin"] + + type = "batch" + + periodic { + cron = "${SCHEDULE}" + time_zone = "Europe/Zurich" + prohibit_overlap = false + } + + reschedule { + attempts = 276 + interval = "23h" + unlimited = false + delay = "5m" + delay_function = "constant" + } + + task "${PREFIX}_stream8_backups" { + driver = "docker" + + config { + image = "https://gitlab-registry.cern.ch/linuxsupport/cronjobs/stream8_backups/stream8_backups:${CI_COMMIT_REF_NAME}" + force_pull = ${FORCE_PULL} + logging { + config { + tag = "${PREFIX}_stream8_backups" + } + } + volumes = [ + "$DATA:/data", + ] + } + + env { + RESTIC_PASSWORD = "$RESTIC_PASSWORD" + AWS_ACCESS_KEY_ID = "$AWS_ACCESS_KEY_ID" + AWS_SECRET_ACCESS_KEY = "$AWS_SECRET_ACCESS_KEY" + RESTIC_REPOSITORY = "s3:s3.cern.ch/$S3_REPOSITORY" + PRUNE_SNAPSHOTS_OLDER_THAN = "$PRUNE_SNAPSHOTS_OLDER_THAN" + PATH_SNAPSHOTS = "$PATH_SNAPSHOTS" + EMAIL_FROM = "$EMAIL_FROM" + EMAIL_ADMIN = "$EMAIL_ADMIN" + NOMAD_ADDR = "$NOMAD_ADDR" + } + + resources { + cpu = 6000 # Mhz + memory = 1024 # MB + + network { + mbits = 10 + } + } + + } +} -- GitLab