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. 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 ¶
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 ¶
AddToScheme adds all registered types to s.
func (*Builder) Register ¶
Register adds one or objects to the SchemeBuilder so they can be added to a Scheme. Register mutates bld.
func (*Builder) RegisterAll ¶
RegisterAll registers all types from the Builder argument. RegisterAll mutates bld.