Service Mesh Interface (SMI) website screenshot

Service Mesh Interface (SMI)

Service Mesh Interface (SMI) was a CNCF Sandbox specification that defined a standard, vendor-neutral set of Kubernetes Custom Resource Definitions (CRDs) for the most common service mesh capabilities: traffic policy, traffic telemetry, and traffic management. SMI's stated mission was "a standard interface for service meshes on Kubernetes," letting operators write portable traffic policy that worked across Linkerd, Open Service Mesh, Consul Connect, Istio (via adapter), Traefik Mesh, Gloo Mesh, and others without lock-in. The specification reached v0.6.0 (January 2021 / republished January 2024) and defined four resource groups across distinct API versions: Traffic Access Control (v1alpha3), Traffic Specs (v1alpha4), Traffic Split (v1alpha4), and Traffic Metrics (v1alpha1). Active development ceased in July 2022 when the maintainers shifted focus to the Kubernetes SIG-Network GAMMA initiative inside the Gateway API project. CNCF formally archived SMI on October 3, 2023, with the GitHub org and all repositories marked read-only on October 20, 2023. The CNCF announcement stated: "the maintainers have decided to consolidate efforts on a service mesh under the auspices of GAMMA under the Kubernetes SIG Network initiative." Gateway API GAMMA reached GA in the Standard Channel with Gateway API v1.1.0 and is now the de facto Kubernetes standard for service mesh configuration, superseding SMI. This profile documents SMI as a historical/archived standard. It is preserved so consumers of the API Evangelist network can (a) recognize legacy SMI manifests still deployed in the wild, (b) understand the conceptual lineage that fed into Gateway API GAMMA, and (c) migrate off SMI to Gateway API.

Service Mesh Interface (SMI) publishes 4 APIs on the APIs.io network. Tagged areas include Service Mesh, Kubernetes, Traffic Policy, Traffic Management, and Traffic Metrics.

The Service Mesh Interface (SMI) catalog on APIs.io includes 1 JSON-LD context and 1 Spectral governance ruleset.

Service Mesh Interface (SMI)’s developer surface includes code examples and 26 more developer resources.

24.0/100 emerging ▬ flat Agent 2/100 human only Full breakdown ↓
scored 2026-08-05 · rubric v0.9.1
4 APIs
Service MeshKubernetesTraffic PolicyTraffic ManagementTraffic MetricsStandardsCNCFArchivedSpecificationCustom Resource Definitions

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-08-05 · rubric v0.9.1
Composite quality — 24.0/100 · emerging
Contract Quality 7.3 / 25
Developer Ergonomics 1.3 / 20
Commercial Clarity 0.0 / 20
Operational Transparency 0.7 / 13
Governance 8.3 / 12
Discoverability 6.5 / 10
Agent readiness — 2/100 · human only
Machine-Readable Contract 0 / 18
Agentic Access Contract 0 / 10
MCP Server 0 / 12
Machine-Readable Auth 0 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 7 / 7
Rate-Limit Signaling 0 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 0 / 4
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/service-mesh-interface: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 4

Individual APIs this provider publishes, each with its own machine-readable definition.

SMI Traffic Access Control

Traffic Access Control defines the `TrafficTarget` resource, which associates a set of traffic rules with a service identity allocated to a group of pods. It is the authorizatio...

SMI Traffic Specs

Traffic Specs describes a set of resources that allow users to specify how their traffic looks. It is used in concert with access control and other policies to concretely define...

SMI Traffic Split

Traffic Split defines the `TrafficSplit` resource, which allows users to incrementally direct percentages of traffic between various services. It is the canonical SMI primitive ...

SMI Traffic Metrics

Traffic Metrics is "a resource that provides a common integration point for tools that can benefit by consuming metrics related to HTTP traffic." It is exposed as a Kubernetes A...

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Service Mesh Interface Context

9 classes · 3 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

Service Mesh Interface (SMI) API Rules

5 rules · 4 warnings 1 info

SPECTRAL

