scheme

package
v0.12.2 Latest Latest
Warning

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

Go to latest
Published: Jun 23, 2022 License: Apache-2.0 Imports: 3 Imported by: 8,914

Documentation

Overview

Package scheme contains utilities for gradually building Schemes, which contain information associating Go types with Kubernetes groups, versions, and kinds.

Each API group should define a utility function called AddToScheme for adding its types to a Scheme:

// in package myapigroupv1...
var (
	SchemeGroupVersion = schema.GroupVersion{Group: "my.api.group", Version: "v1"}
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
	AddToScheme = SchemeBuilder.AddToScheme
)

func init() {
	SchemeBuilder.Register(&MyType{}, &MyTypeList)
}
var (
	scheme *runtime.Scheme = runtime.NewScheme()
)

This also true of the built-in Kubernetes types. Then, in the entrypoint for your manager, assemble the scheme containing exactly the types you need, panicing if scheme registration failed. For instance, if our controller needs types from the core/v1 API group (e.g. Pod), plus types from my.api.group/v1:

func init() {
	utilruntime.Must(myapigroupv1.AddToScheme(scheme))
	utilruntime.Must(kubernetesscheme.AddToScheme(scheme))
}

func main() {
	mgr := controllers.NewManager(context.Background(), controllers.GetConfigOrDie(), manager.Options{
		Scheme: scheme,
	})
	// ...
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

type Builder struct {
	GroupVersion schema.GroupVersion
	runtime.SchemeBuilder
}

Builder builds a new Scheme for mapping go types to Kubernetes GroupVersionKinds.

func (*Builder) AddToScheme

func (bld *Builder) AddToScheme(s *runtime.Scheme) error

AddToScheme adds all registered types to s.

func (*Builder) Build

func (bld *Builder) Build() (*runtime.Scheme, error)

Build returns a new Scheme containing the registered types.

func (*Builder) Register

func (bld *Builder) Register(object ...runtime.Object) *Builder

Register adds one or more objects to the SchemeBuilder so they can be added to a Scheme. Register mutates bld.

func (*Builder) RegisterAll

func (bld *Builder) RegisterAll(b *Builder) *Builder

RegisterAll registers all types from the Builder argument. RegisterAll mutates bld.

Jump to

Keyboard shortcuts

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