Giter Club home page Giter Club logo

meshery-nginx-sm'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](#functionality) - [Meshery Architecture](#meshery-architecture) - [Join the Meshery community!](#join-the-meshery-community) - [Contributing](#contributing) - [Stargazers](#stargazers) - [License](#license)

Β 

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-nginx-sm's People

Contributors

acald-creator avatar ahmadshen avatar anita-ihuman avatar asubedy avatar ayushthe1 avatar chandrashritii avatar delusionaloptimist avatar dependabot[bot] avatar dhruv0000 avatar goldfishdolphin avatar gr455 avatar iamsdas avatar kumarabd avatar kushthedude avatar leecalcote avatar lolverae avatar muzairs15 avatar npdebs avatar philip-21 avatar revolyssup avatar rohith-raju avatar ruhi09 avatar sayantan1413 avatar shreyas220 avatar tangledbytes avatar tapanhalani avatar thebeginner86 avatar utkarsh-pro 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meshery-nginx-sm's Issues

[CI] Define end-to-end integration test assertions

Current Behavior

The following end-to-end integration test workflow has an incomplete definition of test assertions -

https://github.com/meshery/meshery-nginx-sm/pull/74/files#diff-97b970edb06fde1bf84caf7d208459d2b5e22e8c3166eb9ec6969a321923c9fcR93-R95

Desired Behavior

Define end-to-end integration test assertions

Acceptance Tests

Passing/failing results should show in Meshery Docs compatibility matrix - https://docs.meshery.io/project/compatibility-matrix (this portion of the workflow is complete already).


Contributor Guides and Resources

[Security] Fix for CVE-2016-9962 (moderate severity)

Current State:

CVE-2016-9962 (moderate severity)

Vulnerable versions: <= 1.0.0-rc2
Patched version: 1.0.0-rc3
RunC allowed additional container processes via 'runc exec' to be ptraced by the pid 1 of the container. This allows the main processes of the container, if running as root, to gain access to file-descriptors of these new processes during the initialization and can lead to container escapes or modification of runC state before the process is fully placed inside the container.

Desired State:

In go.mod:

require github.com/opencontainers/runc v1.0.3

Contributor Resources

Change component generation workflow to normalize with other adapters

Current Behavior

Currently the component-generator workflow is stale and fails.

Desired Behavior

Use the same workflow as other adapters and generate components by running the adapter.

Implementation

Acceptance Tests

Mockups


Contributor Guides and Resources

[CI] Support for Generation of Pattern Components

Current Behavior
Meshery Adapter for NSM should have support for pattern components.

Design spec reference

Desired Behavior
Historical and version versions of NSM components should be created and embedded in this adapter repo.

Implementation

Create a GitHub workflow for getting the manifest from NGINX SM Helm Charts using the kubeopenapi-jsonschema to read and generate json schemas from those manifests and then also generating workload definitions from those schemas.

A sample workflow is here


Contributor Resources

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

Adapter version not displaying in Meshery UI

Current Behavior

Screen Shot 2022-01-11 at 5 01 51 PM

Expected Behavior

The release tag (version) should be displayed in this tooltip.

Environment

  • Host OS: Mac
  • Platform: Kubernetes
  • Meshery Server Version: stable-v0.6.0-rc-3
  • Meshery Client Version: stable-v0.6.0-rc-3
  • Meshery Adapter Version: ???

Container image digest: sha256:93c2291e83e86d69d9c0838a81b6373cae005910be7298aac65fa2696aa8112d


Contributor Guides and Resources

Support for displaying pre-req

Support for displaying pre-req before installing the NGINX-SM in Meshery dashboard, whenever someone tries to install NGINX-sm in the cluster. The mesh requires PV supported and configured in the cluster before installation.

[Read Me] ADD COMMUNITY FORUM

In the README file of this repo, the link for the community discussion forum has not been added yet.

Current State:
image

Desired State:
image


I would like to add the above-mentioned link to the README file for the convenience of the developers who are just starting to contribute to this project.

Need for upgrading test adapter to v2 for all e2e tests

Current Behavior

Till now we are using v1 for all centralized e2e tests

Expected Behavior

We are now migrating to v2 for all the adapters

Screenshots/Logs

Environment

  • Host OS: Mac Linux Windows
  • Platform: Docker or Kubernetes
  • Meshery Server Version: stable-v
  • Meshery Client Version: stable-v
  • Meshery Adapter Version: stable-v

Contributor Guides and Resources

Normalise Service Mesh Meshmodel model names to SMP enums

Current Behavior

Desired Behavior

model name should be SMP enum and display-model-name should be human readable sourced from the spreadsheet

Implementation

Acceptance Tests

Mockups


Contributor Guides and Resources

