client-gok8s.io/client-go/scale Index | Files | Directories

package scale

import "k8s.io/client-go/scale"

Package scale provides a polymorphic scale client capable of fetching and updating Scale for any resource which implements the `scale` subresource, as long as that subresource operates on a version of scale convertable to autoscaling.Scale.

Index

Types

type PreferredResourceMapper

type PreferredResourceMapper interface {
	// ResourceFor takes a partial resource and returns the preferred resource.
	ResourceFor(resource schema.GroupVersionResource) (preferredResource schema.GroupVersionResource, err error)
}

PreferredResourceMapper determines the preferred version of a resource to scale

type ScaleConverter

type ScaleConverter struct {
	// contains filtered or unexported fields
}

ScaleConverter knows how to convert between external scale versions.

func NewScaleConverter

func NewScaleConverter() *ScaleConverter

NewScaleConverter creates a new ScaleConverter for converting between Scales in autoscaling/v1 and extensions/v1beta1.

func (*ScaleConverter) Codecs

func (*ScaleConverter) ConvertToVersion

func (c *ScaleConverter) ConvertToVersion(in runtime.Object, outVersion schema.GroupVersion) (runtime.Object, error)

ConvertToVersion converts the given *external* input object to the given output *external* output group-version.

func (*ScaleConverter) ScaleVersions

func (c *ScaleConverter) ScaleVersions() []schema.GroupVersion

func (*ScaleConverter) Scheme

func (c *ScaleConverter) Scheme() *runtime.Scheme

Scheme returns the scheme used by this scale converter.

type ScaleInterface

type ScaleInterface interface {
	// Get fetches the scale of the given scalable resource.
	Get(ctx context.Context, resource schema.GroupResource, name string, opts metav1.GetOptions) (*autoscalingapi.Scale, error)

	// Update updates the scale of the given scalable resource.
	Update(ctx context.Context, resource schema.GroupResource, scale *autoscalingapi.Scale, opts metav1.UpdateOptions) (*autoscalingapi.Scale, error)

	// Patch patches the scale of the given scalable resource.
	Patch(ctx context.Context, gvr schema.GroupVersionResource, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions) (*autoscalingapi.Scale, error)
}

ScaleInterface can fetch and update scales for resources in a particular namespace which implement the scale subresource.

type ScaleKindResolver

type ScaleKindResolver interface {
	// ScaleForResource returns the GroupVersionKind of the
	// scale subresource for the given GroupVersionResource.
	ScaleForResource(resource schema.GroupVersionResource) (scaleVersion schema.GroupVersionKind, err error)
}

ScaleKindResolver knows about the relationship between resources and the GroupVersionKind of their scale subresources.

func NewDiscoveryScaleKindResolver

func NewDiscoveryScaleKindResolver(client discovery.ServerResourcesInterface) ScaleKindResolver

NewDiscoveryScaleKindResolver creates a new ScaleKindResolver which uses information from the given disovery client to resolve the correct Scale GroupVersionKind for different resources.

type ScalesGetter

type ScalesGetter interface {
	// Scales produces a ScaleInterface for a particular namespace.
	// Set namespace to the empty string for non-namespaced resources.
	Scales(namespace string) ScaleInterface
}

ScalesGetter can produce a ScaleInterface

func New

func New(baseClient restclient.Interface, mapper PreferredResourceMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) ScalesGetter

New creates a new ScalesGetter using the given client to make requests. The GroupVersion on the client is ignored.

func NewForConfig

func NewForConfig(cfg *restclient.Config, mapper PreferredResourceMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) (ScalesGetter, error)

NewForConfig creates a new ScalesGetter which resolves kinds to resources using the given RESTMapper, and API paths using the given dynamic.APIPathResolverFunc.

Source Files

client.go doc.go interfaces.go util.go

Directories

PathSynopsis
scale/fakePackage fake provides a fake client interface to arbitrary Kubernetes APIs that exposes common high level operations and exposes common metadata.
scale/schemePackage scheme contains a runtime.Scheme to be used for serializing and deserializing different versions of Scale, and for converting in between them.
scale/scheme/appsintPackage appsint contains the necessary scaffolding of the internal version of extensions as required by conversion logic.
scale/scheme/appsv1beta1
scale/scheme/appsv1beta2
scale/scheme/autoscalingv1
scale/scheme/extensionsintPackage extensionsint contains the necessary scaffolding of the internal version of extensions as required by conversion logic.
scale/scheme/extensionsv1beta1
Version
v0.33.0 (latest)
Published
Apr 23, 2025
Platform
linux/amd64
Imports
22 packages
Last checked
36 minutes ago

Tools for package owners.