Skip to content

Commit 49e2642

Browse files
anishasthanaopenshift-merge-robot
authored andcommitted
Deploy namespaced rolebinding
Signed-off-by: Anish Asthana <anishasthana1@gmail.com>
1 parent 96011a4 commit 49e2642

File tree

2 files changed

+62
-3
lines changed

2 files changed

+62
-3
lines changed

controllers/mcad_controller.go

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,40 @@ func (r *MCADReconciler) Apply(owner mf.Owner, params *MCADParams, template stri
6767
return nil
6868
}
6969

70+
func (r *MCADReconciler) ApplyWithoutOwner(params *MCADParams, template string, fns ...mf.Transformer) error {
71+
tmplManifest, err := config.Manifest(r.Client, r.TemplatesPath+template, params, template, r.Log)
72+
if err != nil {
73+
return fmt.Errorf("error loading template yaml: %w", err)
74+
}
75+
76+
tmplManifest, err = tmplManifest.Transform(fns...)
77+
if err != nil {
78+
return err
79+
}
80+
81+
if err = tmplManifest.Apply(); err != nil {
82+
return err
83+
}
84+
return nil
85+
}
86+
87+
func (r *MCADReconciler) DeleteResource(params *MCADParams, template string, fns ...mf.Transformer) error {
88+
tmplManifest, err := config.Manifest(r.Client, r.TemplatesPath+template, params, template, r.Log)
89+
if err != nil {
90+
return fmt.Errorf("error loading template yaml: %w", err)
91+
}
92+
93+
tmplManifest, err = tmplManifest.Transform(fns...)
94+
if err != nil {
95+
return err
96+
}
97+
98+
if err = tmplManifest.Delete(); err != nil {
99+
return err
100+
}
101+
return nil
102+
}
103+
70104
//+kubebuilder:rbac:groups=codeflare.codeflare.dev,resources=mcads,verbs=get;list;watch;create;update;patch;delete
71105
//+kubebuilder:rbac:groups=codeflare.codeflare.dev,resources=mcads/status,verbs=get;update;patch
72106
//+kubebuilder:rbac:groups=codeflare.codeflare.dev,resources=mcads/finalizers,verbs=update
@@ -118,7 +152,7 @@ func (r *MCADReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.
118152
}
119153
} else {
120154
if controllerutil.ContainsFinalizer(mcadCustomResource, finalizerName) {
121-
if err := r.cleanUpClusterResources(ctx, req, mcadCustomResource, params); err != nil {
155+
if err := r.cleanUpOwnerLessResources(ctx, req, mcadCustomResource, params); err != nil {
122156
return ctrl.Result{}, err
123157
}
124158
controllerutil.RemoveFinalizer(mcadCustomResource, finalizerName)
@@ -152,7 +186,10 @@ func (r *MCADReconciler) SetupWithManager(mgr ctrl.Manager) error {
152186
}
153187

154188
// cleanUpClusterResources will be responsible for deleting objects that do not have owner references set
155-
func (r *MCADReconciler) cleanUpClusterResources(ctx context.Context, req ctrl.Request, mcad *codeflarev1alpha1.MCAD, params *MCADParams) error {
156-
189+
func (r *MCADReconciler) cleanUpOwnerLessResources(ctx context.Context, req ctrl.Request, mcad *codeflarev1alpha1.MCAD, params *MCADParams) error {
190+
err := r.deleteOwnerLessObjects(params)
191+
if err != nil {
192+
return err
193+
}
157194
return nil
158195
}

controllers/multi_cluster_app_dispatcher.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ var multiClusterAppDispatcherTemplates = []string{
1111
"mcad/service.yaml.tmpl",
1212
"mcad/serviceaccount.yaml.tmpl",
1313
}
14+
var ownerLessmultiClusterAppDispatcherTemplates = []string{
15+
"mcad/rolebinding_custom-metrics-auth-reader.yaml.tmpl",
16+
}
1417

1518
func (r *MCADReconciler) ReconcileMCAD(ctx context.Context, mcad *codeflarev1alpha1.MCAD, req ctrl.Request, params *MCADParams) error {
1619

@@ -22,6 +25,25 @@ func (r *MCADReconciler) ReconcileMCAD(ctx context.Context, mcad *codeflarev1alp
2225
}
2326
}
2427

28+
for _, template := range ownerLessmultiClusterAppDispatcherTemplates {
29+
r.Log.Info("Applying " + template)
30+
err := r.ApplyWithoutOwner(params, template)
31+
if err != nil {
32+
return err
33+
}
34+
}
35+
2536
r.Log.Info("Finished applying MultiClusterAppDispatcher Resources")
2637
return nil
2738
}
39+
40+
func (r *MCADReconciler) deleteOwnerLessObjects(params *MCADParams) error {
41+
for _, template := range ownerLessmultiClusterAppDispatcherTemplates {
42+
r.Log.Info("Deleting Ownerless object: " + template)
43+
err := r.DeleteResource(params, template)
44+
if err != nil {
45+
return err
46+
}
47+
}
48+
return nil
49+
}

0 commit comments

Comments
 (0)