An open API service indexing awesome lists of open source software.

https://github.com/amadeusitgroup/workflow-controller

Kubernetes workflow controller
https://github.com/amadeusitgroup/workflow-controller

cronjob job kubernetes kubernetes-controller workflow

Last synced: 6 months ago
JSON representation

Kubernetes workflow controller

Awesome Lists containing this project

README

          

# workflow-controller

[![Join the chat at https://gitter.im/workflow-controller/Lobby](https://badges.gitter.im/workflow-controller/Lobby.svg)](https://gitter.im/workflow-controller/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

### Build Status
[![Build Status](https://travis-ci.org/AmadeusITGroup/workflow-controller.svg?branch=master)](https://travis-ci.org/AmadeusITGroup/workflow-controller)
[![Go Report Card](https://goreportcard.com/badge/github.com/amadeusitgroup/workflow-controller)](https://goreportcard.com/report/github.com/amadeusitgroup/workflow-controller)
[![codecov](https://codecov.io/gh/amadeusitgroup/workflow-controller/branch/master/graph/badge.svg)](https://codecov.io/gh/amadeusitgroup/workflow-controller)
![DopeBadge](https://img.shields.io/badge/Hightower-dope-C0C0C0.svg)
![Cool.io](https://img.shields.io/badge/project-COOL-green.svg)

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

## Running workflow-controller

### locally

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

Now you can create a Workflow resource via

```shell
$ 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

```shell
$ 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:

```shell
$ 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.

```shell
$ 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](https://goreleaser.com/) and an additional script for releasing also the Helm chart.

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

```shell
zsh hack/release.sh
```

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.