meshery / meshery-nginx-sm Goto Github PK
View Code? Open in Web Editor NEWMeshery Adapter for NGINX Service Mesh
License: Apache License 2.0
Meshery Adapter for NGINX Service Mesh
License: Apache License 2.0
Current Behavior
The adapter uses the CLI for installing NGINX service mesh.
Desired Behavior
Use helm charts instead.
Current Behavior
See meshery/meshery#1270 for additional details and the meshery/meshery#284 epic.
Desired Behavior
Implement in the same fashion that has been done in layer5io/meshery repo.
The tests in https://github.com/meshery/meshery-nginx-sm/.github/workflows/e2etests.yaml use Kubernetes manifests to deploy Meshery .
Edit the workflow to use mesheryctl in deploying meshery.
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.
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.
Each template that has a reference to Figma in its resources section should an invite link added.
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)
Current Behavior
Meshery Adapter for NSM should have support for pattern components.
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
The meshery.io website uses Jekyll and GitHub Pages. Site content is found under the master
branch.
Description
See https://github.com/layer5io/meshery-nginx-sm/runs/1284452222?check_suite_focus=true for more description.
The release tag (version) should be displayed in this tooltip.
Container image digest: sha256:93c2291e83e86d69d9c0838a81b6373cae005910be7298aac65fa2696aa8112d
Current Behavior
The adapter doesn't get build version assigned at build time.
Desired Behavior
The meshery.io website uses Jekyll and GitHub Pages. Site content is found under the master
branch.
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.
This would be fixed when correct build args are passed to the docker build step inside multiplatform workfow.
Required Args:
Check this commit for reference:
meshery/meshery-consul@446ad17
related to: meshery/meshery#6245
Need to update Go
to 1.21
in go.mod
and in Dockerfile
, and also Makefile
meshkit
and meshery-adapter-library
Description
Adapter images will need to be stored in Layer5's Docker Hub org.
A new repo needs to be created for this adapter.
Under GitHub Actions of this repository "Slack Notify on Star" job is failing for which Slack.yaml is to be Updated.
To fix this issue, update the code of slack.yaml just by copy/pasting the code from slack.yaml of meshery
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.
Till now we are using v1 for all centralized e2e tests
We are now migrating to v2 for all the adapters
Meshery users, particularly those running Docker Desktop can benefit from multi-platform images of Meshery Server.
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:
model name should be SMP enum and display-model-name should be human readable sourced from the spreadsheet
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:
State: Terminated
Reason: Error
Exit Code: 1
2. Installing meshery and adpater manifests directly using kubectl
3. Installing meshery and adapter using Helm
Other bugs:
nginx-sm deployment doesn't show up in Meshery dashboard even though meshsync is receiving the updates.
Environment:
Fix the docker file to make image around 30 MB or so
Current Behavior
There is no operation to prepare targeted namespace and enable nginx-sm automatic sidecar injection on it.
Desired Behavior
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
The meshery.io website uses Jekyll and GitHub Pages. Site content is found under the master
branch.
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.
The meshery.io website uses Jekyll and GitHub Pages. Site content is found under the master
branch.
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
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
Current Behavior
There are not pattern component handlers. They are the ones which actually process pattern components.
Desired Behavior
This adapter should have those so that patterns can be used.
Resources
For reference:
https://github.com/meshery/meshery-istio/blob/master/istio/oam.go
https://github.com/meshery/meshery-kuma/blob/master/kuma/oam.go
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:
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)
	 	 	 	 :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.
See these build logs for details - https://github.com/meshery/meshery-nginx-sm/actions/runs/2411013386
Current State:
The Readme for this repo shows Meshery adapter for KUMA
Desired State:
Make the correction to be NGINX Service Mesh
Contributor Resources
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:
Currently we run e2e tests which run a patternfile(which only installs nginx service mesh)
We need to a nginx demo application in patternfile format and add that in e2etest
https://github.com/meshery/meshery-nginx-sm/actions/runs/6887101726
All E2E test should pass for latest Meshery Adapter for NGINX Service Mesh.
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.
Nginx service mesh should be installed in correct namespace.
Currently the component-generator workflow is stale and fails.
Use the same workflow as other adapters and generate components by running the adapter.
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)
A list of end-to-end tests are failing on meshery nginx adapter
The following end-to-end integration test workflow has an incomplete definition of test assertions -
Define end-to-end integration test assertions
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).
Although if this is being copy-pasta'd across all the repo's it would be better generalize the messages and reuse these workflows if possible.
https://docs.github.com/en/actions/using-workflows/reusing-workflows
Originally posted by @jbyers19 in #97 (comment)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.