ciao

module
v0.0.0-...-476269e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 31, 2017 License: Apache-2.0

README

#Ciao Project

Go Report Card Build Status Coverage Status GoDoc Stories in Ready

Ciao is the "Cloud Integrated Advanced Orchestrator". Its goal is to provide an easy to deploy, secure, scalable cloud orchestration system which handles virtual machines, containers, and bare metal apps agnostically as generic workloads. Implemented in the Go language, it separates logic into "controller", "scheduler" and "launcher" components which communicate over the "Simple and Secure Node Transfer Protocol (SSNTP)".

Controller is responsible for policy choices around tenant workloads.

Scheduler implements a "push/pull" scheduling algorithm. In response to a controller approved workload instance arriving at the scheduler, it finds a first fit among cluster compute nodes currently requesting work.

Launcher abstracts the specific launching details for the different workload types (eg: virtual machine, container, bare metal). Launcher reports compute node statistics to the scheduler and controller. It also reports per-instance statistics up to controller.

An additional set of componentry provides ciao network connectivity for workload instances and insures tenant isolation. Workloads (whether container or VM) are automatically placed in a unified L2 network, one such network per tenant.

A cli and webui are available.

All ciao components communicate with each other via SSNTP using a set of payloads.

This GitHub repository contains documentation on the various sub-components of ciao in their respective subdirectories.

If you would like to contribute to ciao, check our Contributing guide. There's a wiki page that illustrates how to easily setup a development environment without needing a cluster. We also recommend taking a look at the 'janitorial' bugs in our list of open issues as these bugs can be solved without an extensive knowledge of ciao. We would love to help you start contributing!

The ciao development team can be reached via our mailing list and on IRC in channel #ciao-project on Freenode.

Directories

Path Synopsis
_release
bat/base_bat
Package basebat is a placeholder package for the basic BAT tests.
Package basebat is a placeholder package for the basic BAT tests.
bat/image_bat
Package imagebat is a placeholder package for the image service BAT tests.
Package imagebat is a placeholder package for the image service BAT tests.
bat/quotas_bat
Package quotasbat is a placeholder package for the basic BAT tests.
Package quotasbat is a placeholder package for the basic BAT tests.
bat/storage_bat
Package storagebat is a placeholder package for storage related BAT tests.
Package storagebat is a placeholder package for storage related BAT tests.
bat/workload_bat
Package workloadbat is a placeholder package for workload related BAT tests.
Package workloadbat is a placeholder package for workload related BAT tests.
Package bat contains a number of helper functions that can be used to perform various operations on a ciao cluster such as creating an instance or retrieving a list of all the defined workloads, etc.
Package bat contains a number of helper functions that can be used to perform various operations on a ciao cluster such as creating an instance or retrieving a list of all the defined workloads, etc.
api
internal/datastore
Package datastore retrieves stores data for the ciao controller.
Package datastore retrieves stores data for the ciao controller.
ciao-image
ciao-launcher is an ssntp agent that runs on compute and network nodes.
ciao-launcher is an ssntp agent that runs on compute and network nodes.
Ciao scheduler is the SSNTP server that runs in the control plane to broker a ciao based cloud.
Ciao scheduler is the SSNTP server that runs in the control plane to broker a ciao based cloud.
Package deviceinfo contains some utility functions that return information about the underlying device on which the package runs, e.g., how many CPUs it has, how much RAM it has, etc.
Package deviceinfo contains some utility functions that return information about the underlying device on which the package runs, e.g., how many CPUs it has, how much RAM it has, etc.
k8s
networking
openstack
Package osprepare is the Operating System Preparation facility of Ciao, enabling very simple automated configuration of dependencies between various Linux distributions in a sane fashion.
Package osprepare is the Operating System Preparation facility of Ciao, enabling very simple automated configuration of dependencies between various Linux distributions in a sane fashion.
Package qemu provides methods and types for launching and managing QEMU instances.
Package qemu provides methods and types for launching and managing QEMU instances.
uuid
Package uuid can be used to generate 128 bit UUIDs compatible with rfc4122.
Package uuid can be used to generate 128 bit UUIDs compatible with rfc4122.
Package templateutils provides a set of functions that are designed to make it easier for developers to add template based scripting to their command line tools.
Package templateutils provides a set of functions that are designed to make it easier for developers to add template based scripting to their command line tools.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL