Skip to main content

Helm OCI MediaType Registration

HIPTitleAuthor(s)CreatedTypeStatus
0017Helm OCI MediaType RegistrationAndrew Block andy.block@gmail.com2022-06-09informationalaccepted

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 Nameapplication
TreeVendor Tree (vnd prefix)
Subtype Namecncf.helm.config.v1+json
Required ParametersFields as required per the Chart.yaml definition
Optional ParametersRemaining fields which as defined within the Chart.yaml definition which are not noted as required
Encoding ConsiderationsEncoding considerations are identical to those specified for the "application/json" media type. See RFC8259.
Security ConsiderationsSimilar 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 ConsiderationN/A
Published specificationhttps://helm.sh/docs/topics/charts/#the-chartyaml-file
Application UsageInternally within the Helm package manager as well as various interfacing applications
Fragment Identifier ConsiderationsN/A
Restrictions on UsageN/A
Provisional RegistrationsN/A
Additional Information
  1. Deprecated alias names for this type: None
  2. Magic number(s): None
  3. File extension(s): .json
  4. Macintosh file type code: TEXT
  5. Object Identifiers: None
Intended UsageCommon
Other Information and CommentsN/A

Helm Content

Represents the packaged Helm chart.

  
Type Nameapplication
TreeVendor Tree (vnd prefix)
Subtype Namecncf.helm.chart.content.v1.tar+gzip
Required ParametersN/A
Optional ParametersN/A
Encoding ConsiderationsBinary
Security ConsiderationsNo 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 ConsiderationN/A
Published specificationNone
Application UsageInternally within the Helm package manager as well as various interfacing applications
Fragment Identifier ConsiderationsN/A
Restrictions on UsageN/A
Provisional RegistrationsN/A
Additional Information
  1. Deprecated alias names for this type: None
  2. Magic number(s): None
  3. File extension(s): None
  4. Macintosh file type code: None
  5. Object Identifiers: None
Intended UsageCommon
Other Information and CommentsN/A

Helm Provenance

Represents the Helm Provenance file associated with a signed chart.

  
Type Nameapplication
TreeVendor Tree (vnd prefix)
Subtype Namecncf.helm.chart.provenance.v1.prov
Required ParametersFields as specified within Helm provenance file definition
Optional Parameters N/A
Encoding ConsiderationsThe utf-8 charset is always used for this type
Security ConsiderationsThe 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 ConsiderationN/A
Published specificationhttps://helm.sh/docs/topics/provenance/#the-provenance-file
Application UsageInternally within the Helm package manager as well as various interfacing applications
Fragment Identifier ConsiderationsN/A
Restrictions on UsageN/A
Provisional RegistrationsN/A
Additional Information
  1. Deprecated alias names for this type: None
  2. Magic number(s): None
  3. File extension(s): None
  4. Macintosh file type code: Text
  5. Object Identifiers: None
Intended UsageCommon
Other Information and CommentsN/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: