GithubHelp home page GithubHelp logo

sku-iq / argocd-executor-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from urielcohen456/argocd-executor-plugin

0.0 0.0 0.0 124 KB

This is an Argo Workflows plugin that can interact with an ArgoCD server

License: Apache License 2.0

Shell 30.25% Go 62.95% Makefile 2.46% Dockerfile 4.35%

argocd-executor-plugin's Introduction

Argocd Executor Plugin

An Executor Plugin for Argo Workflows that lets you interact with ArgoCD servers
In Active Development

Example Usage

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

Getting Started

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.

Prerequisites

You will need to have a working Argo Workflows and ArgoCD instances to be able to deploy the plugin and use it.

Installing

Read how to install the plugin in your Argo Workflows instance here.


Contributing

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.

Goals

The goals of this plugin is to enable native usage of argocd actions inside workflows for these purposes:

  1. CI/CD + Testing - Steps that require a sync to an app and various e2e testing modules
  2. Resource automation - Steps that require you to generate new resources and delete resources

TODO:

  • 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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.