A Go package for formatting, normalizing and matching container platforms.
This package is based on the Open Containers Image Spec definition of a (platform)[https://github.com/opencontainers/image-spec/blob/main/specs-go/v1/descriptor.go#L52].
While the OCI platform specifications provide a tool for components to
specify structured information, user input typically doesn't need the full
context and much can be inferred. To solve this problem, this package introduces
"specifiers". A specifier has the format
<os>|<arch>|<os>/<arch>[/<variant>]
. The user can provide either the
operating system or the architecture or both.
An example of a common specifier is linux/amd64
. If the host has a default
of runtime that matches this, the user can simply provide the component that
matters. For example, if a image provides amd64 and arm64 support, the
operating system, linux
can be inferred, so they only have to provide
arm64
or amd64
. Similar behavior is implemented for operating systems,
where the architecture may be known but a runtime may support images from
different operating systems.
platforms is a containerd sub-project, licensed under the Apache 2.0 license. As a containerd sub-project, you will find the:
information in our containerd/project
repository.