An open API service indexing awesome lists of open source software.

https://github.com/layer5io/meshery-smi-conformance-action

GitHub Action to run SMI Conformance tests in CI/CD pipelines
https://github.com/layer5io/meshery-smi-conformance-action

meshery service-mesh smi smi-conformance smi-specifications

Last synced: about 2 months ago
JSON representation

GitHub Action to run SMI Conformance tests in CI/CD pipelines

Awesome Lists containing this project

README

        





GitHub release (latest by date)


GitHub issues







# Meshery - SMI Conformance GitHub Action

GitHub Action to run [SMI Conformance](https://docs.meshery.io/functionality/service-mesh-interface) tests on CI/CD pipelines.

Meshery is SMI's official tool for validating conformance. Learn more at [smi-spec.io](https://smi-spec.io/blog/validating-smi-conformance-with-meshery/).

## Learn More

- [Meshery and Service Mesh Interface](https://docs.meshery.io/functionality/service-mesh-interface)
- [Guide: Running SMI Conformance Tests](https://docs.meshery.io/guides/smi-conformance)
- [Conformance Test Details](https://layer5.io/projects/service-mesh-interface-conformance)
- [SMI Conformance Dashboard](https://meshery.io/service-mesh-interface) (stand-alone)
- [SMI Conformance Dashboard](https://layer5.io/service-mesh-landscape#smi) (service mesh landscape)
- [Design Specification](https://docs.google.com/document/d/1HL8Sk7NSLLj-9PRqoHYVIGyU6fZxUQFotrxbmfFtjwc/edit#)

## Supported Service Meshes

Meshery supports 10 different service meshes.

See all Supported Service Meshes





## Usage

See [action.yml](action.yml)

By default, this action brings its own Kubernetes cluster(minikube), deploys the latest release of the service mesh specified and runs conformance tests (see [Running on latest release](#running-on-latest-release)).

You can however bring your own clusters with a specific version of a service mesh installed and Meshery would automatically detect your environment and run the conformance test accordingly (see [Running on specific version](#running-on-specific-version)).

See [Running SMI Conformance Tests in CI/CD Pipelines](https://docs.meshery.io/guides/smi-conformance#running-smi-conformance-tests-in-cicd-pipelines) for detailed instructions on setting up Meshery and authenticating the GitHub action.

### Sample Configurations

#### Running on latest release

Meshery would handle setting up the environment, deploying the service mesh and running the conformance tests.

```yaml
name: SMI Conformance with Meshery
on:
push:
tags:
- 'v*'

jobs:
smi-conformance:
name: SMI Conformance
runs-on: ubuntu-latest
steps:

- name: SMI conformance tests
uses: layer5io/mesheryctl-smi-conformance-action@master
with:
provider_token: ${{ secrets.MESHERY_PROVIDER_TOKEN }}
service_mesh: open_service_mesh
mesh_deployed: false
```

#### Running on specific version
(bring your own cluster)

The environment with the service mesh installed provided by the user and Meshery runs the conformance tests.

```yaml
name: SMI Conformance with Meshery
on:
push:
branches:
- 'master'

jobs:
smi-conformance:
name: SMI Conformance tests on master
runs-on: ubuntu-latest
steps:

- name: Deploy k8s-minikube
uses: manusa/[email protected]
with:
minikube version: 'v1.21.0'
kubernetes version: 'v1.20.7'
driver: docker

- name: Install OSM
run: |
curl -LO https://github.com/openservicemesh/osm/releases/download/v0.9.1/osm-v0.9.1-linux-amd64.tar.gz
tar -xzf osm-v0.9.1-linux-amd64.tar.gz
mkdir -p ~/osm/bin
mv ./linux-amd64/osm ~/osm/bin/osm-bin
PATH="$PATH:$HOME/osm/bin/"
osm-bin install --osm-namespace default

- name: SMI conformance tests
uses: layer5io/mesheryctl-smi-conformance-action@master
with:
provider_token: ${{ secrets.MESHERY_PROVIDER_TOKEN }}
service_mesh: open_service_mesh
mesh_deployed: true
```

## Reporting Conformance

Service mesh projects can report their SMI Conformance results automatically and update it on the [SMI Conformance Dashboard](https://meshery.io/service-mesh-interface).

See [Reporting Conformance](https://docs.meshery.io/functionality/service-mesh-interface#reporting-conformance) for details on how to setup reporting.

## Join the Community!


Our projects are community-built and welcome collaboration. 👍 Be sure to see the Layer5 Community Welcome Guide for a tour of resources available to you and jump into our Slack!


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.
Become a Meshtee today!

Find out more on the Layer5 community.





 



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

Layer5 Cloud Native Community


✔️ Join any or all of the weekly meetings on community calendar.

✔️ Watch community meeting recordings.

✔️ Access the Community Drive by completing a community Member Form.

✔️ Discuss in the Community Forum.



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