maya

command module
v0.0.0-...-ec68995 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2017 License: Apache-2.0 Imports: 6 Imported by: 0

README

Overview

Build Status Go Report codecov GoDoc

This repository hosts the source code for OpenEBS Storage Orchestration Engine.

OpenEBS Storage Orchestration (aka Maya, meaning Magic) aims at managing storage for millions of containers with deceptive simplicity. Maya is the control plane for OpenEBS Storage. Maya is developed with a focused goal of easing(and at times completely eliminating) the Storage Ops for containers like

  • managing Storage Volumes (Persistent Volumes) and
  • managing Storage Infrastructure (Physical Storage - Local/Cloud Disks/SSDs/Cache, Controllers, Networks).

OpenEBS Maya allows you to manage storage across multiple zones (aka clusters/environments), that are co-located or geographically separated and can also run from within a single host. Maya can move the storage across different tiers based on the application needs (volume migration). Maya can learn and adapt to the changing environment through machine learning and data analytics.

Design

Maya - Storage Orchestration functionality is delivered through a set of services and tools that seamlessly integrate Maya into your Container Orchestrators like Kubernetes, Docker Swarm, etc., Maya comprises of several components, which are themself delivered as container images.

Maya components can be broadly classified based on their deployment type as follows:

  • Cluster Components - like API Server (maya-apiserver) that helps in processing the requests for creating new OpenEBS Volumes. The API server, will use the container orchestrators to provision the OpenEBS Volume Containers. Another example is the Smart Analytics (maya-mulebot) engine that gathers the data via the machine learning probes and runs heuristics analysis to optimize storage deployment.

  • Node/Host Components - are the services and tools that run on each of the nodes or docker hosts. In case of Kubernetes, these components are deployed as DaemonSets. The functionality of these components is local to the node like, Storage Agents (maya-agent) managing the disks attached to the hosts and helping in carving out the required disks to different OpenEBS Volumes. The agent can interact with Cluster components and vice-versa.

Maya makes the storage infrastructure programmable via the yaml files.

To start using Maya

Please refer to our documentation at OpenEBS Documentation

Start developing Maya

Head over to the developer's documentation for more details.

Dependency management

Maya uses golang dep to manage dependencies. Usage can be found on dep README.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
maya-agent/app
Package app will instantiate and run the maya-agent in the context of the Container Orchestrator
Package app will instantiate and run the maya-agent in the context of the Container Orchestrator
maya-agent/app/exporter
Package exporter start an http server and display the collected metrics at "/metrics" endpoint.
Package exporter start an http server and display the collected metrics at "/metrics" endpoint.
maya-agent/app/exporter/collector
Package collector is used to collect metrics by implementing prometheus.Collector interface.
Package collector is used to collect metrics by implementing prometheus.Collector interface.
maya-agent/types
Common types in the maya-agent
Common types in the maya-agent
This file defines interfaces that determines an orchestrator w.r.t maya api server.
This file defines interfaces that determines an orchestrator w.r.t maya api server.
k8s/v1
Package k8s enables Kubernetes as the orchestration provider that aligns to the interfaces suggested by maya api server's orchprovider package.
Package k8s enables Kubernetes as the orchestration provider that aligns to the interfaces suggested by maya api server's orchprovider package.
nomad/v1
This file transforms a Nomad scheduler as an orchestration platform for persistent volume placement.
This file transforms a Nomad scheduler as an orchestration platform for persistent volume placement.
pkg
logs
Package logs provides unified logging framework for all the binaries under maya.
Package logs provides unified logging framework for all the binaries under maya.
nethelper
This is an adaptation of below gist: https://gist.github.com/kotakanbe/d3059af990252ba89a82
This is an adaptation of below gist: https://gist.github.com/kotakanbe/d3059af990252ba89a82
Package api contains the latest (or "internal") version of the Mayaserver API objects.
Package api contains the latest (or "internal") version of the Mayaserver API objects.
profiles/v1
Profiles are related to OpenEBS volume.
Profiles are related to OpenEBS volume.
v1
// This is extracted from k8s.io/apimachinery/pkg/api/resource/amount.go // This is extracted from k8s.io/apimachinery/pkg/api/resource/math.go Package v1 extracted from k8s.io/apimachinery/pkg/apis/meta/v1/types.go This is extracted from k8s.io/apimachinery/pkg/api/resource/quantity.go This is extracted from k8s.io/apimachinery/pkg/api/resource/scale_int.go This is extracted from k8s.io/apimachinery/pkg/api/resource/suffix.go This is extracted from k8s.io/apimachinery/pkg/apis/meta/v1/time.go Package v1 - Description provided at doc.go NOTE: There are references to Kubernetes (K8s) types & links.
// This is extracted from k8s.io/apimachinery/pkg/api/resource/amount.go // This is extracted from k8s.io/apimachinery/pkg/api/resource/math.go Package v1 extracted from k8s.io/apimachinery/pkg/apis/meta/v1/types.go This is extracted from k8s.io/apimachinery/pkg/api/resource/quantity.go This is extracted from k8s.io/apimachinery/pkg/api/resource/scale_int.go This is extracted from k8s.io/apimachinery/pkg/api/resource/suffix.go This is extracted from k8s.io/apimachinery/pkg/apis/meta/v1/time.go Package v1 - Description provided at doc.go NOTE: There are references to Kubernetes (K8s) types & links.
v1/profile
This package deals with profiles.
This package deals with profiles.
provisioners
This file provides persistent volume provisioner's registry related features.
This file provides persistent volume provisioner's registry related features.
provisioners/jiva
This file registers jiva as maya api server's persistent volume provisioner plugin.
This file registers jiva as maya api server's persistent volume provisioner plugin.

Jump to

Keyboard shortcuts

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