mirror of
https://github.com/ipedrazas/drone-helm.git
synced 2026-06-26 15:52:33 +08:00
60 lines
2.8 KiB
Markdown
60 lines
2.8 KiB
Markdown
# Helm (Kubernetes) plugin for drone.io
|
|
|
|
[](https://cloud.drone.io/ipedrazas/drone-helm)
|
|
[](https://quay.io/repository/ipedrazas/drone-helm)
|
|
[](http://godoc.org/github.com/ipedrazas/drone-helm)
|
|
[](https://goreportcard.com/report/github.com/ipedrazas/drone-helm)
|
|
[](https://microbadger.com/images/ipedrazas/drone-helm "Get your own image badge on microbadger.com")
|
|
|
|
This plugin allows to deploy a [Helm](https://github.com/kubernetes/helm) chart into a [Kubernetes](https://github.com/kubernetes/kubernetes) cluster.
|
|
|
|
* Current `helm` version: 2.14.1
|
|
* Current `kubectl` version: 1.14.3
|
|
|
|
## Drone Pipeline Usage
|
|
|
|
For the usage information and a listing of the available options please take a look at [the docs](DOCS.md).
|
|
|
|
|
|
Run the local image (or replace `drone-helm` with `quay.io/ipedrazas/drone-helm`:
|
|
|
|
```bash
|
|
docker run --rm \
|
|
-e API_SERVER="https://$(minikube ip):8443" \
|
|
-e KUBERNETES_TOKEN="${KUBERNETES_TOKEN}" \
|
|
-e PLUGIN_NAMESPACE=default \
|
|
-e PLUGIN_SKIP_TLS_VERIFY=true \
|
|
-e PLUGIN_RELEASE=my-release \
|
|
-e PLUGIN_CHART=stable/redis \
|
|
-e PLUGIN_VALUES="tag=TAG,api=API" \
|
|
-e PLUGIN_STRING_VALUES="long_string_value=1234567890" \
|
|
-e PLUGIN_DEBUG=true \
|
|
-e PLUGIN_DRY_RUN=true \
|
|
-e DRONE_BUILD_EVENT=push \
|
|
quay.io/ipedrazas/drone-helm
|
|
```
|
|
|
|
### Troubleshooting
|
|
|
|
If you see this problem: `Error: API Server is needed to deploy.` It's usually because you haven't a secret that specifies the `API_SERVER` or the `KUBERNETES_TOKEN`.
|
|
|
|
As [one000mph](https://github.com/one000mph) commented in an issue, setting the right `PREFIX` and secrets usually solves the problem.
|
|
|
|
```
|
|
export ACTION=add
|
|
export REPO=org/myrepo
|
|
export PREFIX=prod_
|
|
# export CLUSTER_URI, UNENCODED_TOKEN, BASE64_CERT
|
|
drone secret $ACTION --repository $REPO --name "${PREFIX}api_server" --value $CLUSTER_URI
|
|
drone secret $ACTION --repository $REPO --name "${PREFIX}kubernetes_token" --value $UNENCODED_TOKEN
|
|
drone secret $ACTION --repository $REPO --name "${PREFIX}kubernetes_certificate" --value $BASE64_CERT```
|
|
```
|
|
|
|
### Contribution
|
|
|
|
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=ipedrazas DRONE_REPO_NAME=drone-helm drone exec```
|
|
* on your server just make sure you have DOCKER_USERNAME, DOCKER_PASSWORD, and DOCKERHUB_REPO set as secrets
|