This is the central repository for Mintplex Labs Helm Charts, providing production-ready Kubernetes deployments for various applications.
- Usage
- Available Charts
- Repository Architecture
- Development Workflow
- GitHub Pages Integration
- Contributing
- Troubleshooting
Helm must be installed to use the charts. Please refer to Helm's documentation to get started.
Once Helm is set up properly, add the repo as follows:
helm repo add mintplex-labs https://mintplex-labs.github.io/helm-charts
If you had already added this repo earlier, run helm repo update
to retrieve the latest versions of the packages:
helm repo update
You can then run helm search repo mintplex-labs
to see the charts:
helm search repo mintplex-labs
Install a chart with:
helm install my-release mintplex-labs/<chart-name>
Charts are also available via OCI registry:
# Install directly from OCI registry
helm install my-release oci://ghcr.io/mintplex-labs/helm-charts/<chart-name> --version <version>
Download chart packages directly from GitHub Releases:
# Download and install from release assets
wget https://github.com/mintplex-labs/helm-charts/releases/download/<chart-name>-<version>/<chart-name>-<version>.tgz
helm install my-release ./<chart-name>-<version>.tgz
This repository follows a structured approach to manage and distribute Helm charts:
βββ .github/
β βββ workflows/
β βββ helm.yml # CI/CD pipeline for chart releases
βββ charts/
β βββ <chart-name>/
β βββ Chart.yaml # Chart metadata
β βββ values.yaml # Default configuration values
β βββ README.md # Chart-specific documentation
β βββ templates/ # Kubernetes manifest templates
βββ index.html # GitHub Pages landing page
βββ README.md # This file
main
: Primary development branch containing chart sourcesgh-pages
: Auto-generated branch serving the Helm repository via GitHub Pages
This repository uses a sophisticated CI/CD pipeline that automatically:
- Builds and validates charts when changes are pushed to
main
- Publishes charts to multiple distribution channels
- Updates the repository index for seamless chart discovery
When you push changes to the charts/
directory on the main
branch, the following happens automatically:
# The CI pipeline performs:
- helm dependency build # Downloads chart dependencies
- helm lint # Validates chart syntax and best practices
- helm package # Creates distributable .tgz files
a) OCI Registry (GitHub Container Registry)
- Charts are pushed to
ghcr.io/mintplex-labs/helm-charts/<chart-name>
- Enables modern
helm install oci://
installation method - Provides container-native distribution
b) GitHub Releases
- Creates individual releases tagged as
<chart-name>-<version>
- Attaches chart
.tgz
files as release assets - Generates rich release notes with installation instructions
c) Traditional Helm Repository (GitHub Pages)
- Updates the
gh-pages
branch with chart packages - Generates/updates
index.yaml
for Helm repository discovery - Serves charts via
https://mintplex-labs.github.io/helm-charts
The pipeline automatically:
- Downloads all chart packages from GitHub Releases
- Generates a new
index.yaml
with all available charts and versions - Updates the GitHub Pages site with the latest repository index
- Copies the main
index.html
landing page to the gh-pages branch
The repository leverages GitHub Pages to provide a traditional Helm repository endpoint:
gh-pages/
βββ README.md # README (copied from main branch)
βββ index.html # Landing page (copied from main branch)
βββ index.yaml # Helm repository index (auto-generated)
-
Helm Repository:
https://mintplex-labs.github.io/helm-charts
- Accessed via
helm repo add
commands - Serves
index.yaml
for chart discovery
- Accessed via
-
Landing Page:
https://mintplex-labs.github.io/helm-charts
- User-friendly web interface
- Installation instructions and chart documentation
-
Direct Package Access:
https://mintplex-labs.github.io/helm-charts/packages/<chart-name>-<version>.tgz
- Direct download links for chart packages
The index.yaml
file is the heart of a Helm repository, containing:
- Chart metadata (name, version, description)
- Download URLs for chart packages
- Checksums for package integrity
- Dependencies and requirements
Example structure:
apiVersion: v1
entries:
chart-name:
- name: chart-name
version: 1.0.0
appVersion: "1.0"
description: Chart description
urls:
- https://mintplex-labs.github.io/helm-charts/packages/chart-name-1.0.0.tgz
digest: sha256:...
created: "2025-10-12T10:00:00Z"
-
Create Chart Structure:
mkdir -p charts/my-new-chart cd charts/my-new-chart helm create . # Or create manually
-
Update Chart.yaml:
apiVersion: v2 name: my-new-chart description: A Helm chart for my application version: 0.1.0 appVersion: "1.0"
-
Configure values.yaml:
- Set sensible defaults
- Document all configuration options
- Follow consistent naming conventions
-
Create README.md:
- Installation instructions
- Configuration options table
- Usage examples
- Bump Version: Update
version
inChart.yaml
- Update App Version: Update
appVersion
if the underlying application version changed - Document Changes: Update the chart's README.md with changes
- Test Locally:
helm lint charts/my-chart helm template test charts/my-chart
Follow Semantic Versioning:
- MAJOR: Incompatible API changes
- MINOR: Backwards-compatible functionality additions
- PATCH: Backwards-compatible bug fixes
The workflow is triggered by:
- Path Filter: Only runs when files in
charts/**
are modified - Branch Filter: Only runs on pushes to
main
branch
Key workflow steps:
- Setup: Configures Helm, Git, and required tools
- Validation: Lints and validates all charts
- Packaging: Creates distributable chart packages
- Publishing: Pushes to OCI registry and creates GitHub releases
- Repository Update: Updates GitHub Pages with new chart index
The workflow uses these environment variables:
REGISTRY
: OCI registry URL (ghcr.io/mintplex-labs/helm-charts
)GITHUB_TOKEN
: Automatically provided for authenticationGITHUB_ACTOR
: GitHub username for Git configuration
The workflow requires these permissions:
permissions:
contents: write # For creating releases and updating gh-pages
packages: write # For pushing to GitHub Container Registry
pull-requests: write # For PR automation (future use)
- Check Workflow Status: Verify the GitHub Actions workflow completed successfully
- Verify Chart Structure: Ensure
Chart.yaml
is valid and properly formatted - Check Version: Ensure you bumped the chart version in
Chart.yaml
- Repository Cache: Run
helm repo update
to refresh your local cache
- Authentication: Verify GitHub Container Registry permissions
- Package Visibility: Check if packages are public in GitHub settings
- Version Conflicts: Ensure you're not trying to overwrite an existing version
- Workflow Permissions: Verify the workflow has
contents: write
permission - Branch Protection: Check if
gh-pages
branch has protection rules - Pages Settings: Ensure GitHub Pages is enabled and pointing to
gh-pages
branch
# Lint charts
helm lint charts/*
# Test template rendering
helm template test-release charts/my-chart
# Test installation (with dry-run)
helm install test-release charts/my-chart --dry-run --debug
# Package locally
helm package charts/my-chart
- Check Workflow Logs: Navigate to Actions tab in GitHub
- Validate YAML: Use
yamllint
to check chart YAML files - Test Locally: Reproduce the workflow steps locally before pushing
- Issues: Create an issue in this repository for bugs or feature requests
- Discussions: Use GitHub Discussions for questions and community support
- Documentation: Refer to Helm's official documentation
Maintainer: Mintplex Labs Team Repository: https://github.com/mintplex-labs/helm-charts Website: https://mintplexlabs.com
Credit: Sam Culley for the original repository structure and foundation.