From 7b3f617da35779b2fe44c0286628875ac661e6f9 Mon Sep 17 00:00:00 2001 From: Damon Barry Date: Wed, 22 Nov 2023 12:10:30 -0800 Subject: [PATCH] Remove Ubuntu 18.04 support (#7143) Ubuntu 18.04 went out of support in May 2023. This change updates our build/release pipelines so that they won't produce Ubuntu 18.04 packages. It also removes Ubuntu 18.04 references generally. _Note:_ We can merge this change to main at any point, but we shouldn't make this change in the release/1.4 branch until after November 30, 2023, which is when we documented that we'll stop producing Ubuntu 18.04 packages. To test, I ran the CI Build pipeline to confirm that 18.04 packages are not built. Then I ran the end-to-end, nested end-to-end, and ISA-95 smoke test pipelines, and confirmed they run and pass. ## Azure IoT Edge PR checklist: --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- builds/e2e/e2e.yaml | 56 +---- builds/e2e/isa-95-smoke-test.yaml | 16 +- builds/e2e/longhaul.yaml | 12 +- builds/e2e/nested-e2e.yaml | 10 +- builds/e2e/proxy/configure_runner.sh | 21 +- .../e2e/proxy/create-linux-vm-template.json | 4 +- .../nested-longhaul-deploy-amd64.yaml | 4 +- .../e2e/templates/nested-parent-vm-setup.yaml | 8 +- builds/e2e/upgrade-scenarios.yaml | 229 ------------------ builds/misc/packages-release.yaml | 43 ---- builds/misc/templates/build-packages.yaml | 12 - doc/BuiltInMetrics.md | 2 +- doc/EdgeRuntimeConfigSpec.md | 4 +- edgelet/Cargo.lock | 52 ++-- edgelet/build/linux/package.sh | 16 +- edgelet/doc/devguide.md | 4 +- edgelet/iotedge/src/check/additional_info.rs | 6 +- scripts/linux/NestTestHelper.sh | 4 +- scripts/linux/publishReleasePackages.sh | 5 +- scripts/linux/runE2ETest.sh | 4 +- .../linux/PackageManagement.cs | 6 +- tools/TestAgents/CreateAzureVmForE2e.ps1 | 2 +- tools/TestAgents/e2eOneTimeDependencySetup.sh | 2 +- 24 files changed, 86 insertions(+), 438 deletions(-) delete mode 100644 builds/e2e/upgrade-scenarios.yaml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 10987a2526a..d3b7b2ed363 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -48,7 +48,7 @@ Provide a detailed set of steps to reproduce the bug. ### Device Information -* Host OS [e.g. Ubuntu 18.04, Windows Server IoT 2019]: +* Host OS [e.g. Ubuntu 22.04, Windows Server IoT 2019]: * Architecture [e.g. amd64, arm32, arm64]: * Container OS [e.g. Linux containers, Windows containers]: diff --git a/builds/e2e/e2e.yaml b/builds/e2e/e2e.yaml index 5f6d6744b7f..37ba12b5699 100644 --- a/builds/e2e/e2e.yaml +++ b/builds/e2e/e2e.yaml @@ -14,9 +14,9 @@ resources: variables: DisableDockerDetector: true # A 'minimal' pipeline only runs one end-to-end test (TempSensor). This is useful for platforms or - # environments that are very similar to other platforms/environments in our matrix, Ubuntu 18.04 - # with the 'docker-ce' package vs. Ubuntu 18.04 with the 'iotedge-moby' package vs. the same - # variations in Ubuntu 20.04. In these instances the platforms/environments are so similar that we + # environments that are very similar to other platforms/environments in our matrix, Ubuntu 20.04 + # with the 'docker-ce' package vs. Ubuntu 20.04 with the 'iotedge-moby' package vs. the same + # variations in Ubuntu 22.04. In these instances the platforms/environments are so similar that we # don't reasonably expect to encounter differences--if we do, it would likely manifest during # installation, or in running a very basic test. We don't need to repeat the entire test suite. # The 'minimal' variable defaults to 'false'; we override it in specific jobs as needed. @@ -74,52 +74,6 @@ jobs: - template: templates/e2e-clear-docker-cached-images.yaml - template: templates/e2e-run.yaml -################################################################################ - - job: ubuntu_1804_msmoby -################################################################################ - displayName: Ubuntu 18.04 with iotedge-moby - - pool: - name: $(pool.linux.name) - demands: - - ImageOverride -equals agent-aziotedge-ubuntu-18.04-msmoby - - variables: - os: linux - arch: amd64 - artifactName: iotedged-ubuntu18.04-amd64 - identityServiceArtifactName: packages_ubuntu-18.04_amd64 - identityServicePackageFilter: aziot-identity-service_*_amd64.deb - - timeoutInMinutes: 90 - - steps: - - template: templates/e2e-setup.yaml - - template: templates/e2e-run.yaml - -################################################################################ - - job: ubuntu_1804_docker -################################################################################ - - displayName: Ubuntu 18.04 with Docker (minimal) - - pool: - name: $(pool.linux.name) - demands: - - ImageOverride -equals agent-aziotedge-ubuntu-18.04-docker - - variables: - os: linux - arch: amd64 - artifactName: iotedged-ubuntu18.04-amd64 - identityServiceArtifactName: packages_ubuntu-18.04_amd64 - identityServicePackageFilter: aziot-identity-service_*_amd64.deb - minimal: true - - steps: - - template: templates/e2e-setup.yaml - - template: templates/e2e-run.yaml - ################################################################################ - job: ubuntu_2004_msmoby ################################################################################ @@ -315,8 +269,8 @@ jobs: variables: os: linux arch: amd64 - artifactName: iotedged-ubuntu18.04-amd64 - identityServiceArtifactName: packages_ubuntu-18.04_amd64 + artifactName: iotedged-ubuntu20.04-amd64 + identityServiceArtifactName: packages_ubuntu-20.04_amd64 identityServicePackageFilter: aziot-identity-service_*_amd64.deb # workaround, see https://github.com/Microsoft/azure-pipelines-agent/issues/2138#issuecomment-470166671 'agent.disablelogplugin.testfilepublisherplugin': true diff --git a/builds/e2e/isa-95-smoke-test.yaml b/builds/e2e/isa-95-smoke-test.yaml index 24776dda962..9f904e1c97b 100644 --- a/builds/e2e/isa-95-smoke-test.yaml +++ b/builds/e2e/isa-95-smoke-test.yaml @@ -56,8 +56,8 @@ stages: displayName: SettingUp level 5 timeoutInMinutes: 180 variables: - artifactName: iotedged-ubuntu18.04-amd64 - identityServiceArtifactName: packages_ubuntu-18.04_amd64 + artifactName: iotedged-ubuntu20.04-amd64 + identityServiceArtifactName: packages_ubuntu-20.04_amd64 identityServicePackageFilter: aziot-identity-service_*_amd64.deb level: '5' upstreamProtocol: 'amqp' @@ -93,9 +93,9 @@ stages: condition: succeeded() timeoutInMinutes: 180 variables: - identityServiceArtifactName: packages_ubuntu-18.04_amd64 + identityServiceArtifactName: packages_ubuntu-20.04_amd64 identityServicePackageFilter: aziot-identity-service_*_amd64.deb - artifactName: iotedged-ubuntu18.04-amd64 + artifactName: iotedged-ubuntu20.04-amd64 parentName: $[ dependencies.SetupVM_level5.outputs['deployIoTEdge.deviceName'] ] parentDeviceId: $[ dependencies.SetupVM_level5.outputs['createIdentity.parentDeviceId'] ] deploymentFile: 'nestededge_middleLayerBaseDeployment_amqp.json' @@ -129,9 +129,9 @@ stages: condition: succeeded() timeoutInMinutes: 180 variables: - identityServiceArtifactName: packages_ubuntu-18.04_amd64 + identityServiceArtifactName: packages_ubuntu-20.04_amd64 identityServicePackageFilter: aziot-identity-service_*_amd64.deb - artifactName: iotedged-ubuntu18.04-amd64 + artifactName: iotedged-ubuntu20.04-amd64 parentName: $[ dependencies.SetupVM_level4.outputs['deployIoTEdge.deviceName'] ] parentDeviceId: $[ dependencies.SetupVM_level4.outputs['createIdentity.parentDeviceId'] ] deploymentFile: 'nestededge_isa95_smoke_test_BaseDeployment.json' @@ -177,8 +177,8 @@ stages: parentDeviceId: $[ dependencies.SetupVM_level4.outputs['createIdentity.parentDeviceId'] ] os: linux arch: amd64 - artifactName: iotedged-ubuntu18.04-amd64 - identityServiceArtifactName: packages_ubuntu-18.04_amd64 + artifactName: iotedged-ubuntu20.04-amd64 + identityServiceArtifactName: packages_ubuntu-20.04_amd64 identityServicePackageFilter: aziot-identity-service_*_amd64.deb nestededge: true proxyAddress: $(otProxy) diff --git a/builds/e2e/longhaul.yaml b/builds/e2e/longhaul.yaml index 4cf45bef22a..6444e2bb36b 100644 --- a/builds/e2e/longhaul.yaml +++ b/builds/e2e/longhaul.yaml @@ -54,9 +54,9 @@ jobs: steps: - template: templates/longhaul-setup.yaml parameters: - edgelet.artifact.name: 'iotedged-ubuntu18.04-amd64' + edgelet.artifact.name: 'iotedged-ubuntu20.04-amd64' images.artifact.name: '$(images.artifact.name.linux)' - aziotis.artifact.name: 'packages_ubuntu-18.04_amd64' + aziotis.artifact.name: 'packages_ubuntu-20.04_amd64' aziotis.package.filter: 'aziot-identity-service_*_amd64.deb' quickstart.artifactName: 'IotEdgeQuickstart.linux-x64.tar.gz' - template: templates/longhaul-deploy.yaml @@ -238,9 +238,9 @@ jobs: steps: - template: templates/longhaul-setup.yaml parameters: - edgelet.artifact.name: 'iotedged-ubuntu18.04-aarch64' + edgelet.artifact.name: 'iotedged-ubuntu20.04-aarch64' images.artifact.name: '$(images.artifact.name.linux)' - aziotis.artifact.name: 'packages_ubuntu-18.04_aarch64' + aziotis.artifact.name: 'packages_ubuntu-20.04_aarch64' aziotis.package.filter: 'aziot-identity-service_*_arm64.deb' quickstart.artifactName: 'IotEdgeQuickstart.linux-arm64.tar.gz' - template: templates/longhaul-deploy.yaml @@ -300,9 +300,9 @@ jobs: steps: - template: templates/longhaul-setup.yaml parameters: - edgelet.artifact.name: 'iotedged-ubuntu18.04-aarch64' + edgelet.artifact.name: 'iotedged-ubuntu20.04-aarch64' images.artifact.name: '$(images.artifact.name.linux)' - aziotis.artifact.name: 'packages_ubuntu-18.04_aarch64' + aziotis.artifact.name: 'packages_ubuntu-20.04_aarch64' aziotis.package.filter: 'aziot-identity-service_*_arm64.deb' quickstart.artifactName: 'IotEdgeQuickstart.linux-arm64.tar.gz' - template: templates/longhaul-deploy.yaml diff --git a/builds/e2e/nested-e2e.yaml b/builds/e2e/nested-e2e.yaml index a53c7ba851e..2581b833db0 100644 --- a/builds/e2e/nested-e2e.yaml +++ b/builds/e2e/nested-e2e.yaml @@ -21,9 +21,9 @@ schedules: variables: DisableDockerDetector: true # A 'minimal' pipeline only runs one end-to-end test (TempSensor). This is useful for platforms or - # environments that are very similar to other platforms/environments in our matrix, Ubuntu 18.04 - # with the 'docker-ce' package vs. Ubuntu 18.04 with the 'iotedge-moby' package vs. the same - # variations in Ubuntu 20.04. In these instances the platforms/environments are so similar that we + # environments that are very similar to other platforms/environments in our matrix, Ubuntu 20.04 + # with the 'docker-ce' package vs. Ubuntu 20.04 with the 'iotedge-moby' package vs. the same + # variations in Ubuntu 22.04. In these instances the platforms/environments are so similar that we # don't reasonably expect to encounter differences--if we do, it would likely manifest during # installation, or in running a very basic test. We don't need to repeat the entire test suite. # The 'minimal' variable defaults to 'false'; we override it in specific jobs as needed. @@ -64,8 +64,8 @@ stages: iotHubName: $[ dependencies.SetupVM_level5_mqtt.outputs['createIdentity.iotHubName'] ] os: linux arch: amd64 - artifactName: iotedged-ubuntu18.04-amd64 - identityServiceArtifactName: packages_ubuntu-18.04_amd64 + artifactName: iotedged-ubuntu20.04-amd64 + identityServiceArtifactName: packages_ubuntu-20.04_amd64 identityServicePackageFilter: aziot-identity-service_*_amd64.deb nestededge: true pool: diff --git a/builds/e2e/proxy/configure_runner.sh b/builds/e2e/proxy/configure_runner.sh index 64c57dc8d65..586d3bcdb2e 100755 --- a/builds/e2e/proxy/configure_runner.sh +++ b/builds/e2e/proxy/configure_runner.sh @@ -7,26 +7,15 @@ proxy="http://${1}:3128" export http_proxy=$proxy export https_proxy=$proxy -echo 'Installing PowerShell Core and .NET 6.0' +echo 'Installing .NET 6.0, PowerShell Core, and Moby engine' apt-get update -apt-get install -y curl git wget apt-transport-https -wget -q 'https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb' +apt-get install -y curl git wget apt-transport-https software-properties-common +wget -q 'https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb' dpkg -i packages-microsoft-prod.deb +rm packages-microsoft-prod.deb apt-get update -add-apt-repository universe -apt-get install -y powershell dotnet-sdk-6.0 - -echo 'Installing Moby engine' - -curl -x $proxy 'https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list' > microsoft-prod.list -mv microsoft-prod.list /etc/apt/sources.list.d/ - -curl -x $proxy 'https://packages.microsoft.com/keys/microsoft.asc' | gpg --dearmor > microsoft.gpg -mv microsoft.gpg /etc/apt/trusted.gpg.d/ - -apt-get update -apt-get install -y moby-engine +apt-get install -y powershell dotnet-sdk-6.0 moby-engine > ~/proxy-env.override.conf cat <<-EOF [Service] diff --git a/builds/e2e/proxy/create-linux-vm-template.json b/builds/e2e/proxy/create-linux-vm-template.json index a6f6153317c..18038122b6f 100644 --- a/builds/e2e/proxy/create-linux-vm-template.json +++ b/builds/e2e/proxy/create-linux-vm-template.json @@ -103,8 +103,8 @@ "storageProfile": { "imageReference": { "publisher": "Canonical", - "offer": "UbuntuServer", - "sku": "18.04-LTS", + "offer": "0001-com-ubuntu-server-jammy", + "sku": "22_04-lts", "version": "latest" }, "osDisk": { diff --git a/builds/e2e/templates/nested-longhaul-deploy-amd64.yaml b/builds/e2e/templates/nested-longhaul-deploy-amd64.yaml index 9ed362924fd..64809c835a6 100644 --- a/builds/e2e/templates/nested-longhaul-deploy-amd64.yaml +++ b/builds/e2e/templates/nested-longhaul-deploy-amd64.yaml @@ -18,8 +18,8 @@ jobs: variables: parentName: $[ dependencies.SetupVM_level4_${{ parameters['upstream.protocol'] }}.outputs['deployIoTEdge.deviceName'] ] parentDeviceId: $[ dependencies.SetupVM_level4_${{ parameters['upstream.protocol'] }}.outputs['createIdentity.parentDeviceId'] ] - edgelet.artifact.name: 'iotedged-ubuntu18.04-amd64' - identityServiceArtifactName: 'packages_ubuntu-18.04_amd64' + edgelet.artifact.name: 'iotedged-ubuntu20.04-amd64' + identityServiceArtifactName: 'packages_ubuntu-20.04_amd64' identityServicePackageFilter: 'aziot-identity-service_*_amd64.deb' hostPlatform: 'linux_amd64_moby' quickstart.package.name: 'IotEdgeQuickstart.linux-x64.tar.gz' diff --git a/builds/e2e/templates/nested-parent-vm-setup.yaml b/builds/e2e/templates/nested-parent-vm-setup.yaml index 3da147d0b2c..b0ed1de76c6 100644 --- a/builds/e2e/templates/nested-parent-vm-setup.yaml +++ b/builds/e2e/templates/nested-parent-vm-setup.yaml @@ -7,8 +7,8 @@ jobs: displayName: SettingUp level 5 for ${{ parameters['upstream.protocol'] }} timeoutInMinutes: 180 variables: - artifactName: iotedged-ubuntu18.04-amd64 - identityServiceArtifactName: packages_ubuntu-18.04_amd64 + artifactName: iotedged-ubuntu20.04-amd64 + identityServiceArtifactName: packages_ubuntu-20.04_amd64 identityServicePackageFilter: aziot-identity-service_*_amd64.deb level: 5 deploymentFile: "nestededge_topLayerBaseDeployment_${{ parameters['upstream.protocol'] }}.json" @@ -36,9 +36,9 @@ jobs: condition: succeeded() timeoutInMinutes: 180 variables: - identityServiceArtifactName: packages_ubuntu-18.04_amd64 + identityServiceArtifactName: packages_ubuntu-20.04_amd64 identityServicePackageFilter: aziot-identity-service_*_amd64.deb - artifactName: iotedged-ubuntu18.04-amd64 + artifactName: iotedged-ubuntu20.04-amd64 parentName: $[ dependencies.SetupVM_level5_${{ parameters['upstream.protocol'] }}.outputs['deployIoTEdge.deviceName'] ] parentDeviceId: $[ dependencies.SetupVM_level5_${{ parameters['upstream.protocol'] }}.outputs['createIdentity.parentDeviceId'] ] deploymentFile: "${{ parameters['test.l4DeploymentFileName'] }}" diff --git a/builds/e2e/upgrade-scenarios.yaml b/builds/e2e/upgrade-scenarios.yaml deleted file mode 100644 index b8c50a253ff..00000000000 --- a/builds/e2e/upgrade-scenarios.yaml +++ /dev/null @@ -1,229 +0,0 @@ -trigger: none -pr: none - -resources: - pipelines: - - pipeline: ci-build - source: 'Azure-IoT-Edge-Core CI Build' - branch: 'main' - trigger: - branches: - - main - - release/* - - pipeline: images_release_1_1 - source: 'Azure-IoT-Edge-Core Build Images' - branch: 'release/1.1' - - pipeline: images_release_1_2 - source: 'Azure-IoT-Edge-Core Build Images' - branch: 'release/1.2' - -jobs: -################################################################################ - - job: partial_upgrade_ubuntu_1804_msmoby -################################################################################ - displayName: Partial Upgrade - - pool: - name: $(pool.linux.name) - demands: - - ImageOverride -equals agent-aziotedge-ubuntu-18.04-msmoby - - variables: - os: linux - arch: amd64 - artifactName: iotedged-ubuntu18.04-amd64 - identityServiceArtifactName: packages_ubuntu-18.04_amd64 - identityServicePackageFilter: aziot-identity-service_*_amd64.deb - minimal: true - verbose: false - - strategy: - matrix: - # Scenarios 1 to 5 test older versions of the bootstrap Edge Agent - # module with the 1.3 Edge Daemon and Runtime Modules. These represent - # scenarios where the Edge Daemon and Runtime Modules in the deployment - # are upgraded, but the bootstrap agent in config.toml/config.yaml is not. - 1.1.0_to_1.3_no_bootstrap_agent: - edgeDaemonVersion: "release/1.3" - bootstrapAgentVersion: "1.1.0" - runtimeModulesVersion: "release/1.3" - 1.1.8_to_1.3_no_bootstrap_agent: - edgeDaemonVersion: "release/1.3" - bootstrapAgentVersion: "1.1.8" - runtimeModulesVersion: "release/1.3" - 1.1.13_to_1.3_no_bootstrap_agent: - edgeDaemonVersion: "release/1.3" - bootstrapAgentVersion: "1.1.13" - runtimeModulesVersion: "release/1.3" - 1.2.0_to_1.3_no_bootstrap_agent: - edgeDaemonVersion: "release/1.3" - bootstrapAgentVersion: "1.2.0" - runtimeModulesVersion: "release/1.3" - 1.2.10_to_1.3_no_bootstrap_agent: - edgeDaemonVersion: "release/1.3" - bootstrapAgentVersion: "1.2.10" - runtimeModulesVersion: "release/1.3" - - # Scenarios 6 to 10 test the 1.3 Edge Daemon with older versions of the - # bootstrap Edge Agent, and runtime modules. These represent scenarios where - # the Edge Daemon is upgraded, but the config.toml/config.yaml and deployment - # are left using older runtime images. - 1.2.0_to_1.3_only_edge_daemon: - edgeDaemonVersion: "release/1.3" - bootstrapAgentVersion: "1.2.0" - runtimeModulesVersion: "1.2.0" - 1.2.10_to_1.3_only_edge_daemon: - edgeDaemonVersion: "release/1.3" - bootstrapAgentVersion: "1.2.10" - runtimeModulesVersion: "1.2.10" - 1.1.0_to_1.3_only_edge_daemon: - edgeDaemonVersion: "release/1.3" - bootstrapAgentVersion: "1.1.0" - runtimeModulesVersion: "1.1.0" - 1.1.8_to_1.3_only_edge_daemon: - edgeDaemonVersion: "release/1.3" - bootstrapAgentVersion: "1.1.8" - runtimeModulesVersion: "1.1.8" - 1.1.13_to_1.3_only_edge_daemon: - edgeDaemonVersion: "release/1.3" - bootstrapAgentVersion: "1.1.13" - runtimeModulesVersion: "1.1.13" - - timeoutInMinutes: 20 - - steps: - - template: templates/e2e-setup.yaml - - # If edgeDaemonVersion != "release/1.3", remove the aziot-edge and - # aziot-identity-service packages from $(System.ArtifactsDirectory) and download the desired - # versions. - - bash: | - if [ $(edgeDaemonVersion) != "release/1.3" ]; then - pushd $(System.ArtifactsDirectory)/$(artifactName) - rm aziot-edge*.deb - rm aziot-identity-service*.deb - apt-get download aziot-edge='$(edgeDaemonVersion)-1' - is_version=`sudo apt depends aziot-edge='$(edgeDaemonVersion)-1' | sed -En "s/Depends: aziot-identity-service \(= ([0-9]+.[0-9]+.[0-9]+-[0-9]+)\)/\1/p"` - apt-get download aziot-identity-service=`echo $is_version` - popd - fi - displayName: Replace Downloaded Packages - - # If $bootstrapAgentVersion is set to 'release/1.3', the value of edgeAgentBootstrapImage in context.json - # must be modified here so that it is not set to the default E2E test version (i.e. azureiotedge-agent-bootstrap-e2e-linux-amd64) - - bash: | - artifactInfoStr=`cat '$(System.ArtifactsDirectory)/$(az.pipeline.images.artifacts)/artifactInfo.txt'` - IFS='=' - read -ra artifactInfo <<< "$artifactInfoStr" - imageId="${artifactInfo[1]}" - echo "imageId: ${imageId}" - cd $(Build.SourcesDirectory)/test/Microsoft.Azure.Devices.Edge.Test/bin/Debug/net* - echo "Original context.json:" - less context.json - if [ $(bootstrapAgentVersion) = "release/1.3" ]; then - sed -i 's/"edgeAgentBootstrapImage.*/"edgeAgentBootstrapImage": "edgebuilds.azurecr.io\/microsoft\/azureiotedge-agent:'${imageId}'",/' context.json - fi - echo "Updated context.json:" - less context.json - displayName: Update context.json w/ release/1.3 bootstrap image - - - task: DownloadBuildArtifacts@0 - displayName: Download 1.1 Images - inputs: - buildType: specific - project: $(resources.pipeline.images_release_1_1.projectID) - pipeline: "$(resources.pipeline.images_release_1_1.pipelineName)" - buildVersionToDownload: specific - buildId: $(resources.pipeline.images_release_1_1.runID) - downloadType: single - artifactName: $(az.pipeline.images.artifacts) - itemPattern: $(az.pipeline.images.artifacts)/artifactInfo.txt - - # If $runtimeModulesVersion or $bootstrapAgentVersion is set to 'release/1.1', retrieve - # image ID from artifactInfo.txt and update context.json with it. - - bash: | - artifactInfoStr=`cat '$(System.ArtifactsDirectory)/$(az.pipeline.images.artifacts)/artifactInfo.txt'` - IFS='=' - read -ra artifactInfo <<< "$artifactInfoStr" - imageId="${artifactInfo[1]}" - echo "imageId: ${imageId}" - cd $(Build.SourcesDirectory)/test/Microsoft.Azure.Devices.Edge.Test/bin/Debug/net* - echo "Original context.json:" - less context.json - if [ $(runtimeModulesVersion) = "release/1.1" ]; then - sed -i 's/"edgeAgentImage.*/"edgeAgentImage": "edgebuilds.azurecr.io\/microsoft\/azureiotedge-agent:'${imageId}'",/' context.json - sed -i 's/"edgeHubImage.*/"edgeHubImage": "edgebuilds.azurecr.io\/microsoft\/azureiotedge-hub:'${imageId}'",/' context.json - fi - if [ $(bootstrapAgentVersion) = "release/1.1" ]; then - sed -i 's/"edgeAgentBootstrapImage.*/"edgeAgentBootstrapImage": "edgebuilds.azurecr.io\/microsoft\/azureiotedge-agent:'${imageId}'",/' context.json - fi - echo "Updated context.json:" - less context.json - displayName: Update context.json w/ release/1.1 images - - - task: DownloadBuildArtifacts@0 - displayName: Download Release/1.2 Images - inputs: - buildType: specific - project: $(resources.pipeline.images_release_1_2.projectID) - pipeline: "$(resources.pipeline.images_release_1_2.pipelineName)" - buildVersionToDownload: specific - buildId: $(resources.pipeline.images_release_1_2.runID) - downloadType: single - artifactName: $(az.pipeline.images.artifacts) - itemPattern: $(az.pipeline.images.artifacts)/artifactInfo.txt - - # If $runtimeModulesVersion or $bootstrapAgentVersion is set to 'release/1.2', retrieve - # image ID from artifactInfo.txt and update context.json with it. - - bash: | - artifactInfoStr=`cat '$(System.ArtifactsDirectory)/$(az.pipeline.images.artifacts)/artifactInfo.txt'` - IFS='=' - read -ra artifactInfo <<< "$artifactInfoStr" - imageId="${artifactInfo[1]}" - echo "imageId: ${imageId}" - cd $(Build.SourcesDirectory)/test/Microsoft.Azure.Devices.Edge.Test/bin/Debug/net* - echo "Original context.json:" - less context.json - if [ $(runtimeModulesVersion) = "release/1.2" ]; then - sed -i 's/"edgeAgentImage.*/"edgeAgentImage": "edgebuilds.azurecr.io\/microsoft\/azureiotedge-agent:'${imageId}'",/' context.json - sed -i 's/"edgeHubImage.*/"edgeHubImage": "edgebuilds.azurecr.io\/microsoft\/azureiotedge-hub:'${imageId}'",/' context.json - fi - if [ $(bootstrapAgentVersion) = "release/1.2" ]; then - sed -i 's/"edgeAgentBootstrapImage.*/"edgeAgentBootstrapImage": "edgebuilds.azurecr.io\/microsoft\/azureiotedge-agent:'${imageId}'",/' context.json - fi - echo "Updated context.json:" - less context.json - displayName: Update context.json w/ release/1.2 images - - # If $runtimeModulesVersion or $bootstrapAgentVersion is set to 1.x.y, - # run sed command to set edgeAgentBootstrapImage, edgeAgentImage, and edgeHubImage - # to released images from mcr.microsoft.com - - bash: | - cd $(Build.SourcesDirectory)/test/Microsoft.Azure.Devices.Edge.Test/bin/Debug/net* - echo "Original context.json:" - less context.json - if [ `echo $(runtimeModulesVersion) | sed -En "/1.[0-9]+.[0-9]+/p"` ]; then - sed -i 's/"edgeAgentImage.*/"edgeAgentImage": "mcr.microsoft.com\/azureiotedge-agent:$(runtimeModulesVersion)",/' context.json - sed -i 's/"edgeHubImage.*/"edgeHubImage": "mcr.microsoft.com\/azureiotedge-hub:$(runtimeModulesVersion)",/' context.json - fi - if [ `echo $(bootstrapAgentVersion) | sed -En "/1.[0-9]+.[0-9]+/p"` ]; then - sed -i 's/"edgeAgentBootstrapImage.*/"edgeAgentBootstrapImage": "mcr.microsoft.com\/azureiotedge-agent:$(bootstrapAgentVersion)",/' context.json - fi - echo "Updated context.json:" - less context.json - displayName: Update context.json w/ mcr.microsoft.com images - - # Set the schema version in the edgeHub desired properties to "1.1" - - bash: | - cd $(Build.SourcesDirectory)/test/Microsoft.Azure.Devices.Edge.Test/bin/Debug/net* - echo "Original context.json:" - less context.json - sed -i 's/"edgeHubSchemaVersion.*/"edgeHubSchemaVersion": "1.1",/' context.json - echo "Updated context.json:" - less context.json - displayName: Update schemaVersion in context.json - - - template: templates/e2e-run.yaml - parameters: - test_type: upgrade_scenarios - diff --git a/builds/misc/packages-release.yaml b/builds/misc/packages-release.yaml index fb6b30e32b9..77069532340 100644 --- a/builds/misc/packages-release.yaml +++ b/builds/misc/packages-release.yaml @@ -70,18 +70,6 @@ stages: arch: aarch64 target.iotedged: edgelet/target/aarch64-unknown-linux-gnu/release - Ubuntu1804-amd64: - os: ubuntu18.04 - arch: amd64 - target.iotedged: edgelet/target/release - Ubuntu1804-arm32v7: - os: ubuntu18.04 - arch: arm32v7 - target.iotedged: edgelet/target/armv7-unknown-linux-gnueabihf/release - Ubuntu1804-aarch64: - os: ubuntu18.04 - arch: aarch64 - target.iotedged: edgelet/target/aarch64-unknown-linux-gnu/release Ubuntu2004-amd64: arch: amd64 os: ubuntu20.04 @@ -215,21 +203,6 @@ stages: pmcRepoName: microsoft-rhel9.0-prod-yum pmcRelease: '' - Ubuntu1804-amd64: - os: ubuntu18.04 - artifactName: iotedged-ubuntu18.04-amd64 - identityServiceArtifactName: packages_ubuntu-18.04_amd64 - identityServicePackageFilter: aziot-identity-service_*_amd64.deb - pmcRepoName: microsoft-ubuntu-bionic-prod-apt - pmcRelease: bionic - Ubuntu1804-aarch64: - os: ubuntu18.04 - artifactName: iotedged-ubuntu18.04-aarch64 - identityServiceArtifactName: packages_ubuntu-18.04_aarch64 - identityServicePackageFilter: aziot-identity-service_*_arm64.deb - pmcRepoName: microsoft-ubuntu-bionic-prod-apt - pmcRelease: bionic - Ubuntu2004-amd64: os: ubuntu20.04 artifactName: iotedged-ubuntu20.04-amd64 @@ -440,22 +413,6 @@ stages: identityServiceArtifactName: packages_debian-11-slim_aarch64 identityServicePackageFilter: aziot-identity-service_*_arm64.deb - Ubuntu1804-amd64: - os: ubuntu18.04 - artifactName: iotedged-ubuntu18.04-amd64 - identityServiceArtifactName: packages_ubuntu-18.04_amd64 - identityServicePackageFilter: aziot-identity-service_*_amd64.deb - Ubuntu1804-arm32v7: - os: ubuntu18.04 - artifactName: iotedged-ubuntu18.04-arm32v7 - identityServiceArtifactName: packages_ubuntu-18.04_arm32v7 - identityServicePackageFilter: aziot-identity-service_*_armhf.deb - Ubuntu1804-aarch64: - os: ubuntu18.04 - artifactName: iotedged-ubuntu18.04-aarch64 - identityServiceArtifactName: packages_ubuntu-18.04_aarch64 - identityServicePackageFilter: aziot-identity-service_*_arm64.deb - Ubuntu2004-amd64: os: ubuntu20.04 artifactName: iotedged-ubuntu20.04-amd64 diff --git a/builds/misc/templates/build-packages.yaml b/builds/misc/templates/build-packages.yaml index 4a1c1995512..7607fbd41a0 100644 --- a/builds/misc/templates/build-packages.yaml +++ b/builds/misc/templates/build-packages.yaml @@ -90,18 +90,6 @@ stages: arch: aarch64 target.iotedged: edgelet/target/aarch64-unknown-linux-gnu/release - Ubuntu1804-amd64: - os: ubuntu18.04 - arch: amd64 - target.iotedged: edgelet/target/release - Ubuntu1804-arm32v7: - os: ubuntu18.04 - arch: arm32v7 - target.iotedged: edgelet/target/armv7-unknown-linux-gnueabihf/release - Ubuntu1804-aarch64: - os: ubuntu18.04 - arch: aarch64 - target.iotedged: edgelet/target/aarch64-unknown-linux-gnu/release Ubuntu2004-amd64: arch: amd64 os: ubuntu20.04 diff --git a/doc/BuiltInMetrics.md b/doc/BuiltInMetrics.md index ecaef186bfb..6ad5c68b6b3 100644 --- a/doc/BuiltInMetrics.md +++ b/doc/BuiltInMetrics.md @@ -76,7 +76,7 @@ instance_number | A Guid representing the current runtime. On restart, all metri | `edgeAgent_twin_signature_check_count` | `result` (Success/Failure)
`algorithm`| The number of twin signature checks, `result` is "Success" or "Failure". | Counter | | `edgeAgent_twin_signaturs_check_seconds` | | The amount of time it took to verify twin signature. | Summary | ||| -| `edgeAgent_metadata` | `edge_agent_version`, `experimental_features`, `host_information` | General metadata about the device. The value is always 0, information is encoded in the tags. Note `experimental_features` and `host_information` are json objects. `host_information` looks like ```{"OperatingSystemType": "linux", "Architecture": "x86_64", "Version": "1.0.10~dev20200803.4", "Provisioning": {"Type": "dps.tpm", "DynamicReprovisioning": false, "AlwaysReprovisionOnStartup": true}, "ServerVersion": "19.03.6", "KernelVersion": "5.0.0-25-generic", "OperatingSystem": "Ubuntu 18.04.4 LTS", "NumCpus": 6, "Virtualized": "yes"}```. Note `ServerVersion` is the Docker version and `Version` is the IoT Edge Security Daemon version. | Gauge | +| `edgeAgent_metadata` | `edge_agent_version`, `experimental_features`, `host_information` | General metadata about the device. The value is always 0, information is encoded in the tags. Note `experimental_features` and `host_information` are json objects. `host_information` looks like ```{"OperatingSystemType": "linux", "Architecture": "x86_64", "Version": "1.0.10~dev20200803.4", "Provisioning": {"Type": "dps.tpm", "DynamicReprovisioning": false, "AlwaysReprovisionOnStartup": true}, "ServerVersion": "19.03.6", "KernelVersion": "5.0.0-25-generic", "OperatingSystem": "Ubuntu 20.04.4 LTS", "NumCpus": 6, "Virtualized": "yes"}```. Note `ServerVersion` is the Docker version and `Version` is the IoT Edge Security Daemon version. | Gauge | ### Collecting diff --git a/doc/EdgeRuntimeConfigSpec.md b/doc/EdgeRuntimeConfigSpec.md index 0ac01baebaf..ea4cea95edc 100644 --- a/doc/EdgeRuntimeConfigSpec.md +++ b/doc/EdgeRuntimeConfigSpec.md @@ -26,7 +26,7 @@ of values that these KV pairs can take. | ----------:|:----------:|:---------------------------- | | platform | string | "Windows", "Linux" | | osName | string | "Windows", "Ubuntu", "CentOS"| -| osVersion | string | "10.0.15063", "18.04" | +| osVersion | string | "10.0.15063", "20.04" | >### Edge Hub @@ -57,7 +57,7 @@ The following is a cumulative JSON representation of the data using sample data: "platform": "Linux", "os": { "name": "Ubuntu", - "version: "18.04" + "version: "20.04" } } } diff --git a/edgelet/Cargo.lock b/edgelet/Cargo.lock index 4a1efa26d36..61b3412b85a 100644 --- a/edgelet/Cargo.lock +++ b/edgelet/Cargo.lock @@ -127,7 +127,7 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "aziot-cert-client-async" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-cert-common-http", "aziot-key-common", @@ -140,7 +140,7 @@ dependencies = [ [[package]] name = "aziot-cert-common-http" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-key-common", "serde", @@ -149,7 +149,7 @@ dependencies = [ [[package]] name = "aziot-certd-config" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "cert-renewal", "hex", @@ -192,7 +192,7 @@ dependencies = [ [[package]] name = "aziot-identity-client-async" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-cert-common-http", "aziot-identity-common", @@ -206,7 +206,7 @@ dependencies = [ [[package]] name = "aziot-identity-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-key-common", "http-common", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "aziot-identity-common-http" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-cert-common-http", "aziot-identity-common", @@ -230,7 +230,7 @@ dependencies = [ [[package]] name = "aziot-identityd-config" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-identity-common", "cert-renewal", @@ -245,7 +245,7 @@ dependencies = [ [[package]] name = "aziot-key-client" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-key-common", "aziot-key-common-http", @@ -260,7 +260,7 @@ dependencies = [ [[package]] name = "aziot-key-client-async" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-key-common", "aziot-key-common-http", @@ -273,7 +273,7 @@ dependencies = [ [[package]] name = "aziot-key-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "serde", ] @@ -281,7 +281,7 @@ dependencies = [ [[package]] name = "aziot-key-common-http" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-key-common", "http-common", @@ -291,7 +291,7 @@ dependencies = [ [[package]] name = "aziot-key-openssl-engine" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-key-client", "aziot-key-common", @@ -309,7 +309,7 @@ dependencies = [ [[package]] name = "aziot-keyd-config" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "http-common", "libc", @@ -319,7 +319,7 @@ dependencies = [ [[package]] name = "aziot-keys-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "pkcs11", "serde", @@ -329,7 +329,7 @@ dependencies = [ [[package]] name = "aziot-tpmd-config" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "http-common", "serde", @@ -338,7 +338,7 @@ dependencies = [ [[package]] name = "aziotctl-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "anyhow", "aziot-certd-config", @@ -445,7 +445,7 @@ dependencies = [ [[package]] name = "cert-renewal" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "async-trait", "chrono", @@ -543,7 +543,7 @@ dependencies = [ [[package]] name = "config-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "serde", "toml", @@ -1219,7 +1219,7 @@ dependencies = [ [[package]] name = "http-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "async-trait", "base64 0.21.2", @@ -1519,7 +1519,7 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "logger" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "env_logger", "log", @@ -1666,7 +1666,7 @@ dependencies = [ [[package]] name = "openssl-build" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "cc", ] @@ -1708,7 +1708,7 @@ dependencies = [ [[package]] name = "openssl-sys2" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "openssl-build", "openssl-sys", @@ -1717,7 +1717,7 @@ dependencies = [ [[package]] name = "openssl2" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "foreign-types", "foreign-types-shared", @@ -1777,7 +1777,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkcs11" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "foreign-types-shared", "lazy_static", @@ -1794,7 +1794,7 @@ dependencies = [ [[package]] name = "pkcs11-sys" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" [[package]] name = "pkg-config" @@ -2237,7 +2237,7 @@ dependencies = [ [[package]] name = "test-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=main#e7af1d5917ef008ccd8f67c07c589d5bbef384df" +source = "git+https://github.com/Azure/iot-identity-service?branch=main#1ad9c6a45620f9439ade40463b5f4de8884748e5" dependencies = [ "aziot-identity-common", "aziot-identity-common-http", diff --git a/edgelet/build/linux/package.sh b/edgelet/build/linux/package.sh index 7d759e996f6..4cce1378350 100755 --- a/edgelet/build/linux/package.sh +++ b/edgelet/build/linux/package.sh @@ -77,10 +77,6 @@ case "$PACKAGE_OS" in DOCKER_IMAGE='debian:11-slim' ;; - 'ubuntu18.04') - DOCKER_IMAGE='ubuntu:18.04' - ;; - 'ubuntu20.04') DOCKER_IMAGE='ubuntu:20.04' ;; @@ -202,11 +198,11 @@ case "$PACKAGE_OS.$PACKAGE_ARCH" in ' ;; - ubuntu18.04.amd64|ubuntu20.04.amd64|ubuntu22.04.amd64) + ubuntu20.04.amd64|ubuntu22.04.amd64) packages='binutils build-essential ca-certificates curl debhelper file git make gcc g++ \ libcurl4-openssl-dev libssl-dev pkg-config uuid-dev' case "$PACKAGE_OS" in - ubuntu18.04|ubuntu20.04) + ubuntu20.04) transitional_packages='dh-systemd' ;; *) @@ -222,12 +218,12 @@ case "$PACKAGE_OS.$PACKAGE_ARCH" in " ;; - ubuntu18.04.arm32v7|ubuntu20.04.arm32v7|ubuntu22.04.arm32v7) + ubuntu20.04.arm32v7|ubuntu22.04.arm32v7) packages='binutils build-essential ca-certificates curl debhelper file git make gcc g++ \ gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libcurl4-openssl-dev:armhf \ libssl-dev:armhf uuid-dev:armhf' case "$PACKAGE_OS" in - ubuntu18.04|ubuntu20.04) + ubuntu20.04) transitional_packages='dh-systemd' ;; *) @@ -259,12 +255,12 @@ case "$PACKAGE_OS.$PACKAGE_ARCH" in " ;; - ubuntu18.04.aarch64|ubuntu20.04.aarch64|ubuntu22.04.aarch64) + ubuntu20.04.aarch64|ubuntu22.04.aarch64) packages='binutils build-essential ca-certificates curl debhelper file git make gcc \ g++ gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libcurl4-openssl-dev:arm64 \ libssl-dev:arm64 uuid-dev:arm64' case "$PACKAGE_OS" in - ubuntu18.04|ubuntu20.04) + ubuntu20.04) transitional_packages='dh-systemd' ;; *) diff --git a/edgelet/doc/devguide.md b/edgelet/doc/devguide.md index 3abe10a17e9..c773079db53 100644 --- a/edgelet/doc/devguide.md +++ b/edgelet/doc/devguide.md @@ -13,7 +13,7 @@ There are two options for building the IoT Edge Security Daemon. Linux packages are built using the `edgelet/build/linux/package.sh` script. Set the following environment variables, then invoke the script: -1. `PACKAGE_OS`: This is the OS on which the resulting packages will be installed. It should be one of `centos7`, `redhat8`, `redhat9`, `debian10`, `debian11`, `ubuntu18.04`, `ubuntu20.04`, or `ubuntu22.04`. +1. `PACKAGE_OS`: This is the OS on which the resulting packages will be installed. It should be one of `centos7`, `redhat8`, `redhat9`, `debian10`, `debian11`, `ubuntu20.04`, or `ubuntu22.04`. 1. `PACKAGE_ARCH`: This is the architecture of the OS on which the resulting packages will be installed. It should be one of `amd64`, `arm32v7` or `aarch64`. @@ -95,7 +95,7 @@ apt-get install \ gcc g++ pkg-config \ libcurl4-openssl-dev libssl-dev uuid-dev ``` -#### Ubuntu 18.04, 20.04 +#### Ubuntu 20.04 ```sh apt-get update diff --git a/edgelet/iotedge/src/check/additional_info.rs b/edgelet/iotedge/src/check/additional_info.rs index f5d372aa368..0239377a86a 100644 --- a/edgelet/iotedge/src/check/additional_info.rs +++ b/edgelet/iotedge/src/check/additional_info.rs @@ -37,10 +37,10 @@ impl AdditionalInfo { /// ---------------------+---------------------+------------ /// CentOS 7 | centos | 7 /// RedHat EL 8 | rhel | 8.5 -/// Debian 10 | debian | 10 -/// Debian 11 | debian | 11 +/// Debian 10 | debian | 10 +/// Debian 11 | debian | 11 /// openSUSE Tumbleweed | opensuse-tumbleweed | 20190325 -/// Ubuntu 18.04 | ubuntu | 18.04 +/// Ubuntu 22.04 | ubuntu | 22.04 /// ``` /// /// Ref: diff --git a/scripts/linux/NestTestHelper.sh b/scripts/linux/NestTestHelper.sh index 946390a28fd..304563a94b9 100644 --- a/scripts/linux/NestTestHelper.sh +++ b/scripts/linux/NestTestHelper.sh @@ -57,9 +57,9 @@ function get_iotedged_artifact_folder() { local path if [ "$image_architecture_label" = 'amd64' ]; then - path="$testDir/artifacts/iotedged-ubuntu18.04-amd64" + path="$testDir/artifacts/iotedged-ubuntu20.04-amd64" elif [ "$image_architecture_label" = 'arm64v8' ]; then - path="$testDir/artifacts/iotedged-ubuntu18.04-aarch64" + path="$testDir/artifacts/iotedged-ubuntu20.04-aarch64" else path="$testDir/artifacts/iotedged-debian11-arm32v7" fi diff --git a/scripts/linux/publishReleasePackages.sh b/scripts/linux/publishReleasePackages.sh index 5ec383d36ab..5dc4e5d5b58 100755 --- a/scripts/linux/publishReleasePackages.sh +++ b/scripts/linux/publishReleasePackages.sh @@ -34,10 +34,7 @@ function usage() { # Functions ############################################################################### check_os() { - if [[ "$PACKAGE_OS" == "ubuntu18.04" ]]; then - OS_NAME="ubuntu" - OS_VERSION="bionic" - elif [[ "$PACKAGE_OS" == "ubuntu20.04" ]]; then + if [[ "$PACKAGE_OS" == "ubuntu20.04" ]]; then OS_NAME="ubuntu" OS_VERSION="focal" elif [[ "$PACKAGE_OS" == "ubuntu22.04" ]]; then diff --git a/scripts/linux/runE2ETest.sh b/scripts/linux/runE2ETest.sh index 86b420fcd10..92dc165721d 100755 --- a/scripts/linux/runE2ETest.sh +++ b/scripts/linux/runE2ETest.sh @@ -72,9 +72,9 @@ function get_iotedge_quickstart_artifact_file() { function get_iotedged_artifact_folder() { local path if [ "$image_architecture_label" = 'amd64' ]; then - path="$E2E_TEST_DIR/artifacts/iotedged-ubuntu18.04-amd64" + path="$E2E_TEST_DIR/artifacts/iotedged-ubuntu20.04-amd64" elif [ "$image_architecture_label" = 'arm64v8' ]; then - path="$E2E_TEST_DIR/artifacts/iotedged-ubuntu18.04-aarch64" + path="$E2E_TEST_DIR/artifacts/iotedged-ubuntu20.04-aarch64" else path="$E2E_TEST_DIR/artifacts/iotedged-debian11-arm32v7" fi diff --git a/test/Microsoft.Azure.Devices.Edge.Test.Common/linux/PackageManagement.cs b/test/Microsoft.Azure.Devices.Edge.Test.Common/linux/PackageManagement.cs index 003b1583f6e..89569ea513f 100644 --- a/test/Microsoft.Azure.Devices.Edge.Test.Common/linux/PackageManagement.cs +++ b/test/Microsoft.Azure.Devices.Edge.Test.Common/linux/PackageManagement.cs @@ -88,11 +88,7 @@ public string[] GetInstallCommandsFromMicrosoftProd(Option proxy) // we really support only two options for now. string repository = this.os.ToLower() switch { - "ubuntu" => this.version switch - { - "18.04" => "https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list", - _ => $"https://packages.microsoft.com/config/ubuntu/{this.version}/prod.list" - }, + "ubuntu" => $"https://packages.microsoft.com/config/ubuntu/{this.version}/prod.list", "debian" => "https://packages.microsoft.com/config/debian/stretch/multiarch/prod.list", _ => throw new NotImplementedException($"Don't know how to install daemon for '{this.os}'"), }; diff --git a/tools/TestAgents/CreateAzureVmForE2e.ps1 b/tools/TestAgents/CreateAzureVmForE2e.ps1 index 7a0b04abf8b..f868fcb7665 100644 --- a/tools/TestAgents/CreateAzureVmForE2e.ps1 +++ b/tools/TestAgents/CreateAzureVmForE2e.ps1 @@ -94,7 +94,7 @@ function Create-Azure-VM-For-E2E-Test --authentication-type ssh ` --admin-username "$AdminUsername" ` --ssh-key-values "$VmPubKey" ` - --image 'Canonical:UbuntuServer:18.04-LTS:latest' ` + --image 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' ` --size 'Standard_D4s_v3' ` --location "$VmRegion" ` --subnet "$SubnetId" diff --git a/tools/TestAgents/e2eOneTimeDependencySetup.sh b/tools/TestAgents/e2eOneTimeDependencySetup.sh index ea014a4bc5c..e94b9d7e33b 100644 --- a/tools/TestAgents/e2eOneTimeDependencySetup.sh +++ b/tools/TestAgents/e2eOneTimeDependencySetup.sh @@ -4,7 +4,7 @@ mkdir ~/setup cd ~/setup # Install .NET 6 runtime ( https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu ) -wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb +wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt-get update; \