in pkg/controller/shared_library/controller.go [117:157]
func (r *Reconcile) tryToReconcile(ctx context.Context, instance *jenkinsApi.JenkinsSharedLibrary) error {
if instance.Status.Value == helper.StatusSuccess && instance.ObjectMeta.DeletionTimestamp.IsZero() {
return nil
}
rootJenkins, err := plutil.GetJenkinsInstanceOwner(r.client, instance.Name, instance.Namespace,
instance.Spec.OwnerName, instance.GetOwnerReferences())
if err != nil {
return fmt.Errorf("failed to get owner for jenkins folder %s: %w", instance.Name, err)
}
if rootJenkins.Status.Status != jenkins.StatusReady {
return errors.New("root jenkins is not ready")
}
sharedLibraries, err := r.prepareSharedLibraries(ctx, instance, rootJenkins.Spec.SharedLibraries)
if err != nil {
return fmt.Errorf("failed to prepare shared libraries: %w", err)
}
if err = r.createLibrariesScript(rootJenkins, sharedLibraries); err != nil {
return fmt.Errorf("failed to create libraries script: %w", err)
}
needToUpdate, err := helper.TryToDelete(instance, finalizer, func() error {
return nil
})
if err != nil {
return fmt.Errorf("failed to delete resource: %w", err)
}
if !needToUpdate {
return nil
}
if err := r.client.Update(ctx, instance); err != nil {
return fmt.Errorf("failed to update instance: %w", err)
}
return nil
}