Skip to main content

Prerequisites

Before installing any Douban Helm Charts, ensure your environment meets these requirements:

Required Components

Kubernetes Cluster

Version 1.19 or higher running and accessible

Helm

Version 3.0 or higher installed locally

kubectl

Configured to communicate with your cluster

Cluster Permissions

Sufficient RBAC permissions to create resources

Verify Your Setup

Check your Kubernetes cluster:
kubectl cluster-info
kubectl version --short
Check your Helm installation:
helm version
Expected output:
version.BuildInfo{Version:"v3.14.0", GitCommit:"...", GitTreeState:"clean", GoVersion:"go1.21.5"}
Helm v2 is no longer supported. Ensure you’re using Helm v3 or later.

Installing Helm

If you don’t have Helm installed, follow these platform-specific instructions:
Using Homebrew:
brew install helm
Verify installation:
helm version

Repository Setup

Adding the Douban Repository

Add the Douban Helm Charts repository:
helm repo add douban https://douban.github.io/charts/
Successful output:
"douban" has been added to your repositories

Updating Repository Cache

Update your local cache to fetch the latest chart versions:
helm repo update
Output:
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "douban" chart repository
Update Complete. Happy Helming!
Run helm repo update regularly to ensure you have access to the latest chart versions.

Verifying Repository Configuration

List all configured repositories:
helm repo list
Expected output:
NAME      URL
douban    https://douban.github.io/charts/

Browsing Available Charts

List All Douban Charts

helm search repo douban
Output:
NAME                                    CHART VERSION   APP VERSION     DESCRIPTION
douban/aliyun-exporter                  0.1.0          1.0.0           Aliyun CloudMonitor exporter for Prometheus
douban/helpdesk                         0.3.3          0.2.0           A Helm chart for Douban Helpdesk
douban/nginx                            0.4.1          1.16.0          A Helm chart for Kubernetes
douban/overlord                         0.1.0          1.0.0           Distributed caching service
...

Search for Specific Charts

Search by keyword:
helm search repo douban/nginx
Search across all versions:
helm search repo douban/nginx --versions

View Chart Information

View chart metadata:
helm show chart douban/nginx
View default values:
helm show values douban/nginx
View full chart information:
helm show all douban/nginx

Installing Charts

Basic Installation

Install a chart with default values:
helm install [RELEASE_NAME] douban/[CHART_NAME]
Example:
helm install my-nginx douban/nginx

Installation with Custom Values

Using a Values File

Create a custom values file custom-values.yaml:
custom-values.yaml
replicaCount: 3

image:
  repository: nginx
  tag: "1.25.0"
  pullPolicy: IfNotPresent

resources:
  limits:
    cpu: 200m
    memory: 256Mi
  requests:
    cpu: 100m
    memory: 128Mi

service:
  type: ClusterIP
  port: 80

autoscaling:
  enabled: true
  minReplicas: 2
  maxReplicas: 10
  targetCPUUtilizationPercentage: 70
Install with custom values:
helm install my-nginx douban/nginx -f custom-values.yaml

Using —set Flags

Override specific values inline:
helm install my-nginx douban/nginx \
  --set replicaCount=3 \
  --set image.tag=1.25.0 \
  --set resources.requests.memory=128Mi

Combining Multiple Values Files

helm install my-nginx douban/nginx \
  -f base-values.yaml \
  -f production-values.yaml \
  --set service.type=LoadBalancer
Values are merged in order. Later values override earlier ones: file1 < file2 < —set flags

Installation Options

Install in a Specific Namespace

helm install my-nginx douban/nginx --namespace production --create-namespace

Dry Run (Preview Installation)

See what would be installed without actually installing:
helm install my-nginx douban/nginx --dry-run --debug

Wait for Resources to be Ready

helm install my-nginx douban/nginx --wait --timeout 5m

Generate Kubernetes Manifests

Generate YAML without installing:
helm template my-nginx douban/nginx > nginx-manifests.yaml

Common Installation Patterns

Pattern 1: Web Application with Ingress

web-app-values.yaml
replicaCount: 2

image:
  repository: nginx
  tag: "1.25.0"

ingress:
  enabled: true
  className: nginx
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
  hosts:
    - host: app.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: app-tls
      hosts:
        - app.example.com

resources:
  limits:
    cpu: 500m
    memory: 512Mi
  requests:
    cpu: 250m
    memory: 256Mi
helm install web-app douban/nginx -f web-app-values.yaml

Pattern 2: Application with Monitoring

monitored-app-values.yaml
replicaCount: 3

serviceMonitor:
  enabled: true

prometheusRule:
  enabled: true
  additionalLabels:
    release: prometheus-operator
  rules:
    - alert: HighErrorRate
      expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.05
      annotations:
        summary: High HTTP error rate detected
