183 lines
8.1 KiB
YAML
183 lines
8.1 KiB
YAML
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
labels:
|
|
app.kubernetes.io/instance: kueue
|
|
app.kubernetes.io/name: kueue
|
|
app.kubernetes.io/version: v0.12.3
|
|
control-plane: controller-manager
|
|
name: provisioningrequestconfigs.kueue.x-k8s.io
|
|
spec:
|
|
conversion:
|
|
strategy: Webhook
|
|
webhook:
|
|
clientConfig:
|
|
service:
|
|
name: kueue-webhook-service
|
|
namespace: kueue-system
|
|
path: /convert
|
|
conversionReviewVersions:
|
|
- v1
|
|
group: kueue.x-k8s.io
|
|
names:
|
|
kind: ProvisioningRequestConfig
|
|
listKind: ProvisioningRequestConfigList
|
|
plural: provisioningrequestconfigs
|
|
singular: provisioningrequestconfig
|
|
scope: Cluster
|
|
versions:
|
|
- name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: ProvisioningRequestConfig is the Schema for the provisioningrequestconfig API
|
|
properties:
|
|
apiVersion:
|
|
description: |-
|
|
APIVersion defines the versioned schema of this representation of an object.
|
|
Servers should convert recognized schemas to the latest internal value, and
|
|
may reject unrecognized values.
|
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
|
type: string
|
|
kind:
|
|
description: |-
|
|
Kind is a string value representing the REST resource this object represents.
|
|
Servers may infer this from the endpoint the client submits requests to.
|
|
Cannot be updated.
|
|
In CamelCase.
|
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
spec:
|
|
description: ProvisioningRequestConfigSpec defines the desired state of ProvisioningRequestConfig
|
|
properties:
|
|
managedResources:
|
|
description: |-
|
|
managedResources contains the list of resources managed by the autoscaling.
|
|
|
|
If empty, all resources are considered managed.
|
|
|
|
If not empty, the ProvisioningRequest will contain only the podsets that are
|
|
requesting at least one of them.
|
|
|
|
If none of the workloads podsets is requesting at least a managed resource,
|
|
the workload is considered ready.
|
|
items:
|
|
description: ResourceName is the name identifying various resources in a ResourceList.
|
|
type: string
|
|
maxItems: 100
|
|
type: array
|
|
x-kubernetes-list-type: set
|
|
parameters:
|
|
additionalProperties:
|
|
description: Parameter is limited to 255 characters.
|
|
maxLength: 255
|
|
type: string
|
|
description: Parameters contains all other parameters classes may require.
|
|
maxProperties: 100
|
|
type: object
|
|
podSetMergePolicy:
|
|
description: |-
|
|
podSetMergePolicy specifies the policy for merging PodSets before being passed
|
|
to the cluster autoscaler.
|
|
enum:
|
|
- IdenticalPodTemplates
|
|
- IdenticalWorkloadSchedulingRequirements
|
|
type: string
|
|
podSetUpdates:
|
|
description: |-
|
|
podSetUpdates specifies the update of the workload's PodSetUpdates which
|
|
are used to target the provisioned nodes.
|
|
properties:
|
|
nodeSelector:
|
|
description: nodeSelector specifies the list of updates for the NodeSelector.
|
|
items:
|
|
properties:
|
|
key:
|
|
description: key specifies the key for the NodeSelector.
|
|
maxLength: 317
|
|
minLength: 1
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
valueFromProvisioningClassDetail:
|
|
description: |-
|
|
valueFromProvisioningClassDetail specifies the key of the
|
|
ProvisioningRequest.status.provisioningClassDetails from which the value
|
|
is used for the update.
|
|
maxLength: 32768
|
|
minLength: 1
|
|
type: string
|
|
required:
|
|
- key
|
|
- valueFromProvisioningClassDetail
|
|
type: object
|
|
maxItems: 8
|
|
type: array
|
|
type: object
|
|
provisioningClassName:
|
|
description: |-
|
|
ProvisioningClassName describes the different modes of provisioning the resources.
|
|
Check autoscaling.x-k8s.io ProvisioningRequestSpec.ProvisioningClassName for details.
|
|
maxLength: 253
|
|
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
|
|
type: string
|
|
retryStrategy:
|
|
default:
|
|
backoffBaseSeconds: 60
|
|
backoffLimitCount: 3
|
|
backoffMaxSeconds: 1800
|
|
description: |-
|
|
retryStrategy defines strategy for retrying ProvisioningRequest.
|
|
If null, then the default configuration is applied with the following parameter values:
|
|
backoffLimitCount: 3
|
|
backoffBaseSeconds: 60 - 1 min
|
|
backoffMaxSeconds: 1800 - 30 mins
|
|
|
|
To switch off retry mechanism
|
|
set retryStrategy.backoffLimitCount to 0.
|
|
properties:
|
|
backoffBaseSeconds:
|
|
default: 60
|
|
description: |-
|
|
BackoffBaseSeconds defines the base for the exponential backoff for
|
|
re-queuing an evicted workload.
|
|
|
|
Defaults to 60.
|
|
format: int32
|
|
type: integer
|
|
backoffLimitCount:
|
|
default: 3
|
|
description: |-
|
|
BackoffLimitCount defines the maximum number of re-queuing retries.
|
|
Once the number is reached, the workload is deactivated (`.spec.activate`=`false`).
|
|
|
|
Every backoff duration is about "b*2^(n-1)+Rand" where:
|
|
- "b" represents the base set by "BackoffBaseSeconds" parameter,
|
|
- "n" represents the "workloadStatus.requeueState.count",
|
|
- "Rand" represents the random jitter.
|
|
During this time, the workload is taken as an inadmissible and
|
|
other workloads will have a chance to be admitted.
|
|
By default, the consecutive requeue delays are around: (60s, 120s, 240s, ...).
|
|
|
|
Defaults to 3.
|
|
format: int32
|
|
type: integer
|
|
backoffMaxSeconds:
|
|
default: 1800
|
|
description: |-
|
|
BackoffMaxSeconds defines the maximum backoff time to re-queue an evicted workload.
|
|
|
|
Defaults to 1800.
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
required:
|
|
- provisioningClassName
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|