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.

4 APIs 0 Features
Service MeshKubernetesTraffic PolicyTraffic ManagementTraffic MetricsStandardsCNCFArchivedSpecificationCustom Resource Definitions

APIs

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

Service Mesh Interface Context

9 classes · 3 properties

JSON-LD

JSON Structure

Service Mesh Interface Structure

0 properties

JSON STRUCTURE

Example Payloads

Traffic Metrics Example

7 fields

EXAMPLE

Resources

🔗
DomainSecurity
DomainSecurity
🔗
Website
Website
🔗
Specification
Specification
👥
GitHubOrg
GitHubOrg
👥
GitHubRepo
GitHubRepo
🔗
License
License
🔗
Governance
Governance
🔗
ArchivalNotice
ArchivalNotice
🔗
SuccessorSpecification
SuccessorSpecification
🔗
SlackChannel
SlackChannel
📦
SDKs
SDKs
📦
SDKs
SDKs
🔗
ReferenceImplementation
ReferenceImplementation
🔗
ReferenceImplementation
ReferenceImplementation
🔗
ReferenceImplementation
ReferenceImplementation
🔗
KnownImplementation
KnownImplementation
🔗
KnownImplementation
KnownImplementation
🔗
KnownImplementation
KnownImplementation
🔗
KnownImplementation
KnownImplementation
🔗
KnownImplementation
KnownImplementation
🔗
KnownImplementation
KnownImplementation
🔗
KnownImplementation
KnownImplementation
🔗
KnownImplementation
KnownImplementation
🔗
JSONSchema
JSONSchema
🔗
JSONLD
JSONLD
🔗
Vocabulary
Vocabulary
💻
Examples
Examples

Sources

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
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