kube-aggregatork8s.io/kube-aggregator/pkg/controllers/openapi/aggregator Index | Files

package aggregator

import "k8s.io/kube-aggregator/pkg/controllers/openapi/aggregator"

Index

Functions

func IsLocalAPIService

func IsLocalAPIService(apiServiceName string) bool

IsLocalAPIService returns true for local specs from delegates.

Types

type Downloader

type Downloader struct {
}

Downloader is the OpenAPI downloader type. It will try to download spec from /openapi/v2 or /swagger.json endpoint.

func NewDownloader

func NewDownloader() Downloader

NewDownloader creates a new OpenAPI Downloader.

func (*Downloader) Download

func (s *Downloader) Download(handler http.Handler, etag string) (returnSpec *spec.Swagger, newEtag string, httpStatus int, err error)

Download downloads openAPI spec from /openapi/v2 endpoint of the given handler. httpStatus is only valid if err == nil

type SpecAggregator

type SpecAggregator interface {
	AddUpdateAPIService(handler http.Handler, apiService *v1.APIService) error
	UpdateAPIServiceSpec(apiServiceName string, spec *spec.Swagger, etag string) error
	RemoveAPIServiceSpec(apiServiceName string) error
	GetAPIServiceInfo(apiServiceName string) (handler http.Handler, etag string, exists bool)
	GetAPIServiceNames() []string
}

SpecAggregator calls out to http handlers of APIServices and merges specs. It keeps state of the last known specs including the http etag.

func BuildAndRegisterAggregator

func BuildAndRegisterAggregator(downloader *Downloader, delegationTarget server.DelegationTarget, webServices []*restful.WebService,
	config *common.Config, pathHandler common.PathHandler) (SpecAggregator, error)

BuildAndRegisterAggregator registered OpenAPI aggregator handler. This function is not thread safe as it only being called on startup.

Source Files

aggregator.go downloader.go metrics.go priority.go

Version
v0.24.6-rc.0
Published
Sep 14, 2022
Platform
js/wasm
Imports
21 packages
Last checked
1 hour ago

Tools for package owners.