This commit is contained in:
Nikola Jokic
2026-07-14 19:56:00 +02:00
parent 6d2a1cdcce
commit 3de12eca00
10 changed files with 4 additions and 60 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,13 +68,10 @@ spec:
type: object
type: object
ephemeralRunnerSetName:
description: Required
type: string
githubConfigSecret:
description: Required
type: string
githubConfigUrl:
description: Required
type: string
githubServerTLS:
properties:
@@ -109,10 +104,8 @@ spec:
type: object
type: object
image:
description: Required
type: string
imagePullSecrets:
description: Required
items:
description: |-
LocalObjectReference contains enough information to let you locate the
@@ -131,7 +124,6 @@ spec:
x-kubernetes-map-type: atomic
type: array
maxRunners:
description: Required
minimum: 0
type: integer
metrics:
@@ -183,7 +175,6 @@ spec:
type: object
type: object
minRunners:
description: Required
minimum: 0
type: integer
proxy:
@@ -236,7 +227,6 @@ spec:
type: object
type: object
runnerScaleSetId:
description: Required
type: integer
serviceAccountMetadata:
description: ResourceMeta carries metadata common to all internal
@@ -8290,10 +8290,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
@@ -8284,10 +8284,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
@@ -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,13 +68,10 @@ spec:
type: object
type: object
ephemeralRunnerSetName:
description: Required
type: string
githubConfigSecret:
description: Required
type: string
githubConfigUrl:
description: Required
type: string
githubServerTLS:
properties:
@@ -109,10 +104,8 @@ spec:
type: object
type: object
image:
description: Required
type: string
imagePullSecrets:
description: Required
items:
description: |-
LocalObjectReference contains enough information to let you locate the
@@ -131,7 +124,6 @@ spec:
x-kubernetes-map-type: atomic
type: array
maxRunners:
description: Required
minimum: 0
type: integer
metrics:
@@ -183,7 +175,6 @@ spec:
type: object
type: object
minRunners:
description: Required
minimum: 0
type: integer
proxy:
@@ -236,7 +227,6 @@ spec:
type: object
type: object
runnerScaleSetId:
description: Required
type: integer
serviceAccountMetadata:
description: ResourceMeta carries metadata common to all internal
@@ -8290,10 +8290,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
@@ -8284,10 +8284,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
@@ -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,13 +68,10 @@ spec:
type: object
type: object
ephemeralRunnerSetName:
description: Required
type: string
githubConfigSecret:
description: Required
type: string
githubConfigUrl:
description: Required
type: string
githubServerTLS:
properties:
@@ -109,10 +104,8 @@ spec:
type: object
type: object
image:
description: Required
type: string
imagePullSecrets:
description: Required
items:
description: |-
LocalObjectReference contains enough information to let you locate the
@@ -131,7 +124,6 @@ spec:
x-kubernetes-map-type: atomic
type: array
maxRunners:
description: Required
minimum: 0
type: integer
metrics:
@@ -183,7 +175,6 @@ spec:
type: object
type: object
minRunners:
description: Required
minimum: 0
type: integer
proxy:
@@ -236,7 +227,6 @@ spec:
type: object
type: object
runnerScaleSetId:
description: Required
type: integer
serviceAccountMetadata:
description: ResourceMeta carries metadata common to all internal
@@ -8290,10 +8290,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
@@ -8284,10 +8284,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
@@ -135,7 +135,7 @@ func (r *EphemeralRunnerSetReconciler) Reconcile(ctx context.Context, req ctrl.R
// If hash spec has changed, delete idle ephemeral runners
// in order to apply the change to the runners that did not yet receive a job.
ephemeralRunnerIntegrityHash := ephemeralRunnerSetIntegrityHash(&ephemeralRunnerSet)
if ephemeralRunnerSet.Annotations[AnnotationKeyIntegrityHash] != ephemeralRunnerIntegrityHash {
if ephemeralRunnerSet.Annotations[annotationKeyIntegrityHash] != ephemeralRunnerIntegrityHash {
log.Info("EphemeralRunnerSpec has changed, deleting idle ephemeral runners to apply the new spec")
if _, err := r.cleanUpEphemeralRunners(ctx, &ephemeralRunnerSet, log); err != nil {
log.Error(err, "Failed to clean up EphemeralRunners")
@@ -152,7 +152,7 @@ func (r *EphemeralRunnerSetReconciler) Reconcile(ctx context.Context, req ctrl.R
if ephemeralRunnerSet.Annotations == nil {
ephemeralRunnerSet.Annotations = make(map[string]string)
}
ephemeralRunnerSet.Annotations[AnnotationKeyIntegrityHash] = ephemeralRunnerIntegrityHash
ephemeralRunnerSet.Annotations[annotationKeyIntegrityHash] = ephemeralRunnerIntegrityHash
if err := r.Patch(ctx, &ephemeralRunnerSet, client.MergeFrom(original)); err != nil {
log.Error(err, "Failed to update ephemeral runner set with new spec hash")
return ctrl.Result{}, err
@@ -254,9 +254,7 @@ func (r *EphemeralRunnerSetReconciler) updateStatus(ctx context.Context, ephemer
default:
phase = ephemeralRunnerSet.Status.Phase
}
desiredStatus := v1alpha1.EphemeralRunnerSetStatus{
Phase: phase,
}
desiredStatus := v1alpha1.EphemeralRunnerSetStatus{Phase: phase}
// Update the status if needed.
if ephemeralRunnerSet.Status != desiredStatus {
@@ -468,7 +466,7 @@ func (r *EphemeralRunnerSetReconciler) reconcileEphemeralRunnerSetProxySecret(ct
dataModified := !maps.EqualFunc(proxySecret.Data, desiredRunnerSetProxy.Data, bytes.Equal)
desiredLabels := r.filterAndMergeLabels(proxySecret.Labels, desiredRunnerSetProxy.Labels)
labelsModified := !maps.Equal(proxySecret.Labels, desiredLabels)
desiredAnnotations := r.filterAndMergeAnnotations(proxySecret.Annotations, desiredRunnerSetProxy.Annotations)
desiredAnnotations := r.mergeAnnotations(proxySecret.Annotations, desiredRunnerSetProxy.Annotations)
annotationsModified := !maps.Equal(proxySecret.Annotations, desiredAnnotations)
if dataModified || labelsModified || annotationsModified {
updatedProxySecret := proxySecret.DeepCopy()