JSON Schema 6

Standalone JSON Schema definitions for this provider's data models.

SMI HTTPRouteGroup

4 properties

JSON SCHEMA

SMI TCPRoute

4 properties

JSON SCHEMA

SMI TrafficMetrics

7 properties

JSON SCHEMA

SMI TrafficSplit

4 properties

JSON SCHEMA

SMI TrafficTarget

4 properties

JSON SCHEMA

SMI UDPRoute

4 properties

JSON SCHEMA

JSON Structure 1

JSON Structure definitions describing this provider's data shapes.

Service Mesh Interface Structure

0 properties

JSON STRUCTURE

Examples 1

Example request and response payloads for these APIs.

Traffic Metrics Example

7 fields

EXAMPLE

Security Posture 1

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Resources

Documentation 6

Reference material describing how the API behaves

Design & Contract 2

Pagination, idempotency, versioning, errors, and events

Build 5

SDKs, sample code, and the tooling you integrate with

Access & Security 1

Authentication, authorization, and security posture

Operate 1

Status, limits, changes, and where to get help

Commercial 1

Pricing, plans, and the legal terms of use

Company 1

The organization behind the API

Other 10

Properties that don't map to a standard resource type

Scroll for all 10

Source (apis.yml)

apis.yml Raw ↑
name: Service Mesh Interface (SMI)
description: 'Service Mesh Interface (SMI) was a CNCF Sandbox specification that defined a standard,

  vendor-neutral set of Kubernetes Custom Resource Definitions (CRDs) for the most common

  service mesh capabilities: traffic policy, traffic telemetry, and traffic management.

  SMI''s stated mission was "a standard interface for service meshes on Kubernetes," letting

  operators write portable traffic policy that worked across Linkerd, Open Service Mesh,

  Consul Connect, Istio (via adapter), Traefik Mesh, Gloo Mesh, and others without lock-in.


  The specification reached v0.6.0 (January 2021 / republished January 2024) and defined four

  resource groups across distinct API versions: Traffic Access Control (v1alpha3),

  Traffic Specs (v1alpha4), Traffic Split (v1alpha4), and Traffic Metrics (v1alpha1).

  Active development ceased in July 2022 when the maintainers shifted focus to the

  Kubernetes SIG-Network GAMMA initiative inside the Gateway API project.


  CNCF formally archived SMI on October 3, 2023, with the GitHub org and all repositories

  marked read-only on October 20, 2023. The CNCF announcement stated: "the maintainers have

  decided to consolidate efforts on a service mesh under the auspices of GAMMA under the

  Kubernetes SIG Network initiative." Gateway API GAMMA reached GA in the Standard Channel

  with Gateway API v1.1.0 and is now the de facto Kubernetes standard for service mesh

  configuration, superseding SMI.


  This profile documents SMI as a historical/archived standard. It is preserved so consumers

  of the API Evangelist network can (a) recognize legacy SMI manifests still deployed in

  the wild, (b) understand the conceptual lineage that fed into Gateway API GAMMA, and

  (c) migrate off SMI to Gateway API.

  '
url: https://github.com/api-evangelist/service-mesh-interface
humanURL: https://smi-spec.io
accessModel:
  pricing: unknown
  onboarding: unknown
  trial: false
  try_now: false
  public: false
  label: Unknown
  confidence: low
  source: []
  generated: '2026-07-22'
  method: derived
image: https://avatars.githubusercontent.com/u/59054423
tags:
- Service Mesh
- Kubernetes
- Traffic Policy
- Traffic Management
- Traffic Metrics
- Standards
- CNCF
- Archived
- Specification
- Custom Resource Definitions
created: '2026-05-22'
modified: '2026-05-23'
specificationVersion: '0.18'
type: Index
aid: service-mesh-interface
access: 3rd-Party
common:
- type: DomainSecurity
  url: security/service-mesh-interface-domain-security.yml
- type: Website
  url: https://smi-spec.io
