.github | ||
assets | ||
cmd/drone-helm | ||
docs | ||
internal | ||
.drone.yml | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
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: ./
Installation
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
Uninstallation
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
drone-helm3 is largely backwards-compatible with drone-helm. There are some known differences:
-
You'll need to migrate the deployments in the cluster helm-v2-to-helm-v3.
-
The
prefix
setting is no longer supported. If you were relying on theprefix
setting withsecrets: [...]
, you'll need to switch to thefrom_secret
syntax. -
Several settings no longer have any effect. The plugin will produce warnings if any of these are present:
purge
-- this is the default behavior in Helm 3recreate_pods
tiller_ns
upgrade
canary_image
client_only
stable_repo_url
Since helm 3 does not require Tiller, we also recommend switching to a service account with less-expansive permissions.
Contributing
This repo is setup in a way that if you enable a personal drone server to build your fork it will build and publish your image (makes it easier to test PRs and use the image till the contributions get merged)
- Build local
DRONE_REPO_OWNER=josmo DRONE_REPO_NAME=drone-ecs drone exec
- on your server (or cloud.drone.io) just make sure you have DOCKER_USERNAME, DOCKER_PASSWORD, and PLUGIN_REPO set as secrets