Kgateway GatewayParameters API

Customize gateway infrastructure deployment settings including replicas, container configuration, pod templates, and proxy provisioning parameters.

OpenAPI Specification

kgateway-gatewayparameters-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: kgateway Kubernetes Gateway AIBackend GatewayParameters API
  description: kgateway is the most widely deployed gateway in Kubernetes for microservices and AI agents. It is a feature-rich, fast, and flexible Kubernetes-native ingress controller and next-generation API gateway built on top of Envoy proxy and the Kubernetes Gateway API. kgateway provides custom resource definitions (CRDs) under the gateway.kgateway.dev API group for configuring traffic policies, backends, direct responses, gateway extensions, gateway parameters, HTTP listener policies, and AI backends. These resources are managed through the Kubernetes API server.
  version: 2.1.0
  contact:
    name: kgateway
    url: https://kgateway.dev
  license:
    name: Apache 2.0
    url: https://github.com/kgateway-dev/kgateway/blob/main/LICENSE
servers:
- url: https://{kubernetes-api-server}/apis/gateway.kgateway.dev/v1alpha1
  description: Kubernetes API Server - kgateway Custom Resources
  variables:
    kubernetes-api-server:
      default: kubernetes.default.svc
      description: The Kubernetes API server hostname
security:
- BearerAuth: []
tags:
- name: GatewayParameters
  description: Customize gateway infrastructure deployment settings including replicas, container configuration, pod templates, and proxy provisioning parameters.
paths:
  /namespaces/{namespace}/gatewayparameters:
    get:
      operationId: listGatewayParameters
      summary: Kgateway List GatewayParameters resources
      description: List all GatewayParameters resources in the specified namespace. GatewayParameters customize gateway infrastructure deployment settings.
      tags:
      - GatewayParameters
      parameters:
      - $ref: '#/components/parameters/Namespace'
      - $ref: '#/components/parameters/LabelSelector'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Continue'
      responses:
        '200':
          description: Successfully retrieved list of GatewayParameters resources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayParametersList'
        '401':
          description: Unauthorized
    post:
      operationId: createGatewayParameters
      summary: Kgateway Create GatewayParameters
      description: Create a GatewayParameters resource to customize gateway infrastructure deployment settings including replicas, container configuration, and proxy provisioning parameters.
      tags:
      - GatewayParameters
      parameters:
      - $ref: '#/components/parameters/Namespace'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayParameters'
      responses:
        '201':
          description: Successfully created GatewayParameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayParameters'
        '401':
          description: Unauthorized
        '409':
          description: Conflict - resource already exists
  /namespaces/{namespace}/gatewayparameters/{name}:
    get:
      operationId: getGatewayParameters
      summary: Kgateway Get GatewayParameters
      description: Retrieve a specific GatewayParameters resource by name and namespace.
      tags:
      - GatewayParameters
      parameters:
      - $ref: '#/components/parameters/Namespace'
      - $ref: '#/components/parameters/Name'
      responses:
        '200':
          description: Successfully retrieved GatewayParameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayParameters'
        '401':
          description: Unauthorized
        '404':
          description: GatewayParameters not found
    put:
      operationId: replaceGatewayParameters
      summary: Kgateway Replace GatewayParameters
      description: Replace a specific GatewayParameters resource.
      tags:
      - GatewayParameters
      parameters:
      - $ref: '#/components/parameters/Namespace'
      - $ref: '#/components/parameters/Name'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayParameters'
      responses:
        '200':
          description: Successfully replaced GatewayParameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayParameters'
        '401':
          description: Unauthorized
        '404':
          description: GatewayParameters not found
    delete:
      operationId: deleteGatewayParameters
      summary: Kgateway Delete GatewayParameters
      description: Delete a specific GatewayParameters resource.
      tags:
      - GatewayParameters
      parameters:
      - $ref: '#/components/parameters/Namespace'
      - $ref: '#/components/parameters/Name'
      responses:
        '200':
          description: Successfully deleted GatewayParameters.
        '401':
          description: Unauthorized
        '404':
          description: GatewayParameters not found
