Skip to content

Commit 01f2ed0

Browse files
Merge pull request #1607 from njhale/adoption
feat(operator): automatically adopt generated resources
2 parents cf8d964 + 162cbc0 commit 01f2ed0

37 files changed

+1776
-266
lines changed

cmd/olm/manager.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func Manager(ctx context.Context) (ctrl.Manager, error) {
3838
if feature.Gate.Enabled(feature.OperatorLifecycleManagerV2) {
3939
setupLog.Info(fmt.Sprintf("feature enabled: %v", feature.OperatorLifecycleManagerV2))
4040

41-
reconciler, err := operators.NewOperatorReconciler(
41+
operatorReconciler, err := operators.NewOperatorReconciler(
4242
mgr.GetClient(),
4343
ctrl.Log.WithName("controllers").WithName("operator"),
4444
mgr.GetScheme(),
@@ -65,9 +65,23 @@ func Manager(ctx context.Context) (ctrl.Manager, error) {
6565
}
6666
setupLog.Info("v2alpha1 CRDs installed")
6767

68-
if err = reconciler.SetupWithManager(mgr); err != nil {
68+
if err = operatorReconciler.SetupWithManager(mgr); err != nil {
6969
return nil, err
7070
}
71+
72+
adoptionReconciler, err := operators.NewAdoptionReconciler(
73+
mgr.GetClient(),
74+
ctrl.Log.WithName("controllers").WithName("adoption"),
75+
mgr.GetScheme(),
76+
)
77+
if err != nil {
78+
return nil, err
79+
}
80+
81+
if err = adoptionReconciler.SetupWithManager(mgr); err != nil {
82+
return nil, err
83+
}
84+
7185
}
7286

7387
setupLog.Info("manager configured")

pkg/controller/install/certresources.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,21 +215,21 @@ func (i *StrategyDeploymentInstaller) installCertRequirementsForDeployment(deplo
215215
}
216216
service.SetName(ServiceName(deploymentName))
217217
service.SetNamespace(i.owner.GetNamespace())
218-
ownerutil.AddNonBlockingOwner(service, i.owner)
219218

220219
existingService, err := i.strategyClient.GetOpLister().CoreV1().ServiceLister().Services(i.owner.GetNamespace()).Get(service.GetName())
221220
if err == nil {
222221
if !ownerutil.Adoptable(i.owner, existingService.GetOwnerReferences()) {
223222
return nil, fmt.Errorf("service %s not safe to replace: extraneous ownerreferences found", service.GetName())
224223
}
225-
service.SetOwnerReferences(append(service.GetOwnerReferences(), existingService.GetOwnerReferences()...))
224+
service.SetOwnerReferences(existingService.GetOwnerReferences())
226225

227226
// Delete the Service to replace
228227
deleteErr := i.strategyClient.GetOpClient().DeleteService(service.GetNamespace(), service.GetName(), &metav1.DeleteOptions{})
229228
if err != nil && !k8serrors.IsNotFound(deleteErr) {
230229
return nil, fmt.Errorf("could not delete existing service %s", service.GetName())
231230
}
232231
}
232+
ownerutil.AddNonBlockingOwner(service, i.owner)
233233

234234
// Attempt to create the Service
235235
_, err = i.strategyClient.GetOpClient().CreateService(service)

0 commit comments

Comments
 (0)