controller-runtime: sigs.k8s.io/controller-runtime/pkg/scheme Index | Files

package scheme

import "sigs.k8s.io/controller-runtime/pkg/scheme"

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. 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() {
	myapigroupv1.AddToScheme(scheme)
	kubernetesscheme.AddToScheme(scheme)
}

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

Index

Package Files

scheme.go

type Builder Uses

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

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

func (*Builder) AddToScheme Uses

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

AddToScheme adds all registered types to s.

func (*Builder) Build Uses

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

Build returns a new Scheme containing the registered types.

func (*Builder) Register Uses

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

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

func (*Builder) RegisterAll Uses

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

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

Package scheme imports 3 packages (graph) and is imported by 18 packages. Updated 2019-05-17. Refresh now. Tools for package owners.