gloo-mesh

command module
v0.3.25 Latest Latest
Warning

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

Go to latest
Published: Jul 25, 2019 License: Apache-2.0 Imports: 4 Imported by: 0

README

SuperGloo
The Service Mesh Orchestration Platform

SuperGloo, an open-source project to manage and orchestrate service meshes at scale. SuperGloo is an opinionated abstraction layer that will simplify the installation, management, and operation of your service mesh, whether you use (or plan to use) a single mesh or multiple mesh technologies, on-site, in the cloud, or on any topology that best fits you.

Installation   |   Developers   |   Documentation   |   Blog   |   Slack   |   Twitter


SuperGloo Architecture

Summary

Why SuperGloo?

SuperGloo helps users kick off their service mesh experience. Users who contemplate working with service mesh can be deterred by the many configuration choices they have to make. SuperGloo solves this problem by providing an opinionated API that automates the installation process, obviating the need for writing and deploying complicated yaml files.

SuperGloo takes charge of key functionalities associated with the mesh, including encryption, telemetry, and tracing. Launching any of these with SuperGloo is as simple as flipping a switch, completely bypassing the need for complicated configuration steps.

SuperGloo unifies management of ingress traffic (“north/south”) and mesh traffic (“east/west”). Every service mesh relies on ingress controllers to manage traffic across clusters and from the internet. SuperGloo provides a fully-automated opinionated workflow for configuring your mesh to work with your ingress, offering a unified management experience for all traffic.

SuperGloo gives you the freedom to pair any service mesh with any ingress. The mesh abstraction provided by SuperGloo allows users to choose their favorite mesh and ingress. In addition, it handles the installation and configuration necessary to allow them work together. SuperGloo also supports running multiple ingress with multiple mesh in the same cluster.

SuperGloo makes it easy to explore different meshes and migrate between them. The unified interface, as well as the automated installation, makes the transition from one mesh to another fast and painless.

SuperGloo allows use of the same tools with different meshes. The abstraction we seek to provide will allow developers to build a single product that runs on any mesh, or across meshes. For users, this will provide the ability to migrate between service mesh providers without changing the tooling they work with.

SuperGloo will ‘glue’ meshes of any type into a multi-mesh. For companies that run multiple service mesh instances, SuperGloo will connect all the different meshes together, across namespaces, across clusters, or across clouds. All with flat-networking and policy applied at every level, rather than repeated at each individual level, without the effort of synchronizing config across meshes.

Features

Dead Simple API - Most service meshes are built with a complex API intended to support a vast number of use cases. SuperGloo boils down service mesh config to the basics, while being expressive about the features that are most important to users.

Installation - Install, Uninstall and Reinstall service meshes with default or customized settings. Automate complicated workflows such as supporting multi-tenant (multi-namespace) installations using the one-click SuperGloo API.

Discovery - Discover existing service mesh installations and integrate SuperGloo on top of them seamlessly, with no risk of error, and zero additional user configuration necessary.

Security - Manage Root Certificates, enable/disable mTLS, and enforce policy within your mesh with the click of a button.

Routing Traffic control - Apply sophisticated HTTP/2 features to any/all traffic in your mesh, such as traffic shifting, fault injection, header manipulation, and more.

Routing Resilience - Outlier detection, connection pooling, timeouts and retries.

Observability Metrics - SuperGloo automatically configures existing Prometheus, Grafana, and Jaeger installations to scrape and visualize data from your mesh. No more editing large YAML files and kubernetes configmaps!

Ingress Integration - Seamlessly install and configure any ingress to work with your mesh, all while configuring them with a unified management API.

Ingress discover - Discover an installed ingress and manage it.

Plugability - Highly extensible open-source Go architecture with development SDKs making it easy to extend SuperGloo with new features and meshes.

Features Snapshot

Istio AWS App Mesh Consul Connect Linkerd 2
Installation
Discovery 🚧 🚧 🚧 🚧
Security Root Cert N/A 🚧
mTLS N/A 🚧
Policy 🚧 N/A
Routing Traffic Control N/A N/A
Resilience N/A N/A N/A
Observibility Metrics via Prometheus N/A
Metrics via Grafana 🚧 N/A 🚧
OpenTracing 🚧 N/A 🚧
Ingress Installation 🚧 🚧 🚧 🚧
Discovery 🚧 🚧 🚧 🚧

Roadmap

Service Mesh Discovery
Linkerd 2 encryption
Ingress install
Ingress discovery
Metrics via Grafana
OpenTracing

Vision

At Solo, we believe that companies at any stage of service mesh adoption can benefit from the ability to use multiple meshes simultaneously. At the early stages of adoption, users will benefit from the ability to experiment with multiple technologies. In addition, groups within the same organization may favor different options, making multi-mesh a lasting reality. Whether multi-mesh is a transition-phase or the end-game, keeping your options open without compromising on ease-of-use, functionality or flexibility will give early adopters a competitive edge.

Our vision is to enable multi-mesh: the ability to connect meshes of any type together, across namespaces, across clusters, and across clouds. All with flat-networking and policy applied at the super-mesh level, rather than repeated at each individual level, without the effort of synchronizing configs across meshes. The abstraction we seek to provide will allow developers to build a single product that runs on any mesh, or across meshes.

Thanks

SuperGloo would not be possible without the valuable open-source work of projects in the service mesh community. We would like to extend a special thank-you to Istio, AWS App Mesh, Hashicorp Consul and Linkerd, as well as the vibrant Kubernetes community.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
cli
cmd
pkg/helpers/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
cmd
examples
hack
imported
deislabs/smi-sdk-go/pkg/gen/client/access/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
deislabs/smi-sdk-go/pkg/gen/client/access/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
deislabs/smi-sdk-go/pkg/gen/client/access/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
deislabs/smi-sdk-go/pkg/gen/client/access/clientset/versioned/typed/access/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
deislabs/smi-sdk-go/pkg/gen/client/specs/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
deislabs/smi-sdk-go/pkg/gen/client/specs/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
deislabs/smi-sdk-go/pkg/gen/client/specs/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
deislabs/smi-sdk-go/pkg/gen/client/specs/clientset/versioned/typed/specs/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
deislabs/smi-sdk-go/pkg/gen/client/split/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
deislabs/smi-sdk-go/pkg/gen/client/split/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
deislabs/smi-sdk-go/pkg/gen/client/split/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
deislabs/smi-sdk-go/pkg/gen/client/split/clientset/versioned/typed/split/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
install
pkg
api/external/istio/authorization/v1alpha1/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
api/external/istio/networking/v1alpha3/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
api/external/istio/rbac/v1alpha1/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
api/external/linkerd/v1/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
api/external/prometheus/v1/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
api/external/smi/access/v1alpha1/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
api/external/smi/specs/v1alpha1/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
api/external/smi/split/v1alpha1/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
api/v1/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
config/appmesh/mocks
Package appmesh is a generated GoMock package.
Package appmesh is a generated GoMock package.
registration/appmesh
Package appmesh is a generated GoMock package.
Package appmesh is a generated GoMock package.
registration/gloo/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
webhook/clients
Package clients is a generated GoMock package.
Package clients is a generated GoMock package.
test

Jump to

Keyboard shortcuts

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