resource

package
v1.9.2 Latest Latest
Warning

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

Go to latest
Published: May 30, 2023 License: Apache-2.0, BSD-2-Clause, BSD-3-Clause, + 8 more Imports: 10 Imported by: 3

Documentation

Index

Constants

View Source
const (
	QuotaLimitErrorInfo  = "must set quota"
	AllocatableErrorInfo = "should NOT be more than remaining quantity"
	UpdateQuotaErrorInfo = "should NOT be less than used quantity"
)
View Source
const (
	// DefaultNamespacePrefix namespace prefix.
	DefaultNamespacePrefix = "kubernetes.io/"
	// HugePagesPrefix is huge pages prefix.
	HugePagesPrefix = "hugepages-"
)
View Source
const (
	// RequestsHugePagesPrefix request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
	// As burst is not supported for HugePages, we would only quota its request, and ignore the limit.
	RequestsHugePagesPrefix = "requests.hugepages-"
	// Default resource requests prefix
	DefaultResourceRequestsPrefix = "requests."
)

The following identify resource prefix for Kubernetes object types

Variables

This section is empty.

Functions

func ConvertFromCoreV1ResourceList

func ConvertFromCoreV1ResourceList(resourceList corev1.ResourceList) map[string]apiresource.Quantity

ConvertFromCoreV1ResourceList convert the kubernetes core resource list to common resource list.

func ConvertToCoreV1ResourceList

func ConvertToCoreV1ResourceList(resourceList map[string]apiresource.Quantity) corev1.ResourceList

ConvertToCoreV1ResourceList convert the resource list in tke to kubernetes core resource list.

func IsExtendedResourceName

func IsExtendedResourceName(name Name) bool

IsExtendedResourceName returns true if: 1. the resource name is not in the default namespace; 2. resource name does not have "requests." prefix, to avoid confusion with the convention in quota 3. it satisfies the rules in IsQualifiedName() after converted into quota resource name

func IsIntegerResourceName

func IsIntegerResourceName(str string) bool

IsIntegerResourceName returns true if the resource is measured in integer values

func IsNativeResource

func IsNativeResource(name Name) bool

IsNativeResource returns true if the resource name is in the *kubernetes.io/ namespace. Partially-qualified (unprefixed) names are implicitly in the kubernetes.io/ namespace.

func IsQuotaHugePageResourceName

func IsQuotaHugePageResourceName(name Name) bool

IsQuotaHugePageResourceName returns true if the resource name has the quota related huge page resource prefix.

func IsStandardQuotaResourceName

func IsStandardQuotaResourceName(str string) bool

IsStandardQuotaResourceName returns true if the resource is known to the quota tracking system

func IsStandardResourceName

func IsStandardResourceName(str string) bool

IsStandardResourceName returns true if the resource is known to the system

func ValidateAllocatableResources

func ValidateAllocatableResources(wantAllocate business.ResourceList, hasAllocated business.ResourceList,
	capacity business.ResourceList, used business.ResourceList, fldPath *field.Path) field.ErrorList

ValidateAllocatableResources is used to verify whether the resource quota to be allocated meets the total resource quota minus the condition of the used resource.

func ValidateNonnegativeQuantity

func ValidateNonnegativeQuantity(value resource.Quantity, fldPath *field.Path) field.ErrorList

ValidateNonnegativeQuantity that a Quantity is not negative

func ValidateResourceQuantityValue

func ValidateResourceQuantityValue(resource string, value resource.Quantity, fldPath *field.Path) field.ErrorList

ValidateResourceQuantityValue enforces that specified quantity is valid for specified resource

func ValidateResourceQuotaResourceName

func ValidateResourceQuotaResourceName(value string, fldPath *field.Path) field.ErrorList

ValidateResourceQuotaResourceName resource names that can go in a resource quota Refer to docs/design/resources.md for more details.

func ValidateUpdateResource

func ValidateUpdateResource(hard business.ResourceList, used business.ResourceList, fldPath *field.Path) field.ErrorList

ValidateUpdateResource is used to verify that the adjusted quota when updating the resource quota cannot be less than the used one.

Types

type Name

type Name string

Name is the name identifying various resources in a ResourceList.

const (
	// CPU, in cores. (500m = .5 cores)
	CPU Name = "cpu"
	// Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
	Memory Name = "memory"
	// Volume size, in bytes (e,g. 5Gi = 5GiB = 5 * 1024 * 1024 * 1024)
	Storage Name = "storage"
	// Local ephemeral storage, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
	// The resource name for EphemeralStorage is alpha and it can change across releases.
	EphemeralStorage Name = "ephemeral-storage"
)

Resource names must be not more than 63 characters, consisting of upper- or lower-case alphanumeric characters, with the -, _, and . characters allowed anywhere, except the first or last character. The default convention, matching that for annotations, is to use lower-case names, with dashes, rather than camel case, separating compound words. Fully-qualified resource typenames are constructed from a DNS-style subdomain, followed by a slash `/` and a name.

const (
	// Pods, number
	Pods Name = "pods"
	// Services, number
	Services Name = "services"
	// ReplicationControllers, number
	ReplicationControllers Name = "replicationcontrollers"
	// Quotas, number
	Quotas Name = "resourcequotas"
	// Secrets, number
	Secrets Name = "secrets"
	// ConfigMaps, number
	ConfigMaps Name = "configmaps"
	// PersistentVolumeClaims, number
	PersistentVolumeClaims Name = "persistentvolumeclaims"
	// ServicesNodePorts, number
	ServicesNodePorts Name = "services.nodeports"
	// ServicesLoadBalancers, number
	ServicesLoadBalancers Name = "services.loadbalancers"
	// CPU request, in cores. (500m = .5 cores)
	RequestsCPU Name = "requests.cpu"
	// Memory request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
	RequestsMemory Name = "requests.memory"
	// Storage request, in bytes
	RequestsStorage Name = "requests.storage"
	// Local ephemeral storage request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
	RequestsEphemeralStorage Name = "requests.ephemeral-storage"
	// CPU limit, in cores. (500m = .5 cores)
	LimitsCPU Name = "limits.cpu"
	// Memory limit, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
	LimitsMemory Name = "limits.memory"
	// Local ephemeral storage limit, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
	LimitsEphemeralStorage Name = "limits.ephemeral-storage"
)

The following identify resource constants for Kubernetes object types

Jump to

Keyboard shortcuts

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