[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

[CI] Failing E2E tests

Current Behavior

https://github.com/meshery/meshery-nginx-sm/actions/runs/6887101726

Expected Behavior

All E2E test should pass for latest Meshery Adapter for NGINX Service Mesh.

Screenshots/Logs

Environment

  • Host OS: Mac Linux Windows
  • Platform: Docker or Kubernetes
  • Meshery Server Version: stable-v
  • Meshery Client Version: stable-v
  • Meshery Adapter Version: stable-v

Contributor Guides and Resources

Add application in E2E tests

Current Behavior

Currently we run e2e tests which run a patternfile(which only installs nginx service mesh)

Desired Behavior

We need to a nginx demo application in patternfile format and add that in e2etest

Implementation

Acceptance Tests

Mockups


Contributor Guides and Resources

[bugs] nginx-sm installation

Description
Bugs encountered while installing Nginx-sm using the edge-latest release of Meshery and the adapter installed in cluster.

1. Meshery server and adapter installed using mesheryctl:

time="2021-09-24T10:28:33Z" level=error msg="failed to install CRD crds/circuitbreaker.yaml: customresourcedefinitions.apiextensions.k8s.io is forbidden: User\"system:serviceaccount:meshery:default\" cannot create resource \"customresourcedefinitions\" in API group \"apiextensions.k8s.io\" at the cluster scope" app=nginx-adaptor code=1006 probable-cause= severity=2 short-description="Error with Nginx installation" suggested-remediation=
  • Cause: Missing serviceAccount in manifests downloaded by mesheryctl however they're present in the upstream adapter manifests

  • Workaround Edit the adapter's resource and add meshery-server as serviceAccount manually.

  • If you apply the above fix which works with other adapters, the adapter tries to install in meshery namespace regardless of the namespace specified and even then the nginx-sm init pods fail with errors:

    2021-09-24_16-07

    State:          Terminated
    Reason:       Error
    Exit Code:    1

2. Installing meshery and adpater manifests directly using kubectl

  • The same bug you would face when deploying after applying the workaround in the above step.

3. Installing meshery and adapter using Helm

  • Helm charts for nginx-sm adapter not present.

Other bugs:
nginx-sm deployment doesn't show up in Meshery dashboard even though meshsync is receiving the updates.

Environment:

  • OS: Linux
  • Meshery: edge-latest
  • Nginx-sm-adapter: edge-latest
  • Environment: kubernetes 1.20.7
  • Nginx-sm version: v1.2.0

[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

[Readme] Consistently present Meshery logo

Current State

1> The logo in the readme is not consistent with the one in meshery/meshery repo make it consistent :)

2> "Join Layer5 Slack!" text in the readme doesn't display properly in dark mode. Fix it.

Desired State


Contributor Guides and Resources

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

[Patterns] Support Runtime Generation and Registration of Components

Current Behavior
Adapter invokes predefined operations.

Desired Behavior
In support of service mesh patterns, and now that the open application model types are in meshkit, istio adapter should be modified to use these.


Contributor Resources

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

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 Guides and Resources

Incorporate adapter version # at buildtime

Current Behavior
The adapter doesn't get build version assigned at build time.

Desired Behavior


Contributor Resources

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

Fix reference to Welcome image

The path to the welcome image needs to be fixed so that the Welcome image appears correctly.

Thanks for your contribution to the Layer5 community! πŸŽ‰

![Congrats!](../.github/welcome/Layer5-celebration.png)

Originally posted by @WELCOME in #8 (comment)

Enhance E2E tests to use mesheryctl to deploy Meshery

Current Behavior

The tests in https://github.com/meshery/meshery-nginx-sm/.github/workflows/e2etests.yaml use Kubernetes manifests to deploy Meshery .

Desired Behavior

Edit the workflow to use mesheryctl in deploying meshery.

Implementation

Acceptance Tests

Mockups


Contributor Guides and Resources

[configuration] add operation for enabling automatic sidecar injection

Current Behavior
There is no operation to prepare targeted namespace and enable nginx-sm automatic sidecar injection on it.

Desired Behavior

  • An operation which would allow users to annotate a namespace and thus prepare it for auto sidecar injection.
  • Whenever a sample app is deployed, this operation should be triggered automatically to ensure that the pods have NGINX sidecars injected.

Resources
For reference, see:
https://github.com/meshery/meshery-istio/blob/7d73a272e4886588bb3552018f0eae6f440aa2ea/istio/istio.go#L126
https://github.com/meshery/meshery-istio/blob/40d1ab790a50fd74f603c450da3d05984f8564db/istio/sample_apps.go#L84
https://github.com/meshery/meshery-istio/blob/40d1ab790a50fd74f603c450da3d05984f8564db/istio/sample_apps.go#L108

Contributor Resources

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

[MeshOps V2] Nginx being installed in wrong namespace

Current Behavior

In these run https://github.com/meshery/meshery-nginx-sm/actions/runs/4344979097/jobs/7589088220 even after giving namespace explicitly as nginx-system, it is being installed in meshery namespace.

Expected Behavior

Nginx service mesh should be installed in correct namespace.

Screenshots/Logs

Environment

  • Host OS: Mac Linux Windows
  • Platform: Docker or Kubernetes
  • Meshery Server Version: stable-v
  • Meshery Client Version: stable-v
  • Meshery Adapter Version: stable-v

Contributor Guides and Resources

Create Docker Hub Repository

Description
Adapter images will need to be stored in Layer5's Docker Hub org.

A new repo needs to be created for this adapter.

[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

Environment

  • Host OS: Mac Linux Windows
  • Platform: Docker or Kubernetes
  • Meshery Server Version: stable-v
  • Meshery Client Version: stable-v
  • Meshery Adapter Version: stable-v

Contributor Guides and Resources

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

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.