--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 name: scaledobjects.keda.sh spec: group: keda.sh names: kind: ScaledObject listKind: ScaledObjectList plural: scaledobjects shortNames: - so singular: scaledobject scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.scaleTargetKind name: ScaleTargetKind type: string - jsonPath: .spec.scaleTargetRef.name name: ScaleTargetName type: string - jsonPath: .spec.minReplicaCount name: Min type: integer - jsonPath: .spec.maxReplicaCount name: Max type: integer - jsonPath: .status.conditions[?(@.type=="Ready")].status name: Ready type: string - jsonPath: .status.conditions[?(@.type=="Active")].status name: Active type: string - jsonPath: .status.conditions[?(@.type=="Fallback")].status name: Fallback type: string - jsonPath: .status.conditions[?(@.type=="Paused")].status name: Paused type: string - jsonPath: .status.triggersTypes name: Triggers type: string - jsonPath: .status.authenticationsTypes name: Authentications type: string - jsonPath: .metadata.creationTimestamp name: Age type: date name: v1alpha1 schema: openAPIV3Schema: description: ScaledObject is a specification for a ScaledObject resource 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: ScaledObjectSpec is the spec for a ScaledObject resource properties: advanced: description: AdvancedConfig specifies advance scaling options properties: horizontalPodAutoscalerConfig: description: HorizontalPodAutoscalerConfig specifies horizontal scale config properties: behavior: description: |- HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). properties: scaleDown: description: |- scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used). properties: policies: description: |- policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values: - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window. - For scale down: allow all pods to be removed in a 15s window. items: description: HPAScalingPolicy is a single policy which must hold true for a specified past interval. properties: periodSeconds: description: |- periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min). format: int32 type: integer type: description: type is used to specify the scaling policy. type: string value: description: |- value contains the amount of change which is permitted by the policy. It must be greater than zero format: int32 type: integer required: - periodSeconds - type - value type: object type: array x-kubernetes-list-type: atomic selectPolicy: description: |- selectPolicy is used to specify which policy should be used. If not set, the default value Max is used. type: string stabilizationWindowSeconds: description: |- stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long). format: int32 type: integer tolerance: anyOf: - type: integer - type: string description: |- tolerance is the tolerance on the ratio between the current and desired metric value under which no updates are made to the desired number of replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not set, the default cluster-wide tolerance is applied (by default 10%). For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi. This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object scaleUp: description: |- scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of: * increase no more than 4 pods per 60 seconds * double the number of pods per 60 seconds No stabilization is used. properties: policies: description: |- policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values: - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window. - For scale down: allow all pods to be removed in a 15s window. items: description: HPAScalingPolicy is a single policy which must hold true for a specified past interval. properties: periodSeconds: description: |- periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min). format: int32 type: integer type: description: type is used to specify the scaling policy. type: string value: description: |- value contains the amount of change which is permitted by the policy. It must be greater than zero format: int32 type: integer required: - periodSeconds - type - value type: object type: array x-kubernetes-list-type: atomic selectPolicy: description: |- selectPolicy is used to specify which policy should be used. If not set, the default value Max is used. type: string stabilizationWindowSeconds: description: |- stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long). format: int32 type: integer tolerance: anyOf: - type: integer - type: string description: |- tolerance is the tolerance on the ratio between the current and desired metric value under which no updates are made to the desired number of replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not set, the default cluster-wide tolerance is applied (by default 10%). For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi. This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object type: object name: type: string type: object restoreToOriginalReplicaCount: type: boolean scalingModifiers: description: ScalingModifiers describes advanced scaling logic options like formula properties: activationTarget: type: string formula: type: string metricType: description: |- MetricTargetType specifies the type of metric being targeted, and should be either "Value", "AverageValue", or "Utilization" enum: - AverageValue - Value type: string target: type: string type: object type: object cooldownPeriod: format: int32 type: integer fallback: description: Fallback is the spec for fallback options properties: behavior: default: static enum: - static - currentReplicas - currentReplicasIfHigher - currentReplicasIfLower type: string failureThreshold: format: int32 type: integer replicas: format: int32 type: integer required: - failureThreshold - replicas type: object idleReplicaCount: format: int32 type: integer initialCooldownPeriod: format: int32 type: integer maxReplicaCount: format: int32 type: integer minReplicaCount: format: int32 type: integer pollingInterval: format: int32 type: integer scaleTargetRef: description: ScaleTarget holds the reference to the scale target Object properties: apiVersion: type: string envSourceContainerName: type: string kind: type: string name: type: string required: - name type: object triggers: items: description: ScaleTriggers reference the scaler that will be used properties: authenticationRef: description: |- AuthenticationRef points to the TriggerAuthentication or ClusterTriggerAuthentication object that is used to authenticate the scaler with the environment properties: kind: description: Kind of the resource being referred to. Defaults to TriggerAuthentication. type: string name: type: string required: - name type: object metadata: additionalProperties: type: string type: object metricType: description: |- MetricTargetType specifies the type of metric being targeted, and should be either "Value", "AverageValue", or "Utilization" type: string name: type: string type: type: string useCachedMetrics: type: boolean required: - metadata - type type: object type: array required: - scaleTargetRef - triggers type: object status: description: ScaledObjectStatus is the status for a ScaledObject resource properties: authenticationsTypes: type: string compositeScalerName: type: string conditions: description: Conditions an array representation to store multiple Conditions items: description: Condition to store the condition state properties: message: description: A human readable message indicating details about the transition. type: string reason: description: The reason for the condition's last transition. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: description: Type of condition type: string required: - status - type type: object type: array externalMetricNames: items: type: string type: array health: additionalProperties: description: HealthStatus is the status for a ScaledObject's health properties: numberOfFailures: format: int32 type: integer status: description: HealthStatusType is an indication of whether the health status is happy or failing type: string type: object type: object hpaName: type: string lastActiveTime: format: date-time type: string originalReplicaCount: format: int32 type: integer pausedReplicaCount: format: int32 type: integer resourceMetricNames: items: type: string type: array scaleTargetGVKR: description: GroupVersionKindResource provides unified structure for schema.GroupVersionKind and Resource properties: group: type: string kind: type: string resource: type: string version: type: string required: - group - kind - resource - version type: object scaleTargetKind: type: string triggersTypes: type: string type: object required: - spec type: object served: true storage: true subresources: status: {}