Helm OCI MediaType Registration
| HIP | Title | Author(s) | Created | Type | Status |
|---|---|---|---|---|---|
| 0017 | Helm OCI MediaType Registration | Andrew Block andy.block@gmail.com | 2022-06-09 | informational | accepted |
Abstract
The use of OCI artifacts is one of the packaging methods available in Helm. A Helm OCI artifact is comprised of multiple component, each defined by a specific Media Type. Media Types are managed by the Internet Assigned Numbers Authority (IANA) and each type should be registered with IANA so that it can not only be known by the organization, but also discoverable by end users. The canonical location for Helm Media Types information below is intended to be the IANA application registry. This document describes the necessary fields that are associated within the registration of a Media Type to IANA form.
Motivation
Support for the storage of Helm charts as OCI artifacts was released in released in General Availability (GA) in version 3.8.0 and with the continued adoption of this storage format, the specifications should be readily available for producers and consumers. Registration of Media Types with the Internet Assigned Numbers Authority has become a standard process within other technologies whom also make use of OCI artifacts so that not only the packaging types can be understood, but also documented.
Rationale
A Generally Available (GA) feature that implements a particular specification should account for its usage. Not only does the registration of Media Types to IANA follow a practice that has been implemented previously, but also provides a better understanding of the Helm project.
Specification
Each Media Type that Helm implements requires their own separate registration to IANA. The sections below detail the properties associated within the registration form for each of the Media Type's that will be submitted to IANA.
Helm Config
The OCI config containing a JSON formatted representation of the Helm Chart.yaml file.
| Type Name | application |
| Tree | Vendor Tree (vnd prefix) |
| Subtype Name | cncf.helm.config.v1+json |
| Required Parameters | Fields as required per the Chart.yaml definition |
| Optional Parameters | Remaining fields which as defined within the Chart.yaml definition which are not noted as required |
| Encoding Considerations | Encoding considerations are identical to those specified for the "application/json" media type. See RFC8259. |
| Security Considerations | Similar security concerns common to all JSON content types. See RFC 7159 Section #12 for additional information. The included content as defined by the Helm chart definition may include sensitive assets including personal contact information, source code repositories or other referenceable locations. |
| Interoperability Consideration | N/A |
| Published specification | https://helm.sh/docs/topics/charts/#the-chartyaml-file |
| Application Usage | Internally within the Helm package manager as well as various interfacing applications |
| Fragment Identifier Considerations | N/A |
| Restrictions on Usage | N/A |
| Provisional Registrations | N/A |
| Additional Information |
|
| Intended Usage | Common |
| Other Information and Comments | N/A |
Helm Content
Represents the packaged Helm chart.
| Type Name | application |
| Tree | Vendor Tree (vnd prefix) |
| Subtype Name | cncf.helm.chart.content.v1.tar+gzip |
| Required Parameters | N/A |
| Optional Parameters | N/A |
| Encoding Considerations | Binary |
| Security Considerations | No security controls are enforced by Helm. The content of a Helm package is not intended to – but may potentially – contain resources that are sensitive in nature. |
| Interoperability Consideration | N/A |
| Published specification | None |
| Application Usage | Internally within the Helm package manager as well as various interfacing applications |
| Fragment Identifier Considerations | N/A |
| Restrictions on Usage | N/A |
| Provisional Registrations | N/A |
| Additional Information |
|
| Intended Usage | Common |
| Other Information and Comments | N/A |
Helm Provenance
Represents the Helm Provenance file associated with a signed chart.
| Type Name | application |
| Tree | Vendor Tree (vnd prefix) |
| Subtype Name | cncf.helm.chart.provenance.v1.prov |
| Required Parameters | Fields as specified within Helm provenance file definition |
| Optional Parameters N/A | |
| Encoding Considerations | The utf-8 charset is always used for this type |
| Security Considerations | The contents of a Helm provenance file contains a GnuPG detached ASCII-armored signature of the Helm chart definition file as well as the definition itself. The Helm chart definition may include sensitive assets including personal contact information, source code repositories or other referenceable locations. |
| Interoperability Consideration | N/A |
| Published specification | https://helm.sh/docs/topics/provenance/#the-provenance-file |
| Application Usage | Internally within the Helm package manager as well as various interfacing applications |
| Fragment Identifier Considerations | N/A |
| Restrictions on Usage | N/A |
| Provisional Registrations | N/A |
| Additional Information |
|
| Intended Usage | Common |
| Other Information and Comments | N/A |
Backwards Compatibility
N/A
Security implications
N/A
Reference implementation
The responses associated with each Media Type registration has been inspired by the previously registered IANA Media Types.
Rejected ideas
None
Open issues
None
References
Existing Media Types of similar category and purpose can be found within the list of registered IANA Media Types. The following are examples of media types that have been registered with IANA: