GithubHelp home page GithubHelp logo

meshery / meshery-nsm Goto Github PK

View Code? Open in Web Editor NEW
35.0 15.0 35.0 1.41 MB

Meshery adapter for Network Service Mesh

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

License: Apache License 2.0

Makefile 2.15% Dockerfile 2.91% Go 94.94%
network-service-mesh service-mesh meshery service-mesh-playground performance-benchmarking management-plane hacktoberfest meshery-adapter meshery-nsm service-mesh-performance-benchmark

meshery-nsm'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-nsm's People

Contributors

acald-creator avatar ahmadateya avatar aisuko avatar anita-ihuman avatar anshgoyalevil avatar arturba avatar ashiscs avatar chetak123 avatar debjani1413 avatar delusionaloptimist avatar dependabot-preview[bot] avatar dependabot[bot] avatar girishranganathan avatar gr455 avatar gunjanmimo avatar harshini-m avatar iamsdas avatar jesuslerma avatar karnatisrinivas avatar kushthedude avatar leecalcote avatar mgfeller avatar nebula-aac avatar patil2099 avatar sayantan1413 avatar sd-13 avatar tangledbytes avatar thebeginner86 avatar utkarshmishra12 avatar vaibhavmalik4187 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

Watchers

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

meshery-nsm's Issues

NSM Provisioning Fails - missing /charts manifests

Description
Using the latest version of NSM adapter, provisioning of NSM fails. See the error below. Helm charts have moved directories.

Expected Behavior
Short-term, the provisioning of NSM can be updated to use the new path to the charts directory - https://github.com/networkservicemesh/networkservicemesh/tree/master/deployments/helm

Long-term, the NSM adapter needs to be updated to use helm; to deploy NSM in the fashion in which the NSM project defines (using networkservicemesh/helm-charts). See #53 .

Logs

ERRO[0045] render manifests error: found in requirements.yaml, but missing in charts/ directory: config
DEBU[0045] sending event: &meshes.EventsResponse{EventType:2, Summary:"Error while deploying NSM", Details:"render manifests error: found in requirements.yaml, but missing in charts/ directory: config", OperationId:"ca151287-f9f6-4e12-afba-0a134fedd94c", XXX_NoUnkeyedLiteral:struct {}{}, XXX_unrecognized:[]uint8(nil), XXX_sizecache:0}

[CI] Update Multi Platform build and Release workflow

Current Behavior

Currently, the multiplatform.yml file is sending unwanted build arguments to docker build process because of which release tag and commit_sha are not being passed over to the image and hence the version of meshery adapter are not visible on-hovering adapters chips on Meshery UI Dashboard.

Desired Behavior

This would be fixed when correct build args are passed to the docker build step inside multiplatform workfow.
Required Args:

  • VERSION
  • GIT_COMMITSHA

Check this commit for reference:
meshery/meshery-consul@446ad17

related to: meshery/meshery#6245


Contributor Resources

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

Align Discuss

Description
Align the Discuss with the others

Current Behavior
Screenshot 2021-07-08 at 7 17 08 PM

Expected Behavior
Screenshot 2021-07-08 at 7 17 30 PM

Enviroment:

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

Dependabot can't resolve your Go dependency files

Dependabot can't resolve your Go dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

