Notifications for your Argo Workflows.

Overview

Hermes -- notifications for Argo Workflows

Hermes aims to provide a streamlined way of sending notifications to various messaging services from your Argo Workflows pipelines.

demo

Hermes builds upon Argo's yet to be released support for template executor plugins. Once you have installed Hermes in your cluster, Argo will automatically launch an instance of Hermes for every workflow run and you will be able to interact with it directly from your workflow.

Features

  • Easy to use – Hermes is a template executor plugin. Once installed, Argo Workflows will automatically provide a Hermes instance for you to interact with from your workflow.
  • Template system – keep a centralized set of reusable notification templates and use them freely in your workflows.
  • In-place updates – avoid clutter in your channels by updating existing messages and keep the history of changes in a thread under the notification message instead.
  • Multiple recipient support – do you need to send notifications to different channels or services from a single workflow? No problem.

Supported services

  • Slack

Documentation

Visit the documentation to learn how to install and use Hermes.

You might also like...
Send Youtube videos as audio podcasts to your personal Pocket Casts files section.

yttopocketcasts Send Youtube videos as audio podcasts to your personal Pocket Casts files section. Quick Start Prerequisites: Docker and Make must be

Unify your game sources in one place and aquire more of them, using modules made by the community.

Project Black Pearl Unify your game sources in one place by using modules made by the community. What is Project Black Pearl? Project Black Pearl (or

VoceChat is a superlight rust written social server. Easy integration to your site/app.

Re-decentralized the Internet through personal cloud computing. VoceChat is the lightest chat server prioritizes private hosting! Easy integratation t

Keep a Hetzner Cloud firewall up to date with your dynamic public IP address.

hcloud-firewall-controller hcloud-firewall-controller determines the current public IP and creates or updates a Hetzner Cloud firewall with this IP. S

Gain intuition about the goings-on of your multithreaded/multicomponent programs
Gain intuition about the goings-on of your multithreaded/multicomponent programs

Intuition: a super simple profiler with a terminal ui based on tui-rs. Gain intuition about the goings-on of your multithreaded/multicomponent program

Rust crate: Overloaded Literals to construct your datatypes without boilerplate and with compile-time validation.

overloaded_literals   Overloaded Literals to construct your datatypes without boilerplate and with compile-time validation. Features Compile-time vali

Control your .env like a boss

envctl 🚀 Take full control over your .env environment variables usage $ envctl --help Environment Variable Control Usage: envctl COMMAND Commands

Linux daemon to bind keys and macros to your controller's buttons

makima Makima is a daemon for Linux to bind your controller's buttons to key sequences and macros. Features: Configure your keybindings through a simp

Multi-platform desktop app to download and run Large Language Models(LLM) locally in your computer.
Multi-platform desktop app to download and run Large Language Models(LLM) locally in your computer.

Multi-platform desktop app to download and run Large Language Models(LLM) locally in your computer 🔗 Download | Give it a Star ⭐ | Share it on Twitte

Comments
  • Update the docs after Argo Workflows 3.3 release

    Update the docs after Argo Workflows 3.3 release

    To be merged and released once v3.3 of Argo Workflows is released.

    TODO

    • [x] Point the links mentioning template executor plugins to the official documentation
    opened by kjagiello 0
  • "template not found"

    I was trying to roll through your example docs and when submitting the workflow ran into " Failed: invalid spec: templates.main.steps[0].setup-notifications template 'hermes-setup' type is unknown" I'm using the following spec:

    apiVersion: argoproj.io/v1alpha1
    kind: Workflow
    metadata:
      generateName: notifications-test-
    spec:
      entrypoint: main
      templates:
        - name: main
          steps:
            - - name: setup-notifications
                template: hermes-setup
    
            - - name: pre-notification
                template: hermes-notify
                arguments:
                  parameters:
                    - name: message
                      value: "Deployment started :hourglass_flowing_sand:"
    
            - - name: hello
                template: hello
    
            - - name: post-notification
                template: hermes-notify
                arguments:
                  parameters:
                    - name: message
                      value: "Deployment succeeded :white_check_mark:"
    
        - name: hermes-setup
          plugin:
            hermes:
              setup:
                alias: default
                service: slack
                config:
                  token: slack-secret-hermes
                  icon_emoji: ":rocket:"
    
        - name: hermes-notify
          inputs:
            parameters:
              - name: message
          plugin:
            hermes:
              notify:
                target: default
                template: hermes-template-slack-default
                config:
                  channel: cerberus
                context:
                  message: "{{`{{inputs.parameters.message}}`}}"
                  app: hermes
                  env: prod
                  revision_sha: "deadbeef"
                  revision_url: "https://google.com"
                  log_url: "https://google.com"
    
        - name: hello
          container:
            image: docker/whalesay
            command: [cowsay]
            args: ["hello world"]
    
    

    any idea why it doesn't recognize the templates?

    opened by matoszz 0
Releases(v0.1.0)
  • v0.1.0(Mar 16, 2022)

    What's Changed

    • Fix the broken variables in code snippets by @kjagiello in https://github.com/kjagiello/hermes/pull/1
    • Specify the available configuration for the Slack service by @kjagiello in https://github.com/kjagiello/hermes/pull/2
    • Update the docs after Argo Workflows 3.3 release by @kjagiello in https://github.com/kjagiello/hermes/pull/3

    New Contributors

    • @kjagiello made their first contribution in https://github.com/kjagiello/hermes/pull/1

    Full Changelog: https://github.com/kjagiello/hermes/commits/v0.1.0

    Source code(tar.gz)
    Source code(zip)
Owner
Krzysztof Jagiełło
Senior software developer @billogram. Previously @5monkeys
Krzysztof Jagiełło
A tray application for Windows that gives you push notifications and instant downloads of new posts, messages and stories posted by models you subscribe to on Onlyfans.

OF-notifier A tray application for Windows that gives you push notifications and instant downloads of new posts, messages and stories posted by models

Gentlemen Mercenary 10 Dec 20, 2022
A cli tool to write your idea in terminal

Ideas ideas is a cli tools to write your idea in your terminal. Demo Features tagged idea, contains tips, idea, todo status switch ascii icon write yo

王祎 12 Jun 22, 2022
Take your first step in writing a compiler. Implemented in Rust.

first-step-rust Take your first step in writing a compiler, using Rust. Building from Source Make sure the Rust toolchain is installed on your compute

PKU Compiler Course 13 Aug 28, 2022
Some UwU and OwO for your Rust code

UwU Types Some UwU and OwO for your Rust code This is a Rust crate inspired by this tweet from @thingskatedid / @katef. Credits Some extra functionali

Evan Pratten 12 Feb 8, 2022
A complicated eso-lang written in Rust that doesn't limit your creativity!

Documentation for mott Introduction mott (from french "mot" = word) is (maybe) the first programming language, that doesn't limit your creativity to p

Lars 1 Feb 1, 2022
qfetch is a tool that fetches info about your linux install.

qfetch qfetch is a tool that fetches info about your linux install. Status Dependencies /proc/meminfo with the following fields: MemTotal in the 1st l

Demir Yerli 2 Nov 16, 2022
TypeRust - simple Rust playground where you can build or run your Rust code and share it with others

Rust playground Welcome to TypeRust! This is a simple Rust playground where you can build or run your Rust code and share it with others. There are a

Kirill Vasiltsov 28 Dec 12, 2022
Goodname is a tool to assist you with cool naming of your methods and software

Goodname is a tool to assist you with cool naming of your methods and software. Given a brief description of your method or software, this tool enumerates name candidates forming subsequences of the description (i.e., abbreviation).

Shunsuke Kanda 118 Dec 28, 2022
A webapp that reads your articles to you while you're on the subway

ReadToMyShoe Video Demo A website that reads articles to you, even when you're offline. Still in early development. This is a full-stack Rust webapp,

Michael Rosenberg 20 Dec 10, 2022
Make your IDs strongly typed!!

About TypedId introduces a single type, aptly named TypedId. This is a generic wrapper any type, often types that you would use as an identifier. Howe

Tyler Bloom 8 Sep 2, 2022