in internal/resource/update_with_ro_utils.go [50:66]
func UpdateROStatefulSet(scheme *runtime.Scheme, instance *TeamCity,
mainStatefulSet *v1.StatefulSet, roStatefulSet *v1.StatefulSet) error {
node := BuildRoNode(instance, GetROStatefulSetNamespacedName(instance).Name)
labels := metadata.GetStatefulSetLabels(instance.Name, node.Name, RoNodeRole, instance.Labels)
roStatefulSet.Spec.Selector = &metav1.LabelSelector{
MatchLabels: labels,
}
roStatefulSet.Spec.Template.Spec = mainStatefulSet.Spec.Template.Spec
roStatefulSet.Spec.Template.Labels = labels
envVars := BuildEnvVariablesFromGlobalAndNodeSpecificSettings(instance, node)
roStatefulSet.Spec.Template.Spec.Containers[0].Env = envVars
if err := controllerutil.SetControllerReference(instance, roStatefulSet, scheme); err != nil {
return fmt.Errorf("failed setting controller reference: %w", err)
}
return nil
}