Giter Site home page Giter Site logo

meshery / meshery-osm Goto Github PK

View Code? Open in Web Editor NEW
38.0 11.0 48.0 1.65 MB

Meshery Adapter for Open Service Mesh

Home Page: https://layer5.io/meshery

License: Apache License 2.0

Go 89.46% Dockerfile 1.21% Makefile 9.33%
meshery meshery-adapter service-mesh osm multi-mesh-manager management-plane service-mesh-management open-service-mesh service-mesh-interface hacktoberfest

meshery-osm's Introduction

Meshery Logo

If you’re using Meshery or if you like the project, please this repository to show your support! 🤩

MESHERY IS A CLOUD NATIVE COMPUTING FOUNDATION PROJECT


A self-service engineering platform, Meshery, is the open source, cloud native manager that enables the design and management of all Kubernetes-based infrastructure and applications (multi-cloud). Among other features, As an extensible platform, Meshery offers visual and collaborative GitOps, freeing you from the chains of YAML while managing Kubernetes multi-cluster deployments.



Try Meshery in the Cloud Native Playground (teaser video)


 

Functionality

Cloud Native Lifecycle Management

Meshery manages the provisioning, configuration and operation of your Kubernetes clusters while supporting hundreds of different types of cloud native infrastructure integrations. Meshery also offers a catalog of curated design templates filled with configuration best practices.

Using a GitOps-centric approach, visually and collaboratively design and manage your infrastructure and microservices. Extend Meshery as your self-service engineering platform by taking advantage of its vast set of extensibility features, including gRPC adapters, hot-loadable Reactjs packages and Golang plugins, subscriptions on NATS topics, consumable and extendable API interfaces via REST and GraphQL.

Meshery cloud native management

Multi-Cluster Kubernetes, Multi-Cloud, and Cloud Native Configuration Management

Meshery supports 250+ integrations.

Assess your cloud native infrastructure configuration against deployment and operational best practices with Meshery's configuration validator. Manage your workloads with confidence. Check your Kubernetes configuration for anti-patterns and avoid common pitfalls.

Layer5 Service Mesh Configuration Management



OPA Logo

Context-Aware Policies For Applications



Leverage built-in relationships to enforce configuration best practices consistently from code to Kubernetes. Enhance development process by building custom rules in Open Policy Agent's Rego query language. Meshery and Open Policy Agent Integration



WebAssembly Logo

Manage data plane intelligence with WebAssembly filters

Dynamically load and manage your own WebAssembly filters in Envoy-based service meshes.



WebAssembly filters

See Image Hub.



Performance Management

Adhering to Cloud Native Standards

Shows an illustrated light mode meshery logo in light color mode and a dark mode meshery logo dark color mode.

In an effort to produce service mesh agnostic tooling, Meshery uses the Service Mesh Performance specification as a common format to capture and measure your infrastructure's performance against a universal cloud native performance index. As an implementation of Service Mesh Interface (SMI), Meshery participates in advancing cloud native infrastructure adoption through the standardization of APIs.

Standardized Cloud Native Performance Management

Meshery is the cloud native utility for uniformly managing the performance of microservices and the infrastructure that run them. As an implementation of the Service Mesh Performance (SMP), Meshery enables you to measure the value provided by Docker, Kubernetes, or a service mesh in the context of the overhead incurred.

Performance Management

Meshery Architecture

You may deploy Meshery internal to your cluster or external to your cluster.

Learn more about Meshery's architecture.

Get Started with Meshery

Using `mesheryctl`

Meshery runs as a set of containers inside or outside of your Kubernetes clusters.

curl -L https://meshery.io/install | bash -

Use the quick start guide.

See all supported platforms

See the getting started section to quickly deploy Meshery on any of these supported platforms:

Platform Supported?
Docker ✔️
    Docker - Docker App ✔️
    Docker - Docker Extension ✔️
Kubernetes ✔️
    Kubernetes - AKS ✔️
    Kubernetes - Docker Desktop ✔️
    Kubernetes - EKS ✔️
    Kubernetes - GKE ✔️
    Kubernetes - Helm ✔️
    Kubernetes - kind ✔️
    Kubernetes - Minikube ✔️
    Kubernetes - OpenShift In Progress
Linux ✔️
Mac ✔️
    Mac - Homebrew ✔️
Windows ✔️
    Scoop ✔️
    WSL2 ✔️
Raspberry Pi In Progress

