Giter Club home page Giter Club logo

meshkit'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.

meshkit's People

Contributors

abdullah1308 avatar abhishek-kumar09 avatar acald-creator avatar aisuko avatar azanul avatar deeptanshudas avatar delusionaloptimist avatar dependabot[bot] avatar dhruv0000 avatar freedisch avatar harkiratsm avatar humblenginr avatar jbyers19 avatar jougan-0 avatar kumarabd avatar leecalcote avatar mgfeller avatar muzairs15 avatar nebula-aac avatar panyuenlau avatar philip-21 avatar piyushsingariya avatar revolyssup avatar ripulhandoo avatar shuklaritvik06 avatar tangledbytes avatar thebeginner86 avatar utkarshmishra12 avatar vihasmakwana avatar yashsharma1911 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meshkit's Issues

The logger issue in [email protected]

Description

Hi, team. Please help to confirm that [email protected] issue with the logger

https://github.com/meshery/meshery-linkerd/runs/4887907143?check_suite_focus=true

https://github.com/meshery/meshery-linkerd/runs/4887907143?check_suite_focus=true

# github.com/layer5io/meshkit/logger
167
Error: ../../../go/pkg/mod/github.com/layer5io/[email protected]/logger/controller.go:23:9: cannot use &Controller{...} (type *Controller) as type logr.Logger in return argument
168
Error: ../../../go/pkg/mod/github.com/layer5io/[email protected]/logger/controller.go:42:2: cannot use c (type *Controller) as type logr.Logger in return argument
169
Error: ../../../go/pkg/mod/github.com/layer5io/[email protected]/logger/controller.go:47:2: cannot use c (type *Controller) as type logr.Logger in return argument
170
Error: ../../../go/pkg/mod/github.com/layer5io/[email protected]/logger/controller.go:52:2: cannot use c (type *Controller) as type logr.Logger in return argument

Expected Behavior

Screenshots

Environment:

  • 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

[Errors] Error codes utility script

Current Behavior

Many error codes are placeholders that need to be replaced. There is no static check that verifies that codes within a repo/component do not overlap.

Desired Behavior

Script to verify (no duplicates) and update error codes in source code. Also to extract error information into a file that can be used as basis for publishing all error codes on the meshery website. Can be run locally and as part of a CI workflow.


Imlementation notes

see #48


Resources

https://docs.google.com/document/d/1_zpEWBcC6ngOLen_E_nc-octiUdBbpmdwwIX6qzo70M/edit

Alternatives / Additional Context

Debug logging configurable

Description
Currently the method to switch between Debug logs is not functional.

Expected Behavior
Debug logs should be configurable based on parameter input.


[Optional] To Reproduce
Steps to reproduce the behavior:

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

[Optional] Additional Context

Segmentation fault in constructObject function

Description
When installing istio, the install fails with the following error

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x16d84be]

