in pkg/controller/jenkinsserviceaccount/jenkinsserviceaccount_controller.go [207:237]
func (r *ReconcileJenkinsServiceAccount) getOrCreateInstanceOwner(ctx context.Context, jenkinsServiceAccount *jenkinsApi.JenkinsServiceAccount) (*jenkinsApi.Jenkins, error) {
log := r.log.WithValues(logNamespaceKey, jenkinsServiceAccount.Namespace, logNameKey, jenkinsServiceAccount.Name)
owner := r.getOwnerByCr(jenkinsServiceAccount)
if owner != nil {
return r.getInstanceByName(ctx, jenkinsServiceAccount.Namespace, owner.Name)
}
if jenkinsServiceAccount.Spec.OwnerName != "" {
return r.getInstanceByOwnerFromSpec(ctx, jenkinsServiceAccount)
}
jenkinsInstance, err := r.getJenkinsInstance(ctx, jenkinsServiceAccount.Namespace)
if err != nil {
return nil, err
}
if jenkinsInstance == nil {
return nil, nil
}
jenkinsServiceAccount = r.setOwnerReference(jenkinsInstance, jenkinsServiceAccount)
log.Info(fmt.Sprintf("jenkinsServiceAccount.GetOwnerReferences() - %v", jenkinsServiceAccount.GetOwnerReferences()))
if err := r.client.Update(ctx, jenkinsServiceAccount); err != nil {
return nil, fmt.Errorf("failed to set owner reference for %v: %w", jenkinsServiceAccount.Name, err)
}
return jenkinsInstance, nil
}