components:
  parameters:
    Name:
      name: name
      in: path
      required: true
      description: The name of the resource.
      schema:
        type: string
    Namespace:
      name: namespace
      in: path
      required: true
      description: The Kubernetes namespace.
      schema:
        type: string
    Limit:
      name: limit
      in: query
      required: false
      description: Maximum number of resources to return.
      schema:
        type: integer
    Continue:
      name: continue
      in: query
      required: false
      description: Continue token for paginated list requests.
      schema:
        type: string
    LabelSelector:
      name: labelSelector
      in: query
      required: false
      description: A selector to restrict the list of returned objects by labels.
      schema:
        type: string
  schemas:
    ObjectMeta:
      type: object
      description: Standard Kubernetes object metadata.
      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: Annotations for storing arbitrary metadata.
        resourceVersion:
          type: string
          description: An opaque value that represents the internal version of this object.
        creationTimestamp:
          type: string
          format: date-time
          description: Timestamp representing the server time when this object was created.
    GatewayParametersList:
      type: object
      description: List of GatewayParameters resources.
      properties:
        apiVersion:
          type: string
        kind:
          type: string
          enum:
          - GatewayParametersList
        metadata:
          type: object
          properties:
            continue:
              type: string
            resourceVersion:
              type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/GatewayParameters'
    GatewayParameters:
      type: object
      description: GatewayParameters customizes gateway infrastructure deployment settings including replicas, container configuration, and proxy provisioning.
      properties:
        apiVersion:
          type: string
          enum:
          - gateway.kgateway.dev/v1alpha1
        kind:
          type: string
          enum:
          - GatewayParameters
        metadata:
          $ref: '#/components/schemas/ObjectMeta'
        spec:
          type: object
          description: GatewayParametersSpec defines the desired state of GatewayParameters.
          properties:
            kube:
              type: object
              description: Kubernetes deployment settings.
              properties:
                deployment:
                  type: object
                  properties:
                    replicas:
                      type: integer
                      description: Number of gateway proxy replicas.
                podTemplate:
                  type: object
                  description: Pod template configuration.
                  properties:
                    extraLabels:
                      type: object
                      additionalProperties:
                        type: string
                    extraAnnotations:
                      type: object
                      additionalProperties:
                        type: string
                    nodeSelector:
                      type: object
                      additionalProperties:
                        type: string
                    tolerations:
                      type: array
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                          operator:
                            type: string
                          value:
                            type: string
                          effect:
                            type: string
                envoyContainer:
                  type: object
                  description: Envoy proxy container configuration.
                  properties:
                    resources:
                      type: object
                      properties:
                        requests:
                          type: object
                          properties:
                            cpu:
                              type: string
                            memory:
                              type: string
                        limits:
                          type: object
                          properties:
                            cpu:
                              type: string
                            memory:
                              type: string
                    image:
                      type: object
                      properties:
                        registry:
                          type: string
                        repository:
                          type: string
                        tag:
                          type: string
                service:
                  type: object
                  description: Service configuration.
                  properties:
                    type:
                      type: string
                      enum:
                      - ClusterIP
                      - NodePort
                      - LoadBalancer
                    extraAnnotations:
                      type: object
                      additionalProperties:
                        type: string
        status:
          type: object
          description: Status of the GatewayParameters.
          properties:
            conditions:
              type: array
              items:
                type: object
                properties:
                  type:
                    type: string
                  status:
                    type: string
                  reason:
                    type: string
                  message:
                    type: string
                  lastTransitionTime:
                    type: string
                    format: date-time
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Kubernetes API bearer token authentication. Use a service account token or kubeconfig token.
externalDocs:
  description: kgateway API Reference Documentation
  url: https://kgateway.dev/docs/envoy/latest/reference/api/