maya

module
v1.12.0 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2020 License: Apache-2.0

README

Overview

Build Status Codacy Badge Go Report codecov GoDoc License FOSSA Status CII Best Practices

Visit https://docs.openebs.io to learn about Container Attached Storage(CAS) and full documentation on using OpenEBS Maya.

OpenEBS Maya extends the capabilities of Kubernetes to orchestrate CAS (aka Container Native) Storage Solutions like OpenEBS Jiva, OpenEBS cStor, etc. Maya (meaning Magic), seamlessly integrates into the Kubernetes Storage Workflow and helps provision and manage the CAS based Storage Volumes. The core-features of Maya include:

  • Maintaining the inventory of the underlying disks on the Kubernetes Nodes.

  • Managing the allocation of Disks to CAS Storage Engines.

  • Provisioning of CAS Volumes by interfacing with K8s Dynamic Volume Provisioner.

  • Managing the high availability of the CAS volumes by tuning the scheduling parameters of CAS Deployments (Pods).

  • Provide adapters to CAS Volumes to interact with Kubernetes and related infrastructure components like Prometheus, Grafana etc.

Maya orchestration and management capabilities are delivered through a set of services and tools. Currently, these services support deploying the CAS Storage Solutions in Kubernetes Clusters. In future, these can be extended to support other Container Orchestrators.

Maya Architecture

Maya Architecture

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

  • Control Plane Components - These are containers that are initialized as part of enabling OpenEBS in a Kubernetes cluster.

    • maya-apiserver helps with the creation of CAS Volumes and provides API endpoints to manage those volumes. maya-apiserver can also be considered as a template engine that can be easily extended to support any kind of CAS storage solutions. It takes as input a set of CAS templates that are converted into CAS K8s YAMLs based on user requests.
    • provisioner is an implementation of Kubernetes Dynamic Provisioner that processes the PVC requests by interacting with maya-apiserver.
  • CAS Side-car Components - These are adapter components that help with managing the CAS containers that do not inherently come up with the required endpoints. For example:

    • maya-exporter helps in providing a metrics endpoint to the CAS container.
    • cas-mgmt components can be attached as side-cars for helping to store/retrieve configuration information from Kubernetes Config Store (etcd). For cStor CAS solution, cstor-pool-mgmt is one such cas-mgmt component.
  • CLI - While most of the operations can be performed via the kubectl, Maya also comes with mayactl that helps retrieve storage related information for debugging/troubleshooting storage related issues.

Install

Please refer to our documentation at OpenEBS Documentation.

Contributing

Head over to the CONTRIBUTING.md.

Community

See the OpenEBS Community page for reaching out to the OpenEBS Developers.

More Info

License

FOSSA Status

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/types
Package types contains common types in the maya-agent.
Package types contains common types in the maya-agent.
maya-exporter/app/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-exporter/app/command
Package command starts an http server and displays the collected metrics at "/metrics" endpoint.
Package command starts an http server and displays the collected metrics at "/metrics" endpoint.
provisioner-localpv/app
Package app contains OpenEBS Dynamic Local PV provisioner Provisioner is created using the external storage provisioner library: https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner Local PVs are an extension to hostpath volumes, but are more secure.
Package app contains OpenEBS Dynamic Local PV provisioner Provisioner is created using the external storage provisioner library: https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner Local PVs are an extension to hostpath volumes, but are more secure.
pkg
apis/openebs.io/ndm/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API +groupName=openebs.io
Package v1alpha1 is the v1alpha1 version of the API +groupName=openebs.io
apis/openebs.io/runtask/v1beta1
Package v1beta1 is the v1beta1 version of the API +groupName=openebs.io
Package v1beta1 is the v1beta1 version of the API +groupName=openebs.io
apis/openebs.io/snapshot/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
apis/openebs.io/upgrade/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API +groupName=openebs.io
Package v1alpha1 is the v1alpha1 version of the API +groupName=openebs.io
apis/openebs.io/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/stringer/v1alpha1
Package v1alpha1 is a utility package that is can be used for error handling and logging: NOTE: This is a common logic that can be used at following packages: 1.
Package v1alpha1 is a utility package that is can be used for error handling and logging: NOTE: This is a common logic that can be used at following packages: 1.
client/generated/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/generated/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/generated/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/generated/clientset/versioned/typed/openebs.io/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/generated/clientset/versioned/typed/openebs.io/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/generated/openebs.io/ndm/v1alpha1/clientset/internalclientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/generated/openebs.io/ndm/v1alpha1/clientset/internalclientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/generated/openebs.io/ndm/v1alpha1/clientset/internalclientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/generated/openebs.io/ndm/v1alpha1/clientset/internalclientset/typed/ndm/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
client/generated/openebs.io/runtask/v1beta1/clientset/internalclientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/generated/openebs.io/runtask/v1beta1/clientset/internalclientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/generated/openebs.io/runtask/v1beta1/clientset/internalclientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/generated/openebs.io/runtask/v1beta1/clientset/internalclientset/typed/runtask/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
client/generated/openebs.io/snapshot/v1/clientset/internalclientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/generated/openebs.io/snapshot/v1/clientset/internalclientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/generated/openebs.io/snapshot/v1/clientset/internalclientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/generated/openebs.io/snapshot/v1/clientset/internalclientset/typed/snapshot/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
client/generated/openebs.io/upgrade/v1alpha1/clientset/internalclientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/generated/openebs.io/upgrade/v1alpha1/clientset/internalclientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/generated/openebs.io/upgrade/v1alpha1/clientset/internalclientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
install/v1alpha1
TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information
TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information TODO Rename this file by removing the version suffix information
k8s
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.
storagepool
Package storagepool provides a specific implementation of CAS template engine
Package storagepool provides a specific implementation of CAS template engine
util
CheckForIscsi is blocking call for checking status of istgt in cstor-istgt container.
CheckForIscsi is blocking call for checking status of istgt in cstor-istgt container.
version/kubernetes
NOTE: Some pieces of code was borrowed from: - k8s.io/apimachinery/pkg/version/helpers.go
NOTE: Some pieces of code was borrowed from: - k8s.io/apimachinery/pkg/version/helpers.go
volume
Package volume contains specific implementation of cas template engine
Package volume contains specific implementation of cas template engine
types
v1
Package v1 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 Package v1 is extracted from k8s.io/apimachinery/pkg/api/resource/suffix.go Package v1 - Description provided at doc.go NOTE: There are references to Kubernetes (K8s) types & links.
Package v1 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 Package v1 is extracted from k8s.io/apimachinery/pkg/api/resource/suffix.go Package v1 - Description provided at doc.go NOTE: There are references to Kubernetes (K8s) types & links.

Jump to

Keyboard shortcuts

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