diff --git a/README.md b/README.md index ad98379..3214167 100644 --- a/README.md +++ b/README.md @@ -6,95 +6,94 @@ This plugin allows to deploy a [Helm](https://github.com/kubernetes/helm) chart For example, this configuration will deploy my-app using a chart located in the repo called `my-chart` - - pipeline: - helm_deploy: - image: quay.io/ipedrazas/drone-helm - skip_tls_verify: true - chart: ./charts/my-chart - release: ${DRONE_BRANCH} - values: secret.password=${SECRET_PASSWORD},image.tag=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:7} - prefix: STAGING - debug: true - when: - branch: [master] +```YAML +pipeline: + helm_deploy: + image: quay.io/ipedrazas/drone-helm + skip_tls_verify: true + chart: ./charts/my-chart + release: ${DRONE_BRANCH} + values: secret.password=${SECRET_PASSWORD},image.tag=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:7} + prefix: STAGING + debug: true + when: + branch: [master] +``` There are two secrets you have to create (Note that if you specify the prefix, your secrets have to be created using that prefix): - drone secret add --image=quay.io/ipedrazas/drone-helm \ - your-user/your-repo STAGING_API_SERVER https://mykubernetesapiserver +```Bash +drone secret add --image=quay.io/ipedrazas/drone-helm \ + your-user/your-repo STAGING_API_SERVER https://mykubernetesapiserver +drone secret add --image=quay.io/ipedrazas/drone-helm \ + your-user/your-repo STAGING_KUBERNETES_TOKEN eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJ... - drone secret add --image=quay.io/ipedrazas/drone-helm \ - your-user/your-repo STAGING_KUBERNETES_TOKEN eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJ... - - - drone secret add --image=quay.io/ipedrazas/drone-helm \ - your-user/your-repo STAGING_SECRET_PASSWORD Sup3rS3cr3t +drone secret add --image=quay.io/ipedrazas/drone-helm \ + your-user/your-repo STAGING_SECRET_PASSWORD Sup3rS3cr3t +``` `Prefix` helps you to use the same block in different environments: +```YAML +pipeline: + helm_deploy_staging: + image: quay.io/ipedrazas/drone-helm + skip_tls_verify: true + chart: ./charts/my-chart + release: ${DRONE_BRANCH} + values: secret.password=${SECRET_PASSWORD},image.tag=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:7} + prefix: STAGING + debug: true + when: + branch: + exclude: [ master ] - pipeline: - helm_deploy_staging: - image: quay.io/ipedrazas/drone-helm - skip_tls_verify: true - chart: ./charts/my-chart - release: ${DRONE_BRANCH} - values: secret.password=${SECRET_PASSWORD},image.tag=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:7} - prefix: STAGING - debug: true - when: - branch: - exclude: [ master ] - - - pipeline_production: - helm_deploy: - image: quay.io/ipedrazas/drone-helm - skip_tls_verify: true - chart: ./charts/my-chart - release: ${DRONE_BRANCH} - values: secret.password=${SECRET_PASSWORD},image.tag=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:7} - prefix: PROD - debug: true - when: - branch: [master] - +pipeline_production: + helm_deploy: + image: quay.io/ipedrazas/drone-helm + skip_tls_verify: true + chart: ./charts/my-chart + release: ${DRONE_BRANCH} + values: secret.password=${SECRET_PASSWORD},image.tag=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:7} + prefix: PROD + debug: true + when: + branch: [master] +``` This last block defines how the plugin will deploy To test the plugin, you can run `minikube` and just run the docker image as follows: - - - docker run --rm \ - -e PLUGIN_API_SERVER=https://192.168.64.5:8443 \ - -e PLUGIN_TOKEN="" \ - -e PLUGIN_NAMESPACE=default \ - -e PLUGIN_SKIP_TLS_VERIFY=true \ - -e PLUGIN_RELEASE=my-release \ - -e PLUGIMN_CHART=stable/redis \ - -e PLUGIN_VALUES="tag=TAG,api=API" \ - -e PLUGIN_DEBUG=true \ - -e PLUGIN_DRY_RUN=true \ - -e DRONE_BUILD_EVENT=push \ - quay.io/ipedrazas/drone-helm - +```Bash +docker run --rm \ + -e PLUGIN_API_SERVER=https://192.168.64.5:8443 \ + -e PLUGIN_TOKEN="" \ + -e PLUGIN_NAMESPACE=default \ + -e PLUGIN_SKIP_TLS_VERIFY=true \ + -e PLUGIN_RELEASE=my-release \ + -e PLUGIMN_CHART=stable/redis \ + -e PLUGIN_VALUES="tag=TAG,api=API" \ + -e PLUGIN_DEBUG=true \ + -e PLUGIN_DRY_RUN=true \ + -e DRONE_BUILD_EVENT=push \ + quay.io/ipedrazas/drone-helm +``` This plugin installs [Tiller](https://github.com/kubernetes/helm/blob/master/docs/architecture.md) in the cluster, if you want to specify the namespace where `tiller` ins installed, use the `tiller_ns` attribute. The following example will install `tiller` in the `operations` namespace: - - pipeline_production: - helm_deploy: - image: quay.io/ipedrazas/drone-helm - skip_tls_verify: true - chart: ./charts/my-chart - release: ${DRONE_BRANCH} - values: image.tag=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:7} - prefix: PROD - tiller_ns: operations - when: - branch: [master] - +```YAML +pipeline_production: + helm_deploy: + image: quay.io/ipedrazas/drone-helm + skip_tls_verify: true + chart: ./charts/my-chart + release: ${DRONE_BRANCH} + values: image.tag=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:7} + prefix: PROD + tiller_ns: operations + when: + branch: [master] +``` Happy Helming!