Helm Plugin
The @stacksolo/plugin-helm transforms Kubernetes resource definitions into production-ready Helm charts, enabling multi-environment deployments and GitOps workflows.
Quick Start
Section titled “Quick Start”# Generate Helm chart (preview)stacksolo deploy --helm --preview
# Generate and deploy via Helmstacksolo deploy --helmConfiguration
Section titled “Configuration”Add Helm settings in your stacksolo.config.json:
{ "project": { "backend": "kubernetes", "kubernetes": { "helm": { "chartVersion": "1.0.0", "appVersion": "v1.2.3" } } }}Generated Chart Structure
Section titled “Generated Chart Structure”.stacksolo/helm-chart/├── Chart.yaml # Chart metadata├── values.yaml # Default values└── templates/ ├── _helpers.tpl # Template helpers ├── namespace.yaml ├── configmap.yaml ├── deployment.yaml ├── service.yaml └── ingress.yamlMulti-Environment Deployments
Section titled “Multi-Environment Deployments”Create environment-specific values files:
values-dev.yaml
replicaCount: 1deployments: api: image: tag: "dev-latest"ingress: host: "api.dev.example.com"values-prod.yaml
replicaCount: 3deployments: api: image: tag: "v1.2.0" resources: limits: cpu: 1000m memory: 1Giingress: host: "api.example.com"Deploy to environments:
# Developmenthelm install myapp .stacksolo/helm-chart \ -f values-dev.yaml -n dev
# Productionhelm install myapp .stacksolo/helm-chart \ -f values-prod.yaml -n productionValues Reference
Section titled “Values Reference”Global
Section titled “Global”| Key | Default | Description |
|---|---|---|
replicaCount | 1 | Default replicas |
image.pullPolicy | IfNotPresent | Pull policy |
resources.limits.cpu | 500m | CPU limit |
resources.limits.memory | 512Mi | Memory limit |
Ingress
Section titled “Ingress”| Key | Default | Description |
|---|---|---|
ingress.enabled | true | Enable ingress |
ingress.className | nginx | Ingress class |
ingress.host | - | Hostname |
ingress.annotations | {} | Annotations |
Per-Deployment
Section titled “Per-Deployment”Under deployments.<name>:
| Key | Default | Description |
|---|---|---|
enabled | true | Enable deployment |
image.repository | - | Image repository |
image.tag | latest | Image tag |
port | 8080 | Container port |
env | {} | Environment vars |
Common Commands
Section titled “Common Commands”# Preview generated manifestshelm template myapp .stacksolo/helm-chart
# Upgrade with new imagehelm upgrade myapp .stacksolo/helm-chart \ --set deployments.api.image.tag=v2.0.0
# Rollbackhelm rollback myapp 1
# Uninstallhelm uninstall myappGitOps Integration
Section titled “GitOps Integration”ArgoCD
apiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: myappspec: source: path: .stacksolo/helm-chart helm: valueFiles: - values-prod.yamlFlux
apiVersion: helm.toolkit.fluxcd.io/v2beta1kind: HelmReleasemetadata: name: myappspec: chart: spec: chart: .stacksolo/helm-chart