helm install monitored-app douban/nginx -f monitored-app-values.yaml

Pattern 3: High-Availability Deployment

ha-values.yaml
replicaCount: 5

autoscaling:
  enabled: true
  minReplicas: 3
  maxReplicas: 20
  targetCPUUtilizationPercentage: 60
  targetMemoryUtilizationPercentage: 80

affinity:
  podAntiAffinity:
    preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchExpressions:
              - key: app.kubernetes.io/name
                operator: In
                values:
                  - nginx
          topologyKey: kubernetes.io/hostname

resources:
  limits:
    cpu: 1000m
    memory: 1Gi
  requests:
    cpu: 500m
    memory: 512Mi
helm install ha-app douban/nginx -f ha-values.yaml

Upgrading Charts

Basic Upgrade

Upgrade to the latest chart version:
helm upgrade my-nginx douban/nginx

Upgrade with New Values

helm upgrade my-nginx douban/nginx -f updated-values.yaml

Upgrade to Specific Chart Version

helm upgrade my-nginx douban/nginx --version 0.4.1

Upgrade with Rollback on Failure

helm upgrade my-nginx douban/nginx --atomic --timeout 5m
The --atomic flag automatically rolls back changes if the upgrade fails.

Reuse Values from Previous Release

helm upgrade my-nginx douban/nginx --reuse-values

View Upgrade Diff

Before upgrading, see what would change:
helm diff upgrade my-nginx douban/nginx -f new-values.yaml

Managing Releases

List Releases

List all releases in current namespace:
helm list
List releases across all namespaces:
helm list --all-namespaces
Include uninstalled and failed releases:
helm list --all

View Release Status

helm status my-nginx

View Release History

helm history my-nginx
Output:
REVISION  UPDATED                   STATUS      CHART         APP VERSION  DESCRIPTION
1         Thu Mar 5 10:00:00 2026   superseded  nginx-0.4.0  1.16.0       Install complete
2         Thu Mar 5 11:00:00 2026   deployed    nginx-0.4.1  1.16.0       Upgrade complete

Get Release Values

View values used in current release:
helm get values my-nginx
View all values (including defaults):
helm get values my-nginx --all

Get Release Manifest

View rendered Kubernetes manifests:
helm get manifest my-nginx

Rolling Back Releases

Rollback to Previous Revision

helm rollback my-nginx

Rollback to Specific Revision

helm rollback my-nginx 1

Rollback with Wait

helm rollback my-nginx --wait --timeout 5m

Uninstalling Charts

Basic Uninstall

helm uninstall my-nginx

Uninstall with Release History Retention

Keep release history for potential rollback:
helm uninstall my-nginx --keep-history

Uninstall from Specific Namespace

helm uninstall my-nginx --namespace production

Advanced Topics

Using Chart Dependencies

Some charts may have dependencies. Install with dependency update:
helm dependency update douban/helpdesk
helm install my-helpdesk douban/helpdesk

Working with Chart Repositories

Remove a repository:
helm repo remove douban
Re-add after removal:
helm repo add douban https://douban.github.io/charts/

Debugging Failed Installations

Enable debug output:
helm install my-nginx douban/nginx --debug
View pod logs:
kubectl logs -l app.kubernetes.io/name=nginx
Describe failing resources:
kubectl describe pod -l app.kubernetes.io/name=nginx

Best Practices

Version Pinning

Always specify chart versions in production:
helm install my-app douban/nginx --version 0.4.1

Values Management

Use values files for configuration management and version control:
helm install my-app douban/nginx -f prod-values.yaml

Dry Run Testing

Always test before applying to production:
helm upgrade my-app douban/nginx --dry-run --debug

Namespace Isolation

Use separate namespaces for different environments:
helm install my-app douban/nginx -n production

Resource Management

Always set resource limits and requests:
resources:
  limits:
    cpu: 500m
    memory: 512Mi
  requests:
    cpu: 250m
    memory: 256Mi

Monitoring Integration

Enable monitoring for production deployments:
serviceMonitor:
  enabled: true

prometheusRule:
  enabled: true

Troubleshooting

Chart Not Found

helm repo update
helm search repo douban

Installation Timeout

Increase timeout:
helm install my-nginx douban/nginx --timeout 10m

Resource Conflicts

Check existing resources:
kubectl get all -l app.kubernetes.io/name=nginx

Permission Denied

Verify RBAC permissions:
kubectl auth can-i create deployments
kubectl auth can-i create services

Next Steps

Chart Documentation

Explore detailed documentation for each available chart

Configuration Reference

Learn about advanced configuration options

Build docs developers (and LLMs) love