Git Product home page Git Product logo

atsikham / epiphany Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hitachienergy/epiphany

0.0 0.0 0.0 10.93 MB

Epiphany is a full industrialized automation of Kubernetes and Docker plus additional builtin services/components like: - Kafka or RabbitMQ for high speed messaging/events - Prometheus and Alertmanager for monitoring with Graphana for visualization - Elasticsearch and Kibana for centralized logging - HAProxy for loadbalancing - Postgres for storage - KeyCloak for authentication

License: Apache License 2.0

Shell 7.05% Python 48.81% Dockerfile 0.26% Ruby 6.70% Batchfile 0.04% Perl 0.53% HTML 36.61%

epiphany's Introduction

Epiphany Platform

GitHub release Github license

Overview

Epiphany at its core is a full automation of Kubernetes and Docker plus additional builtin services/components like:

  • Kafka or RabbitMQ for high speed messaging/events
  • Prometheus and Alertmanager for monitoring with Graphana for visualization
  • Elasticsearch and Kibana for centralized logging (OpenDistro)
  • HAProxy for loadbalancing
  • Postgres and Elasticsearch for data storage
  • KeyCloak for authentication
  • Vault (MVP) for protecting secrets and other sensitive data
  • Helm as package manager for Kubernetes

The following target platforms are available: AWS, Azure and on-prem installation.

Epiphany can run on as few as one node (laptop, desktop, server) but the real value comes from running 3 or more nodes for scale and HA. Everything is data driven so simply changing the manifest data and running the automation will modify the environment. Kubernetes hosts (masters, nodes) and component VMs can be added depending on data in the initial manifest. More information here.

Please note that currently Epiphany supports only creating new masters and nodes and adding them to the Kubernetes cluster. It doesn't support downscale. To remove them from Kubernetes cluster you have to do it manually.

We currently use Terraform and Ansible for our automation orchestration. All automation is idempotent so you can run it as many times as you wish and it will maintain the same state unless you change the data. If someone makes a "snow flake" change to the environment (you should never do this) then simply running the automation again will put the environment back to the desired state.

Note about documentation

  • The documentation is a moving target. Always check the latest documentation on the develop branch. There is a big chance that whatever you are looking for is already added/updated or improved there.

Quickstart

Epicli

Use the following command to see a full run-down of all commands and flags:

epicli --help

Generate a new minimum cluster definition:

epicli init -p aws -n demo

This minimum file definition is fine to start with, if you need more control over the infrastructure created you can also create a full definition:

epicli init -p aws -n demo --full

You will need to modify a few values (like your AWS secrets, directory path for SSH keys). Once you are done with demo.yml you can start cluster deployment by executing:

epicli apply -f demo.yml

You will be asked for a password that will be used for encryption of some of build artifacts. More information here

Since version 0.7 epicli has an option to backup/recovery some of its components. More information here

epicli backup -f <file.yml> -b <build_folder>
epicli recovery -f <file.yml> -b <build_folder>

To delete all deployed components following command should be used

epicli delete -b <build_folder>

Find more information using table of contents below - especially the How-to guides.

Documentation

epiphany's People

Contributors

seriva avatar toszo avatar to-bar avatar sk4zuzu avatar przemyslavic avatar erzetpe avatar rafzei avatar mkyc avatar tolikt avatar lukurde avatar ar3ndt avatar atsikham avatar dependabot[bot] avatar plirglo avatar pprach avatar rpudlowski93 avatar baurbaniak avatar gdajuk avatar jetalone85 avatar mpeszt avatar alajmo avatar

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.