From 03c3de7fa2111f68da86f3c60a2fe0e587412f29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Maciusiak?= <158472457+pmacius@users.noreply.github.com> Date: Tue, 13 Aug 2024 12:16:09 +0200 Subject: [PATCH] OPSEXP-2730 Add Alfresco Microsoft 365 Connector Docker image (#34) --- .github/workflows/build_and_test.yml | 3 ++- connector/ms365/Dockerfile | 19 +++++++++++++++ connector/ms365/README.md | 26 +++++++++++++++++++++ connector/ms365/artifacts.json | 14 +++++++++++ connector/ms365/entrypoint.sh | 2 ++ docker-bake.hcl | 35 +++++++++++++++++++++++++++- test/helm/test-overrides.yaml | 9 +++++++ 7 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 connector/ms365/Dockerfile create mode 100644 connector/ms365/README.md create mode 100644 connector/ms365/artifacts.json create mode 100755 connector/ms365/entrypoint.sh diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index b6b6ec19..e3d2d683 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -10,6 +10,7 @@ on: env: ACS_CHART_VERSION: 8.3.0 + ACS_VALUES_VERSION: cfb0d426eff14a8b581c31e61db5e670da09ba3b ARTIFACT_NAME: alfresco-docker-images concurrency: @@ -162,7 +163,7 @@ jobs: - name: Fetch upstream values for tests run: >- curl -ssfL - https://raw.githubusercontent.com/Alfresco/acs-deployment/v${{ env.ACS_CHART_VERSION }}/test/enterprise-integration-test-values.yaml + https://raw.githubusercontent.com/Alfresco/acs-deployment/${{ env.ACS_VALUES_VERSION }}/test/enterprise-integration-test-values.yaml -o test/helm/enterprise-integration-test-values.yaml && ls -l test/helm/enterprise-integration-test-values.yaml && cat test/helm/enterprise-integration-test-values.yaml diff --git a/connector/ms365/Dockerfile b/connector/ms365/Dockerfile new file mode 100644 index 00000000..1573bd70 --- /dev/null +++ b/connector/ms365/Dockerfile @@ -0,0 +1,19 @@ +FROM java_base + +EXPOSE 9095 + +ARG ALFRESCO_MS365_GROUP_NAME +ARG ALFRESCO_MS365_GROUP_ID +ARG ALFRESCO_MS365_USER_NAME +ARG ALFRESCO_MS365_USER_ID + +ADD onedrive-springboot*.jar /opt/app.jar + +RUN groupadd -g ${ALFRESCO_MS365_GROUP_ID} ${ALFRESCO_MS365_GROUP_NAME} && \ + useradd -u ${ALFRESCO_MS365_USER_ID} -g ${ALFRESCO_MS365_GROUP_NAME} ${ALFRESCO_MS365_USER_NAME} && \ + chgrp ${ALFRESCO_MS365_GROUP_NAME} /opt/app.jar + +USER ${ALFRESCO_MS365_USER_NAME} + +COPY entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] diff --git a/connector/ms365/README.md b/connector/ms365/README.md new file mode 100644 index 00000000..df1aa66b --- /dev/null +++ b/connector/ms365/README.md @@ -0,0 +1,26 @@ +# Runtime variables + +Sets of variables configurable with your docker image + +## ms365 + +```yaml + +alfresco-connector-ms365: + image: localhost/alfresco-ooi-service:YOUR-TAG + environment: + JAVA_OPTS: "-Dalfresco.base-url=http://alfresco:8080" + ALFRESCO_ADMIN_PASSWORD: admin + ALFRESCO_ADMIN_USERNAME: admin + ALFRESCO_DEPLOYMODEL_ENABLED: 'true' + ALFRESCO_DEPLOYMODEL_RETRY_INTERVAL: '30000' + ALFRESCO_DEPLOYMODEL_TIMEOUT: '960000' + +``` + +- `JAVA_OPTS` - Additional java options +- `ALFRESCO_ADMIN_USERNAME` - The username for the Alfresco admin account used to authenticate to the repository. +- `ALFRESCO_ADMIN_PASSWORD` - The password for the Alfresco admin account used to authenticate to the repository. +- `ALFRESCO_DEPLOYMODEL_ENABLED` - Enables or disables the deployment of models. Set to `'true'` to enable model deployment, or `'false'` to disable it. +- `ALFRESCO_DEPLOYMODEL_RETRY_INTERVAL` - The interval (in milliseconds) between retry attempts for model deployment. Default is `30000` milliseconds. +- `ALFRESCO_DEPLOYMODEL_TIMEOUT` - The timeout (in milliseconds) for model deployment. Default is `960000` milliseconds. diff --git a/connector/ms365/artifacts.json b/connector/ms365/artifacts.json new file mode 100644 index 00000000..53751bf1 --- /dev/null +++ b/connector/ms365/artifacts.json @@ -0,0 +1,14 @@ +{ + "artifacts": { + "acs23": [ + { + "name": "onedrive-springboot", + "version": "2.0.2", + "path": "connector/ms365", + "classifier": ".jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + } + ] + } +} diff --git a/connector/ms365/entrypoint.sh b/connector/ms365/entrypoint.sh new file mode 100755 index 00000000..f3895170 --- /dev/null +++ b/connector/ms365/entrypoint.sh @@ -0,0 +1,2 @@ +#!/bin/bash +exec java $JAVA_OPTS -jar /opt/app.jar diff --git a/docker-bake.hcl b/docker-bake.hcl index dac61678..446295ee 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -1,5 +1,5 @@ group "default" { - targets = ["content_service", "enterprise-search", "ats", "tengines"] + targets = ["content_service", "enterprise-search", "ats", "tengines", "connectors"] } group "content_service" { @@ -18,6 +18,10 @@ group "tengines" { targets = ["tengine_libreoffice", "tengine_imagemagick", "tengine_tika", "tengine_pdfrenderer", "tengine_misc", "tengine_aio"] } +group "connectors" { + targets = ["connector_ms365"] +} + variable "LABEL_VENDOR" { default = "Hyland Software, Inc." } @@ -455,3 +459,32 @@ target "tengine_aio" { tags = ["localhost/alfresco-transform-core-aio:latest"] output = ["type=docker"] } + +variable "ALFRESCO_MS365_USER_NAME" { + default = "ooi-user" +} + +variable "ALFRESCO_MS365_USER_ID" { + default = "33006" +} + +target "connector_ms365" { + context = "./connector/ms365" + dockerfile = "Dockerfile" + inherits = ["java_base"] + contexts = { + java_base = "target:java_base" + } + args = { + ALFRESCO_MS365_GROUP_NAME = "${ALFRESCO_GROUP_NAME}" + ALFRESCO_MS365_GROUP_ID = "${ALFRESCO_GROUP_ID}" + ALFRESCO_MS365_USER_NAME = "${ALFRESCO_MS365_USER_NAME}" + ALFRESCO_MS365_USER_ID = "${ALFRESCO_MS365_USER_ID}" + } + labels = { + "org.opencontainers.image.title" = "${PRODUCT_LINE} Microsoft 365 Connector" + "org.opencontainers.image.description" = "Alfresco Microsoft 365 Connector" + } + tags = ["localhost/alfresco-ooi-service:latest"] + output = ["type=docker"] +} diff --git a/test/helm/test-overrides.yaml b/test/helm/test-overrides.yaml index 8fc01078..2656e709 100644 --- a/test/helm/test-overrides.yaml +++ b/test/helm/test-overrides.yaml @@ -48,6 +48,15 @@ alfresco-transform-service: repository: localhost/alfresco-shared-file-store tag: latest #alfresco-sync-service: +alfresco-connector-ms365: + enabled: true + image: + repository: localhost/alfresco-ooi-service + tag: latest + environment: + ALFRESCO_ADMIN_PASSWORD: admin + ALFRESCO_ADMIN_USERNAME: admin + livenessProbe: null dtas: additionalArgs: - --tb=short