Skip to content

GitHub Action to provide easy integration of Meshery into CI workflows

License

Notifications You must be signed in to change notification settings

suhaniii/meshery-smi-conformance-action

 
 



smi-conformance

If you’re using Meshery or if you like the project, please this repository to show your support! 🤩

Meshery is the multi-service mesh management plane offering lifecycle, configuration, and performance management of service meshes and their workloads.

Meshery GitHub Action for Service Mesh Interface Conformance

GitHub Action for mesheryctl mesh validate for SMI conformance - https://meshery.io/service-mesh-interface

Learn More

Usage

Inputs

  # this token is used to auth with meshery provider and persist conformance results
  provider_token:
    description: "Provider token to use. NOTE: value of the 'token' key in auth.json"
    required: true

  # the name of the service mesh to run tests on. Must be in compliance with the Service Mesh Performance specification.
  # see: https://github.com/service-mesh-performance/service-mesh-performance/blob/1de8c93d8cba4ba8c1120fe09b7bf6ce0aa48c83/protos/service_mesh.proto#L15-L28
  service_mesh:
    # used for provisioning appropriate meshery-adatper
    description: "SMP compatible name for service mesh to use. e.g: open_service_mesh, istio etc"
    required: true

  # to identify if you want to run the tests on a cluster having the service
  # mesh pre-installed
  mesh_deployed:
    description: "A boolean. Set to true if you want to do tests on a custom deployment of the service mesh and not only on the latest release"
  required: true

Example Configurations

Running SMI Conformance Tests on latest release of a Service Mesh

name: SMI Conformance Validation using Meshery
on:
  push:
    tags:
      - 'v*'

jobs:
  do_conformance:
    name: Conformance Validation
    runs-on: ubuntu-latest
    steps:

      # This action takes care of installing a cluster, installing the latest
      # release of a service mesh and running SMI Conformance Tests on it
      - name: SMI conformance tests
        uses: layer5io/mesheryctl-smi-conformance-action@master
        with:
          provider_token: ${{ secrets.PROVIDER_TOKEN }}
          service_mesh: open_service_mesh
          mesh_deployed: false

Running SMI Conformance Tests on any version of a service mesh

name: SMI Conformance Validation using Meshery
on:
  push:
    branches:
      - 'master'

jobs:
  do_conformance:
    name: SMI Conformance on every commit to master
    runs-on: ubuntu-latest
    steps:

      # deploy k8s
      - name: Deploy k8s
        uses: manusa/actions-setup-minikube@v2.4.1
        with:
          minikube version: 'v1.21.0'
          kubernetes version: 'v1.20.7'
          driver: docker

      # Install the wanted version of your service mesh
      - 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

      # perform SMI conformance validation on the mesh installed in the cluster
      - name: SMI conformance tests
        uses: layer5io/mesheryctl-smi-conformance-action@master
        with:
          provider_token: ${{ secrets.PROVIDER_TOKEN }}
          service_mesh: open_service_mesh
          mesh_deployed: true

Join the service mesh 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.




 

Layer5 Service Mesh Community

Layer5 Service Mesh 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.

About

GitHub Action to provide easy integration of Meshery into CI workflows

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 89.2%
  • Makefile 7.8%
  • JavaScript 3.0%