Files
actions-runner-controller/controllers/actions.github.com/helpers.go
T

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)
}