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
deprecated
type Builder struct {
GroupVersion schema.GroupVersion
runtime.SchemeBuilder
}
Builder builds a new Scheme for mapping go types to Kubernetes GroupVersionKinds.
Deprecated: This helper is only useful in api packages, but api packages should be easy to import and hence have minimal dependencies. Typically, these dependencies include only the standard library, k8s.io/apimachinery and other api packages.
Use the apimachinery builder instead:
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
)
const GroupName = ""
var (
SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"}
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
AddToScheme = SchemeBuilder.AddToScheme
)
func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion,
&Pod{},
)
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
return nil
}
func (*Builder) AddToScheme ¶
AddToScheme adds all registered types to s.
func (*Builder) Register ¶
Register adds one or more 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.