Meshery documentation offers thorough installation guides for your platform of choice.

 

 

Join the Meshery community!

Our projects are community-built and welcome collaboration. 👍 Be sure to see the Contributor Journey Map and Community Handbook for a tour of resources available to you and the Repository Overview for a cursory description of repository by technology and programming language. Jump into community Slack or discussion forum to participate.

MeshMates

Find your MeshMate

MeshMates are experienced Layer5 community members, who will help you learn your way around, discover live projects, and expand your community network. Connect with a Meshmate today!

Find out more on the Layer5 community.



Layer5 Cloud Native Community

✔️ Join any or all of the weekly meetings on community calendar.
✔️ Watch community meeting recordings.
✔️ Fill-in a community member form to gain access to community resources.
✔️ Discuss in the Community Forum.
✔️ Explore more in the Community Handbook.





     Not sure where to start? Grab an open issue with the help-wanted label.



 

Contributing

Please do! We're a warm and welcoming community of open source contributors. Please join. All types of contributions are welcome. Be sure to read the Contributor Guides for a tour of resources available to you and how to get started.

 

Stargazers

If you like Meshery, please star this repository to show your support! 🤩

License

This repository and site are available as open-source under the terms of the Apache 2.0 License.

meshery-osm's People

Contributors

acald-creator avatar aisuko avatar anita-ihuman avatar asubedy avatar ayushthe1 avatar delusionaloptimist avatar dependabot[bot] avatar dhruv0000 avatar edwvilla avatar emmanuellar avatar ghat0tkach avatar gr455 avatar iamsdas avatar jasonjg avatar kumarabd avatar kushthedude avatar l5io avatar leecalcote avatar lumencodes avatar muzairs15 avatar revolyssup avatar samyakshah3008 avatar sayantan1413 avatar shreyas220 avatar tangledbytes avatar thebeginner86 avatar utkarsh-pro avatar utkarshmishra12 avatar warunicorn19 avatar yash37158 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meshery-osm's Issues

[README] Need to add `Community Forum`

Description

README.md is the first file one should read when starting a new project. Our community launched Discussion forum for help seekers; needs to publish it officially on README.md for convenience.

Screenshots

Current behaviour:
image

Desired behaviour:
image

Note:
Need to add only last line for Community Forum

Environment:

  • OS: any [e.g. Ubuntu]
  • Browser: any [e.g. Chrome, Safari]
  • Version: any [e.g. 22]
  • Device: any [e.g. laptop, iPhone 8]

Reference:

unable to create kubeconfig: open /root/.kube/config

Description
Beta version of this adapter is released in Meshery v0.4.2 is reporting:

meshery-osm_1       | time="2020-08-17T04:12:10Z" level=error msg="unable to create kubeconfig: open /root/.kube/config: no such file or directory"

Enviroment:

  • OS: MacOS
  • Browser: Safari
  • running Docker Desktop

[README] Update README Community Section

Description
The Community section in the README says "Access the Community Drive". There is a new procedure of having this automated based on the individual filling in a community member form

Expected Behavior
Update "Access Community Drive" to "To Access Community Drive, fill Community Member Form"

Screenshots
img

Resources
Refer to the Contributing guide

Enviroment:

  • OS: [e.g. Ubuntu]
  • Browser: [e.g. Chrome, Safari]
  • Version: [e.g. 22]
  • Device: [e.g. laptop, iPhone 8]

[README] Need to fix Slack badge

Description

README.md is the first file one should read when starting a new project. For attractive look, we added some badges also.
But, there's a Slack badge, need to fix that.

Example Screenshot :-

Current Behavior

image

Desired Behavior
image

Environment:

  • OS: any [e.g. Ubuntu]
  • Browser: any [e.g. Chrome, Safari]
  • Version: any [e.g. 22]
  • Device: any [e.g. laptop, iPhone 8]

[Patterns] adding more properties to `OSMMesh` workloads

Enhancement Description
OSMMesh workloads, which are used for installing OSM, should have more properties.
This would allow users to have more control over configuration when they install the service mesh.

Some Considerations

Add Reminder in the Welcome Bot to Star the Meshery-osm Project

Current Behavior
A welcome bot has been configured to usher in contributors new to this project. However, a reminder to star the project is missing in the message.

Desired Behavior
The config.yml should be updated, you can take a cue from the highlighted line 22


[Optional] Alternatives
A brief description of any alternative solutions or features you've considered.

[Optional] Additional context
Add any other context or screenshots about the feature request here.

