Skip to content
This repository has been archived by the owner on Feb 22, 2021. It is now read-only.
Shahar Gotshtat edited this page Aug 21, 2018 · 7 revisions

Apollo - A simple, lightweight, Continuous Delivery (CD) solution on top of Kubernetes

What is Apollo?

Using Apollo, you can deploy a combination of a Kubernetes deployment and service into any Kubernetes cluster (or namespace), in a matter of just a few seconds. Once you define your deployment YAML once, there is no further action required that involves Kubernetes knowledge, nor kubectl. Any developer can just log into Apollo, and use her own permissions to deploy any "deployment" to any Kubernetes cluster that he wants.

Main features

  • Deployment in seconds to Kubernetes, without touching kubectl
  • 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 deploys only what he needs.
  • 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!

Apollo basic workflow

  1. Define a "Service" in Apollo (which consists of a Kubernetes Deployment & Service)
  2. Define an "Environment" in Apollo (which consists of a combination of a Kubernetes cluster and namespace)
  3. Hook your CI to Apollo, to notify each commit that is ready in your Docker registry for deployment
  4. Log into Apollo, select the Services you want, select the Environments you want to deploy to and the Version you need.
  5. Confirm, wait for a few seconds, and you're done (You can view the logs of the deployment while you are at it, or revert if necessary).

How is Apollo different?

Unlike most other solutions, Apollo can hook into your current CI setup and provide the CD part of the flow.
Apollo is not meant to replace your CI, or any building process you might have. You just need to 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 he only deploys what is needed.
Built with compliance in mind, each deployment is documented. And you can also go back to any point in time with just a single click.