kubernetes/api/openapi-spec
Antonio Ojea e0c545353c
define endpointslice.endpoints as optional
The field is actually optional but defined as required in OpenAPI, causing issues
with clients that expected the field to be required when it was not.
2026-01-08 17:12:25 +00:00
..
v3 define endpointslice.endpoints as optional 2026-01-08 17:12:25 +00:00
README.md Document x-kubernetes-list-map-keys into OpenAPI extensions 2025-12-05 23:37:35 -08:00
swagger.json define endpointslice.endpoints as optional 2026-01-08 17:12:25 +00:00

Kubernetes's OpenAPI Specification

This folder contains an OpenAPI specification for Kubernetes API.

Vendor Extensions

Kubernetes extends OpenAPI using these extensions. Note the version that extensions have been added.

x-kubernetes-group-version-kind

Operations and Definitions may have x-kubernetes-group-version-kind if they are associated with a kubernetes resource.

For example:

"paths": {
    ...
    "/api/v1/namespaces/{namespace}/pods/{name}": {
        ...
        "get": {
        ...
            "x-kubernetes-group-version-kind": {
            "group": "",
            "version": "v1",
            "kind": "Pod"
            }
        }
    }
}

x-kubernetes-action

Operations and Definitions may have x-kubernetes-action if they are associated with a kubernetes resource. Action can be one of get, list, put, patch, post, delete, deletecollection, watch, watchlist, proxy, or connect.

For example:

"paths": {
    ...
    "/api/v1/namespaces/{namespace}/pods/{name}": {
        ...
        "get": {
        ...
            "x-kubernetes-action": "list"
        }
    }
}

x-kubernetes-list-map-keys

Operations and Definitions may have x-kubernetes-list-maps-keys if they are associated with a kubernetes resource. x-kubernetes-list-type = map specifies field names inside each list element to serve as unique keys for the list-as-map.

For example:

{
  "type": "object",
  "properties": {
    "servers": {
      "type": "array",
      "x-kubernetes-list-type": "map",
      "x-kubernetes-list-map-keys": ["name"],
      "items": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "address": { "type": "string" }
        },
        "required": ["name"]
      }
    }
  }
}

x-kubernetes-patch-strategy and x-kubernetes-patch-merge-key

Some of the definitions may have these extensions. For more information about PatchStrategy and PatchMergeKey see strategic-merge-patch.