[CI] Failed static checks

Current Situation
The build process for this adapter has failing static golang checks - https://github.com/meshery/meshery-osm/runs/4352711502?check_suite_focus=true

Desired Situation
No checks should be failing.

Contributor Resources

The meshery.io website uses Jekyll and GitHub Pages. Site content is found under the master branch.

The CI is passing when a stage fails to run

Description
The CI for docker build and push seems to be passing even when some of the stages are not being triggered.

Expected Behavior
Ideally this should result in a failure during these instances.

Screenshots
Screenshot 2020-09-26 at 11 06 07 AM

Adapter Operations are thread unsafe

Description
OSM Adapter operations are thread unsafe at the moment due its usage of meshery-adapter-library viper config provider.

Expected Behavior
Operations should be thread safe. This is achievable by replacing meshery-adapter-library config provider implementation with meshkit config provider implementation which share similar interfaces.

Contributor Resources
Refer Istio Adapter to see how config provider can be replaced

[CI] add label commenter workflow

Description
This repository should have the label commenter workflow.
It would run whenever an issue/pr is labelled with one of the targeted labels and comment down any relevant information.

Contributor Reference

The workflow would use: https://github.com/peaceiris/actions-label-commenter

A sample workflow is defined in: https://github.com/meshery/meshery/blob/master/.github/workflows/label-commenter.yml.

It would also need a sample configuration which is defined in: https://github.com/meshery/meshery/blob/master/.github/label-commenter-config.yml

NOTE:

[feature]: The custom service-mesh configuration checking feature

Enhancement Description
A brief description of the enhancement.

We need the custom service-mesh configuration checking feature for meshery-osm.

Related Challenges
A brief description of what the problem is. (e.g. I need to be able to...)


[Optional] Alternatives
A brief description of any alternative solutions or features you've considered.

[Optional] Additional context
Add any other context or screenshots about the feature request here.

Logo missing in Adapter Chip in Meshery UI

Description
In the last release of this adapter, the icon in the adapter chip has gone missing.

Expected Behavior
Should show an OSM icon.

Screenshots
Screen Shot 2021-04-13 at 9 13 02 PM

Environment:

  • Meshery Version: v0.5.2

[Bug] Incorporate Adapter Version # at buildtime

Description

build-args main.version=$VERSION and main.gitsha=$GIT_COMMITSHA are not being picked up.

Expected Behavior

when testing locally e.g. building using
GOPROXY=direct GOSUMDB=off go build -ldflags="-w -s -X main.version=VERSION -X main.gitsha=GIT_COMMITSHA" -a -o ./meshery-osm .

and running ./meshery-osm

expected result of grpcurl --plaintext 127.0.0.1:10009 meshes.MeshService.ComponentInfo

{
  "type": "adapter",
  "name": "OPEN_SERVICE_MESH",
  "version": "VERSION",
  "gitSha": "GIT_COMMITSHA"
}

Replace meshery-osm adapter to use meshey-kit and meshery-framework as primary dependencies

Enhancement Description
A brief description of the enhancement.

As we discussed we should replace meshery-osm adapter to use meshey-kit and meshery-framework as primary dependencies. So I'm going to work on meshery-osm adapter @kumarabd @leecalcote @mgfeller

Related Challenges
A brief description of what the problem is. (e.g. I need to be able to...)


[Optional] Alternatives
A brief description of any alternative solutions or features you've considered.

[Optional] Additional context
Add any other context or screenshots about the feature request here.

Replace logging with logrus

We are using logrus in all of our projects, it would be great to have meshery-osm use logrus for the default logging.

Update issue labels

Description

Update Issue labels to make it easy to highlight issues with appropriate tags.

[Lifecycle] remove version hardcoding

Enhancement Description
Support multiple versions in the OSM adapter.

Related Challenges

  • Currently the OSM adapter only installs OSM v0.6.0. We need to be able to fetch binaries for the latest releases and use the latest OSM.
  • Also, when reading binaries from ~/.meshery/bin it expects them to be in the form osm-v0.6.0. This is a side effect of point one but should be kept in mind.

Alternatives
Using docker cp $binPath meshery_meshery-osm_1:/root/.meshery/bin/osm-v0.6.0 for tricking the adapater to believe that the current binary is for osm-v0.6.0. Too hacky.

Contributor Resources

The meshery.io website uses Jekyll and GitHub Pages. Site content is found under the master branch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.