--- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: horizontalrunnerautoscalers.actions.summerwind.dev spec: additionalPrinterColumns: - JSONPath: .spec.minReplicas name: Min type: number - JSONPath: .spec.maxReplicas name: Max type: number - JSONPath: .status.desiredReplicas name: Desired type: number group: actions.summerwind.dev names: kind: HorizontalRunnerAutoscaler listKind: HorizontalRunnerAutoscalerList plural: horizontalrunnerautoscalers singular: horizontalrunnerautoscaler scope: Namespaced subresources: status: {} validation: openAPIV3Schema: description: HorizontalRunnerAutoscaler is the Schema for the horizontalrunnerautoscaler 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: HorizontalRunnerAutoscalerSpec defines the desired state of HorizontalRunnerAutoscaler properties: capacityReservations: items: description: CapacityReservation specifies the number of replicas temporarily added to the scale target until ExpirationTime. properties: expirationTime: format: date-time type: string name: type: string replicas: type: integer type: object type: array maxReplicas: description: MinReplicas is the maximum number of replicas the deployment is allowed to scale type: integer metrics: description: Metrics is the collection of various metric targets to calculate desired number of runners items: properties: repositoryNames: description: RepositoryNames is the list of repository names to be used for calculating the metric. For example, a repository name is the REPO part of `github.com/USER/REPO`. items: type: string type: array scaleDownAdjustment: description: ScaleDownAdjustment is the number of runners removed on scale-down. You can only specify either ScaleDownFactor or ScaleDownAdjustment. type: integer scaleDownFactor: description: ScaleDownFactor is the multiplicative factor applied to the current number of runners used to determine how many pods should be removed. type: string scaleDownThreshold: description: ScaleDownThreshold is the percentage of busy runners less than which will trigger the hpa to scale the runners down. type: string scaleUpAdjustment: description: ScaleUpAdjustment is the number of runners added on scale-up. You can only specify either ScaleUpFactor or ScaleUpAdjustment. type: integer scaleUpFactor: description: ScaleUpFactor is the multiplicative factor applied to the current number of runners used to determine how many pods should be added. type: string scaleUpThreshold: description: ScaleUpThreshold is the percentage of busy runners greater than which will trigger the hpa to scale runners up. type: string type: description: Type is the type of metric to be used for autoscaling. The only supported Type is TotalNumberOfQueuedAndInProgressWorkflowRuns type: string type: object type: array minReplicas: description: MinReplicas is the minimum number of replicas the deployment is allowed to scale type: integer scaleDownDelaySecondsAfterScaleOut: description: ScaleDownDelaySecondsAfterScaleUp is the approximate delay for a scale down followed by a scale up Used to prevent flapping (down->up->down->... loop) type: integer scaleTargetRef: description: ScaleTargetRef sis the reference to scaled resource like RunnerDeployment properties: name: type: string type: object scaleUpTriggers: description: "ScaleUpTriggers is an experimental feature to increase the desired replicas by 1 on each webhook requested received by the webhookBasedAutoscaler. \n This feature requires you to also enable and deploy the webhookBasedAutoscaler onto your cluster. \n Note that the added runners remain until the next sync period at least, and they may or may not be used by GitHub Actions depending on the timing. They are intended to be used to gain \"resource slack\" immediately after you receive a webhook from GitHub, so that you can loosely expect MinReplicas runners to be always available." items: properties: amount: type: integer duration: type: string githubEvent: properties: checkRun: description: https://docs.github.com/en/actions/reference/events-that-trigger-workflows#check_run properties: status: type: string types: items: type: string type: array type: object pullRequest: description: https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request properties: branches: items: type: string type: array types: items: type: string type: array type: object push: description: PushSpec is the condition for triggering scale-up on push event Also see https://docs.github.com/en/actions/reference/events-that-trigger-workflows#push type: object type: object type: object type: array type: object status: properties: cacheEntries: items: properties: expirationTime: format: date-time type: string key: type: string value: type: integer type: object type: array desiredReplicas: description: DesiredReplicas is the total number of desired, non-terminated and latest pods to be set for the primary RunnerSet This doesn't include outdated pods while upgrading the deployment and replacing the runnerset. type: integer lastSuccessfulScaleOutTime: format: date-time type: string observedGeneration: description: ObservedGeneration is the most recent generation observed for the target. It corresponds to e.g. RunnerDeployment's generation, which is updated on mutation by the API Server. format: int64 type: integer type: object type: object version: v1alpha1 versions: - name: v1alpha1 served: true storage: true status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: []