Istio PeerAuthentication API

Mutual TLS configuration for peer-to-peer communication

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

istio-peerauthentication-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Istio Extensions AuthorizationPolicy PeerAuthentication 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: PeerAuthentication
  description: Mutual TLS configuration for peer-to-peer communication
  externalDocs:
    url: https://istio.io/latest/docs/reference/config/security/peer_authentication/
paths:
  /namespaces/{namespace}/peerauthentications:
    get:
      operationId: listPeerAuthentications
      summary: Istio List PeerAuthentications
      description: List all PeerAuthentication resources in the specified namespace. A PeerAuthentication defines how traffic will be tunneled (or not) to the sidecar proxy, configuring mutual TLS mode for inbound connections.
      tags:
      - PeerAuthentication
      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 PeerAuthentications
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeerAuthenticationList'
        '401':
          description: Unauthorized
    post:
      operationId: createPeerAuthentication
      summary: Istio Create a PeerAuthentication
      description: Create a new PeerAuthentication resource in the specified namespace.
      tags:
      - PeerAuthentication
      parameters:
      - $ref: '#/components/parameters/namespace'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PeerAuthentication'
      responses:
        '201':
          description: PeerAuthentication created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeerAuthentication'
        '401':
          description: Unauthorized
        '409':
          description: Conflict
  /namespaces/{namespace}/peerauthentications/{name}:
    get:
      operationId: getPeerAuthentication
      summary: Istio Get a PeerAuthentication
      description: Read the specified PeerAuthentication resource.
      tags:
      - PeerAuthentication
      parameters:
      - $ref: '#/components/parameters/namespace'
      - $ref: '#/components/parameters/name'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeerAuthentication'
        '401':
          description: Unauthorized
        '404':
          description: Not found
    put:
      operationId: replacePeerAuthentication
      summary: Istio Replace a PeerAuthentication
      description: Replace the specified PeerAuthentication resource.
      tags:
      - PeerAuthentication
      parameters:
      - $ref: '#/components/parameters/namespace'
      - $ref: '#/components/parameters/name'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PeerAuthentication'
      responses:
        '200':
          description: PeerAuthentication replaced
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeerAuthentication'
        '401':
          description: Unauthorized
        '404':
          description: Not found
    delete:
      operationId: deletePeerAuthentication
      summary: Istio Delete a PeerAuthentication
      description: Delete the specified PeerAuthentication resource.
      tags:
      - PeerAuthentication
      parameters:
      - $ref: '#/components/parameters/namespace'
      - $ref: '#/components/parameters/name'
      responses:
        '200':
          description: PeerAuthentication deleted
        '401':
          description: Unauthorized
        '404':
          description: Not found
components:
  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
  schemas:
    PeerAuthentication:
      type: object
      properties:
        apiVersion:
          type: string
          enum:
          - security.istio.io/v1
        kind:
          type: string
          enum:
          - PeerAuthentication
        metadata:
          $ref: '#/components/schemas/ObjectMeta'
        spec:
          type: object
          properties:
            selector:
              type: object
              properties:
                matchLabels:
                  type: object
                  additionalProperties:
                    type: string
              description: Workload selector to apply the policy to specific workloads.
            mtls:
              type: object
              properties:
                mode:
                  type: string
                  enum:
                  - UNSET
                  - DISABLE
                  - PERMISSIVE
                  - STRICT
                  description: Defines the mTLS mode used for peer authentication. PERMISSIVE allows both plaintext and mTLS, STRICT requires mTLS, DISABLE turns off mTLS.
              description: Mutual TLS settings for workload-to-workload communication.
            portLevelMtls:
              type: object
              additionalProperties:
                type: object
                properties:
                  mode:
                    type: string
                    enum:
                    - UNSET
                    - DISABLE
                    - PERMISSIVE
                    - STRICT
              description: Port-specific mutual TLS settings.
    PeerAuthenticationList:
      type: object
      properties:
        apiVersion:
          type: string
        kind:
          type: string
          enum:
          - PeerAuthenticationList
        metadata:
          $ref: '#/components/schemas/ListMeta'
        items:
          type: array
          items:
            $ref: '#/components/schemas/PeerAuthentication'
    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
        annotations:
          type: object
          additionalProperties:
            type: string
        creationTimestamp:
          type: string
          format: date-time
        resourceVersion:
          type: string
    ListMeta:
      type: object
      properties:
        resourceVersion:
          type: string
        continue:
          type: string
  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/