in internal/controller/generic_controller.go [231:276]
func sortPullSecrets(serviceAccount *corev1.ServiceAccount) {
slices.SortFunc(serviceAccount.ImagePullSecrets, func(a, b corev1.LocalObjectReference) int {
var aType, bType pullSecretType
for value, into := range map[string]*pullSecretType{
a.Name: &aType,
b.Name: &bType,
} {
if isLegacySecretName(value) {
*into = pullSecretTypeLegacy
}
if isSecretName(value) {
*into = pullSecretTypeCurrent
}
}
switch aType {
case pullSecretTypeUnrelated:
switch bType {
case pullSecretTypeUnrelated:
return strings.Compare(a.Name, b.Name)
case pullSecretTypeLegacy:
return -1
case pullSecretTypeCurrent:
return -1
}
case pullSecretTypeLegacy:
switch bType {
case pullSecretTypeUnrelated:
return 1
case pullSecretTypeLegacy:
return strings.Compare(a.Name, b.Name)
case pullSecretTypeCurrent:
return 1
}
case pullSecretTypeCurrent:
switch bType {
case pullSecretTypeUnrelated:
return 1
case pullSecretTypeLegacy:
return -1
case pullSecretTypeCurrent:
return strings.Compare(a.Name, b.Name)
}
}
return strings.Compare(a.Name, b.Name)
})
}