goroutine 14 [running]:
github.com/layer5io/meshkit/utils/kubernetes.constructObject(0x22c0620, 0xc0003c51e0, 0xc000aba2c0, 0x17, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /home/utkarsh/go/pkg/mod/github.com/layer5io/[email protected]/utils/kubernetes/apply-manifest.go:107 +0xbe
github.com/layer5io/meshkit/utils/kubernetes.(*Client).ApplyManifest(0xc0005ebc00, 0xc0004a63c0, 0xef, 0xf0, 0x0, 0x0, 0x7f7f6c180001, 0xc0008878b0, 0x0)
        /home/utkarsh/go/pkg/mod/github.com/layer5io/[email protected]/utils/kubernetes/apply-manifest.go:48 +0x1d1
github.com/layer5io/meshery-istio/istio.(*Istio).applyManifest(0xc0000f4000, 0xc0004a63c0, 0xef, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x4161fd)
        /home/utkarsh/dev/layer5/meshery-istio/istio/install.go:98 +0x136
github.com/layer5io/meshery-istio/istio.(*Istio).installIstio(0xc0000f4000, 0xc000a0b500, 0xc0000cb618, 0x5, 0xc0000cb000, 0x7, 0xc0007fc284, 0x7f7f96a5e7d0, 0xc00092d8c0, 0xc000073740)
        /home/utkarsh/dev/layer5/meshery-istio/istio/install.go:52 +0x534
github.com/layer5io/meshery-istio/istio.(*Istio).ApplyOperation.func1(0xc0005bc0a0, 0xc0000caff8, 0x5, 0xc0000cb000, 0x7, 0xc0000cb010, 0xb, 0x0, 0x0, 0x0, ...)
        /home/utkarsh/dev/layer5/meshery-istio/istio/istio.go:50 +0xd1
created by github.com/layer5io/meshery-istio/istio.(*Istio).ApplyOperation
        /home/utkarsh/dev/layer5/meshery-istio/istio/istio.go:48 +0x277
exit status 2

Expected Behavior
Installation should succeed without any issues.

Environment:

  • Meshkit - v0.1.31

To Reproduce
Steps to reproduce the behavior:

  1. Get the latest version of istio adapter
  2. Install istio from the meshery ui

[Chore] errorutil: set exit status to 1 when fail conditions are met

Note

Consider dividing into multiple issues.

Current Behavior

errorutils exit status is 0

Desired Behavior

set exit status to 1 on fail conditions, so that it can be used to fail a build

fail conditions:

  • non-int error codes
  • duplicate codes
  • duplicate names
  • missing details
  • duplicate details
  • usage of NewDefault
  • next_error_code is <= highest found code

check: names are reported duplicate also if they are used more than once but not declared more than once. consider this implementation/behavior (it is useful that a warning is emitted if they are used more than once in error.New!, i.e. 'duplicate details')

some errors are emitted when exported, and not in summary (or differently, e.g. 'duplicate names' vs 'duplicate details')
streamline that, main in SummarizeAndValidate func (to be renamed from SymmarizeAnalysis). prefix error log with e.g. export

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

Build failures with v0.5.13

Description
Meshery Server fails to build.

logs

 meshery git:(leecalcote/godeps/meshkit) ✗ make server
cd cmd; go1.17.8 mod tidy -compat=1.17; \
        BUILD="v0.6.0-rc-5j" \
        PROVIDER_BASE_URLS="https://meshery.layer5.io" \
        PORT=9081 \
        DEBUG=true \
        ADAPTER_URLS="localhost:10000 localhost:10001 localhost:10002 localhost:10004 localhost:10005 localhost:10006 localhost:10007 localhost:10008 localhost:10009 localhost:10010 localhost:10012" \
        APP_PATH="../install/apps.json" \
        go1.17.8 run main.go;
# github.com/layer5io/meshkit/logger
../../go/pkg/mod/github.com/layer5io/[email protected]/logger/controller.go:23:9: cannot use &Controller{...} (type *Controller) as type logr.Logger in return argument
../../go/pkg/mod/github.com/layer5io/[email protected]/logger/controller.go:42:2: cannot use c (type *Controller) as type logr.Logger in return argument
../../go/pkg/mod/github.com/layer5io/[email protected]/logger/controller.go:47:2: cannot use c (type *Controller) as type logr.Logger in return argument
../../go/pkg/mod/github.com/layer5io/[email protected]/logger/controller.go:52:2: cannot use c (type *Controller) as type logr.Logger in return argument
# k8s.io/kubectl/pkg/util/openapi
../../go/pkg/mod/k8s.io/[email protected]/pkg/util/openapi/openapi.go:49:37: cannot use doc (type *"github.com/googleapis/gnostic/openapiv2".Document) as type *"github.com/google/gnostic/openapiv2".Document in argument to "k8s.io/kube-openapi/pkg/util/proto".NewOpenAPIData
# k8s.io/client-go/applyconfigurations/meta/v1
../../go/pkg/mod/k8s.io/[email protected]/applyconfigurations/meta/v1/unstructured.go:64:37: cannot use doc (type *"github.com/googleapis/gnostic/openapiv2".Document) as type *"github.com/google/gnostic/openapiv2".Document in argument to "k8s.io/kube-openapi/pkg/util/proto".NewOpenAPIData
make: *** [server] Error 1

Environment:

  • 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

Change the name of this repository from gokit to meshkit

Current Behavior

This repository is currently called gokit which can easily be confused with the go-kit toolkit when referring to it.
Also, gokitis sometimes referred to as meshkit both on Slack and in the Adapter document, and it has been discussed to change its name to meshkit. Referring to the same repository with two names is confusing.

Desired Behavior

As discussed in the Adapter document, this repository should be called meshkit.


Resources

In order to facilitate the transition without interruption, it's probably advantageous to archive the current repository and copy it to the new one.

Alternatives / Additional Context

Alternatively, keep the name gokit, and do not use the term meshkit anymore.

[chore] Upgrade `meshery-operator` from `v0.5.5` to `v0.6.6`

Current Behavior

meshery-operator has not been upgraded on this project. after several attempts to upgrade some of the packages, there are certain packages that can't be upgraded causing the make test to fail.

working on it at this time.

Desired Behavior

Would like a smooth upgrade.

Resources

Alternatives / Additional Context

Run go unit tests as part CI workflows

Current Behavior

A lot of meshery components rely on meshkit's functions to work properly all the time. Any bug here can cause a problem in a lot of places.

Desired Behavior

Adding a gh workflow to run those tests on each pull request


Resources

Alternatives / Additional Context

Displace hardcoded kubejson binary version

The issue is that we're not tracking versions here. This is off our radar. As the primary and really only intended consumers of this tool, we should (and will) only make releases when they are intended for this project's consumption.

Let's think aloud about possible approaches to both avoid bugs based on releases with breaking changes and not knowing that we've hardcoded a version here (out of the 60+ repos that we have with the thousands of dependencies that they have).

Originally posted by @leecalcote in #110 (comment)

[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

Environment:

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

[MeshKit Errors] Change error representation to include code and short description

Current Behavior

The current implementation of the function returning the single string representation of a MeshKit error (err.Error()), returns the concatenated list of the LongDescription string array.

err.Error() is for instance used automatically by Cobra in mesheryctl when a command returns an error.

Desired Behavior

Referring to https://docs.meshery.io/reference/error-codes the majority of errors that have some details have more often short description than long description. So IMHO it makes sense that this is included in the stringified version of an error.

A possible format could be:

[Code] short description (long description)

E.g.

func (e *Error) Error() string {
	return fmt.Sprintf("[%s]: %s (%s)" , e.Code, strings.Join(e.ShortDescription[:], "."), strings.Join(e.LongDescription[:], "."))
}

Empty () if LongDescription is empty might be a bit confusing, so the specific format would need some checks and thoughts.

[Chore] Relocate errorutils files from root directory

Note: original issue in Meshery repository meshery/meshery#3207
See also discussion there.

Current Behavior

Four new errorutils files have landed in the root directory of the Meshery repo (e.g. https://github.com/layer5io/meshery/blob/master/errorutil_errors_export.json, https://github.com/layer5io/meshery/blob/master/component_info.json).

Desired Behavior

Ideally, these files are located in a separate folder, like "helpers".

Implementation

Move the errorutils files into a directory (e.g. "helpers/errorutils/")

[CI] kubeopenapi-jsonschdema is not downloading when running `make run-fast`

Current Behavior

When I run the command make run-fast I get the following error related to kubeopenapi-jsonschema

Looking for kubeopenapi-jsonschema in  /Users/aaditya/.meshery/bin
Downloading kubeopenapi-jsonschema at /Users/aaditya/.meshery/bin/kubeopenapi-jsonschema-darwin...
ERRO[2022-03-03T20:30:58+05:30] open /Users/aaditya/.meshery/bin/kubeopenapi-jsonschema-darwin: no such file or directory  app=meshery code=2177 probable-cause="component generation was canceled due to deletion or reload of K8s context.Invalid kubeconfig.Filters passed incorrectly in config.Could not fetch API resources from Kubernetes server" severity=2 short-description="failed to register/create kubernetes components for contextID 5258c1b748fb4f056fb0c72ac2c4b177" suggested-remediation="If there is the log \"Starting to register ...\" for the same contextID after this error means that for some reason the context was reloaded which caused this run to abort. In that case, this error can be ignored..Make sure that the configuration filters passed are in accordance with output from /openapi/v2"

I looked into the ~/.meshery folder and could not find any bin folder created.

Desired Behavior

Implementation

Acceptance Tests


Contributor Guides and Resources

[Meshery Adapters] Allow `insecure-skip-tls-verify: true` connections to Kubernetes clusters

Current Behavior
Users may allow and need the ability to specify an insecure connection to their Kubernetes cluster(s).

Meshery Server honors the insecure-skip-tls-verify: true setting when it is specified in a user’s kubeconfig.

Desired Behavior
Meshery Adapters to also honor the insecure-skip-tls-verify: true setting when it is specified in a user’s kubeconfig.


Resources

Alternatives / Additional Context

Static checking for meshkit errors

Current Behavior
Currently every once in a while, some component like meshery server or adapter panics for the given reason:
"Meshkit logger was used to log the errors but the error thrown was not a meshkit error."(internal interface conversion)
Most of the time the errors go overlooked as they don't pop. But when they do, they cause the panic.

Desired Behavior
Some kind of static checking using ast package can be implemented which exports a CheckMeshkitErrors(can be called as the linked while compilation) which functionally does this:
Parses the packages recursively to check if the Error() invokation of meshkit logger takes a meshkit error as argument instead of errors.Error interface. If not, an error can be thrown.

These are just the suggestions, if some better way for static checking can be thought of, please do suggest.

Common function for iterating and ordering service mesh release versions.

Current Behavior

  • Adapters retrieve service mesh releases by version number.
  • Service meshes make releases of both new versions and patched versions.
  • Meshery needs to be cognizant of this fact and present the Meshery user with the latest service mesh releases in descending chronological order by release version #, not by release date.
  • GitHub's release API has some limitations to be aware of.

Desired Behavior

  • See the meshery-istio adapter as an example implementation that should be up-leveled to meshery-adapter-library as a universal function of all Meshery Adapters.

Implementation

  • Account for service mesh specific release naming by allowing individual adapters to define release terms like "alpha", "rc", "edge", "stable", and so on. Different service mesh project have different version naming schemes.

Acceptance Tests

  1. func getLatestReleaseNames () and func GetLatestReleases() are centralized as a function in this adapter-library.

Retrieve URL's after provisioning the application or service mesh to present to the user

Current Behavior
When user provisions a service mesh whether through patternops or meshops, they are not immediately given a URL and just left blank to figure out things on their own.

Desired Behavior
Users should be passed some URL in the UI, that can help them to get started on whatever they deployed. For instance, if they provision an application, they should be given a URL to the application. If they deploy a service mesh, they can be given a URL to the control plane. This functionality can be added in meshkit which then can be used across the adapters as well as meshery server while provisioning.

[CI] update command used for updating error codes docs

Currently in the err-ref-publisher workflow, we update the docs using:
https://github.com/layer5io/meshkit/blob/8577bc689c39420e58e39967abd1f4957d002d9a/.github/workflows/error-ref-publisher.yaml#L49
This might fail in some conditions.
We should use this instead:

$ echo '{ "errors_export": "" }' | jq --slurpfile export ./helpers/errorutil_errors_export.json '.errors_export = $export[0]' > ./meshery/docs/_data/errorref/meshkit_errors_export.json

More clearly roadmap for the project

Current Behavior

The Readme only includes the projects explains.

Desired Behavior

The projects need Roadmap and tell other contributor how to add new features. And I have consider here, Is this repo for our adapter to deploy the service-mesh? If it does, we should clarify the dependencies version which we used

  • client-go
  • apimachinary
  • helm

As I discussed with @leecalcote , we want to add new feature for the project to support layer5.io adapters, maybe we should make clarify these things.


Resources

Alternatives / Additional Context

Add Merge utility function using html/template

Description

Merge functionality required by at least one adapter (Consul) to merge namespace into deployment manifest template, was lost during refactoring of code from meshery-adapter-library to meshkit.

Docker Desktop deployments return unaccessible URL

Description
Deploying Meshery in-cluster on a Docker Desktop K8s instance looks like this:

➜  ~ mesheryctl system context view

Current Context: k8s

endpoint: http://localhost:9081
token: Default
platform: kubernetes
adapters:
- meshery-istio
- meshery-linkerd
- meshery-consul
- meshery-nsm
- meshery-kuma
- meshery-cpx
- meshery-osm
- meshery-traefik-mesh
channel: stable
version: latest

➜  ~ mesheryctl system start
downloading manifest files from https://github.com/layer5io/meshery/tree/v0.5.23/install/deployment_yamls/k8s
Starting Meshery...
...Meshery deployed on Kubernetes.
Opening Meshery in your browser. If Meshery does not open, please point your browser to http://localhost:32294 to access Meshery.
➜  ~ kg svc -n meshery
NAME                               TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                                     AGE
meshery                            LoadBalancer   10.98.62.231     <pending>     9081:32294/TCP                                                                              5m5s
meshery-broker                     LoadBalancer   10.108.189.215   localhost     4222:30532/TCP,6222:30222/TCP,8222:31316/TCP,7777:31031/TCP,7422:31703/TCP,7522:30446/TCP   28h
meshery-consul                     ClusterIP      10.106.181.136   <none>        10002/TCP                                                                                   4m57s
meshery-cpx                        ClusterIP      10.96.80.94      <none>        10008/TCP                                                                                   4m51s
meshery-istio                      ClusterIP      10.97.16.58      <none>        10000/TCP                                                                                   5m1s
meshery-kuma                       ClusterIP      10.105.254.102   <none>        10007/TCP                                                                                   4m53s
meshery-linkerd                    ClusterIP      10.99.38.88      <none>        10001/TCP                                                                                   4m59s
meshery-nsm                        ClusterIP      10.98.33.241     <none>        10004/TCP                                                                                   4m55s
meshery-operator-metrics-service   ClusterIP      10.106.191.83    <none>        8443/TCP                                                                                    28h
meshery-osm                        ClusterIP      10.108.167.54    <none>        10009/TCP                                                                                   4m49s
meshery-traefik-mesh               ClusterIP      10.105.197.64    <none>        10006/TCP                                                                                   4m48s

The http://localhost:32294 address does not have Meshery UI exposed, however.

Expected Behavior
Meshery UI should be available at the URL shown to the user.

Environment:

  • K8s: Docker Desktop
  • Version: stable-v0.5.23

[Meshkit] file path needs to consider windows OS

Description
Meshkit uses path package instead of filepath package.
This could cause failures when run on Windows OS.

Expected Behavior
One scenario:
config file should be created in $HOME/.kube for *nix variant OSes
for windows, it should be created in %userprofile%.kube

Screenshots
N/A

Environment:

  • OS: Windows
  • Browser:
  • Version:
  • Device: windows laptop

[Optional] To Reproduce
Steps to reproduce the behavior:

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

[Optional] Additional Context

[ErrorCodes] errorutil output files should be in sync with updated code

Current Behavior

  • The output files do not reflect the updated code, but the previous state.
  • next_error_code is not updated if codes are changed manually

Desired Behavior

  • The output files should reflect the state of the code after error codes have been updated.
  • an error should be issued if next_error_code is not greater than the highest code in the code (later, set exit status 1, see #65).

Workaround

  • Run updated twice - errorutil_* are in sync-
  • Update next_error_code manually

Testing

  • no int codes are set, all with string such as "replace_me", running update should produce correct output files, e.g. no duplicates ("replace_me"), repeatedly running update or analyze (which also generates the output files) should not change output files

  • some codes are set, others with string such as "replace_me", running update should produce correct output files, e.g. no duplicates ("replace_me"), repeatedly running update or analyze (which also generates the output files) should not change output files

  • set next_error_code to a number smaller than the highest code, should produce an error


Resources

Alternatives / Additional Context

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

Operation's effect to be displayed to user

Current Behavior
Whenever a pattern is deployed(patternops), or some meshops operation takes place, the aftermath of that operation is not displayed to the user describing all the changes the given operation made.

Desired Behavior

Operations Manifest: need to give the user some summary of the affect the operation had; e.g. 1 namespace, 4 deployments and 4 services provisioned.

[Error] New error code for failure to retrieve information

Current Behavior

There seems to be no appropriate error code for the situation where it is not possible to retrieve information, e.g. about a resource in a kubernetes cluster.

Desired Behavior

Add an error code for this, e.g. ErrGetInfo = '1015'.

Add a function returning appropriate error, either in this library, or in meshery-adapter-library, alongside the others.


Resources

Concrete case in the getServicePorts function in meshery-consul: consul/install.go:48

Alternatives / Additional Context

Advice which existing code is appropriate.

The slack Logo is not redirecting to the slack link but to the meshery.io/community page

Description

The slack Logo is not redirecting to the slack link but to the meshery.io/community page
Expected Behavior

Screenshots

Environment:

  • 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

[CI] Notify Slack on star of repo workflow broken

Description
The slack.yml workflow (https://github.com/layer5io/meshkit/blob/master/.github/workflows/slack.yml) is broken. This workflow is invoked whenever a GitHub user stars the layer5io/meshkit repo. We have this same workflow included in all of the layer5io repos.

Expected Behavior
The community slack's #buzz channel should receive notification when this repo is starred.

The workflow linked above probably needs the repository name that it refers to updated.

[Enhancement] Avoid GitHub API Rate Limit

Current Behavior
Related to meshery/meshery#4664, Meshery Adapters use the GH API to check for the latest version of a Meshery Adapter. Eventually, this will lead to an overage and GH API rate limit to be hit.

Example of Istio deployment operation failing due to overage:

./mesheryctl system logs meshery-istio
Starting Meshery logging...
meshery-istio-54f78f78-gj4bp	|	time="2021-11-23T19:39:01Z" level=info msg="Adaptor Listening at port: 10000" app=istio-adaptor
meshery-istio-54f78f78-gj4bp	|	time="2021-11-23T19:39:01Z" level=info msg="Could not get latest stable release" app=istio-adaptor
meshery-istio-54f78f78-gj4bp	|	time="2021-11-23T19:39:03Z" level=info msg="Creating instance" app=istio-adaptor
meshery-istio-54f78f78-gj4bp	|	time="2021-11-23T19:41:58Z" level=info msg="Creating instance" app=istio-adaptor
meshery-istio-54f78f78-gj4bp	|	time="2021-11-23T19:41:58Z" level=info msg="Listing Operations" app=istio-adaptor
meshery-istio-54f78f78-gj4bp	|	time="2021-11-23T19:41:58Z" level=info msg="Creating instance" app=istio-adaptor
meshery-istio-54f78f78-gj4bp	|	time="2021-11-23T19:42:35Z" level=info msg="Creating instance" app=istio-adaptor
meshery-istio-54f78f78-gj4bp	|	time="2021-11-23T19:42:38Z" level=info msg="Creating instance" app=istio-adaptor
meshery-istio-54f78f78-gj4bp	|	time="2021-11-23T19:42:38Z" level=info msg="Applying operation istio" app=istio-adaptor
meshery-istio-54f78f78-gj4bp	|	panic: runtime error: index out of range [0] with length 0
meshery-istio-54f78f78-gj4bp	|
meshery-istio-54f78f78-gj4bp	|	goroutine 134 [running]:
meshery-istio-54f78f78-gj4bp	|	github.com/layer5io/meshery-istio/istio.(*Istio).ApplyOperation.func1(0xc00042c030, 0xc00081a0d0, 0x5, 0xc00081a0d5, 0x7, 0xc00081a0e0, 0x8, 0x0, 0x0, 0x0, ...)
meshery-istio-54f78f78-gj4bp	|		/build/istio/istio.go:51 +0x49a
meshery-istio-54f78f78-gj4bp	|	created by github.com/layer5io/meshery-istio/istio.(*Istio).ApplyOperation
meshery-istio-54f78f78-gj4bp	|		/build/istio/istio.go:50 +0x9ba
meshery-istio-54f78f78-gj4bp	|

Desired Behavior
Do not use api.github.com.

Use https://github.com/meshery/meshery/releases/latest


Resources

Alternatives / Additional Context

[chore] Upgrade `kompose` from `v1.26` to `v1.27`

Current Behavior

Currently this project uses kompose at v1.26.

Desired Behavior

Just a few days ago, kompose released a new version at v1.27. This doesn't have to be an immediate upgrade, as we will need to check to make sure everything is passing before merging the PR.


Resources

Alternatives / Additional Context

Adding a stop channel to the configuration passed to generate components

Description

Adding a stop channel/context to the configuration passed to generate components using kubeopenapi-jsonschema. Generating components can be a long running process and on subsequent calls to the binary, it is known for a fact that anything returned by the previous call would be stale. Currently on 10 immediate calls to generate components, all 10 of them will run to completion bogging down the CPU usage when 9 of them are useless.
Expected Behavior

A way to pass either a stop channel or context in the config passed to generate components, such that on subsequent calls, the effect can be rippled to the generate components routine to stop it.
Screenshots

Certificate error causing failure to communicate with Kube API

Description
With a fresh install of K8s and Meshery v0.5.11, I'm not able to deploy the Meshery Operator or invoke Meshery Adapter operations.

Expected Behavior
No certificate errors.

Screenshots

meshery_1               | time="2021-05-08T15:26:41Z" level=error msg="Error getting service mesh name.: rpc error: code = Unimplemented desc = unknown method ComponentInfo for service meshes.MeshService"
meshery_1               | time="2021-05-08T15:26:41Z" level=error msg="unable to get server version: Get \"https://kubernetes.docker.internal:6443/version?timeout=2m0s\": x509: certificate signed by unknown authority (possibly because of \"crypto/rsa: verification error\" while trying to verify candidate authority certificate \"kubernetes\")"
meshery_1               | time="2021-05-08T15:26:41Z" level=error msg="unable to get the list of nodes: Get \"https://kubernetes.docker.internal:6443/api/v1/nodes\": x509: certificate signed by unknown authority (possibly because of \"crypto/rsa: verification error\" while trying to verify candidate authority certificate \"kubernetes\")"

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.