Improve performance of controllers

This commit is contained in:
Nikola Jokic
2026-07-07 19:18:15 +02:00
parent 7086893498
commit 191fac9eaa
50 changed files with 3358 additions and 1065 deletions
@@ -51,10 +51,8 @@ spec:
description: AutoscalingListenerSpec defines the desired state of AutoscalingListener
properties:
autoscalingRunnerSetName:
description: Required
type: string
autoscalingRunnerSetNamespace:
description: Required
type: string
configSecretMetadata:
description: ResourceMeta carries metadata common to all internal
@@ -70,21 +68,17 @@ spec:
type: object
type: object
ephemeralRunnerSetName:
description: Required
type: string
githubConfigSecret:
description: Required
type: string
githubConfigUrl:
description: Required
type: string
githubServerTLS:
properties:
certificateFrom:
description: Required
properties:
configMapKeyRef:
description: Required
description: Selects a key from a ConfigMap.
properties:
key:
description: The key to select.
@@ -106,13 +100,15 @@ spec:
- key
type: object
x-kubernetes-map-type: atomic
required:
- configMapKeyRef
type: object
required:
- certificateFrom
type: object
image:
description: Required
type: string
imagePullSecrets:
description: Required
items:
description: |-
LocalObjectReference contains enough information to let you locate the
@@ -131,7 +127,6 @@ spec:
x-kubernetes-map-type: atomic
type: array
maxRunners:
description: Required
minimum: 0
type: integer
metrics:
@@ -183,7 +178,6 @@ spec:
type: object
type: object
minRunners:
description: Required
minimum: 0
type: integer
proxy:
@@ -193,16 +187,18 @@ spec:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
https:
properties:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
noProxy:
items:
@@ -236,7 +232,7 @@ spec:
type: object
type: object
runnerScaleSetId:
description: Required
minimum: 1
type: integer
serviceAccountMetadata:
description: ResourceMeta carries metadata common to all internal
@@ -8782,16 +8778,18 @@ spec:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
https:
properties:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
noProxy:
items:
@@ -24,6 +24,15 @@ spec:
- jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .status.pendingEphemeralRunners
name: Pending Runners
type: integer
- jsonPath: .status.runningEphemeralRunners
name: Running Runners
type: integer
- jsonPath: .status.failedEphemeralRunners
name: Failed Runners
type: integer
name: v1alpha1
schema:
openAPIV3Schema:
@@ -98,18 +107,15 @@ spec:
type: object
type: object
githubConfigSecret:
description: Required
type: string
githubConfigUrl:
description: Required
type: string
githubServerTLS:
properties:
certificateFrom:
description: Required
properties:
configMapKeyRef:
description: Required
description: Selects a key from a ConfigMap.
properties:
key:
description: The key to select.
@@ -130,7 +136,11 @@ spec:
- key
type: object
x-kubernetes-map-type: atomic
required:
- configMapKeyRef
type: object
required:
- certificateFrom
type: object
listenerConfigSecretMetadata:
description: ResourceMeta carries metadata common to all internal resources
@@ -8351,16 +8361,18 @@ spec:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
https:
properties:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
noProxy:
items:
@@ -8376,7 +8388,7 @@ spec:
runnerScaleSetName:
type: string
template:
description: Required
description: PodTemplateSpec describes the data a pod should have when created from a template
properties:
metadata:
description: |-
@@ -16502,16 +16514,18 @@ spec:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
https:
properties:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
noProxy:
items:
@@ -16528,8 +16542,20 @@ spec:
status:
description: AutoscalingRunnerSetStatus defines the observed state of AutoscalingRunnerSet
properties:
currentRunners:
minimum: 0
type: integer
failedEphemeralRunners:
minimum: 0
type: integer
pendingEphemeralRunners:
minimum: 0
type: integer
phase:
type: string
runningEphemeralRunners:
minimum: 0
type: integer
type: object
type: object
served: true
@@ -89,10 +89,9 @@ spec:
githubServerTLS:
properties:
certificateFrom:
description: Required
properties:
configMapKeyRef:
description: Required
description: Selects a key from a ConfigMap.
properties:
key:
description: The key to select.
@@ -113,7 +112,11 @@ spec:
- key
type: object
x-kubernetes-map-type: atomic
required:
- configMapKeyRef
type: object
required:
- certificateFrom
type: object
metadata:
description: |-
@@ -144,16 +147,18 @@ spec:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
https:
properties:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
noProxy:
items:
@@ -8268,16 +8273,18 @@ spec:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
https:
properties:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
noProxy:
items:
@@ -8290,10 +8297,6 @@ spec:
It is used to identify which vault integration should be used to resolve secrets.
type: string
type: object
required:
- githubConfigSecret
- githubConfigUrl
- runnerScaleSetId
type: object
status:
description: EphemeralRunnerStatus defines the observed state of EphemeralRunner
@@ -8342,6 +8345,8 @@ spec:
type: integer
type: object
type: object
selectableFields:
- jsonPath: .status.phase
served: true
storage: true
subresources:
@@ -83,10 +83,9 @@ spec:
githubServerTLS:
properties:
certificateFrom:
description: Required
properties:
configMapKeyRef:
description: Required
description: Selects a key from a ConfigMap.
properties:
key:
description: The key to select.
@@ -107,7 +106,11 @@ spec:
- key
type: object
x-kubernetes-map-type: atomic
required:
- configMapKeyRef
type: object
required:
- certificateFrom
type: object
metadata:
description: |-
@@ -138,16 +141,18 @@ spec:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
https:
properties:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
noProxy:
items:
@@ -8262,16 +8267,18 @@ spec:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
https:
properties:
credentialSecretRef:
type: string
url:
description: Required
type: string
required:
- url
type: object
noProxy:
items:
@@ -8284,10 +8291,6 @@ spec:
It is used to identify which vault integration should be used to resolve secrets.
type: string
type: object
required:
- githubConfigSecret
- githubConfigUrl
- runnerScaleSetId
type: object
patchID:
description: PatchID is the unique identifier for the patch issued by the listener app
@@ -8295,15 +8298,35 @@ spec:
replicas:
description: Replicas is the number of desired EphemeralRunner resources in the k8s namespace.
type: integer
required:
- patchID
type: object
status:
description: EphemeralRunnerSetStatus defines the observed state of EphemeralRunnerSet
properties:
currentReplicas:
description: CurrentReplicas is the number of currently running EphemeralRunner resources being managed by this EphemeralRunnerSet.
minimum: 0
type: integer
failedEphemeralRunners:
minimum: 0
type: integer
pendingEphemeralRunners:
minimum: 0
type: integer
phase:
description: EphemeralRunnerSetPhase is the phase of the ephemeral runner set resource
type: string
reservedPatchID:
description: ReservedPatchID is the patch ID associated with ReservedReplicas.
type: integer
reservedReplicas:
description: |-
ReservedReplicas is the controller's checkpointed scale decision for the current patch.
It may be higher than CurrentaReplicas while the listener has not yet patched the desired count after runners complete.
minimum: 0
type: integer
runningEphemeralRunners:
minimum: 0
type: integer
type: object
type: object
served: true
+26 -3
View File
@@ -46,20 +46,30 @@ rules:
- ""
resources:
- secrets
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- watch
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- create
- delete
- get
- list
- update
- patch
- watch
- apiGroups:
- actions.github.com
resources:
- autoscalinglisteners
- autoscalingrunnersets
- ephemeralrunners
- ephemeralrunners/finalizers
- ephemeralrunnersets
verbs:
@@ -88,6 +98,19 @@ rules:
- get
- patch
- update
- apiGroups:
- actions.github.com
resources:
- ephemeralrunners
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
- apiGroups:
- actions.github.com
resources:
@@ -167,5 +190,5 @@ rules:
- delete
- get
- list
- update
- patch
- watch