Istio DestinationRule API

Policies applied to traffic after routing (load balancing, connection pool, outlier detection)

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

istio-destinationrule-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Istio Extensions AuthorizationPolicy DestinationRule API
  description: The Istio Extensions API (extensions.istio.io) provides configuration resources for extending the Istio service mesh with custom functionality. The WasmPlugin resource enables deploying WebAssembly (Wasm) modules as plugins to the Envoy sidecar proxies, allowing custom processing of network traffic at various phases of the request lifecycle. These resources are defined as Kubernetes Custom Resource Definitions (CRDs) and are accessed via the Kubernetes API server.
  version: v1alpha1
  contact:
    name: Istio
    url: https://istio.io/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://{cluster}/apis/extensions.istio.io/v1alpha1
  description: Kubernetes API server endpoint for Istio Extensions v1alpha1
  variables:
    cluster:
      default: kubernetes.default.svc
      description: Kubernetes API server hostname
tags:
- name: DestinationRule
  description: Policies applied to traffic after routing (load balancing, connection pool, outlier detection)
  externalDocs:
    url: https://istio.io/latest/docs/reference/config/networking/destination-rule/
paths:
  /namespaces/{namespace}/destinationrules:
    get:
      operationId: listDestinationRules
      summary: Istio List DestinationRules
      description: List all DestinationRule resources in the specified namespace. A DestinationRule defines policies that apply to traffic intended for a service after routing has occurred, including load balancing, connection pool size, and outlier detection settings.
      tags:
      - DestinationRule
      parameters:
      - $ref: '#/components/parameters/namespace'
      - $ref: '#/components/parameters/labelSelector'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/continue'
      responses:
        '200':
          description: Successful response containing list of DestinationRules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DestinationRuleList'
        '401':
          description: Unauthorized
    post:
      operationId: createDestinationRule
      summary: Istio Create a DestinationRule
      description: Create a new DestinationRule resource in the specified namespace.
      tags:
      - DestinationRule
      parameters:
      - $ref: '#/components/parameters/namespace'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DestinationRule'
      responses:
        '201':
          description: DestinationRule created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DestinationRule'
        '401':
          description: Unauthorized
        '409':
          description: Conflict
  /namespaces/{namespace}/destinationrules/{name}:
    get:
      operationId: getDestinationRule
      summary: Istio Get a DestinationRule
      description: Read the specified DestinationRule resource.
      tags:
      - DestinationRule
      parameters:
      - $ref: '#/components/parameters/namespace'
      - $ref: '#/components/parameters/name'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DestinationRule'
        '401':
          description: Unauthorized
        '404':
          description: Not found
    put:
      operationId: replaceDestinationRule
      summary: Istio Replace a DestinationRule
      description: Replace the specified DestinationRule resource.
      tags:
      - DestinationRule
      parameters:
      - $ref: '#/components/parameters/namespace'
      - $ref: '#/components/parameters/name'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DestinationRule'
      responses:
        '200':
          description: DestinationRule replaced
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DestinationRule'
        '401':
          description: Unauthorized
        '404':
          description: Not found
    delete:
      operationId: deleteDestinationRule
      summary: Istio Delete a DestinationRule
      description: Delete the specified DestinationRule resource.
      tags:
      - DestinationRule
      parameters:
      - $ref: '#/components/parameters/namespace'
      - $ref: '#/components/parameters/name'
      responses:
        '200':
          description: DestinationRule deleted
        '401':
          description: Unauthorized
        '404':
          description: Not found
components:
  schemas:
    DestinationRuleList:
      type: object
      properties:
        apiVersion:
          type: string
        kind:
          type: string
          enum:
          - DestinationRuleList
        metadata:
          $ref: '#/components/schemas/ListMeta'
        items:
          type: array
          items:
            $ref: '#/components/schemas/DestinationRule'
    DestinationRule:
      type: object
      properties:
        apiVersion:
          type: string
          enum:
          - networking.istio.io/v1
        kind:
          type: string
          enum:
          - DestinationRule
        metadata:
          $ref: '#/components/schemas/ObjectMeta'
        spec:
          type: object
          properties:
            host:
              type: string
              description: The name of a service from the service registry. Rules defined for services that do not exist in the service registry will be ignored.
            trafficPolicy:
              type: object
              properties:
                connectionPool:
                  type: object
                  description: Settings controlling the volume of connections.
                loadBalancer:
                  type: object
                  description: Settings controlling the load balancer algorithms.
                outlierDetection:
                  type: object
                  description: Settings controlling eviction of unhealthy hosts.
                tls:
                  type: object
                  description: TLS related settings for connections to the upstream service.
              description: Traffic policies to apply for a specific destination.
            subsets:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Name of the subset.
                  labels:
                    type: object
                    additionalProperties:
                      type: string
                    description: Labels apply a filter over the endpoints of a service in the service registry.
                  trafficPolicy:
                    type: object
                    description: Traffic policies for this subset.
              description: Named sets of endpoints that represent individual versions of a service.
            exportTo:
              type: array
              items:
                type: string
              description: A list of namespaces to which this destination rule is exported.
    ObjectMeta:
      type: object
      properties:
        name:
          type: string
          description: Name of the resource
        namespace:
          type: string
          description: Namespace of the resource
        labels:
          type: object
          additionalProperties:
            type: string
          description: Map of string keys and values for organizing resources
        annotations:
          type: object
          additionalProperties:
            type: string
          description: Unstructured key-value map for storing arbitrary metadata
        creationTimestamp:
          type: string
          format: date-time
          description: Timestamp representing the server time when this object was created
        resourceVersion:
          type: string
          description: An opaque value that represents the internal version of this object
    ListMeta:
      type: object
      properties:
        resourceVersion:
          type: string
        continue:
          type: string
  parameters:
    labelSelector:
      name: labelSelector
      in: query
      description: A selector to restrict the list of returned objects by their labels
      schema:
        type: string
    continue:
      name: continue
      in: query
      description: Continue token for paginated list requests
      schema:
        type: string
    name:
      name: name
      in: path
      required: true
      description: The resource name
      schema:
        type: string
    namespace:
      name: namespace
      in: path
      required: true
      description: The Kubernetes namespace
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: Maximum number of resources to return
      schema:
        type: integer
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Kubernetes API server bearer token authentication
externalDocs:
  description: Istio Extensions Configuration Reference
  url: https://istio.io/latest/docs/reference/config/