osm

module
v0.5.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2020 License: MIT

README

Open Service Mesh (OSM)

build report codecov release

Open Service Mesh (OSM) is a lightweight, extensible, Cloud Native service mesh that allows users to uniformly manage, secure, and get out-of-the-box observability features for highly dynamic microservice environments.

The OSM project builds on the ideas and implementations of many cloud native ecosystem projects including Linkerd, Istio, Consul, Envoy, Kuma, Helm, and the SMI specification.

Table of Contents

Overview

OSM runs an Envoy based control plane on Kubernetes, can be configured with SMI APIs, and works by injecting an Envoy proxy as a sidecar container next to each instance of your application. The proxy contains and executes rules around access control policies, implements routing configuration, and captures metrics. The control plane continually configures proxies to ensure policies and routing rules are up to date and ensures proxies are healthy.

Core Principles
  1. Simple to understand and contribute to
  2. Effortless to install, maintain, and operate
  3. Painless to troubleshoot
  4. Easy to configure via Service Mesh Interface (SMI)
Features
  1. Easily and transparently configure traffic shifting for deployments
  2. Secure service to service communication by enabling mTLS
  3. Define and execute fine grained access control policies for services
  4. Observability and insights into application metrics for debugging and monitoring services
  5. Integrate with external certificate management services/solutions with a pluggable interface
  6. Onboard applications onto the mesh by enabling automatic sidecar injection of Envoy proxy
Project status

OSM is under active development and is NOT ready for production workloads.

Support

OSM is an open source project that is not covered by the Microsoft Azure support policy. Please search open issues here, and if your issue isn't already represented please open a new one. The OSM project maintainers will respond to the best of their abilities.

SMI Specification support
Specification Component Supported Release Comments
Traffic Access Control v1alpha2
Traffic Specs v1alpha3
Traffic Split v1alpha2
Traffic Metrics v1alpha1 🚧 In Progress #379 🚧

OSM Design

Read more about OSM's high level goals, design, and architecture.

Install

Prerequisites
  • Kubernetes cluster running Kubernetes v1.15.0 or greater
  • kubectl current context is configured for the target cluster install
    • kubectl config current-context
Get the OSM CLI

The simplest way of installing Open Service Mesh on a Kubernetes cluster is by using the osm CLI.

Download the osm binary from the Releases page. Unpack the osm binary and add it to $PATH to get started.

sudo mv ./osm /usr/local/bin/osm
Install OSM
$ osm install

OSM Install Demo

See the installation guide for more detailed options.

Demos

We have provided two demos for you to experience OSM.

  • The automated demo is a set of scripts anyone can run and shows how OSM can manage, secure and provide observability for microservice environments.
  • The manual demo is a step-by-step walkthrough set of instruction of the automated demo.

Using OSM

After installing OSM, onboard a microservice application to the service mesh.

OSM Usage Patterns
  1. Ingress and Egress
  2. Observability
  3. Certificates
  4. Sidecar Injection

Community

Connect with the Open Service Mesh community:

Development Guide

If you would like to contribute to OSM, check out the development guide.

Code of Conduct

This project has adopted the CNCF Code of Conduct. See CODE_OF_CONDUCT.md for further details.

License

This software is covered under the MIT license. You can read the license here.

Directories

Path Synopsis
ci
cmd
cmd
cli
demo
experimental
pkg/apis/policy/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
pkg/client/clientset/versioned/typed/policy/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
pkg/client/clientset/versioned/typed/policy/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
pkg
apis/azureresource/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
catalog
Package catalog is a generated GoMock package.
Package catalog is a generated GoMock package.
cli
Package cli describes the operating environment for the OSM cli and includes convenience functions for the OSM cli.
Package cli describes the operating environment for the OSM cli and includes convenience functions for the OSM cli.
configurator
Package configurator is a generated GoMock package.
Package configurator is a generated GoMock package.
debugger
Package debugger is a generated GoMock package.
Package debugger is a generated GoMock package.
health
Package health is a generated GoMock package.
Package health is a generated GoMock package.
ingress
Package ingress is a generated GoMock package.
Package ingress is a generated GoMock package.
kubernetes
Package kubernetes is a generated GoMock package.
Package kubernetes is a generated GoMock package.
osm_client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
osm_client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
osm_client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
osm_client/clientset/versioned/typed/azureresource/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
osm_client/clientset/versioned/typed/azureresource/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
providers/azure
Package azure implements methods for working with Azure.
Package azure implements methods for working with Azure.
smi
scripts
tests
e2e

Jump to

Keyboard shortcuts

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