Skip to content

AmadeusITGroup/workflow-controller

Repository files navigation

workflow-controller

Join the chat at https://gitter.im/workflow-controller/Lobby

Build Status

Build Status Go Report Card codecov DopeBadge Cool.io

A simple Kubernetes workflow controller. TODO: add more explanations.

Running workflow-controller

locally

$ ./workflow-controller --kubeconfig=$HOME/.kube/config

Now you can create a Workflow resource via

$ kubectl create -f .../examples/hello_workflow/workflow.yaml

At this point the workflow-controller will start to handle the jobs.

Simple deployment

To run workflow-controller in a Kubernetes pod you should run this command

$ kubectl create -f .../deployment/k8s/workflow-controller-rbac.yaml -n kube-system
$ kubectl create -f .../deployment/k8s/workflow-controller-dpl.yaml -n kube-system

Then you may want to test a workflow example like this:

$ kubectl create -f  .../examples/hello_workflow/workflow.yaml

Helm deployment

You can found in the charts folder the workflow-controller the helm chart for deploying the Kubernetes workflow-controller controller.

$ helm install --name wf charts/workflow-controller
NAME:   wf
LAST DEPLOYED: Tue Jan  9 23:41:13 2018
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1beta1/Deployment
NAME                    DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
wf-workflow-controller  1        1        1           0          0s

Developper

How to release the workflow-controller

This project is using goreleaser and an additional script for releasing also the Helm chart.

For starting the delivery, you need to clone this repository, then:

zsh hack/release.sh <version> <remove-git>

a concreate example is: zsh hack/release.sh v1.0.1 upstream

This script:

  • generates locally the helm chart with the requested version.
  • updates the helm repo index file (index.yaml) file with the new release.
  • creates a new changeset with all changes generated by the new release version, then tag this changeset.
  • push changeset and associated tag to the remote git repository.