apiserver

package
v0.24.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 51 Imported by: 2

Documentation

Overview

Package apiserver provides an APIServer that can dynamically serve resources based on an API definition (CommonAPIResourceSpec) source and a Rest storage provider.

The main interface between this package and other components is the apidefs.APIDefinition:

- the configuration of the DynamicAPIServer contains an apidefs.APISetRetriever that allows retrieving an apidefs.APIDefinition based on an api domain key and a GVR

- the CreateServingInfoFor method can be used by external components at any time to create an apidefs.APIDefinition and add it to the apidefs.APISetRetriever that has been passed to the DynamicAPIServer

Parts of this package are highly inspired from k8s.io/apiextensions-apiserver/pkg/apiserver https://github.com/kcp-dev/kubernetes/tree/feature-logical-clusters-1.23/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateServingInfoFor

func CreateServingInfoFor(genericConfig genericapiserver.CompletedConfig, apiResourceSchema *apisv1alpha1.APIResourceSchema, version string, restProvider RestProviderFunc) (apidefinition.APIDefinition, error)

CreateServingInfoFor builds an APIDefinition for a apiResourceSchema.

Types

type CompletedConfig

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

func (CompletedConfig) New

func (c CompletedConfig) New(virtualWorkspaceName string, delegationTarget genericapiserver.DelegationTarget) (*DynamicAPIServer, error)

New returns a new instance of DynamicAPIServer from the given config.

type DynamicAPIServer

type DynamicAPIServer struct {
	GenericAPIServer *genericapiserver.GenericAPIServer
	APISetRetriever  apidefinition.APIDefinitionSetGetter
}

DynamicAPIServer contains state for a Kubernetes api server that can dynamically serve resources based on an API definitions (provided by the APISetRetriever).

type DynamicAPIServerConfig

type DynamicAPIServerConfig struct {
	GenericConfig *genericapiserver.RecommendedConfig
	ExtraConfig   DynamicAPIServerExtraConfig
}

DynamicAPIServerConfig contains the configuration for the DynamicAPIServer.

func (*DynamicAPIServerConfig) Complete

func (c *DynamicAPIServerConfig) Complete() completedConfig

Complete fills in any fields not set that are required to have valid data. It's mutating the receiver.

type DynamicAPIServerExtraConfig

type DynamicAPIServerExtraConfig struct {
	APISetRetriever apidefinition.APIDefinitionSetGetter
}

DynamicAPIServerExtraConfig contains additional configuration for the DynamicAPIServer.

type RestProviderFunc

type RestProviderFunc func(resource schema.GroupVersionResource, kind schema.GroupVersionKind, listKind schema.GroupVersionKind, typer runtime.ObjectTyper, tableConvertor rest.TableConvertor, namespaceScoped bool, schemaValidator apiservervalidation.SchemaValidator, subresourcesSchemaValidator map[string]apiservervalidation.SchemaValidator, structuralSchema *structuralschema.Structural) (mainStorage rest.Storage, subresourceStorages map[string]rest.Storage)

RestProviderFunc is the type of a function that builds REST storage implementations for the main resource and sub-resources, based on information passed by the resource handler about a given API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL