Giter VIP home page Giter VIP logo

apollo's Introduction

THIS PROJECT IS NO LONGER MAINTAINED

Build Status

Apollo

What is Apollo?

Apollo is a simple, lightweight, Continuous Deployment (CD) solution on top of Kubernetes. Apollo can integrate with any existing building process you might have in place. All you need to do is notify it of a ready artifact, and that's it.

Apollo also provides restricted access on top of Kubernetes. Each user has fine-grained permissions, to ensure safe deployments.

Please refer to the Wiki for more extensive documentation.

Main Features

  • Deploy a combination of a Kubernetes deployments and services into a designated Kubernetes cluster and namespace.
  • View logs, revert deployments and get back to any point in time with just one click.
  • Manage multiple Kubernetes clusters and multiple namespaces in the same cluster.
  • Full permissions model for deployments. Each user can deploy only what he needs to deploy.
  • Live querying on Kubernetes to get the current status of the deployments. You can also view pods status, view logs from each pod, and restart each pod.
  • Full RESTful API and Java client to automate whatever you need, or deploy automatically.
  • Once initially deployed, you can deploy future versions of Apollo, using Apollo!

Deployment

Apollo Deployment

Getting logs of a running pod

Apollo Logs

Exec into a running pod

Apollo Shell

See ongoing deployments

Apollo Ongoing Deployments

Get full deployment history

Apollo Deployments History

Set up deployment blockers

Apollo Deployments Blockers

Run it

Apollo requires a HOCON format configuration file to get all of its resources. Configurations can be supplied as a Filesystem path or as a Consul Key.

Configuration example:

apollo {
  db {  # Self explanatory
    port = 3306
    host = "..."
    user = "apollo"
    password = "..."
    schema = "apollo"
  }

  api {
    listen = "0.0.0.0"  # Where should apollo backend listen
    port = 8081  # And on which port
    secret = "SuperTestingSecret"  # Secret to encrypt websessions with
  }

  kubernetes {
    monitoringFrequencySeconds = 5  # How frequent should the apollo's kubernetes monitoring thread check the deployment statuses
  }

  scm {
    githubLogin = ""  # Github user (in case you need private repositories access)
    githubOauthToken = ""  # Access token created in your user settings. Should have view access for private repos
  }
}

Under examples you can find a simple Docker Compose to help you set it up locally

cd examples/
docker-compose up -d

Contributing

Fork away, commit, and send a pull request.

apollo's People

Contributors

alexgoltsman avatar alexserdukov avatar alonmiz avatar amirkalron avatar asafalima avatar asafm avatar danielberman avatar darinakl avatar dependabot[bot] avatar ifatregev avatar maorshap avatar matvey-mtn avatar mend-for-github-com[bot] avatar ofer-velich avatar orierel avatar paralax avatar renanawasserm avatar roiravhon avatar shahargotshtat avatar snyk-bot avatar

Watchers

 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.