go: vbom.ml/[email protected]: unrecognized import path "vbom.ml/util" (https fetch: Get http://vbom.ml/util/?go-get=1: redirected from secure URL https://vbom.ml/util?go-get=1 to insecure URL http://vbom.ml/util/?go-get=1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Issue Template Updates for Figma link

Current Behavior

The project's current issue templates are missing an open invitation link where new contributors can join the community's Figma team and view user interface designs and other UX projects.

Desired Behavior

Each template that has a reference to Figma in its resources section should an invite link added.

Implementation

In each issue template that refers to Figma, replace the current line referring to Figma with this line:

- ๐ŸŽจ Wireframes and [designs for Meshery UI](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9)

Acceptance Tests

  1. All references to Figma include the "open invite" link.

Contributor Resources

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

Update README with new Meshery logo

Description
A Meshery logo is available. The old version of the logo used in the README should be displaced.

Expected Behavior
New Meshery logo should displace old logo with:

<a href="https://layer5.io/meshery"><img align="left" src="https://raw.githubusercontent.com/layer5io/meshery/master/ui/static/img/meshery-logo/meshery-logo-light-text.png"  width="25%" /></a>

Normalize static and dynamic component generation like other adapters

Current Behavior

Currently we have no static or dynamic component generation being generated.

Desired Behavior

Implementation

Acceptance Tests

Mockups


Contributor Guides and Resources

[Bug] Incorporate Adapter Version # at buildtime

Enhancement Description

The version of the meshery-nsm adapter is not yet displayed in the Meshery UI when hovering over the adapter, only its name and port.

From the code, it looks as almost everything is in place, except setting the build-args VERSION and GIT_COMMITSHA in build-and-release.yml that are subsequently picked up in Dockerfile.

From the Consul adapter:

image

The adapter version is exposed in the ComponentInfo endpoint:

grpcurl --plaintext 127.0.0.1:10004 meshes.MeshService.ComponentInfo

For edge-latest, this returns

{
  "type": "adapter",
  "name": "NETWORK_SERVICE_MESH"
}

For master version running locally, this returns

{
  "type": "adapter",
  "name": "NETWORK_SERVICE_MESH",
  "version": "none",
  "gitSha": "none"
}

Additional context

See also meshery/meshery-adapter-library#25

Contributor Resources

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

Dependabot can't resolve your Go dependency files

Dependabot can't resolve your Go dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

go: vbom.ml/[email protected]: unrecognized import path "vbom.ml/util" (https fetch: Get https://vbom.ml/util?go-get=1: EOF)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Replace the Logo of Layer5 with Meshery in config.yml workflow

Description

Currently, we are using the Logo of Layer5 instead of Meshery. This repository is under the organization Meshery, so, there should be the image of Meshery.

How to resolve this?

  • Go to .github and replace this welcome image with the new one:

  • Make sure to display the images conditionally, based on the theme selected by user.
    Here's the sample code:

<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/GiorgosXou/Random-stuff/main/Programming/StackOverflow/Answers/70200610_11465149/w.png">
  <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/GiorgosXou/Random-stuff/main/Programming/StackOverflow/Answers/70200610_11465149/b.png">
  <img alt="Meshery Logo" src="">
</picture>

New images are:

Meshery-celebration-Light
Meshery-celebration-Dark

  • Download these images, and upload with an appropriate name. Make sure to use conditional rendering as described above.

  • After uploading the image, and removing the previous image, go to .github/config.yml folder and update the reference to previous image to the new image in the following part:

firstPRMergeComment: >
  Thanks for your contribution to the Layer5 and Meshery community! :tada:
   
  ![Congrats!](https://raw.githubusercontent.com/meshery/meshery.io/master/.github/welcome/Layer5-celebration.png)
  &nbsp; &#9; &nbsp; &#9;  &nbsp; &#9;  &nbsp; &#9; :star: Please leave a [star on the project](../stargazers). :smile:

Here, replace ![Congrats!](https://raw.githubusercontent.com/meshery/meshery.io/master/.github/welcome/Layer5-celebration.png) with the code

<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/GiorgosXou/Random-stuff/main/Programming/StackOverflow/Answers/70200610_11465149/w.png">
  <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/GiorgosXou/Random-stuff/main/Programming/StackOverflow/Answers/70200610_11465149/b.png">
  <img alt="Shows a black logo in light color mode and a white one in dark color mode." src="https://user-images.githubusercontent.com/25423296/163456779-a8556205-d0a5-45e2-ac17-42d089e3c3f8.png">
</picture>

make sure to change the image sources with the path to image in the folder where you upload it.

  • That's it.

Contributor Guides and Handbook

[CI] Support multi-platform Docker images

Desired Behavior

Meshery users, particularly those running Docker Desktop can benefit from multi-platform images of Meshery Server.

Implementation

Refactor existing stable and edge build and release workflows to use docker-build-push actions. See https://github.com/meshery/meshery/blob/master/.github/workflows/build-and-release-dde.yml as an example.

Be aware of local binaries and their needs:

  1. layer5/kubeopenapi-json

Acceptance Tests

  1. platform: linux/amd64,linux/arm64 should both be supported.

Mockups


Contributor Guides and Resources

Bring NSM adapter in consistency with current state of other adapters

Current Behavior

NSM adapter hasn't been worked on since a long time causing it to stay behind other adapters.

Desired Behavior

A volunteer is required to analyze the changes needed to be done and bring this adapter up to date.
A rough overview

  • Bring PatternOps
  • Bring Multi cluster handling
  • Notification centre changes
  • And all other smaller changes

Implementation

Acceptance Tests

Mockups


Contributor Guides and Resources

Update go version in github actions workflows to 1.17

Current Behavior

Many of places in the workflows still mention go version 1.16 yet the adapters use go version 1.17

Desired Behavior

Workflows should also use go version 1.17

Implementation

Acceptance Tests

Mockups


Contributor Guides and Resources

[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 failing, 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]

[CI] Update Slack.yml and add newcomer-alert workflow

Current Behavior
Currently the slack.yml is outdated. Also there is no automated way of notifying the slack channel when a "good first issue" has been created.

Desired Behavior
Update slack.yml and add newcomer-alert.yml to the Github workflow.


Resources
Add the updated slack.yml file and the newcomer-alert.yml file to the .github/workflow folder.

Files needed:
https://github.com/meshery/meshery-istio/blob/master/.github/workflows/slack.yml
https://github.com/layer5io/layer5/blob/master/.github/workflows/newcomers-alert.yml

[Security] Poor security rating

Current Behavior

This adapter rates as a "F" for security currently based on it's outdated dependencies.

Desired Behavior

Ideally, the container image and this adapter's dependencies are brought up to speed and security rating improved.

Example: https://artifacthub.io/packages/helm/meshery/meshery?modal=security-report


Contributor Guides and Resources

[Bug] The CI stages need to add back

Description
A brief description of the issue.

As we can see, we comment out many steps of code checking, that may not good for maintaining the project. We need to add them back and check it work well. That can fix the PR under Ci check failed issues like #62 ...

Expected Behavior
A brief description of what you expected to happen.

All code checking jobs can work well and all jobs succeed. The Ci can build and release the images

Screenshots
Add screenshots, if applicable, to help explain your problem.

Enviroment:

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

[Optional] To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

[Optional] Additional Context
Add any other context about the problem here.

Support installing NSM and its sample apps using helm

Current Description
The adapter is using helm to install NSM and its sample apps. But we are using a cloned version of the helm repo to use it.

Expected Behavior
We want to be able to use the official helm repos to be able to install NSM and its sample apps. This will prevent us from using edge version all the time and also provide us the ability to install specific versions of NSM and sample apps.

[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:

Create contributing.md in Meshery-nsm repo

Issue Description
Create contributing.md that points to the central contributing.md in the Meshery repo.

Create a stub CONTRIBUTING.md in each of the repos that essentially say:
โ€œYou want to contribute to the project? Yay! We want you to! Visit our centralized instructions for contributing.", where the โ€œcontributingโ€ is a hyperlink to the CONTRIBUTING.md in the main meshery repo.

Future Effort
In time, as more contributors join the project, we may need a meshery-community repo that has all this and much more info or to have a community / contributing section in the meshery docs.

README: Add hyperlinks to badges

Description
Some of the badges in this repos readme are missing informative hyperlinks.

Desired Behavior
The badges (and their links) that are used in the Meshery repo's README are a great example of how the badges in this repo can be improved.

Support NSM's helm charts repo

Enhancement Description
The current design the NSM adapter is using for deployments is somewhat fragile. Using helm install will insulate Meshery from movement of charts directories and it will have the affect of Meshery only installing NSM releases, not intermediate versions of charts between releases.

Related Challenges


[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.feature

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.