- type: Specification
  url: https://github.com/servicemeshinterface/smi-spec
- type: GitHubOrg
  url: https://github.com/servicemeshinterface
- type: GitHubRepo
  url: https://github.com/servicemeshinterface/smi-spec
- type: License
  url: https://github.com/servicemeshinterface/smi-spec/blob/main/LICENSE
  name: Apache-2.0
- type: Governance
  url: https://www.cncf.io
  name: CNCF (Cloud Native Computing Foundation) Sandbox Project
- type: ArchivalNotice
  url: https://www.cncf.io/blog/2023/10/03/cncf-archives-the-service-mesh-interface-smi-project/
  name: CNCF Archived 2023-10-03
  description: '"The maintainers have decided to consolidate efforts on a service mesh under the

    auspices of GAMMA under the Kubernetes SIG Network initiative." GitHub org archived

    and made read-only on 2023-10-20.

    '
- type: SuccessorSpecification
  url: https://gateway-api.sigs.k8s.io/mesh/gamma/
  name: Kubernetes Gateway API GAMMA Initiative
  description: 'Gateway API GAMMA reached GA in the Standard Channel with v1.1.0 and is the

    Kubernetes-native successor to SMI for service-mesh configuration.

    '
- type: SlackChannel
  url: https://cloud-native.slack.com
  name: '#smi (CNCF Slack, archived)'
- type: SDKs
  url: https://github.com/servicemeshinterface/smi-sdk-go
  name: smi-sdk-go (Go, archived)
- type: SDKs
  url: https://github.com/servicemeshinterface/smi-controller-sdk
  name: smi-controller-sdk (Go controller SDK, archived)
- type: ReferenceImplementation
  url: https://github.com/servicemeshinterface/smi-metrics
  name: smi-metrics (TrafficMetrics API server, archived)
- type: ReferenceImplementation
  url: https://github.com/servicemeshinterface/smi-adapter-istio
  name: smi-adapter-istio (Istio adapter, archived)
- type: ReferenceImplementation
  url: https://github.com/servicemeshinterface/istio-smi-controller
  name: istio-smi-controller (example controller, archived)
- type: KnownImplementation
  name: Linkerd
  url: https://linkerd.io
- type: KnownImplementation
  name: Open Service Mesh (OSM)
  url: https://openservicemesh.io
- type: KnownImplementation
  name: Consul Connect
  url: https://www.consul.io/docs/connect
- type: KnownImplementation
  name: Traefik Mesh
  url: https://traefik.io/traefik-mesh/
- type: KnownImplementation
  name: Gloo Mesh
  url: https://www.solo.io/products/gloo-mesh/
- type: KnownImplementation
  name: Flagger
  url: https://flagger.app
- type: KnownImplementation
  name: Meshery
  url: https://meshery.io
- type: KnownImplementation
  name: Argo Rollouts (TrafficSplit support)
  url: https://argoproj.github.io/rollouts/
- type: JSONSchema
  url: ./json-schema/
- type: JSONLD
  url: ./json-ld/service-mesh-interface-context.jsonld
- type: Vocabulary
  url: ./vocabulary/service-mesh-interface-vocabulary.yml
- type: Examples
  url: ./examples/
apis:
- name: SMI Traffic Access Control
  description: 'Traffic Access Control defines the `TrafficTarget` resource, which associates a set

    of traffic rules with a service identity allocated to a group of pods. It is the

    authorization layer of SMI: which source identities may speak which protocols/routes

    to which destination identity. Per the spec, "a valid TrafficTarget must specify a

    destination, at least one rule, and at least one source."

    '
  humanURL: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-access/v1alpha3/traffic-access.md
  aid: smi-traffic-access
  tags:
  - Traffic Policy
  - Access Control
  - Authorization
  - Kubernetes CRD
  - SMI
  properties:
  - type: APIVersion
    name: access.smi-spec.io/v1alpha3
  - type: Kind
    name: TrafficTarget
  - type: Specification
    url: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-access/v1alpha3/traffic-access.md
  - type: JSONSchema
    url: ./json-schema/traffic-target-schema.json
  - type: Examples
    url: ./examples/traffic-target-example.yaml
