ef66bc0f92
I was unhappy with the comments-in-yaml approach; it required duplicating a lot of information and it was hard to find a balance between "usefully thorough" and "readably concise."" |
||
---|---|---|
cmd/drone-helm | ||
docs | ||
internal | ||
.drone.yml | ||
.gitignore | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
kubeconfig | ||
README.md |
Drone plugin for Helm 3
This plugin provides an interface between Drone and Helm 3:
- Lint your charts
- Deploy your service
- Delete your service
The plugin is inpsired by drone-helm, which fills the same role for Helm 2. It provides a comparable feature-set and the configuration settings are backwards-compatible.
Example configuration
The examples below give a minimal and sufficient configuration for each use-case. For a full description of each command's settings, see docs/parameter_reference.md.
Linting
steps:
- name: lint
image: pelotech/drone-helm3
settings:
helm_command: lint
chart: ./
Deployment
steps:
- name: deploy
image: pelotech/drone-helm3
settings:
helm_command: upgrade
chart: ./
release: my-project
environment:
API_SERVER: https://my.kubernetes.installation/clusters/a-1234
KUBERNETES_TOKEN:
from_secret: kubernetes_token
Deletion
steps:
- name: uninstall
image: pelotech/drone-helm3
settings:
helm_command: uninstall
release: my-project
environment:
API_SERVER: https://my.kubernetes.installation/clusters/a-1234
KUBERNETES_TOKEN:
from_secret: kubernetes_token
Upgrading from drone-helm
The setting names for drone-helm3 are backwards-compatible with those for drone-helm, so the only mandatory step is to update the image
clause so that drone uses the new plugin.
There are some recommended changes, though:
-
If your
service_account
is currentlytiller
, change it to a service account with more restricted permissions.- If possible, remove the tiller account entirely, since its superuser status presents a security risk.
-
Remove outdated settings that have no effect in drone-helm3:
-
purge
-- this is the default behavior in Helm 3 -
recreate_pods
-
tiller_ns
-
upgrade
-
canary_image
-
client_only
-
stable_repo_url