Skip to content

[Breaking change]: .NET Monitor 9 image offering simplified to version-only tagsΒ #43379

@jander-msft

Description

@jander-msft

Description

The .NET Monitor 9 image offering has been simplified to only provide Azure Linux distroless images. As part of this change, the Ubuntu Chiseled and CBL-Mariner tags have been superseded by version-only tags.

This change was introduced in the .NET Monitor 9 Preview 5 images.

Version

Other (please put exact version in description textbox)

Previous behavior

.NET Monitor 8 offered the following types of images:

  • Ubuntu Chiseled arm64 and x64
  • CBL-Mariner Distroless arm64 and x64

New behavior

.NET Monitor 9 offers the following types of images and their tags:

  • Azure Linux distroless arm64 and x64: 9, 9.0, and 9.0.0

The following tag patterns from .NET Monitor 8 do not have an equivalent in the .NET Monitor 9 offering:

  • Ubuntu Chiseled arm64 and x64: *-ubuntu-chiseled, *-ubuntu-chiseled-amd64, *-ubuntu-chiseled-arm64v8
  • CBL-Mariner distroless arm64 and x64: *-cbl-mariner-distroless, *-cbl-mariner-distroless-amd64, *-cbl-mariner-distroless-arm64v8

The .NET Monitor 9 images have version-only tags. There are no OS tags due to only producing images based on a single distro.

The latest tag will automatically be updated from the Ubuntu Chiseled images to Azure Linux images at .NET Monitor 9.0 general availability.

Type of breaking change

  • Binary incompatible: Existing binaries might encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
  • Source incompatible: When recompiled using the new SDK or component or to target the new runtime, existing source code might require source changes to compile successfully.
  • Behavioral change: Existing binaries might behave differently at run time.

Reason for change

During the .NET Monitor 8.0 development cycle, only the .NET Ubuntu Chiseled images were publicly available for customers to use. Later in the development cycle, the .NET CBL-Mariner distroless images became publicly available for customers to use. At that time, it was decided to keep producing .NET Monitor images based on both distros as to not disrupt current usage.

From the perspective of the .NET Monitor tool, both distros provided a similar capability set, footprint, and security posture. The .NET Monitor images are intended to be used as appliance images; these images are not intended to be used as base images for derivation and are only intended to be used "as-is". With the public availability of the .NET CBL-Mariner images last year, and subsequent change to Azure Linux, the .NET Monitor image offering has been simplified to only produce images based on the Azure Linux distro and the tagging scheme has been simplified to reflect this change.

Recommended action

Users should update their tag usage to indicate which image from the .NET Monitor 9 image offering they would like to use. The following shows some examples of the recommended migration:

  • 8-cbl-mariner-distroless -> 9
  • 8.0-cbl-mariner-distroless -> 9.0
  • 8-ubuntu-chiseled -> 9
  • 8.0-ubuntu-chiseled -> 9.0

The following are the recommended .NET Monitor 9 tags and their use:

  • 9: Use this tag to stay on the latest .NET Monitor 9 release and servicing update.
  • 9.0: Use this tag to stay on the latest .NET Monitor 9.0 servicing update.

A full list of all supported tags can be found on .NET Monitor's README in the dotnet/dotnet-docker GitHub repository.

Starting in .NET Monitor 8, the image offering was change from using full distro images to using distroless images. If migrating from .NET Monitor 7 or earlier, the notable changes when migrating from a full distro image to a distroless image are the use of a non-root user, the lack of a package manager, and the lack of a shell.

Users who were using full distro images (e.g. Alpine) may need to adjust the running user of the .NET Monitor image in their deployments when migrating to .NET Monitor 8 or later. Guidance for changing the running user can be found in the .NET Monitor 8.0 compatibility documentation.

See the .NET Monitor 9.0 compatibility documentation for changes from .NET Monitor 8 to .NET Monitor 9.

Feature area

Containers

Affected APIs

No response


Associated WorkItem - 350748

Metadata

Metadata

Assignees

Labels

πŸ“Œ seQUESTeredIdentifies that an issue has been imported into Quest.breaking-changeIndicates a .NET Core breaking changein-prThis issue will be closed (fixed) by an active pull request.

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions