apiextensions-apiserverk8s.io/apiextensions-apiserver/pkg/controller/openapi/builder Index | Files

package builder

import "k8s.io/apiextensions-apiserver/pkg/controller/openapi/builder"

Index

Functions

func BuildOpenAPIV2

func BuildOpenAPIV2(crd *apiextensionsv1.CustomResourceDefinition, version string, opts Options) (*spec.Swagger, error)

BuildOpenAPIV2 builds OpenAPI v2 for the given crd in the given version

func BuildOpenAPIV3

func BuildOpenAPIV3(crd *apiextensionsv1.CustomResourceDefinition, version string, opts Options) (*spec3.OpenAPI, error)

func MergeSpecs

func MergeSpecs(staticSpec *spec.Swagger, crdSpecs ...*spec.Swagger) (*spec.Swagger, error)

MergeSpecs aggregates all OpenAPI specs, reusing the metadata of the first, static spec as the basis. The static spec has the highest priority, and its paths and definitions won't get overlapped by user-defined CRDs. None of the input is mutated, but input and output share data structures.

func MergeSpecsV3

func MergeSpecsV3(crdSpecs ...*spec3.OpenAPI) (*spec3.OpenAPI, error)

MergeSpecsV3 merges OpenAPI v3 specs for CRDs Conflicts belonging to the meta.v1 or autoscaling.v1 group versions are skipped as all CRDs reference those types Other conflicts will result in an error

Types

type CRDCanonicalTypeNamer

type CRDCanonicalTypeNamer struct {
	// contains filtered or unexported fields
}

CRDCanonicalTypeNamer implements CanonicalTypeNamer interface for CRDs to seed kube-openapi canonical type name without Go types

func (*CRDCanonicalTypeNamer) OpenAPICanonicalTypeName

func (c *CRDCanonicalTypeNamer) OpenAPICanonicalTypeName() string

OpenAPICanonicalTypeName returns canonical type name for given CRD

type Options

type Options struct {
	// Convert to OpenAPI v2.
	V2 bool

	// Strip value validation.
	StripValueValidation bool

	// Strip nullable.
	StripNullable bool

	// AllowNonStructural indicates swagger should be built for a schema that fits into the structural type but does not meet all structural invariants
	AllowNonStructural bool

	IncludeSelectableFields bool
}

Options contains builder options.

Source Files

builder.go merge.go

Version
v0.33.0 (latest)
Published
Apr 23, 2025
Platform
linux/amd64
Imports
30 packages
Last checked
4 hours ago

Tools for package owners.