Helm Website Documentation

repository·main·Indexed 42 days ago

https://github.com/helm/helm-www

Resources for the helm.sh official website, a Docusaurus-based static site. Includes guidelines for contributing to the project, writing Helm Improvement Proposals (HIPs), managing blog posts, and branding assets. Provides technical instructions for regenerating Helm CLI reference documentation, managing documentation versioning, and configuring Netlify build plugins to optimize Docusaurus build times.

Tokens
206.7K
Snippets
552
Records
829
Agent score
50%

What's inside Helm

  1. What is Helm?

    main

    Helm is a package manager for Kubernetes that allows teams to collaborate on creating, installing, and managing applications.

    Core capabilities include:

    • Finding prepackaged software (charts).
    • Creating and hosting custom packages.
    • Installing packages into any Kubernetes cluster.
    • Querying clusters to view installed and running packages.
    • Managing the lifecycle of packages (update, delete, rollback, or view history).
  2. What is Helm and what can it do?

    main

    Helm is the package manager for Kubernetes. It allows you to define, install, and upgrade applications on a Kubernetes cluster, ranging from single containers to complex applications with many interdependent parts.

    Key Capabilities:

    • Install and manage applications: Deploy pre-packaged applications (like databases or monitoring stacks) using charts instead of manual manifests.
    • Package and share applications: Bundle Kubernetes resources into versioned charts for distribution.
    • Environment-specific configuration: Use the same chart across different environments (dev, staging, prod) by supplying different configuration values.
    • Safe upgrades and rollbacks: Move releases to new versions and return to previous revisions if an upgrade fails.
    • Dependency management: Declare and automatically install other charts that your application requires.
  3. Overview of the Helm Go SDK packages

    main

    The Helm Go SDK allows custom software to programmatically manage Kubernetes deployments using Helm charts. The SDK is functionally separated from the Helm CLI and is designed for use in standalone tooling.

    Key packages include:

    • pkg/action: The primary "client" package for performing Helm actions (e.g., install, list, upgrade). This is the same package used by the Helm CLI.
    • pkg/chart and pkg/chartutil: Helpers for loading and manipulating Helm charts.
    • pkg/cli: Handlers for standard Helm environment variables and subpackages for managing output and values files.
    • pkg/release: Defines the Release object and its various statuses.

    Full API documentation is available at https://pkg.go.dev/helm.sh/helm/v4.

  4. Introduction to the Chart Template Developer's Guide

    main

    The Chart Template Developer's Guide is designed to teach developers how to use Helm's template language to generate Kubernetes manifest files. Manifest files are YAML-formatted resource descriptions that Kubernetes consumes.

    Key areas covered in this guide include:

    • The Helm template language: Understanding the syntax and logic used within templates.
    • Using values: How to inject configuration data into your templates.
    • Template techniques: Advanced patterns and methods for working with templates.
    • Debugging: How to troubleshoot and inspect the output of your templates.
  5. Overview of the Helm 4 Development Process

    main

    Helm 4 is planned as a major version release designed to reduce technical debt and leverage newer Kubernetes capabilities by allowing breaking API and behavioral changes that were restricted in Helm 3 due to strict backwards compatibility guarantees (HIP-0004).

    Key objectives of the Helm 4 process include:

    • Functional Continuity: Ensuring Helm 4 remains largely functionally and feature compatible with Helm 3 to prevent ecosystem splintering and ease user migration.
    • Timeboxed Development: Implementing a time-limited development cycle to ensure meaningful results are delivered within a reasonable timeframe, rather than allowing an open-ended cycle.
    • Transparency: Using a formal process with documented proposals to clarify decision-making and leadership.
    • Documented Changes: Requiring changes to be documented via standard HIPs or reduced "Helm 4 proposals" (H4HIP) to allow for community and maintainer review.
  6. Common Helm CLI actions

    main

    Helm provides several core commands for managing Kubernetes packages (charts):

    • helm search: Search for charts in repositories.
    • helm pull: Download a chart to your local directory for inspection.
    • helm install: Upload and deploy a chart to a Kubernetes cluster.
    • helm list: List the current releases of charts in your cluster.
  7. Manage Helm plugins

    main

    The helm plugin command is used to manage client-side Helm plugins. You can use it to install, list, uninstall, update, package, or verify plugins.

    Note that helm plugin is a parent command; specific actions like install or list are subcommands with their own specific flags and behaviors.

  8. Manage registry authentication with helm registry

    main

    The helm registry command is used to manage authentication for OCI registries. It provides subcommands to log in to or log out from a registry, allowing Helm to interact with private container registries for chart storage and retrieval.

    To perform specific authentication tasks, use the following subcommands:

    • helm registry login: Authenticate with a specific registry.
    • helm registry logout: Remove authentication credentials for a registry.

    For detailed usage of these subcommands, refer to the specific helm registry login and helm registry logout documentation.

  9. Manage chart repositories with helm repo

    main

    The helm repo command is used to manage chart repositories. It provides subcommands to add, list, remove, update, and index repositories.

    Available subcommands include:

    • add: Add a new chart repository.
    • list: List all currently configured chart repositories.
    • remove: Remove one or more chart repositories.
    • update: Update local information of available charts from the repositories.
    • index: Generate an index file from a directory containing packaged charts.
  10. New features in Helm v4

    main

    Helm v4 introduces several architectural improvements and new capabilities compared to v3, focusing on extensibility and modern Kubernetes patterns. Key features include:

    • Redesigned Plugin System: Now supports WebAssembly (Wasm) based plugins.
    • Post-renderers: These are now implemented as plugins.
    • Server-Side Apply: Native support for Kubernetes server-side apply.
    • Improved Resource Watching: Enhanced support for waiting based on kstatus.
    • Local Content-based Caching: Improved performance for items like charts.
    • Modern Logging: Uses slog, allowing the SDK to integrate with modern logging frameworks.
    • Reproducible Builds: Support for reproducible and idempotent builds of chart archives.
    • Updated SDK API: Includes support for multiple chart API versions (with an experimental v3 chart API version planned).
  11. What is a Helm Improvement Proposal (HIP)?

    main

    A HIP (Helm Improvement Proposal) is a design document used to propose major new features, collect community input on specific issues, or document design decisions for the Helm project.

    HIPs are maintained as Markdown files in a versioned repository, providing a historical record of the proposal's evolution. They are heavily influenced by Python's PEP system but adapted for the Helm community's scale.

  12. Overview of Helm Plugin Types

    main

    Helm plugins extend core functionality without requiring Go code in the Helm core. There are three primary plugin types:

    1. CLI plugins (cli/v1): Add new helm sub-commands. They can leverage Helm-specific configuration and context.
    2. Getter plugins (getter/v1): Extend storage and download behavior, allowing Helm to fetch Charts and Plugins from locations beyond local filesystems, OCI registries, or HTTP repositories (e.g., S3 buckets).
    3. Postrenderer plugins (postrenderer/v1): Allow modification of Chart-rendered manifests after rendering but before they are sent to the Kubernetes API. This is useful for modifying community charts you do not own.

    Starting with Helm 4, the plugin system uses apiVersion: v1 to facilitate easier addition of new plugin types in the future.