apiserverk8s.io/apiserver/pkg/server/resourceconfig Index | Files

package resourceconfig

import "k8s.io/apiserver/pkg/server/resourceconfig"

Package resourceconfig contains the resource config related helper functions.

Index

Constants

const (
	APIAll   = "api/all"
	APIGA    = "api/ga"
	APIBeta  = "api/beta"
	APIAlpha = "api/alpha"
)

Recognized values for the --runtime-config parameter to enable/disable groups of APIs

Functions

func EmulationForwardCompatibleResourceConfig

func EmulationForwardCompatibleResourceConfig(
	resourceConfig *serverstore.ResourceConfig,
	resourceConfigOverrides cliflag.ConfigurationMap,
	registry GroupVersionRegistry,
) (*serverstore.ResourceConfig, error)

EmulationForwardCompatibleResourceConfig creates a new ResourceConfig that besides all the enabled resources in resourceConfig, enables all higher priority versions of enabled resources, excluding alpha versions. This is useful for ensuring forward compatibility when a new version of an API is introduced.

func MergeAPIResourceConfigs

func MergeAPIResourceConfigs(
	defaultAPIResourceConfig *serverstore.ResourceConfig,
	resourceConfigOverrides cliflag.ConfigurationMap,
	registry GroupVersionRegistry,
) (*serverstore.ResourceConfig, error)

MergeAPIResourceConfigs merges the given defaultAPIResourceConfig with the given resourceConfigOverrides. Exclude the groups not registered in registry, and check if version is not registered in group, then it will fail.

func MergeResourceEncodingConfigs

func MergeResourceEncodingConfigs(
	defaultResourceEncoding *serverstore.DefaultResourceEncodingConfig,
	resourceEncodingOverrides []schema.GroupVersionResource,
) *serverstore.DefaultResourceEncodingConfig

MergeResourceEncodingConfigs merges the given defaultResourceConfig with specific GroupVersionResource overrides.

func ParseGroups

func ParseGroups(resourceConfig cliflag.ConfigurationMap) ([]string, error)

ParseGroups takes in resourceConfig and returns parsed groups.

Types

type GroupVersionRegistry

type GroupVersionRegistry interface {
	// IsGroupRegistered returns true if given group is registered.
	IsGroupRegistered(group string) bool
	// IsVersionRegistered returns true if given version is registered.
	IsVersionRegistered(v schema.GroupVersion) bool
	// PrioritizedVersionsAllGroups returns all registered group versions.
	PrioritizedVersionsAllGroups() []schema.GroupVersion
	// PrioritizedVersionsForGroup returns versions for a single group in priority order
	PrioritizedVersionsForGroup(group string) []schema.GroupVersion
}

GroupVersionRegistry provides access to registered group versions.

Source Files

doc.go helpers.go

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

Tools for package owners.