Skip to content

schadr/photon-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Photon Controller

Photon Controller is an open-source system for managing hardware, containers, and clusters at scale.

Photon Controller is designed to support:

  • High Scale: Manage tens of thousands of compute nodes in one deployment.
  • High Churn: Handle thousands of concurrent API requests.
  • Multiple Tenants: Allocate and manage resources for many users and groups in a single deployment.
  • Container Frameworks: Easily spin up instances of Kubernetes, Mesos, and Docker Swarm in seconds.

Participation

If you'd like to become a part of the Photon Controller community, here are some ways to connect:

If you're looking to play with the code, keep reading.

Repository

The product is arranged in a single repository, with subdirectories arranged by language. See the individual READMEs for instructions on building the code.

  • Devbox: Devbox uses Vagrant to create a small standalone deployment of Photon Controller for test purposes.
  • Java: Most of the Photon Controller management plane is written in Java, with many individual services implemented on top of the Xenon framework -- coming soon.
  • Python: The ESX agent and its test and analysis collateral are implemented in Python.
  • Ruby: The Photon Controller CLI is implemented in Ruby, as are the integration tests for the product.
    • Note: The Ruby CLI will soon be replaced with a Golang version.
  • Thrift: Photon Controller uses Apache Thrift for RPC communication between the management plane and the agent.

Development

If you'd like to make changes to Photon Controller, you can submit pull requests on GitHub.

Contributors to Photon Controller must have signed and submitted a copy of the Contributor License Agreement to [email protected].

All pull requests satisfy the following criteria:

  1. Pass unit tests according to the instructions in the appropriate language-specific README file.
  2. Pass integration tests according to the instructions for Devbox.

We will run any changes through our own validation process which ensures that both conditions are met, but it's in everyone's interest if you take care of this on your own first.

Thanks, and enjoy!