UNPKG

@soft-stech/keda

Version:
309 lines (308 loc) 12.2 kB
import { IObjectMeta } from "@soft-stech/apimachinery/apis/meta/v1/ObjectMeta"; import { Model, ModelData } from "@soft-stech/base"; /** * ScaledObject is a specification for a ScaledObject resource */ export interface IScaledObject { /** * 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 */ "apiVersion": "keda.sh/v1alpha1"; /** * 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 */ "kind": "ScaledObject"; "metadata"?: IObjectMeta; /** * ScaledObjectSpec is the spec for a ScaledObject resource */ "spec": { /** * AdvancedConfig specifies advance scaling options */ "advanced"?: { /** * HorizontalPodAutoscalerConfig specifies horizontal scale config */ "horizontalPodAutoscalerConfig"?: { /** * HorizontalPodAutoscalerBehavior configures the scaling behavior of the target * in both Up and Down directions (scaleUp and scaleDown fields respectively). */ "behavior"?: { /** * 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). */ "scaleDown"?: { /** * policies is a list of potential scaling polices which can be used during scaling. * At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid */ "policies"?: Array<{ /** * 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 */ "periodSeconds": number; /** * type is used to specify the scaling policy. */ "type": string; /** * value contains the amount of change which is permitted by the policy. * It must be greater than zero * @format int32 */ "value": number; }>; /** * selectPolicy is used to specify which policy should be used. * If not set, the default value Max is used. */ "selectPolicy"?: string; /** * 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). * @maximum 3600 * @format int32 */ "stabilizationWindowSeconds"?: number; }; /** * 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. */ "scaleUp"?: { /** * policies is a list of potential scaling polices which can be used during scaling. * At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid */ "policies"?: Array<{ /** * 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 */ "periodSeconds": number; /** * type is used to specify the scaling policy. */ "type": string; /** * value contains the amount of change which is permitted by the policy. * It must be greater than zero * @format int32 */ "value": number; }>; /** * selectPolicy is used to specify which policy should be used. * If not set, the default value Max is used. */ "selectPolicy"?: string; /** * 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). * @maximum 3600 * @format int32 */ "stabilizationWindowSeconds"?: number; }; }; "name"?: string; }; "restoreToOriginalReplicaCount"?: boolean; /** * ScalingModifiers describes advanced scaling logic options like formula */ "scalingModifiers"?: { "activationTarget"?: string; "formula"?: string; /** * MetricTargetType specifies the type of metric being targeted, and should be either * "Value", "AverageValue", or "Utilization" */ "metricType"?: string; "target"?: string; }; }; /** * * @format int32 */ "cooldownPeriod"?: number; /** * Fallback is the spec for fallback options */ "fallback"?: { /** * * @format int32 */ "failureThreshold": number; /** * * @format int32 */ "replicas": number; }; /** * * @format int32 */ "idleReplicaCount"?: number; /** * * @format int32 */ "initialCooldownPeriod"?: number; /** * * @format int32 */ "maxReplicaCount"?: number; /** * * @format int32 */ "minReplicaCount"?: number; /** * * @format int32 */ "pollingInterval"?: number; /** * ScaleTarget holds the reference to the scale target Object */ "scaleTargetRef": { "apiVersion"?: string; "envSourceContainerName"?: string; "kind"?: string; "name": string; }; "triggers": Array<{ /** * AuthenticationRef points to the TriggerAuthentication or ClusterTriggerAuthentication object that * is used to authenticate the scaler with the environment */ "authenticationRef"?: { /** * Kind of the resource being referred to. Defaults to TriggerAuthentication. */ "kind"?: string; "name": string; }; "metadata": Record<string, string>; /** * MetricTargetType specifies the type of metric being targeted, and should be either * "Value", "AverageValue", or "Utilization" */ "metricType"?: string; "name"?: string; "type": string; "useCachedMetrics"?: boolean; }>; }; /** * ScaledObjectStatus is the status for a ScaledObject resource */ "status"?: { "compositeScalerName"?: string; /** * Conditions an array representation to store multiple Conditions */ "conditions"?: Array<{ /** * A human readable message indicating details about the transition. */ "message"?: string; /** * The reason for the condition's last transition. */ "reason"?: string; /** * Status of the condition, one of True, False, Unknown. */ "status": string; /** * Type of condition */ "type": string; }>; "externalMetricNames"?: Array<string>; "health"?: Record<string, { /** * * @format int32 */ "numberOfFailures"?: number; /** * HealthStatusType is an indication of whether the health status is happy or failing */ "status"?: string; }>; "hpaName"?: string; /** * * @format date-time */ "lastActiveTime"?: string | null; /** * * @format int32 */ "originalReplicaCount"?: number; /** * * @format int32 */ "pausedReplicaCount"?: number; "resourceMetricNames"?: Array<string>; /** * GroupVersionKindResource provides unified structure for schema.GroupVersionKind and Resource */ "scaleTargetGVKR"?: { "group": string; "kind": string; "resource": string; "version": string; }; "scaleTargetKind"?: string; }; } /** * ScaledObject is a specification for a ScaledObject resource */ export declare class ScaledObject extends Model<IScaledObject> implements IScaledObject { "apiVersion": IScaledObject["apiVersion"]; "kind": IScaledObject["kind"]; "metadata"?: IScaledObject["metadata"]; "spec": IScaledObject["spec"]; "status"?: IScaledObject["status"]; static apiVersion: IScaledObject["apiVersion"]; static kind: IScaledObject["kind"]; static is: import("@soft-stech/base").TypeMetaGuard<IScaledObject>; constructor(data?: ModelData<IScaledObject>); }