func()

in pkg/controller/jenkinsagent/controller.go [104:138]


func (r *Reconcile) tryToReconcile(ctx context.Context, instance *jenkinsApi.JenkinsAgent) error {
	var slavesCm v1.ConfigMap

	if err := r.client.Get(
		ctx,
		types.NamespacedName{
			Namespace: instance.Namespace,
			Name:      jenkins.SlavesTemplateName,
		},
		&slavesCm,
	); err != nil {
		return fmt.Errorf("failed to get slaves config map: %w", err)
	}

	slavesCm.Data[instance.Spec.SalvesKey()] = instance.Spec.Template

	if err := r.client.Update(ctx, &slavesCm); err != nil {
		return fmt.Errorf("failed to update slaves config map: %w", err)
	}

	updateNeeded, err := helper.TryToDelete(instance, finalizerName, makeDeletionFunc(ctx, r.client, instance))
	if err != nil {
		return fmt.Errorf("failed to delete jenkins agent: %w", err)
	}

	if !updateNeeded {
		return nil
	}

	if err := r.client.Update(ctx, instance); err != nil {
		return fmt.Errorf("failed to update instance: %w", err)
	}

	return nil
}