From 6ecea68c03e981c0b15262cf080e2a547869d005 Mon Sep 17 00:00:00 2001 From: marhode Date: Wed, 18 Sep 2024 16:50:33 +0200 Subject: [PATCH 01/16] Created moodle-tools image --- moodle-tools/Dockerfile | 22 ++++++++++++++++++++++ moodle-tools/README.md | 12 ++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 moodle-tools/Dockerfile create mode 100644 moodle-tools/README.md diff --git a/moodle-tools/Dockerfile b/moodle-tools/Dockerfile new file mode 100644 index 0000000..f7ee7a0 --- /dev/null +++ b/moodle-tools/Dockerfile @@ -0,0 +1,22 @@ +FROM ubuntu:22.04 + +ARG DEBIAN_FRONTEND=noninteractive +ENV TZ=Europe/Berlin + +RUN set -x \ + && apt-get -y update \ + && apt-get -y install wget \ + && wget https://dl.k8s.io/release/v1.28.7/bin/linux/amd64/kubectl \ + && chmod +x kubectl \ + && mv ./kubectl /usr/local/bin/kubectl \ + && wget -qO /usr/share/keyrings/postgres.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc \ + && echo "deb [signed-by=/usr/share/keyrings/postgres.asc] https://apt.postgresql.org/pub/repos/apt jammy-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ + && apt-get -y update \ + && apt-get -y install \ + postgresql-client-14 \ + mariadb-client \ + duply \ + ca-certificates \ + gnupg \ + apt-transport-https \ + && apt-get clean -y \ No newline at end of file diff --git a/moodle-tools/README.md b/moodle-tools/README.md new file mode 100644 index 0000000..9a5588c --- /dev/null +++ b/moodle-tools/README.md @@ -0,0 +1,12 @@ +# cron-tools +Minimal image with the tools that are necessary for our Moodle Kubernetes CronJobs. + +## Provided Tools +* [kubectl](https://kubernetes.io/docs/reference/kubectl/) +* [mariadb](https://www.mongodb.com/docs/mongodb-shell/) +* [psql](https://www.postgresql.org/docs/current/app-psql.html) +* [wget](https://www.gnu.org/software/wget/) +* [duply] +* [gnupg] +* [ca-certificates] +* [apt-transport-https] From aceb8b058df8d42f28a5622b116ec013f924d7ce Mon Sep 17 00:00:00 2001 From: marhode Date: Wed, 18 Sep 2024 16:56:56 +0200 Subject: [PATCH 02/16] Changed package install order --- moodle-tools/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/moodle-tools/Dockerfile b/moodle-tools/Dockerfile index f7ee7a0..fc7d207 100644 --- a/moodle-tools/Dockerfile +++ b/moodle-tools/Dockerfile @@ -13,10 +13,10 @@ RUN set -x \ && echo "deb [signed-by=/usr/share/keyrings/postgres.asc] https://apt.postgresql.org/pub/repos/apt jammy-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ && apt-get -y update \ && apt-get -y install \ - postgresql-client-14 \ - mariadb-client \ duply \ ca-certificates \ gnupg \ apt-transport-https \ + postgresql-client-14 \ + mariadb-client \ && apt-get clean -y \ No newline at end of file From f5d70ea11a61763dc605d2d1075071685a7e7b0b Mon Sep 17 00:00:00 2001 From: marhode Date: Wed, 18 Sep 2024 16:59:28 +0200 Subject: [PATCH 03/16] Added moodle-toold GH action --- .../workflows/moodletoolstoghcr-on-push.yaml | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/moodletoolstoghcr-on-push.yaml diff --git a/.github/workflows/moodletoolstoghcr-on-push.yaml b/.github/workflows/moodletoolstoghcr-on-push.yaml new file mode 100644 index 0000000..c3fe76a --- /dev/null +++ b/.github/workflows/moodletoolstoghcr-on-push.yaml @@ -0,0 +1,21 @@ +--- +name: moodle-tools Docker Image on Push to GHCR + +on: + push: + branches-ignore: + - master + paths: + - 'moodle-tools/**' + +jobs: + build_image_on_push: + permissions: + packages: write + security-events: write + actions: read + contents: read + uses: ./.github/workflows/imagetoghcr-on-push.yaml + with: + image_name: "moodle-tools" + context: "./moodle-tools/" From 2db891ab2028e075011e2f541127b99cb51e7a4a Mon Sep 17 00:00:00 2001 From: marhode Date: Wed, 18 Sep 2024 17:07:45 +0200 Subject: [PATCH 04/16] Added push on tag GH action --- .../moodletools-build-and-push-on-tag.yaml | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/moodletools-build-and-push-on-tag.yaml diff --git a/.github/workflows/moodletools-build-and-push-on-tag.yaml b/.github/workflows/moodletools-build-and-push-on-tag.yaml new file mode 100644 index 0000000..004d795 --- /dev/null +++ b/.github/workflows/moodletools-build-and-push-on-tag.yaml @@ -0,0 +1,33 @@ +--- +name: Build and push Docker Image on Tag + +on: + push: + tags: + - 'moodle-tools-[0-9]+.[0-9]+.[0-9]+*' +jobs: + pre_build: + runs-on: ubuntu-latest + outputs: + tag: ${{ steps.tag.outputs.tag }} + suffix: ${{ steps.tag.outputs.suffix }} + steps: + - name: Filter Tag name + uses: olegtarasov/get-tag@v2.1 + id: tag + with: + tagRegex: "(?[0-9]+.[0-9]+.[0-9]+)(?-.*)" + build_and_push: + permissions: + packages: write + security-events: write + actions: read + contents: read + needs: pre_build + uses: hpi-schul-cloud/infra-tools/.github/workflows/build-and-push.yaml@master + with: + registry: ghcr.io + image: dbildungsplattform/moodle-tools + tag: ${{ needs.pre_build.outputs.tag }} + image_name: "moodle-tools" + context: "./moodle-tools/" From d71dcf287e8cce23884ef81016f32687e6c3b3ef Mon Sep 17 00:00:00 2001 From: marhode Date: Wed, 18 Sep 2024 17:10:53 +0200 Subject: [PATCH 05/16] Changed values --- .github/workflows/moodletools-build-and-push-on-tag.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/moodletools-build-and-push-on-tag.yaml b/.github/workflows/moodletools-build-and-push-on-tag.yaml index 004d795..b6304ed 100644 --- a/.github/workflows/moodletools-build-and-push-on-tag.yaml +++ b/.github/workflows/moodletools-build-and-push-on-tag.yaml @@ -29,5 +29,4 @@ jobs: registry: ghcr.io image: dbildungsplattform/moodle-tools tag: ${{ needs.pre_build.outputs.tag }} - image_name: "moodle-tools" context: "./moodle-tools/" From 851b7a1a3bcd218b2fdab8639b1f9a995b0de568 Mon Sep 17 00:00:00 2001 From: marhode Date: Wed, 18 Sep 2024 17:13:48 +0200 Subject: [PATCH 06/16] Test with prefix on tag --- .github/workflows/moodletools-build-and-push-on-tag.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/moodletools-build-and-push-on-tag.yaml b/.github/workflows/moodletools-build-and-push-on-tag.yaml index b6304ed..6854bcd 100644 --- a/.github/workflows/moodletools-build-and-push-on-tag.yaml +++ b/.github/workflows/moodletools-build-and-push-on-tag.yaml @@ -16,7 +16,7 @@ jobs: uses: olegtarasov/get-tag@v2.1 id: tag with: - tagRegex: "(?[0-9]+.[0-9]+.[0-9]+)(?-.*)" + tagRegex: "((?-.*)[0-9]+.[0-9]+.[0-9]+)(?-.*)" build_and_push: permissions: packages: write From f674d532762ec104ecd45b3ae9a35aec77e5f1d3 Mon Sep 17 00:00:00 2001 From: marhode Date: Wed, 18 Sep 2024 17:15:20 +0200 Subject: [PATCH 07/16] Fixed reg ex syntax --- .github/workflows/moodletools-build-and-push-on-tag.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/moodletools-build-and-push-on-tag.yaml b/.github/workflows/moodletools-build-and-push-on-tag.yaml index 6854bcd..49936c9 100644 --- a/.github/workflows/moodletools-build-and-push-on-tag.yaml +++ b/.github/workflows/moodletools-build-and-push-on-tag.yaml @@ -16,7 +16,7 @@ jobs: uses: olegtarasov/get-tag@v2.1 id: tag with: - tagRegex: "((?-.*)[0-9]+.[0-9]+.[0-9]+)(?-.*)" + tagRegex: "(?-.*)([0-9]+.[0-9]+.[0-9]+)(?-.*)" build_and_push: permissions: packages: write From a3ef3b60335008efe8b0aa9182ed9d0d3a0df718 Mon Sep 17 00:00:00 2001 From: marhode Date: Wed, 18 Sep 2024 17:17:42 +0200 Subject: [PATCH 08/16] Test regex syntax --- .github/workflows/moodletools-build-and-push-on-tag.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/moodletools-build-and-push-on-tag.yaml b/.github/workflows/moodletools-build-and-push-on-tag.yaml index 49936c9..a873d31 100644 --- a/.github/workflows/moodletools-build-and-push-on-tag.yaml +++ b/.github/workflows/moodletools-build-and-push-on-tag.yaml @@ -16,7 +16,7 @@ jobs: uses: olegtarasov/get-tag@v2.1 id: tag with: - tagRegex: "(?-.*)([0-9]+.[0-9]+.[0-9]+)(?-.*)" + tagRegex: "(?-.*)(?[0-9]+.[0-9]+.[0-9]+)(?-.*)" build_and_push: permissions: packages: write From 2f32da34a3080e5fc3bc75111f22ce402c99b1ad Mon Sep 17 00:00:00 2001 From: marhode Date: Wed, 18 Sep 2024 17:20:58 +0200 Subject: [PATCH 09/16] Test regex syntax --- .github/workflows/moodletools-build-and-push-on-tag.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/moodletools-build-and-push-on-tag.yaml b/.github/workflows/moodletools-build-and-push-on-tag.yaml index a873d31..4184995 100644 --- a/.github/workflows/moodletools-build-and-push-on-tag.yaml +++ b/.github/workflows/moodletools-build-and-push-on-tag.yaml @@ -16,7 +16,7 @@ jobs: uses: olegtarasov/get-tag@v2.1 id: tag with: - tagRegex: "(?-.*)(?[0-9]+.[0-9]+.[0-9]+)(?-.*)" + tagRegex: (?.*-)(?[0-9]+\.[0-9]+\.[0-9]+)(?.*)? build_and_push: permissions: packages: write From 3d7172c9e77e8de682ae46edcad2c8d207fdaafc Mon Sep 17 00:00:00 2001 From: marhode Date: Wed, 18 Sep 2024 17:23:19 +0200 Subject: [PATCH 10/16] Test regex syntax --- .github/workflows/moodletools-build-and-push-on-tag.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/moodletools-build-and-push-on-tag.yaml b/.github/workflows/moodletools-build-and-push-on-tag.yaml index 4184995..58c70e5 100644 --- a/.github/workflows/moodletools-build-and-push-on-tag.yaml +++ b/.github/workflows/moodletools-build-and-push-on-tag.yaml @@ -1,5 +1,5 @@ --- -name: Build and push Docker Image on Tag +name: Build and push moodle-tools Docker Image on Tag on: push: @@ -16,7 +16,7 @@ jobs: uses: olegtarasov/get-tag@v2.1 id: tag with: - tagRegex: (?.*-)(?[0-9]+\.[0-9]+\.[0-9]+)(?.*)? + tagRegex: (?[0-9]+\.[0-9]+\.[0-9]+)(?.*) build_and_push: permissions: packages: write From 6f3658667d270bdb40fe94fdb13b612e0a0d6b68 Mon Sep 17 00:00:00 2001 From: marhode Date: Thu, 19 Sep 2024 09:04:04 +0200 Subject: [PATCH 11/16] Testing with correct image --- .github/workflows/moodletools-build-and-push-on-tag.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/moodletools-build-and-push-on-tag.yaml b/.github/workflows/moodletools-build-and-push-on-tag.yaml index 58c70e5..3ee2d46 100644 --- a/.github/workflows/moodletools-build-and-push-on-tag.yaml +++ b/.github/workflows/moodletools-build-and-push-on-tag.yaml @@ -27,6 +27,6 @@ jobs: uses: hpi-schul-cloud/infra-tools/.github/workflows/build-and-push.yaml@master with: registry: ghcr.io - image: dbildungsplattform/moodle-tools + image: schulcloud/moodle-tools tag: ${{ needs.pre_build.outputs.tag }} context: "./moodle-tools/" From 73125f8935bfcc378d0eaa7931916d126c7ed3c0 Mon Sep 17 00:00:00 2001 From: marhode Date: Thu, 19 Sep 2024 09:11:54 +0200 Subject: [PATCH 12/16] Add boto --- moodle-tools/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/moodle-tools/Dockerfile b/moodle-tools/Dockerfile index fc7d207..93a4d34 100644 --- a/moodle-tools/Dockerfile +++ b/moodle-tools/Dockerfile @@ -11,6 +11,7 @@ RUN set -x \ && mv ./kubectl /usr/local/bin/kubectl \ && wget -qO /usr/share/keyrings/postgres.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc \ && echo "deb [signed-by=/usr/share/keyrings/postgres.asc] https://apt.postgresql.org/pub/repos/apt jammy-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ + && pip install boto \ && apt-get -y update \ && apt-get -y install \ duply \ From 5248319e837d8f341a7f6d5acdbfc58d4ff850bf Mon Sep 17 00:00:00 2001 From: marhode Date: Thu, 19 Sep 2024 09:31:28 +0200 Subject: [PATCH 13/16] test permission denied solution --- .github/workflows/bapontag.yaml | 1 + .github/workflows/moodletools-build-and-push-on-tag.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/bapontag.yaml b/.github/workflows/bapontag.yaml index 36f6520..09590a7 100644 --- a/.github/workflows/bapontag.yaml +++ b/.github/workflows/bapontag.yaml @@ -8,6 +8,7 @@ on: - 'dbcmetrics-[0-9]+.[0-9]+.[0-9]+' - 'awx-ee-[0-9]+.[0-9]+.[0-9]+' - 'cron-tools-[0-9]+.[0-9]+.[0-9]+' + - 'moodle-tools-[0-9]+.[0-9]+.[0-9]+' jobs: pre_build: diff --git a/.github/workflows/moodletools-build-and-push-on-tag.yaml b/.github/workflows/moodletools-build-and-push-on-tag.yaml index 3ee2d46..9adb754 100644 --- a/.github/workflows/moodletools-build-and-push-on-tag.yaml +++ b/.github/workflows/moodletools-build-and-push-on-tag.yaml @@ -4,7 +4,7 @@ name: Build and push moodle-tools Docker Image on Tag on: push: tags: - - 'moodle-tools-[0-9]+.[0-9]+.[0-9]+*' + - 'moodle-tools-test-[0-9]+.[0-9]+.[0-9]+*' jobs: pre_build: runs-on: ubuntu-latest From 391b93a70ba45ecb2259f77a36f2ddbba8f31682 Mon Sep 17 00:00:00 2001 From: marhode Date: Thu, 19 Sep 2024 09:34:37 +0200 Subject: [PATCH 14/16] Added pip --- .github/workflows/dummytoghcr-on-push.yaml | 1 + moodle-tools/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dummytoghcr-on-push.yaml b/.github/workflows/dummytoghcr-on-push.yaml index 188130a..a089cc0 100644 --- a/.github/workflows/dummytoghcr-on-push.yaml +++ b/.github/workflows/dummytoghcr-on-push.yaml @@ -10,6 +10,7 @@ on: - 'dbcmetrics/**' - 'infra-tools/**' - 'cron-tools/**' + - 'moodle-tools/**' jobs: build_image_on_push: diff --git a/moodle-tools/Dockerfile b/moodle-tools/Dockerfile index 93a4d34..2b99b49 100644 --- a/moodle-tools/Dockerfile +++ b/moodle-tools/Dockerfile @@ -5,7 +5,7 @@ ENV TZ=Europe/Berlin RUN set -x \ && apt-get -y update \ - && apt-get -y install wget \ + && apt-get -y install wget python3-pip \ && wget https://dl.k8s.io/release/v1.28.7/bin/linux/amd64/kubectl \ && chmod +x kubectl \ && mv ./kubectl /usr/local/bin/kubectl \ From 06b3d92078020920a8d7395b0027b042a9457c96 Mon Sep 17 00:00:00 2001 From: marhode Date: Thu, 19 Sep 2024 09:43:05 +0200 Subject: [PATCH 15/16] Added ghcr as registry --- .github/workflows/bapontag.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/bapontag.yaml b/.github/workflows/bapontag.yaml index 09590a7..4104ff8 100644 --- a/.github/workflows/bapontag.yaml +++ b/.github/workflows/bapontag.yaml @@ -31,6 +31,8 @@ jobs: echo "registries=dockerhub,quay.io" >> $GITHUB_OUTPUT elif [[ "${{ steps.nameTag.outputs.tag }}" == 'dbcmetrics' ]]; then echo "registries=dockerhub" >> $GITHUB_OUTPUT + elif [[ "${{ steps.nameTag.outputs.tag }}" == 'moodle-tools' ]]; then + echo "registries=ghcr.io" >> $GITHUB_OUTPUT elif [[ "${{ steps.nameTag.outputs.tag }}" == 'awx-ee' ]]; then echo "registries=dockerhub" >> $GITHUB_OUTPUT elif [[ "${{ steps.nameTag.outputs.tag }}" == 'cron-tools' ]]; then From 0beb0049cd99e36558ef902090ec3d1e046a29b1 Mon Sep 17 00:00:00 2001 From: marhode Date: Thu, 19 Sep 2024 09:48:48 +0200 Subject: [PATCH 16/16] Cleanup --- .github/workflows/bapontag.yaml | 4 +-- .../moodletools-build-and-push-on-tag.yaml | 32 ------------------- 2 files changed, 2 insertions(+), 34 deletions(-) delete mode 100644 .github/workflows/moodletools-build-and-push-on-tag.yaml diff --git a/.github/workflows/bapontag.yaml b/.github/workflows/bapontag.yaml index 4104ff8..7ddfa88 100644 --- a/.github/workflows/bapontag.yaml +++ b/.github/workflows/bapontag.yaml @@ -31,12 +31,12 @@ jobs: echo "registries=dockerhub,quay.io" >> $GITHUB_OUTPUT elif [[ "${{ steps.nameTag.outputs.tag }}" == 'dbcmetrics' ]]; then echo "registries=dockerhub" >> $GITHUB_OUTPUT - elif [[ "${{ steps.nameTag.outputs.tag }}" == 'moodle-tools' ]]; then - echo "registries=ghcr.io" >> $GITHUB_OUTPUT elif [[ "${{ steps.nameTag.outputs.tag }}" == 'awx-ee' ]]; then echo "registries=dockerhub" >> $GITHUB_OUTPUT elif [[ "${{ steps.nameTag.outputs.tag }}" == 'cron-tools' ]]; then echo "registries=dockerhub,quay.io" >> $GITHUB_OUTPUT + elif [[ "${{ steps.nameTag.outputs.tag }}" == 'moodle-tools' ]]; then + echo "registries=ghcr.io" >> $GITHUB_OUTPUT fi build_and_push: diff --git a/.github/workflows/moodletools-build-and-push-on-tag.yaml b/.github/workflows/moodletools-build-and-push-on-tag.yaml deleted file mode 100644 index 9adb754..0000000 --- a/.github/workflows/moodletools-build-and-push-on-tag.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -name: Build and push moodle-tools Docker Image on Tag - -on: - push: - tags: - - 'moodle-tools-test-[0-9]+.[0-9]+.[0-9]+*' -jobs: - pre_build: - runs-on: ubuntu-latest - outputs: - tag: ${{ steps.tag.outputs.tag }} - suffix: ${{ steps.tag.outputs.suffix }} - steps: - - name: Filter Tag name - uses: olegtarasov/get-tag@v2.1 - id: tag - with: - tagRegex: (?[0-9]+\.[0-9]+\.[0-9]+)(?.*) - build_and_push: - permissions: - packages: write - security-events: write - actions: read - contents: read - needs: pre_build - uses: hpi-schul-cloud/infra-tools/.github/workflows/build-and-push.yaml@master - with: - registry: ghcr.io - image: schulcloud/moodle-tools - tag: ${{ needs.pre_build.outputs.tag }} - context: "./moodle-tools/"