✦ For everyone, free.

Practical knowledge for real and everyday life

Home

Chart Repositories

Helm chart repositories store and manage charts for Kubernetes, enabling versioned deployment and sharing across clusters.

Chart Repositories are structured collections of Helm charts that serve as centralized catalogs from which users can discover, download, and deploy application packages in Kubernetes environments. They act as HTTP servers hosting an index file and packaged charts, enabling Helm clients to interact with them via standard HTTP requests. Chart Repositories provide a standardized mechanism for distributing, versioning, and managing Helm charts across different environments and teams.


Repository Structure

A Chart Repository typically consists of the following core components organized in a defined directory layout:

Index File (index.yaml)

The index file is a crucial metadata document that lists all available charts within the repository along with their versions, descriptions, and download URLs. It is a YAML-formatted file automatically generated and updated to reflect the repository's current contents. Each entry in the index file includes metadata such as chart name, version, app version, description, keywords, maintainers, and URLs pointing to the actual packaged chart archives.

Chart Packages (.tgz files)

Chart packages are compressed archive files containing the chart’s files and templates. These packages are named following the convention <chart-name>-<version>.tgz. They contain the chart’s manifest, templates, values, and auxiliary files required to deploy the application. Serving these packages over standard HTTP(S) protocols allows Helm clients to fetch and install charts efficiently.

Optional Assets and Metadata

Some repositories may host additional files such as README documents, license files, or custom metadata to provide more context or governance over the charts. However, these are supplementary and not required for the Helm client to function.


Repository Indexes

The index.yaml is the authoritative catalog of a Chart Repository’s contents and supports multiple versions of the same chart. It enables clients to resolve dependencies and selectively install or upgrade charts based on version constraints.

Generation and Maintenance

The index file is generated by scanning the repository’s chart packages and extracting metadata from each chart’s Chart.yaml file. Tools like helm repo index automate this process, updating the index to reflect additions, deletions, or version updates.

Metadata Details

Each chart entry in the index includes:

  • name: The chart’s name.
  • version: The semantic version of the chart package.
  • appVersion: The application version the chart deploys.
  • description: A brief explanation of the chart’s purpose.
  • keywords: Searchable terms associated with the chart.
  • maintainers: Contact information of maintainers or authors.
  • urls: An array of URLs where the chart package files can be downloaded.
  • created: Timestamp of when the package was added.

Repository Registration and Local Metadata

To interact with a Chart Repository, Helm clients must register it locally by adding the repository’s URL to the client configuration. This process allows Helm to cache the repository’s index file locally for faster operations.

Adding and Managing Repositories

Commands like helm repo add register a repository by downloading its index file and storing metadata locally. Users can update this metadata with helm repo update, which refreshes the index cache to reflect the latest repository state.

Local Cache Structure

The local metadata cache maintains:

  • Repository URLs.
  • Cached copies of the index.yaml.
  • Cached chart packages (optional, depending on client configuration).
  • Authentication tokens or credentials if the repository is private.

This local metadata enables offline operations and speeds up commands such as helm search and helm install.


Repository Maintenance

Maintaining a Chart Repository involves ensuring the integrity, consistency, and accessibility of the hosted charts and their metadata.

Chart Versioning and Deprecation

Maintainers must manage chart versions adhering to semantic versioning principles to prevent incompatibilities. Deprecated or obsolete charts should be marked accordingly in the index or removed to avoid confusion.

Security and Access Control

Repositories may enforce authentication and authorization mechanisms, including token-based access, SSL/TLS encryption, or integration with private artifact registries to secure chart distribution.

Automation and Continuous Integration

Many organizations automate repository maintenance through CI/CD pipelines that package, version, and publish charts automatically upon source code changes or release events. This ensures that the repository is always up to date with the latest stable versions.

Backup and Availability

To guarantee reliability, repositories should be backed up regularly, and distributed using high-availability infrastructure or content delivery networks (CDNs) to provide fast and resilient access globally.


Usage Workflow

Consumers of Chart Repositories typically follow these steps:

  1. Add the repository to their Helm client using the repository URL.
  2. Update the repository metadata to synchronize the local cache with the remote index.
  3. Search or browse charts available in the repository.
  4. Install or upgrade charts by referencing the repository’s charts with version constraints.
  5. Manage repository configurations as needed, including removing or updating repositories.

This workflow standardizes application deployment on Kubernetes, leveraging Helm’s packaging and templating capabilities combined with the repository’s distribution mechanism.


Protocol and Hosting

Chart Repositories are served over standard HTTP or HTTPS protocols, making them compatible with web servers, object storage services, or specialized Helm repository hosts. Any static file server capable of serving the index.yaml and chart archives can function as a Chart Repository.

Popular hosting options include:

  • Static website hosting on cloud providers (e.g., Amazon S3, Google Cloud Storage).
  • Dedicated Helm repository servers or proxies.
  • Artifact repositories supporting Helm charts (e.g., Harbor, JFrog Artifactory).

The choice of hosting affects scalability, security, and integration capabilities but not the fundamental structure of the repository.


Summary of Key Components

ComponentDescription
index.yamlMetadata catalog indexing all charts and versions
Chart package files.tgz archives containing chart manifests and templates
Repository URLHTTP(S) endpoint serving index.yaml and chart archives
Local client cacheCached repository metadata and optionally chart packages on client

Together, these components form the ecosystem enabling Helm’s powerful packaging and deployment workflows.