Git Product home page Git Product logo

signa's Introduction

Signa

Signa is a Slack bot and ChatOps tool written in Go.

It offers built-in commands for Kubernetes and a framework to develop ChatOps tools.

Install

$ go get [-u] github.com/signavio/signa/cmd/signa

Configuration

Refer to the signa.sample.yaml configuration file to setup Signa.

Extensions

Find a list of the current built-in commands below.

kubernetes/deployment

kubernetes/deployment is a deployment command that runs on top of kubectl.

Usage example:

!deploy app-backend app-backend-container cluster1 v1.0.1

Where app-backend stands for the application name, app-backend-container for the container name, cluster1 for the cluster name and v1.0.1 for the desired image tag.

Post Deployment Steps

You can define post deployment steps that enable you to execute a command after a successful deployment, e.g. testing. Also, you can access username, component name and cluster of your deployment within the command with the help of Go's template package.

The fields you can access are:

  • ComponentName
  • ClusterName
  • Username

For instance the username can be accesses like this: curl --foo:{{.Username}}

kubernetes/get

kubernetes/get retrieves information of the resources running in the cluster.

Usage example:

!get pods -n foobar-namespace

Currently it only works for 1 single context, the support to multi-contexts/clusters should be added.

kubernetes/jobs

kubernetes/jobs runs kubernetes jobs using a pre-determined configuration.

Usage example:

!run make-pizza cluster1 v0.9.7

Where make-pizza stands for the job name, cluster1 for the cluster name and v0.9.7 for the image tag.

Internals

In this section you may find an overview of the internals of Signa and code organization.

Signa has three main components:

  • cmd is the home of the executable code. It's the entrypoint to install Signa.
  • ext is where all the native extensions are placed.
  • pkg is the Signa core libraries and utils.

TODO

  • Add test suite with different test cases.
  • Add in-depth documentation.

Maintainers

Stephano Zanzin - @microwaves

signa's People

Contributors

jmarten avatar microwaves avatar par-vathy avatar pascalism avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

signa's Issues

get latest version from aws repo

It could be a good idea to add a command to get the exact version of the latest image pushed into a aws repository:

aws ecr list-images --repository-name <repo-name> | grep $(aws ecr list-images --repository-name <repo-name> | grep latest | awk '{print $2}') | awk '{print $4}' | grep -v latest

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.