All Projects → olegsu → iris

olegsu / iris

Licence: Apache-2.0 License
Watch on Kubernetes events, filter and send them as standard wehbook to any system

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to iris

Rust Slack
A rust crate for sending messages to Slack via webhooks
Stars: ✭ 128 (+124.56%)
Mutual labels:  slack, webhook
github-release-notifier
Automatize tasks when a specific package got a new release - Github Release Notifier
Stars: ✭ 21 (-63.16%)
Mutual labels:  webhooks, webhook
Tradingview Webhook Bot
⚙️ Send TradingView alerts to Telegram, Discord, Slack, Twitter and/or Email.
Stars: ✭ 135 (+136.84%)
Mutual labels:  slack, webhook
SlackWebhooksGithubCrawler
Search for Slack Webhooks token publicly exposed on Github
Stars: ✭ 21 (-63.16%)
Mutual labels:  slack, webhook
discord-twitter-webhooks
🤖 Stream tweets to Discord
Stars: ✭ 47 (-17.54%)
Mutual labels:  webhooks, webhook
Cdk Constructs
A collection of higher-level aws cdk constructs: slack-approval-workflow, #slack & msteams notifications, chatops, blue-green-container-deployment, codecommit-backup, OWASP dependency-check, contentful-webhook, github-webhook, stripe-webhook, static-website, pull-request-check, pull-request-approval-rule, codepipeline-merge-action, codepipeline-check-parameter-action...
Stars: ✭ 282 (+394.74%)
Mutual labels:  slack, webhooks
Self-Hosted-Asp.Net-WebHooks
Self hosted custom webhook receiver and sender
Stars: ✭ 50 (-12.28%)
Mutual labels:  webhooks, webhook
sre.surmon.me
💻 SRE service for Surmon.me blog.
Stars: ✭ 34 (-40.35%)
Mutual labels:  webhooks, webhook
kubewise
Get Helm notifications in your team chat
Stars: ✭ 52 (-8.77%)
Mutual labels:  webhooks, kubernetes-cluster
tcWebHooks
WebHooks plugin for Teamcity. Supports many build states and payload formats.
Stars: ✭ 128 (+124.56%)
Mutual labels:  webhooks, webhook
Achievibit
Github Gamification - Achievements system as a GitHub WebHook.
Stars: ✭ 93 (+63.16%)
Mutual labels:  webhooks, webhook
pr-reviews-reminder-action
A GitHub Action to send Slack/Teams notification for Pull Request that are waiting for reviewers.
Stars: ✭ 18 (-68.42%)
Mutual labels:  slack, webhook
Postmark webhooks
Lightweight quickstart app for receiving and processing webhooks from Postmark
Stars: ✭ 14 (-75.44%)
Mutual labels:  webhooks, webhook
Zabbix Slack Alertscript
Zabbix AlertScript for Slack.com chat
Stars: ✭ 406 (+612.28%)
Mutual labels:  slack, webhook
Webhook
webhook is a lightweight incoming webhook server to run shell commands
Stars: ✭ 7,201 (+12533.33%)
Mutual labels:  webhooks, webhook
Hooka
😎 A webhook server with zero coding
Stars: ✭ 180 (+215.79%)
Mutual labels:  slack, webhook
kube-ldap
A Webhook Token Authentication plugin for kubernetes to use LDAP as authentication source
Stars: ✭ 29 (-49.12%)
Mutual labels:  webhook, kubernetes-cluster
Taviloglu.Wrike.ApiClient
.NET Client for Wrike API
Stars: ✭ 24 (-57.89%)
Mutual labels:  webhooks, webhook
kube-watch
Simple tool to get webhooks on Kubernetes cluster events
Stars: ✭ 21 (-63.16%)
Mutual labels:  webhook, kubernetes-cluster
notify
推送通知 sdk(Bark、Chanify、钉钉群机器人、Discord、邮件、飞书群机器人、Gitter、Google Chat、iGot、Logger、Mattermost、Now Push、PushBack、Push、PushDeer、PushPlus、QQ 频道机器人、Rocket Chat、Server 酱、Showdoc Push、Slack、Telegram、Webhook、企业微信群机器人、息知、Zulip)。
Stars: ✭ 335 (+487.72%)
Mutual labels:  slack, webhook

IRIS

Go Report Card codecov

In Greek mythology, Iris is the personification of the rainbow and messenger of the gods.

Easily configure webhooks on Kubernetes events using highly customizable filters

  • This project is not stable yet and may be changed anytime without any notice.

Run in cluster

Using Helm

  • clone or fork this repository
  • create your iris.yaml file
  • install chart from local directory helm install ./iris --values ./iris.yaml
  • by default the chart will be installed into namespace iris, see default values to overwrite it

Build

  • clone or fork this repo
  • make install
  • make build
  • Limitations:
    • Execute out of cluster iris run --help
    • Execute on non GCP cluster

Quick example:

In this example we will configure to listen on any Kubernetes event that been reported by the pod controller and matched to the filter will be sent to the destination.

filters:
  - name: MatchDefaultNamespace
    type: namespace
    namespace: default
  - name: MatchPodKind
    type: jsonpath
    path: $.involvedObject.kind
    value: Pod

destinations:
  - name: prod
    url: http://localhost

integrations:
  - name: Report
    destinations: 
    - prod
    filters:
    - MatchPodKind
    - MatchDefaultNamespace

Filters

Set of rules that will be applied on each Kubernetes event.
Kubernetes event that will pass all required filters will be passed to the destination to be reported
Types of filters:

Reason

Reason filter is a syntactic sugar for JSONPath filter with path: $.reason and value: {{reason}}

filters:
  - name: PodScheduled
    reason: "Scheduled"

Namespace

Namespace filter is a syntactic sugar for JSONPath filter with path: $.metadata.namespace and value: {{reason}}

filters:
  - name: FromDefaultNamespace
    namespace: default

JSONPath

With JSONPath gives the ability to match any field from Kubernetes event. The value from the fields can be matched to exec value using value: {{value}} or matched by regex using regexp: {{regexp}}

filters:
  # Match to Warning event type
  - name: WarningLevel
    type: jsonpath
    path: $.type
    value: Warning
  # Match to any event that the name matched to regexp /tiller/
  - name: MatchToRegexpTiller
    type: jsonpath
    path: $.metadata.name
    regexp: tiller

Labels

Labels filter will try to get the original resource from the event with the given filters. The filter considers as passed if any resource were found

filters:
   - name: MatchLabels
     type: labels
     labels:
       app: helm

Any

filters:
  - name: WarningLevel
    type: any
    filters:
    - FromDefaultNamespace
    - WarningLevel

Destinations

Each destination is an api endpoint where the Kubernetes event will be sent Types of destinations:

Default

The default destinations will attempt to send POST request with the event json in the request body If secret is given, hash string will be calculated using the given key on the request body and the result will be set in the request header as X-IRIS-HMAC: hash

destinations:
  - name: Webhook
    url: https://webhook.site
    secret: SECRET

Codefresh

With Iris, you can execute Codefresh pipelines. Add destinations with Codefresh type:

  • name: pipeline full name can be found easily using Codefresh CLI - codefresh get pipelines
  • branch: which branch of the repo should be cloned
  • cftoken: Token to Codefresh API can be generated in Account settings/Tokens view
  - name: ExecuteCodefreshPipeline
    type: Codefresh
    pipeline: PIPELINE_NAME
    cftoken: API_TOKEN
    branch: master

Integrations

Connecting between filters and destinations

integrations:
  - name: Report
    destinations:
    - {{name of destination}}
    filters:
    - {{name of filters to apply}}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].