helm-charts

Helm Charts Repository

This repository contains Helm charts for deploying applications to Kubernetes. Helm is a package manager for Kubernetes that simplifies the deployment and management of applications.

What is Helm?

Helm is the package manager for Kubernetes. It helps you:

Key Concepts

Prerequisites

Before using Helm, ensure you have:

Installing Helm

macOS

brew install helm

Linux

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Windows

choco install kubernetes-helm

Verify Installation

helm version

Repository Setup

Add This Repository

helm repo add novacaap https://novacaap.github.io/helm-chart
helm repo update

List Available Charts

helm search repo novacaap

Available Charts

This repository contains the following Helm charts:

For detailed documentation on each chart, see their respective README files in the chart directories.

Essential Helm Commands

Repository Commands

Add a Repository

helm repo add <repo-name> <repo-url>

Example:

helm repo add novacaap https://novacaap.github.io/helm-chart

List Repositories

helm repo list

Update Repository Index

helm repo update

Remove a Repository

helm repo remove <repo-name>

Search Charts

# Search in all repositories
helm search repo <keyword>

# Search in a specific repository
helm search repo <repo-name>/<chart-name>

Installation Commands

Install a Chart

helm install <release-name> <repo-name>/<chart-name>

Example:

helm install my-app novacaap/acute

Install with Custom Values

helm install <release-name> <repo-name>/<chart-name> -f values.yaml

Install with Inline Values

helm install <release-name> <repo-name>/<chart-name> \
  --set key1=value1 \
  --set key2=value2

Install to Specific Namespace

helm install <release-name> <repo-name>/<chart-name> -n <namespace> --create-namespace

Install with Dry Run (Preview)

helm install <release-name> <repo-name>/<chart-name> --dry-run --debug

Upgrade Commands

Upgrade a Release

helm upgrade <release-name> <repo-name>/<chart-name>

Upgrade with Values File

helm upgrade <release-name> <repo-name>/<chart-name> -f values.yaml

Upgrade with Rollback on Failure

helm upgrade <release-name> <repo-name>/<chart-name> --atomic

Upgrade with Timeout

helm upgrade <release-name> <repo-name>/<chart-name> --timeout 5m

List and Status Commands

List All Releases

helm list

List Releases in Namespace

helm list -n <namespace>

List All Releases (Including Deleted)

helm list --all

Show Release Status

helm status <release-name>

Show Release History

helm history <release-name>

Uninstall Commands

Uninstall a Release

helm uninstall <release-name>

Uninstall with Keep History

helm uninstall <release-name> --keep-history

Rollback Commands

Rollback to Previous Version

helm rollback <release-name>

Rollback to Specific Revision

helm rollback <release-name> <revision-number>

Template and Debug Commands

Render Templates Locally

helm template <release-name> <repo-name>/<chart-name>

Render with Values

helm template <release-name> <repo-name>/<chart-name> -f values.yaml

Validate Chart

helm lint <chart-path>

Show Chart Values

helm show values <repo-name>/<chart-name>

Show Chart Information

helm show chart <repo-name>/<chart-name>

Show All Chart Information

helm show all <repo-name>/<chart-name>

Package Commands

Package a Chart

helm package <chart-path>

Package with Version

helm package <chart-path> --version 1.0.0

Create Index File

helm repo index <directory>

Common Workflows

Basic Deployment Workflow

  1. Add the repository

    helm repo add novacaap https://novacaap.github.io/helm-chart
    helm repo update
    
  2. Search for charts

    helm search repo novacaap
    
  3. View chart values

    helm show values novacaap/acute
    
  4. Create custom values file

    helm show values novacaap/acute > my-values.yaml
    # Edit my-values.yaml with your configuration
    
  5. Install the chart

    helm install my-release novacaap/acute -f my-values.yaml
    
  6. Check status

    helm status my-release
    kubectl get pods
    
  7. Upgrade when needed

    helm upgrade my-release novacaap/acute -f my-values.yaml
    
  8. Rollback if needed

    helm rollback my-release
    

Development Workflow

  1. Clone and modify chart locally

    git clone https://github.com/novacaap/helm-charts.git
    cd helm-chart/acute
    # Make your changes
    
  2. Lint the chart

    helm lint .
    
  3. Test with dry-run

    helm install test-release . --dry-run --debug
    
  4. Package the chart

    helm package .
    
  5. Test installation

    helm install test-release ./acute-1.0.0.tgz
    

Values Files

Values files allow you to customize chart deployments. You can:

Values Precedence

  1. --set command line arguments (highest priority)
  2. -f or --values files
  3. Chart’s values.yaml (lowest priority)

Best Practices

  1. Always use values files for production deployments
  2. Version your values files in version control
  3. Use namespaces to organize releases
  4. Test with dry-run before actual deployment
  5. Keep release names descriptive and consistent
  6. Use --atomic flag for critical upgrades
  7. Monitor releases with helm status and kubectl
  8. Document custom values for team knowledge sharing

Troubleshooting

Check Release Status

helm status <release-name>

View Release Manifest

helm get manifest <release-name>

View Release Values

helm get values <release-name>

View All Release Information

helm get all <release-name>

Debug Template Rendering

helm template <release-name> <chart> --debug

Check Kubernetes Resources

kubectl get all -l app.kubernetes.io/instance=<release-name>

View Pod Logs

kubectl logs -l app.kubernetes.io/instance=<release-name>

Describe Resources

kubectl describe pod -l app.kubernetes.io/instance=<release-name>

Useful Tips

Additional Resources

Repository Information

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

See individual chart directories for license information.