292 lines
13 KiB
YAML
292 lines
13 KiB
YAML
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.6.0
|
|
creationTimestamp: null
|
|
name: horizontalrunnerautoscalers.actions.summerwind.dev
|
|
spec:
|
|
group: actions.summerwind.dev
|
|
names:
|
|
kind: HorizontalRunnerAutoscaler
|
|
listKind: HorizontalRunnerAutoscalerList
|
|
plural: horizontalrunnerautoscalers
|
|
singular: horizontalrunnerautoscaler
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .spec.minReplicas
|
|
name: Min
|
|
type: number
|
|
- jsonPath: .spec.maxReplicas
|
|
name: Max
|
|
type: number
|
|
- jsonPath: .status.desiredReplicas
|
|
name: Desired
|
|
type: number
|
|
- jsonPath: .status.scheduledOverridesSummary
|
|
name: Schedule
|
|
type: string
|
|
name: v1alpha1
|
|
schema:
|
|
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:
|
|
names:
|
|
description: Names is a list of GitHub Actions glob
|
|
patterns. Any check_run event whose name matches one
|
|
of patterns in the list can trigger autoscaling. Note
|
|
that check_run name seem to equal to the job name
|
|
you've defined in your actions workflow yaml file.
|
|
So it is very likely that you can utilize this to
|
|
trigger depending on the job.
|
|
items:
|
|
type: string
|
|
type: array
|
|
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
|
|
scheduledOverrides:
|
|
description: ScheduledOverrides is the list of ScheduledOverride.
|
|
It can be used to override a few fields of HorizontalRunnerAutoscalerSpec
|
|
on schedule. The earlier a scheduled override is, the higher it
|
|
is prioritized.
|
|
items:
|
|
description: ScheduledOverride can be used to override a few fields
|
|
of HorizontalRunnerAutoscalerSpec on schedule. A schedule can
|
|
optionally be recurring, so that the correspoding override happens
|
|
every day, week, month, or year.
|
|
properties:
|
|
endTime:
|
|
description: EndTime is the time at which the first override
|
|
ends.
|
|
format: date-time
|
|
type: string
|
|
minReplicas:
|
|
description: MinReplicas is the number of runners while overriding.
|
|
If omitted, it doesn't override minReplicas.
|
|
minimum: 0
|
|
nullable: true
|
|
type: integer
|
|
recurrenceRule:
|
|
properties:
|
|
frequency:
|
|
description: Frequency is the name of a predefined interval
|
|
of each recurrence. The valid values are "Daily", "Weekly",
|
|
"Monthly", and "Yearly". If empty, the corresponding override
|
|
happens only once.
|
|
enum:
|
|
- Daily
|
|
- Weekly
|
|
- Monthly
|
|
- Yearly
|
|
type: string
|
|
untilTime:
|
|
description: UntilTime is the time of the final recurrence.
|
|
If empty, the schedule recurs forever.
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
startTime:
|
|
description: StartTime is the time at which the first override
|
|
starts.
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- endTime
|
|
- startTime
|
|
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
|
|
nullable: true
|
|
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
|
|
scheduledOverridesSummary:
|
|
description: ScheduledOverridesSummary is the summary of active and
|
|
upcoming scheduled overrides to be shown in e.g. a column of a `kubectl
|
|
get hra` output for observability.
|
|
type: string
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
status:
|
|
acceptedNames:
|
|
kind: ""
|
|
plural: ""
|
|
conditions: []
|
|
storedVersions: []
|