@soft-stech/keda
Version:
KEDA(Kubernetes Event-driven Autoscaling) models
309 lines (308 loc) • 12.2 kB
TypeScript
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>);
}