Skip to content
This repository has been archived by the owner on Jul 11, 2023. It is now read-only.
/ eirini Public archive

Pluggable container orchestration for Cloud Foundry, and a Kubernetes backend

License

Notifications You must be signed in to change notification settings

cloudfoundry/eirini

Repository files navigation

Eirini

 

Build Status Maintainability Test Coverage Go Report Card Slack Status

What is Eirini?

Eirini is a thin layer of abstraction on top of Kubernetes that allows Cloud Foundry to deploy applications as Pods on a Kubernetes cluster. Eirini uses the Diego abstractions of Long Running Processes (LRPs) and Tasks to capture Cloud Foundry's notion of long running processes and one-off tasks.

Deployment instructions are available at: cloudfoundry-incubator/eirini-release.

Components

Eirini Overview Diagram


Eirini is composed of:

  • api: The main component, provides the REST API used by the Cloud Controller. It's responsible for starting LRPs and tasks.

  • event-reporter: A Kubernetes reconciler that watches for LRP instance crashes and reports them to the Cloud Controller.

  • instance-index-env-injector: A Kubernetes webhook that inserts the CF_INSTANCE_INDEX environment variable into every LRP instance (pod).

  • task-reporter: A Kubernetes reconciler that reports the outcome of tasks to the Cloud Controller and deletes the underlying Kubernetes Jobs after a configurable TTL has elapsed.

  • eirini-controller: A Kubernetes reconciler that acts on create/delete/update operations on Eirini's own Custom Resouce Definitions (CRDs). This is still experimental.

CI Pipelines

We use Concourse. Our pipelines can be found here.

Contributing

Please read CONTRIBUTING.md for details.

Have a question or feedback? Reach out to us!

We can be found in our Slack channel #eirini-dev in the Cloud Foundry workspace. Please hit us up with any questions you may have or to share your experience with Eirini!