1802_scaling: - add scale subresource kubebuilder directives for runnerdeployment and runnersets

This commit is contained in:
Stewart Thomson 2024-02-14 13:51:19 -05:00
parent 9fba37540a
commit ebb857b325
No known key found for this signature in database
GPG Key ID: 0D1A3FEDD634132D
8 changed files with 52 additions and 0 deletions

View File

@ -72,11 +72,16 @@ type RunnerDeploymentStatus struct {
// Replicas is the total number of replicas
// +optional
Replicas *int `json:"replicas"`
// Selector is the string form of the pod selector
// +optional
Selector string `json:"selector"`
}
// +kubebuilder:object:root=true
// +kubebuilder:resource:shortName=rdeploy
// +kubebuilder:subresource:status
// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector
// +kubebuilder:printcolumn:JSONPath=".spec.template.spec.enterprise",name=Enterprise,type=string
// +kubebuilder:printcolumn:JSONPath=".spec.template.spec.organization",name=Organization,type=string
// +kubebuilder:printcolumn:JSONPath=".spec.template.spec.repository",name=Repository,type=string

View File

@ -69,10 +69,15 @@ type RunnerSetStatus struct {
// Replicas is the total number of replicas
// +optional
Replicas *int `json:"replicas"`
// Selector is the string form of the pod selector
// +optional
Selector string `json:"selector"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector
// +kubebuilder:printcolumn:JSONPath=".spec.replicas",name=Desired,type=number
// +kubebuilder:printcolumn:JSONPath=".status.replicas",name=Current,type=number
// +kubebuilder:printcolumn:JSONPath=".status.updatedReplicas",name=Up-To-Date,type=number

View File

@ -5526,6 +5526,9 @@ spec:
replicas:
description: Replicas is the total number of replicas
type: integer
selector:
description: Selector is the string form of the pod selector
type: string
updatedReplicas:
description: ReadyReplicas is the total number of available runners which have been successfully registered to GitHub and still running. This corresponds to status.replicas of the runner replica set that has the desired template hash.
type: integer
@ -5534,5 +5537,9 @@ spec:
served: true
storage: true
subresources:
scale:
labelSelectorPath: .status.selector
specReplicasPath: .spec.replicas
statusReplicasPath: .status.replicas
status: {}
preserveUnknownFields: false

View File

@ -4785,6 +4785,9 @@ spec:
replicas:
description: Replicas is the total number of replicas
type: integer
selector:
description: Selector is the string form of the pod selector
type: string
updatedReplicas:
description: ReadyReplicas is the total number of available runners which have been successfully registered to GitHub and still running. This corresponds to status.replicas of the runner replica set that has the desired template hash.
type: integer
@ -4793,5 +4796,9 @@ spec:
served: true
storage: true
subresources:
scale:
labelSelectorPath: .status.selector
specReplicasPath: .spec.replicas
statusReplicasPath: .status.replicas
status: {}
preserveUnknownFields: false

View File

@ -5526,6 +5526,9 @@ spec:
replicas:
description: Replicas is the total number of replicas
type: integer
selector:
description: Selector is the string form of the pod selector
type: string
updatedReplicas:
description: ReadyReplicas is the total number of available runners which have been successfully registered to GitHub and still running. This corresponds to status.replicas of the runner replica set that has the desired template hash.
type: integer
@ -5534,5 +5537,9 @@ spec:
served: true
storage: true
subresources:
scale:
labelSelectorPath: .status.selector
specReplicasPath: .spec.replicas
statusReplicasPath: .status.replicas
status: {}
preserveUnknownFields: false

View File

@ -4785,6 +4785,9 @@ spec:
replicas:
description: Replicas is the total number of replicas
type: integer
selector:
description: Selector is the string form of the pod selector
type: string
updatedReplicas:
description: ReadyReplicas is the total number of available runners which have been successfully registered to GitHub and still running. This corresponds to status.replicas of the runner replica set that has the desired template hash.
type: integer
@ -4793,5 +4796,9 @@ spec:
served: true
storage: true
subresources:
scale:
labelSelectorPath: .status.selector
specReplicasPath: .spec.replicas
statusReplicasPath: .status.replicas
status: {}
preserveUnknownFields: false

View File

@ -313,6 +313,13 @@ func (r *RunnerDeploymentReconciler) Reconcile(ctx context.Context, req ctrl.Req
status.DesiredReplicas = &newDesiredReplicas
status.Replicas = &totalCurrentReplicas
status.UpdatedReplicas = &updatedReplicas
selector, err := metav1.LabelSelectorAsSelector(rd.Spec.Selector)
if err != nil {
log.Error(err, "Failed to retrieve pod labels")
return ctrl.Result{}, err
}
status.Selector = selector.String()
if !reflect.DeepEqual(rd.Status, status) {
updated := rd.DeepCopy()

View File

@ -157,6 +157,13 @@ func (r *RunnerSetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
status.DesiredReplicas = &newDesiredReplicas
status.Replicas = &statusReplicas
status.UpdatedReplicas = &updatedReplicas
selector, err := metav1.LabelSelectorAsSelector(runnerSet.Spec.Selector)
if err != nil {
log.Error(err, "Failed to retrieve pod labels")
return ctrl.Result{}, err
}
status.Selector = selector.String()
if !reflect.DeepEqual(runnerSet.Status, status) {
updated := runnerSet.DeepCopy()