Go to file
Charles Martinot 4dd07c4a73 Handle arrays in deployment 2017-02-08 13:45:22 +08:00
Dockerfile First version 2017-01-13 18:07:48 +08:00
README.md Handle arrays in deployment 2017-02-08 13:45:22 +08:00
update.sh Handle arrays in deployment 2017-02-08 13:45:22 +08:00

README.md

Kubernetes plugin for drone.io

This plugin allows to update a Kubernetes deployment.

Usage

This pipeline will update the my-deployment deployment with the image tagged DRONE_COMMIT_SHA:8

pipeline:
    deploy:
        image: quay.io/honestbee/drone-kubernetes
        deployment: my-deployment
        repo: myorg/myrepo
        container: my-container
        tag: ${DRONE_COMMIT_SHA:8}

Deploying several new containers, eg in a scheduler-worker setup.

pipeline:
    deploy:
        image: quay.io/honestbee/drone-kubernetes
        deployment: [server-deploy, worker-deploy]
        repo: myorg/myrepo
        container: my-container
        tag: ${DRONE_COMMIT_SHA:8}

This more complex example demonstrates how to deploy to several environments based on the branch, in a app namespace

pipeline:
    deploy-staging:
        image: quay.io/honestbee/drone-kubernetes
        kubernetes_server: ${KUBERNETES_SERVER_STAGING}
        kubernetes_token: ${KUBERNETES_TOKEN_STAGING}
        deployment: my-deployment
        repo: myorg/myrepo
        container: my-container
        namespace: app
        tag: ${DRONE_COMMIT_SHA:8}
        when:
            branch: [ staging ]

    deploy-prod:
        image: quay.io/honestbee/drone-kubernetes
        kubernetes_server: ${KUBERNETES_SERVER_PROD}
        kubernetes_token: ${KUBERNETES_TOKEN_PROD}
        deployment: my-deployment
        repo: myorg/myrepo
        container: my-container
        namespace: app
        tag: ${DRONE_COMMIT_SHA:8}
        when:
            branch: [ master ]

Required secrets

drone secret add --image=honestbee/drone-kubernetes \
    your-user/your-repo KUBERNETES_SERVER https://mykubernetesapiserver


drone secret add --image=honestbee/drone-kubernetes \
    your-user/your-repo KUBERNETES_TOKEN eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJ...

To do

Replace the current kubectl bash script with a go implementation.

Special thanks

Inspired by drone-helm.