mirror of
https://github.com/actions-runner-controller/actions-runner-controller.git
synced 2026-09-30 19:03:11 +02:00
66 lines
1.7 KiB
Go
66 lines
1.7 KiB
Go
package actionsgithubcom
|
|
|
|
import (
|
|
"github.com/actions/actions-runner-controller/apis/actions.github.com/v1alpha1"
|
|
"github.com/google/go-cmp/cmp"
|
|
corev1 "k8s.io/api/core/v1"
|
|
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
)
|
|
|
|
var (
|
|
_ = ephemeralRunnerSetActionableSpecChanged
|
|
_ = nextActionableRevision
|
|
_ = listenerPodCanonicalEqual
|
|
)
|
|
|
|
func ephemeralRunnerSetActionableSpecChanged(current, desired *v1alpha1.EphemeralRunnerSet) bool {
|
|
if current == nil || desired == nil {
|
|
return current != desired
|
|
}
|
|
|
|
return !cmp.Equal(current.Spec.EphemeralRunnerSpec, desired.Spec.EphemeralRunnerSpec)
|
|
}
|
|
|
|
func nextActionableRevision(current *v1alpha1.EphemeralRunnerSet) int64 {
|
|
if current == nil {
|
|
return 1
|
|
}
|
|
|
|
if current.Spec.ActionableRevision > current.Status.AppliedActionableRevision {
|
|
return current.Spec.ActionableRevision + 1
|
|
}
|
|
|
|
return current.Status.AppliedActionableRevision + 1
|
|
}
|
|
|
|
func listenerPodCanonicalForComparison(pod *corev1.Pod) *corev1.Pod {
|
|
if pod == nil {
|
|
return nil
|
|
}
|
|
|
|
canonical := pod.DeepCopy()
|
|
canonical.UID = ""
|
|
canonical.ResourceVersion = ""
|
|
canonical.ManagedFields = nil
|
|
canonical.CreationTimestamp = metav1.Time{}
|
|
canonical.DeletionTimestamp = nil
|
|
canonical.Finalizers = nil
|
|
canonical.Generation = 0
|
|
canonical.Status = corev1.PodStatus{}
|
|
|
|
return canonical
|
|
}
|
|
|
|
func listenerPodCanonicalEqual(current, desired *corev1.Pod) bool {
|
|
return cmp.Equal(listenerPodCanonicalForComparison(current), listenerPodCanonicalForComparison(desired))
|
|
}
|
|
|
|
func listenerPodSpecRequiresRecreation(current, desired *corev1.Pod) bool {
|
|
if current == nil || desired == nil {
|
|
return current != desired
|
|
}
|
|
|
|
return !apiequality.Semantic.DeepDerivative(desired.Spec, current.Spec)
|
|
}
|