- name: SMI Traffic Specs
  description: 'Traffic Specs describes a set of resources that allow users to specify how their

    traffic looks. It is used in concert with access control and other policies to

    concretely define what should happen to specific types of traffic as it flows

    through the mesh. Defines `HTTPRouteGroup`, `TCPRoute`, and `UDPRoute` resources.

    '
  humanURL: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-specs/v1alpha4/traffic-specs.md
  aid: smi-traffic-specs
  tags:
  - Traffic Specs
  - Routing
  - HTTP
  - TCP
  - UDP
  - Kubernetes CRD
  - SMI
  properties:
  - type: APIVersion
    name: specs.smi-spec.io/v1alpha4
  - type: Kind
    name: HTTPRouteGroup
  - type: Kind
    name: TCPRoute
  - type: Kind
    name: UDPRoute
  - type: Specification
    url: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-specs/v1alpha4/traffic-specs.md
  - type: JSONSchema
    url: ./json-schema/http-route-group-schema.json
  - type: JSONSchema
    url: ./json-schema/tcp-route-schema.json
  - type: JSONSchema
    url: ./json-schema/udp-route-schema.json
  - type: Examples
    url: ./examples/http-route-group-example.yaml
  - type: Examples
    url: ./examples/tcp-route-example.yaml
  - type: Examples
    url: ./examples/udp-route-example.yaml
- name: SMI Traffic Split
  description: 'Traffic Split defines the `TrafficSplit` resource, which allows users to incrementally

    direct percentages of traffic between various services. It is the canonical SMI

    primitive for canary deployments, blue/green rollouts, and A/B testing across a mesh.

    '
  humanURL: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-split/v1alpha4/traffic-split.md
  aid: smi-traffic-split
  tags:
  - Traffic Management
  - Traffic Splitting
  - Canary
  - Blue Green
  - Progressive Delivery
  - Kubernetes CRD
  - SMI
  properties:
  - type: APIVersion
    name: split.smi-spec.io/v1alpha4
  - type: Kind
    name: TrafficSplit
  - type: Specification
    url: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-split/v1alpha4/traffic-split.md
  - type: JSONSchema
    url: ./json-schema/traffic-split-schema.json
  - type: Examples
    url: ./examples/traffic-split-example.yaml
- name: SMI Traffic Metrics
  description: 'Traffic Metrics is "a resource that provides a common integration point for tools

    that can benefit by consuming metrics related to HTTP traffic." It is exposed as a

    Kubernetes APIService extension at `metrics.smi-spec.io/v1alpha1` and reports

    latency percentiles (p50/p90/p99) and success/failure counts per pod, deployment,

    namespace, or traffic edge.

    '
  humanURL: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-metrics/v1alpha1/traffic-metrics.md
  baseURL: https://kubernetes.default.svc/apis/metrics.smi-spec.io/v1alpha1
  aid: smi-traffic-metrics
  tags:
  - Traffic Metrics
  - Observability
  - Telemetry
  - Kubernetes APIService
  - SMI
  properties:
  - type: APIVersion
    name: metrics.smi-spec.io/v1alpha1
  - type: Kind
    name: TrafficMetrics
  - type: Kind
    name: TrafficMetricsList
  - type: Specification
    url: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-metrics/v1alpha1/traffic-metrics.md
  - type: ReferenceImplementation
    url: https://github.com/servicemeshinterface/smi-metrics
  - type: JSONSchema
    url: ./json-schema/traffic-metrics-schema.json
  - type: Examples
    url: ./examples/traffic-metrics-example.json
  operations:
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/pods
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/pods/{name}
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/pods/{name}/edges
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/deployments
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/deployments/{name}
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/deployments/{name}/edges
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces
maintainers:
- FN: API Evangelist
  email: info@apievangelist.com
  url: https://apievangelist.com