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
- Host: GitHub
- URL: https://github.com/layer5io/meshery-smi-conformance-action
- Owner: layer5io
- License: apache-2.0
- Archived: true
- Created: 2021-05-03T03:52:08.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-08-19T19:02:01.000Z (almost 2 years ago)
- Last Synced: 2025-04-11T12:23:13.159Z (about 2 months ago)
- Topics: meshery, service-mesh, smi, smi-conformance, smi-specifications
- Language: Shell
- Homepage:
- Size: 590 KB
- Stars: 11
- Watchers: 4
- Forks: 11
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING-gitflow.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# 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
Service mesh adapters provision, configure, and manage their respective service meshes.
Status
Adapter
stable
Meshery adapter for Istio
Meshery adapter for Linkerd
Meshery adapter for Consul
Meshery adapter for Octarine
Meshery adapter for Network Service Mesh
Meshery adapter for Kuma
Meshery adapter for Open Service Mesh
beta
Meshery adapter for Citrix CPX
Meshery adapter for Traefik Mesh
Meshery adapter for NGINX Service Mesh
alpha
Meshery adapter for Tanzu SM
Meshery adapter for App Mesh
## UsageSee [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!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.
✔️ 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.