Service Mesh Interface (SMI) logo

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 Capabilities 0 Features
Service MeshKubernetesTraffic PolicyTraffic ManagementTraffic MetricsStandardsCNCFArchivedSpecificationCustom Resource Definitions

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.

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

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

Resources

🔗
Website
Website
🔗
Specification
Specification
👥
GitHubOrg
GitHubOrg
👥
GitHubRepo
GitHubRepo
🔗
License
License
🔗
Governance
Governance
🔗
ArchivalNotice
ArchivalNotice
🔗
SuccessorSpecification
SuccessorSpecification
🔗
SlackChannel
SlackChannel
📦
SDK
SDK
📦
SDK
SDK
🔗
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: 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: SDK
    url: https://github.com/servicemeshinterface/smi-sdk-go
    name: smi-sdk-go (Go, archived)
  - type: SDK
    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: Example
        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: Example
        url: ./examples/http-route-group-example.yaml
      - type: Example
        url: ./examples/tcp-route-example.yaml
      - type: Example
        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: Example
        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: Example
        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: [email protected]
    url: https://apievangelist.com