Nelm is meant to be a Helm 3 replacement, providing first-class Helm-chart support, yet improving on what Helm 3 offers.
Nelm is a standalone tool, but is also used as the deployment engine in werf.
Nelm is based on Helm 3 — some parts of it improved, but some are rewritten from scratch (like the deployment subsystem) to introduce:
terraform plan
-like capabilities- Replacement of 3-Way Merge with Server-Side Apply
- Improved resource tracking built from the ground up
- Advanced resource ordering capabilities
- Flexible resource lifecycle management
- Fixes for numerous Helm 3 issues like this one and other improvements
- Build and install Nelm:
git clone https://github.com/werf/nelm
cd nelm
go build ./cmd/nelm/
sudo install -t /usr/local/bin nelm
- Create new chart:
mkdir ../mychart
cd ../mychart
cat > Chart.yaml <<EOF
apiVersion: v2
name: mychart
version: 1.0.0
dependencies:
- name: cert-manager
version: 1.13.3
repository: https://charts.jetstack.io
EOF
cat > values.yaml <<EOF
cert-manager:
installCRDs: true
startupapicheck:
enabled: false
EOF
nelm chart dependency download
- Check what's going to happen on next release:
nelm release plan install -n myproject -r myproject
- Deploy new release:
nelm release install -n myproject -r myproject
- Download werf v2
- Create new project:
git init myproject
cd myproject
mkdir .helm
cat > .helm/Chart.yaml <<EOF
dependencies:
- name: cert-manager
version: 1.13.3
repository: https://charts.jetstack.io
EOF
cat > .helm/values.yaml <<EOF
cert-manager:
installCRDs: true
startupapicheck:
enabled: false
EOF
cat > werf.yaml <<EOF
configVersion: 1
project: myproject
EOF
cat > .gitignore <<EOF
/.helm/charts/*.tgz
EOF
werf helm dependency update .helm
git add .
git commit -m init
- Check what's going to happen on next release:
werf plan --env dev
- Deploy new release:
werf converge --env dev
- Proceed to werf documentation to learn more.