docs/static/v0.5/functionality/service-mesh-interface/index.html
Meshery is SMI's official tool for validating conformance.
The SMI Conformance dashboard displays the current and historical test results of each of the service mesh projects.
As service mesh providers and the surrounding ecosystem start adopting Service Mesh Interface, there is a growing need for validating the SMI implementation.
As a service mesh agnostic tool that provides lifecycle and performance management of a large number of service meshes, sample applications, service mesh patterns and WebAssembly filters, Meshery is the ideal tool for the job when it comes to SMI Conformance.
Conformance of SMI specifications is defined as a series of test assertions. A test assertion is a condition that must be positively verified in order for an implementation to be considered conformant. A test assertion may involve any number of conditions. Sets of test assertions are categorized by SMI specification. Collectively, these test sets comprise the complete suite of SMI conformance tests. Just like SMI itself, the suite of SMI Conformance tests is versioned, and with each new version of SMI, as interfaces are added and specifications changed, the Conformance requirements will change as appropriate.
Conformance validation is performed through automated provisioning of individual service meshes, deployment of a common workload, and generation of service request load as necessary. To facilitate a common set of tests, a simple, instrumented, sample application has been developed for purposes of providing a consistent workload to apply SMI specs against. Deployment of the sample application has been fitted to each service mesh.
Given that some service mesh implementations, never intend to fully implement the SMI specifications, for each individual test, three possible capability designations exist
Full - service mesh has this capability.
Partial - service mesh has a portion of this capability implemented (may or may not have this full capability in the future).
None - currently service mesh does not have this capability (may or may not have this capability in the future).
The following list highlights the sequence of steps taken to perform conformance testing of one type of service mesh.
Preconditions
Invocation
Each of the participating service mesh projects can leverage the Meshery SMI Conformance GitHub action to incorporate SMI conformance into their CI/CD pipelines.
The conformance tool will run the test suite and automatically update the conformance dashboard when the test is complete. In order to ensure provenance of test results that represent a given service mesh, each project will be asked to identify one or more GitHub accounts that will be used for publishing the tests.
Ideally, this GitHub account is a service-robot account used within the project’s CI pipeline.
The SMI Conformance dashboard displays the current and historical test results of each of the service mesh projects. These results are automatically updated through the projects official accounts as mentioned above.