An Executor Plugin for Argo Workflows that lets you interact with ArgoCD servers
In Active Development
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: argocd-example-
spec:
entrypoint: main
templates:
- name: main
plugin:
argocd:
serverUrl: https://my-argocd-instance.com/
actions:
- sync:
project: guestbook
apps:
- guestbook
- guestbook-backend
Head to the scripts directory to find out how to get the project up and running on your local machine for development and testing purposes.
You will need to have a working Argo Workflows and ArgoCD instances to be able to deploy the plugin and use it.
Read how to install the plugin in your Argo Workflows instance here.
Currently I am developing this on my own as my interest in workflow plugins is growing.
However, you are free to send me a message or create pull request or an issue if you have anything to suggest.
To get started check the scripts directory for setting up the dev environment.
The goals of this plugin is to enable native usage of argocd actions inside workflows for these purposes:
- CI/CD + Testing - Steps that require a sync to an app and various e2e testing modules
- Resource automation - Steps that require you to generate new resources and delete resources
- Figure out how to get access to kubernetes resources from inside the pod
- Figure out how to get access to argocd binary (Build image that has it)
- Figure out how to get current namespace (not supported in client library in python)
- Add argocd installation to the create_cluster.sh script
- Add a few different applications to argocd in the create_cluster.sh script (More complexity over time)
- Translate python server that works so far to go
- Github actions pipeline to automatically build and test
- Find way to get arguments from template
- Build a simple json schema to validate inside the plugin
- Build classes to be able to seperate concerns and test
- Build unit tests and integration tests