Engine for development teams that simplifies the roll-out and operation of container-based applications on Kubernetes. It introduces a service-centric abstraction, which allows users to compose applications from multiple connected components. It supports components packaged using Helm, ksonnet, k8s YAMLs, and any other Kubernetes-friendly way!
This approach to application delivery becomes especially powerful in a multi-team setup, where components owned by different teams must be put together into a service. With ownership boundaries, Dev teams can specify multi-cluster and multi-env (e.g. dev, stage, prod) service behavior, as well as control the lifecycle and updates of their respective services.
It also provides contextual visibility into teams and services, allowing our users to visualize complex dependencies and accurately assess the impact of changes.
You can also read this blog post about the project.
- Installation - https://asciinema.org/a/163250
- Point to Kubernetes cluster - https://asciinema.org/a/163252
- Defining & running applications - https://asciinema.org/a/163258
- Updating a service instance - https://asciinema.org/a/163262
- Deleting service instances - https://asciinema.org/a/163269
- Detailed Demo - http://www.youtube.com/watch?v=HL4RwoBnuTc
- OpenDev CI/CD 2018 (Vancouver) - https://www.youtube.com/watch?v=GVB3kKocKi4
Table of contents
- How It Works
- How to contribute
- Why would I want to use it as a Developer?
- Why would I want to use it as an Operator?
- How does it fit into CI/CD model with Spinnaker/Jenkins?
- Why would I want to use it if I'm already implementing Kubernetes/OpenShift?
Step #1: Installation
The simplest installation mode is Compact, but you may pick one that suits your needs:
|Compact||Easy||Installation on local machine (binaries or in a single Docker container)|
|Kubernetes||Medium||Deployed to k8s via Helm chart|
You can also install it in a stripped-down mode with a fake executor:
|Concepts||Easy||Use this only if you want get familiar with the key concepts, API and UI. App deployment to k8s is DISABLED|
Step #2: Setting up k8s Cluster
You will need to have access to a k8s cluster to deploy apps from the provided examples.
Having a powerful k8s cluster with a good internet connection will definitely provide a better experience compared to a local, single-node k8s cluster. We consider GKE to be the best option if you don't have your own k8s cluster.
|Kubernetes Cluster||When to use||How to run|
|Your own||If you already have a k8s cluster set up||Configure on existing k8s cluster|
|Google Kubernetes Engine||If you have a Google account and free credits||Configure on GKE|
|k8s / Minikube||Single-node, local machine with 16GB+ RAM||Configure on Minikube|
|k8s / Docker For Mac||Single-node, local machine with 16GB+ RAM||Configure on Docker For Mac|
Step #3: Running Examples
Once the server is up and your k8s cluster is ready, you can get started by running the following examples:
|twitter-analytics||Twitter Analytics Application, multiple services, multi-cloud, based on Helm|
|twitter-analytics-with-concourse-ci||Twitter Analytics Application, integrated with Concourse CI/CD pipelines|
|guestbook||K8S Guestbook Application, multi-cloud, based on K8S YAMLs|
Step #4: Send us a note on Slack
How It Works
How to contribute
The very least you can do is report a bug!
If you want to make a pull request for a bug fix or contribute a feature, see our Development Guide for how to develop, run and test your code.
Feature Backlog, as well as weekly project milestones, are good places to look at the roadmap items.