provider-generic-workflows
provider-generic-workflows
is a generic provider which uses argo workflows for managing the external resource. This will reduce the effort required for building a new managed resource. It will also enable ease of integration with existing automation
Some of the use-cases:
- Create a new managed resource that uses terraform for external resource management instead of AWS APIs
- Create a virtual external resource. For example: An organization may have a multi-tenant UAA and creating a new UAA tenant is basically creating a new tenant
- Creating workflows with inbuilt approval, For example: Provisioning a new AWS account with sponsor approval and budget definitions.
- or any other myriad of argo workflow use cases
Features
It will have the following features:
- Controller Config - It will contain the credentials / role for artifact repository and the details of the S3 bucket for storing artifacts generated by the workflow.
- Provider Config - It will contain the service account details for the workflow object. Also, allows options credentials and AssumeRole which may be used for managing external resource
- Generic argo workflow client - A generic argo workflow client that supports CRUD-L for argo workflows
- Automatic Garbage Collection - An automatic workflow pod cleanup which cleans up the pods created by the workflow after a configurable period of time.
- Example: An example of a managed resource called SecurityGroup which used argo workflow and terraform for maintaining its lifecycle
Developing
Run against a Kubernetes cluster:
make run
Build, push, and install:
make all
Build image:
make image
Push image:
make push
Build binary:
make build