Don't compare runner connetion token at restart need check (#227)
Fixes #143
This commit is contained in:
parent
85c29a95f5
commit
f710a54110
|
|
@ -198,14 +198,20 @@ func (r *RunnerReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
|
|||
return ctrl.Result{}, nil
|
||||
}
|
||||
|
||||
if !runnerBusy && (!reflect.DeepEqual(pod.Spec.Containers[0].Env, newPod.Spec.Containers[0].Env) || pod.Spec.Containers[0].Image != newPod.Spec.Containers[0].Image) {
|
||||
// Filter out token that is changed hourly.
|
||||
currentEnvValues := filterEnvVars(pod.Spec.Containers[0].Env, "RUNNER_TOKEN")
|
||||
newEnvValues := filterEnvVars(newPod.Spec.Containers[0].Env, "RUNNER_TOKEN")
|
||||
|
||||
if !runnerBusy && (!reflect.DeepEqual(currentEnvValues, newEnvValues) || pod.Spec.Containers[0].Image != newPod.Spec.Containers[0].Image) {
|
||||
restart = true
|
||||
}
|
||||
|
||||
// Don't do anything if there's no need to restart the runner
|
||||
if !restart {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
|
||||
// Delete current pod if recreation is needed
|
||||
if err := r.Delete(ctx, &pod); err != nil {
|
||||
log.Error(err, "Failed to delete pod resource")
|
||||
return ctrl.Result{}, err
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
package controllers
|
||||
|
||||
import (
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
)
|
||||
|
||||
func filterEnvVars(envVars []corev1.EnvVar, filter string) (filtered []corev1.EnvVar) {
|
||||
for _, envVar := range envVars {
|
||||
if envVar.Name != filter {
|
||||
filtered = append(filtered, envVar)
|
||||
}
|
||||
}
|
||||
return filtered
|
||||
}
|
||||
Loading…
Reference in New Issue