diff --git a/.github/linters/.hadolint.yaml b/.github/linters/.hadolint.yaml index 570e43d0dd..fa5021cc76 100644 --- a/.github/linters/.hadolint.yaml +++ b/.github/linters/.hadolint.yaml @@ -3,3 +3,4 @@ ignored: # sometimes pinned versions are removed from the package source so we decided to ignore this rule. - DL3008 - DL3018 + - DL3029 diff --git a/CHANGELOG.md b/CHANGELOG.md index ec2783f66d..efdc4cf764 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ENHANCEMENTS: * Extend PowerShell auto start script to start core VMs ([#3811](https://github.com/microsoft/AzureTRE/issues/3811)) * Use managed identity for API connection to CosmosDB ([#345](https://github.com/microsoft/AzureTRE/issues/345)) * Switch to Structured Firewall Logs ([#3816](https://github.com/microsoft/AzureTRE/pull/3816)) +* Support for building core and workspace service bundles on arm64 platforms ([#3823](https://github.com/microsoft/AzureTRE/issues/3823)) BUG FIXES: * Fix issue with workspace menu not working correctly([#3819](https://github.com/microsoft/AzureTRE/issues/3819)) diff --git a/api_app/_version.py b/api_app/_version.py index e9fa21e951..b0d7306ae4 100644 --- a/api_app/_version.py +++ b/api_app/_version.py @@ -1 +1 @@ -__version__ = "0.18.1" +__version__ = "0.18.2" diff --git a/api_app/requirements.txt b/api_app/requirements.txt index f34c30660e..55397c4e82 100644 --- a/api_app/requirements.txt +++ b/api_app/requirements.txt @@ -7,7 +7,7 @@ azure-mgmt-compute==30.3.0 azure-mgmt-cosmosdb==9.3.0 azure-mgmt-costmanagement==4.0.1 azure-mgmt-resource==23.0.1 -azure-monitor-opentelemetry==1.1.0 +azure-monitor-opentelemetry==1.1.1 azure-servicebus==7.11.3 azure-storage-blob==12.19.0 fastapi==0.104.0 @@ -15,7 +15,7 @@ fastapi-utils==0.2.1 gunicorn==21.2.0 jsonschema[format_nongpl]==4.19.1 msal==1.22.0 -opentelemetry.instrumentation.logging==0.41b0 +opentelemetry.instrumentation.logging==0.43b0 pandas==2.0.3 PyJWT==2.8.0 pytz==2022.7 diff --git a/core/terraform/api-webapp.tf b/core/terraform/api-webapp.tf index d284df476b..a38d6ed26f 100644 --- a/core/terraform/api-webapp.tf +++ b/core/terraform/api-webapp.tf @@ -60,6 +60,7 @@ resource "azurerm_linux_web_app" "api" { STORAGE_ENDPOINT_SUFFIX = module.terraform_azurerm_environment_configuration.storage_suffix LOGGING_LEVEL = var.logging_level OTEL_RESOURCE_ATTRIBUTES = "service.name=api,service.version=${local.version}" + OTEL_EXPERIMENTAL_RESOURCE_DETECTORS = "azure_app_service" } identity { diff --git a/core/terraform/resource_processor/vmss_porter/cloud-config.yaml b/core/terraform/resource_processor/vmss_porter/cloud-config.yaml index 56a7ff21a2..1422c06e8a 100644 --- a/core/terraform/resource_processor/vmss_porter/cloud-config.yaml +++ b/core/terraform/resource_processor/vmss_porter/cloud-config.yaml @@ -58,6 +58,7 @@ write_files: AAD_AUTHORITY_URL=${aad_authority_url} MICROSOFT_GRAPH_FQDN=${microsoft_graph_fqdn} OTEL_RESOURCE_ATTRIBUTES=service.name=resource_processor,service.version=${resource_processor_vmss_porter_image_tag} + OTEL_EXPERIMENTAL_RESOURCE_DETECTORS=azure_vm LOGGING_LEVEL=${logging_level} ${rp_bundle_values} - path: /etc/cron.hourly/docker-prune diff --git a/core/version.txt b/core/version.txt index e94731c0f2..f8c6ac7fea 100644 --- a/core/version.txt +++ b/core/version.txt @@ -1 +1 @@ -__version__ = "0.9.4" +__version__ = "0.9.5" diff --git a/devops/scripts/bundle_runtime_image_build.sh b/devops/scripts/bundle_runtime_image_build.sh index 37755578f1..5acc6cb801 100755 --- a/devops/scripts/bundle_runtime_image_build.sh +++ b/devops/scripts/bundle_runtime_image_build.sh @@ -32,7 +32,15 @@ if [ -n "${CI_CACHE_ACR_NAME:-}" ]; then docker_cache+=("--cache-from" "${CI_CACHE_ACR_NAME}${acr_domain_suffix}/${IMAGE_NAME_PREFIX}/${image_name}:${version}") fi -docker build --build-arg BUILDKIT_INLINE_CACHE=1 \ +ARCHITECTURE=$(docker info --format "{{ .Architecture }}" ) + +if [ "${ARCHITECTURE}" == "aarch64" ]; then + DOCKER_BUILD_COMMAND="docker buildx build --platform linux/amd64" +else + DOCKER_BUILD_COMMAND="docker build" +fi + +${DOCKER_BUILD_COMMAND} --build-arg BUILDKIT_INLINE_CACHE=1 \ -t "${FULL_IMAGE_NAME_PREFIX}/${image_name}:${version}" \ "${docker_cache[@]}" -f "${docker_file}" "${docker_context}" diff --git a/resource_processor/_version.py b/resource_processor/_version.py index 8088f75131..deded3247f 100644 --- a/resource_processor/_version.py +++ b/resource_processor/_version.py @@ -1 +1 @@ -__version__ = "0.8.1" +__version__ = "0.8.2" diff --git a/resource_processor/vmss_porter/requirements.txt b/resource_processor/vmss_porter/requirements.txt index a7182801a6..602596d82a 100644 --- a/resource_processor/vmss_porter/requirements.txt +++ b/resource_processor/vmss_porter/requirements.txt @@ -1,6 +1,6 @@ aiohttp==3.9.0 azure-cli-core==2.50.0 azure-identity==1.14.1 -azure-monitor-opentelemetry==1.1.0 +azure-monitor-opentelemetry==1.1.1 azure-servicebus==7.11.3 -opentelemetry.instrumentation.logging==0.41b0 +opentelemetry.instrumentation.logging==0.43b0 diff --git a/templates/shared_services/admin-vm/Dockerfile.tmpl b/templates/shared_services/admin-vm/Dockerfile.tmpl index b65cd5d821..29fcc34bfb 100644 --- a/templates/shared_services/admin-vm/Dockerfile.tmpl +++ b/templates/shared_services/admin-vm/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/shared_services/airlock_notifier/Dockerfile.tmpl b/templates/shared_services/airlock_notifier/Dockerfile.tmpl index 2a1734ee08..213ef4d241 100644 --- a/templates/shared_services/airlock_notifier/Dockerfile.tmpl +++ b/templates/shared_services/airlock_notifier/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/shared_services/certs/Dockerfile.tmpl b/templates/shared_services/certs/Dockerfile.tmpl index d126c3f63e..0f39713944 100644 --- a/templates/shared_services/certs/Dockerfile.tmpl +++ b/templates/shared_services/certs/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM python:3.8-slim-bullseye +FROM --platform=linux/amd64 python:3.8-slim-bullseye # PORTER_INIT diff --git a/templates/shared_services/cyclecloud/Dockerfile.tmpl b/templates/shared_services/cyclecloud/Dockerfile.tmpl index 5ae24f808c..c584174140 100644 --- a/templates/shared_services/cyclecloud/Dockerfile.tmpl +++ b/templates/shared_services/cyclecloud/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/shared_services/databricks-auth/Dockerfile.tmpl b/templates/shared_services/databricks-auth/Dockerfile.tmpl index 5ae24f808c..c584174140 100644 --- a/templates/shared_services/databricks-auth/Dockerfile.tmpl +++ b/templates/shared_services/databricks-auth/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/shared_services/firewall/Dockerfile.tmpl b/templates/shared_services/firewall/Dockerfile.tmpl index 3452b48f1d..4b5deb9d3a 100644 --- a/templates/shared_services/firewall/Dockerfile.tmpl +++ b/templates/shared_services/firewall/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/shared_services/gitea/Dockerfile.tmpl b/templates/shared_services/gitea/Dockerfile.tmpl index 5ae24f808c..c584174140 100644 --- a/templates/shared_services/gitea/Dockerfile.tmpl +++ b/templates/shared_services/gitea/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/shared_services/sonatype-nexus-vm/Dockerfile.tmpl b/templates/shared_services/sonatype-nexus-vm/Dockerfile.tmpl index 3452b48f1d..4b5deb9d3a 100644 --- a/templates/shared_services/sonatype-nexus-vm/Dockerfile.tmpl +++ b/templates/shared_services/sonatype-nexus-vm/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/azureml/Dockerfile.tmpl b/templates/workspace_services/azureml/Dockerfile.tmpl index 781b8a0ede..7e29cfb0af 100644 --- a/templates/workspace_services/azureml/Dockerfile.tmpl +++ b/templates/workspace_services/azureml/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/azureml/user_resources/aml_compute/Dockerfile.tmpl b/templates/workspace_services/azureml/user_resources/aml_compute/Dockerfile.tmpl index 3452b48f1d..4b5deb9d3a 100644 --- a/templates/workspace_services/azureml/user_resources/aml_compute/Dockerfile.tmpl +++ b/templates/workspace_services/azureml/user_resources/aml_compute/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/databricks/Dockerfile.tmpl b/templates/workspace_services/databricks/Dockerfile.tmpl index b3b7e2dfba..076d4cbb5b 100644 --- a/templates/workspace_services/databricks/Dockerfile.tmpl +++ b/templates/workspace_services/databricks/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/gitea/Dockerfile.tmpl b/templates/workspace_services/gitea/Dockerfile.tmpl index 5ae24f808c..c584174140 100644 --- a/templates/workspace_services/gitea/Dockerfile.tmpl +++ b/templates/workspace_services/gitea/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/guacamole/Dockerfile.tmpl b/templates/workspace_services/guacamole/Dockerfile.tmpl index 5ae24f808c..c584174140 100644 --- a/templates/workspace_services/guacamole/Dockerfile.tmpl +++ b/templates/workspace_services/guacamole/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-export-reviewvm/Dockerfile.tmpl b/templates/workspace_services/guacamole/user_resources/guacamole-azure-export-reviewvm/Dockerfile.tmpl index 3452b48f1d..4b5deb9d3a 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-export-reviewvm/Dockerfile.tmpl +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-export-reviewvm/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-import-reviewvm/Dockerfile.tmpl b/templates/workspace_services/guacamole/user_resources/guacamole-azure-import-reviewvm/Dockerfile.tmpl index 3452b48f1d..4b5deb9d3a 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-import-reviewvm/Dockerfile.tmpl +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-import-reviewvm/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/Dockerfile.tmpl b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/Dockerfile.tmpl index 3452b48f1d..4b5deb9d3a 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/Dockerfile.tmpl +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/Dockerfile.tmpl b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/Dockerfile.tmpl index 3452b48f1d..4b5deb9d3a 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/Dockerfile.tmpl +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/health-services/Dockerfile.tmpl b/templates/workspace_services/health-services/Dockerfile.tmpl index 781b8a0ede..7e29cfb0af 100644 --- a/templates/workspace_services/health-services/Dockerfile.tmpl +++ b/templates/workspace_services/health-services/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/innereye/Dockerfile.tmpl b/templates/workspace_services/innereye/Dockerfile.tmpl index 787e0f2829..dc5d0e0757 100644 --- a/templates/workspace_services/innereye/Dockerfile.tmpl +++ b/templates/workspace_services/innereye/Dockerfile.tmpl @@ -1,4 +1,4 @@ -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/mlflow/Dockerfile.tmpl b/templates/workspace_services/mlflow/Dockerfile.tmpl index 5ae24f808c..c584174140 100644 --- a/templates/workspace_services/mlflow/Dockerfile.tmpl +++ b/templates/workspace_services/mlflow/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/mysql/Dockerfile.tmpl b/templates/workspace_services/mysql/Dockerfile.tmpl index 5ae24f808c..c584174140 100644 --- a/templates/workspace_services/mysql/Dockerfile.tmpl +++ b/templates/workspace_services/mysql/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspace_services/ohdsi/Dockerfile.tmpl b/templates/workspace_services/ohdsi/Dockerfile.tmpl index 78cb44242c..12a32994a5 100644 --- a/templates/workspace_services/ohdsi/Dockerfile.tmpl +++ b/templates/workspace_services/ohdsi/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspaces/airlock-import-review/Dockerfile.tmpl b/templates/workspaces/airlock-import-review/Dockerfile.tmpl index 418b77a087..b572098d23 100644 --- a/templates/workspaces/airlock-import-review/Dockerfile.tmpl +++ b/templates/workspaces/airlock-import-review/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspaces/base/Dockerfile.tmpl b/templates/workspaces/base/Dockerfile.tmpl index 781b8a0ede..7e29cfb0af 100644 --- a/templates/workspaces/base/Dockerfile.tmpl +++ b/templates/workspaces/base/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT diff --git a/templates/workspaces/unrestricted/Dockerfile.tmpl b/templates/workspaces/unrestricted/Dockerfile.tmpl index cb65752aa6..53d78008f2 100644 --- a/templates/workspaces/unrestricted/Dockerfile.tmpl +++ b/templates/workspaces/unrestricted/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile-upstream:1.4.0 -FROM debian:bullseye-slim +FROM --platform=linux/amd64 debian:bullseye-slim # PORTER_INIT