customresource

package
v2.14.0 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2024 License: Apache-2.0 Imports: 3 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RegistryFactory

type RegistryFactory interface {
	// Name returns the name of custom resource.
	//
	// Example:
	//
	// func (f *FooFactory) Name() string {
	//	return "foos"
	// }
	Name() string

	// CreateClient creates a new custom resource client for the given config.
	//
	// Example:
	//
	// func (f *FooFactory) CreateClient(cfg *rest.Config) (interface{}, error) {
	// 	return clientset.NewForConfig(cfg)
	// }
	CreateClient(cfg *rest.Config) (interface{}, error)

	// MetricFamilyGenerators returns the metric family generators to generate metric families with a
	// Kubernetes custom resource object.
	//
	// Example:
	//
	// func (f *FooFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
	//	return []generator.FamilyGenerator{
	//		*generator.NewFamilyGeneratorWithStability(
	//			"kube_foo_spec_replicas",
	//			"Number of desired replicas for a foo.",
	//			metric.Gauge,
	//			basemetrics.ALPHA,
	//			"",
	//			wrapFooFunc(func(f *samplev1alpha1.Foo) *metric.Family {
	//				return &metric.Family{
	//					Metrics: []*metric.Metric{
	//						{
	//							Value: float64(*f.Spec.Replicas),
	//						},
	//					},
	//				}
	//			}),
	//		),
	//		*generator.NewFamilyGeneratorWithStability(
	//			"kube_foo_status_replicas_available",
	//			"The number of available replicas per foo.",
	//			metric.Gauge,
	//			basemetrics.ALPHA,
	//			"",
	//			wrapFooFunc(func(f *samplev1alpha1.Foo) *metric.Family {
	//				return &metric.Family{
	//					Metrics: []*metric.Metric{
	//						{
	//							Value: float64(f.Status.AvailableReplicas),
	//						},
	//					},
	//				}
	//			}),
	//		),
	//	}
	// }
	MetricFamilyGenerators() []generator.FamilyGenerator

	// ExpectedType returns a pointer to an empty custom resource object.
	//
	// Example:
	//
	// func (f *FooFactory) ExpectedType() interface{} {
	//	return &samplev1alpha1.Foo{}
	// }
	ExpectedType() interface{}

	// ListWatch constructs a cache.ListerWatcher of the custom resource object.
	//
	// Example:
	//
	// func (f *FooFactory) ListWatch(customResourceClient interface{}, ns string, fieldSelector string) cache.ListerWatcher {
	// 	client := customResourceClient.(*clientset.Clientset)
	//	return &cache.ListWatch{
	//		ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) {
	//			opts.FieldSelector = fieldSelector
	//			return client.SamplecontrollerV1alpha1().Foos(ns).List(context.Background(), opts)
	//		},
	//		WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) {
	//			opts.FieldSelector = fieldSelector
	//			return client.SamplecontrollerV1alpha1().Foos(ns).Watch(context.Background(), opts)
	//		},
	//	}
	// }
	ListWatch(customResourceClient interface{}, ns string, fieldSelector string) cache.ListerWatcher
}

RegistryFactory is a registry interface for a CustomResourceStore. Users who want to extend the kube-state-metrics to support Custom Resource metrics should implement this interface.

Jump to

Keyboard shortcuts

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