@@ -19,6 +19,7 @@ package controllers
1919import (
2020 "context"
2121 "fmt"
22+ "path"
2223
2324 appsv1 "k8s.io/api/apps/v1"
2425 corev1 "k8s.io/api/core/v1"
@@ -27,6 +28,7 @@ import (
2728 apierrs "k8s.io/apimachinery/pkg/api/errors"
2829 "k8s.io/apimachinery/pkg/runtime"
2930 "k8s.io/apimachinery/pkg/types"
31+
3032 ctrl "sigs.k8s.io/controller-runtime"
3133 "sigs.k8s.io/controller-runtime/pkg/client"
3234 "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
@@ -36,6 +38,7 @@ import (
3638
3739 "github.com/go-logr/logr"
3840 mf "github.com/manifestival/manifestival"
41+
3942 codeflarev1alpha1 "github.com/project-codeflare/codeflare-operator/api/v1alpha1"
4043 "github.com/project-codeflare/codeflare-operator/controllers/config"
4144 "github.com/project-codeflare/codeflare-operator/controllers/util"
@@ -55,8 +58,7 @@ var instascaleClusterScopedTemplates = []string{
5558}
5659
5760func (r * InstaScaleReconciler ) Apply (owner mf.Owner , params * InstaScaleParams , template string , fns ... mf.Transformer ) error {
58-
59- tmplManifest , err := config .Manifest (r .Client , r .TemplatesPath + template , params , template , r .Log )
61+ tmplManifest , err := config .Manifest (r .Client , path .Join (r .TemplatesPath , template ), params , template , r .Log )
6062 if err != nil {
6163 return fmt .Errorf ("error loading template yaml: %w" , err )
6264 }
@@ -77,17 +79,17 @@ func (r *InstaScaleReconciler) Apply(owner mf.Owner, params *InstaScaleParams, t
7779
7880// TODO: Review node permissions, instascale should only require read
7981
80- //+kubebuilder:rbac:groups=codeflare.codeflare.dev,resources=instascales,verbs=get;list;watch;create;update;patch;delete
81- //+kubebuilder:rbac:groups=codeflare.codeflare.dev,resources=instascales/status,verbs=get;update;patch
82- //+kubebuilder:rbac:groups=codeflare.codeflare.dev,resources=instascales/finalizers,verbs=update
83- //+kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete
84- //+kubebuilder:rbac:groups=*,resources=deployments;services,verbs=get;list;watch;create;update;patch;delete
85- //+kubebuilder:rbac:groups=core,resources=secrets;configmaps;nodes;services;serviceaccounts;persistentvolumes;persistentvolumeclaims,verbs=get;list;watch;create;update;patch;delete
86- //+kubebuilder:rbac:groups=core,resources=persistentvolumes;persistentvolumeclaims,verbs=*
87- //+kubebuilder:rbac:groups=rbac.authorization.k8s.io,resources=roles;rolebindings,verbs=get;list;watch;create;update;patch;delete
88- //+kubebuilder:rbac:groups=rbac.authorization.k8s.io,resources=clusterroles;clusterrolebindings,verbs=get;list;watch;create;update;delete
89- //+kubebuilder:rbac:groups=machine.openshift.io,resources=*,verbs=get;list;watch;create;update;patch;delete
90- //+kubebuilder:rbac:groups=mcad.ibm.com,resources=appwrappers;queuejobs;schedulingspecs,verbs=get;list;watch;create;update;patch;delete
82+ // +kubebuilder:rbac:groups=codeflare.codeflare.dev,resources=instascales,verbs=get;list;watch;create;update;patch;delete
83+ // +kubebuilder:rbac:groups=codeflare.codeflare.dev,resources=instascales/status,verbs=get;update;patch
84+ // +kubebuilder:rbac:groups=codeflare.codeflare.dev,resources=instascales/finalizers,verbs=update
85+ // +kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete
86+ // +kubebuilder:rbac:groups=*,resources=deployments;services,verbs=get;list;watch;create;update;patch;delete
87+ // +kubebuilder:rbac:groups=core,resources=secrets;configmaps;nodes;services;serviceaccounts;persistentvolumes;persistentvolumeclaims,verbs=get;list;watch;create;update;patch;delete
88+ // +kubebuilder:rbac:groups=core,resources=persistentvolumes;persistentvolumeclaims,verbs=*
89+ // +kubebuilder:rbac:groups=rbac.authorization.k8s.io,resources=roles;rolebindings,verbs=get;list;watch;create;update;patch;delete
90+ // +kubebuilder:rbac:groups=rbac.authorization.k8s.io,resources=clusterroles;clusterrolebindings,verbs=get;list;watch;create;update;delete
91+ // +kubebuilder:rbac:groups=machine.openshift.io,resources=*,verbs=get;list;watch;create;update;patch;delete
92+ // +kubebuilder:rbac:groups=mcad.ibm.com,resources=appwrappers;queuejobs;schedulingspecs,verbs=get;list;watch;create;update;patch;delete
9193
9294// Reconcile is part of the main kubernetes reconciliation loop which aims to
9395// move the current state of the cluster closer to the desired state.
@@ -124,11 +126,7 @@ func (r *InstaScaleReconciler) Reconcile(ctx context.Context, req ctrl.Request)
124126 instascaleCustomResource .APIVersion , instascaleCustomResource .Kind = gvk .Version , gvk .Kind
125127 }
126128
127- err = params .ExtractParams (instascaleCustomResource )
128- if err != nil {
129- log .Error (err , "Unable to parse InstaScale custom resource" )
130- return ctrl.Result {}, err
131- }
129+ params .ExtractParams (instascaleCustomResource )
132130
133131 if instascaleCustomResource .ObjectMeta .DeletionTimestamp .IsZero () {
134132 if ! controllerutil .ContainsFinalizer (instascaleCustomResource , finalizerName ) {
@@ -152,7 +150,6 @@ func (r *InstaScaleReconciler) Reconcile(ctx context.Context, req ctrl.Request)
152150 return ctrl.Result {}, nil
153151 }
154152
155- log .V (1 ).Info ("ReconcileInstaScale called." )
156153 err = r .ReconcileInstaScale (instascaleCustomResource , params )
157154 if err != nil {
158155 return ctrl.Result {}, err
@@ -162,7 +159,8 @@ func (r *InstaScaleReconciler) Reconcile(ctx context.Context, req ctrl.Request)
162159 if err != nil {
163160 return ctrl.Result {}, err
164161 }
165- err = r .Client .Status ().Update (context .Background (), instascaleCustomResource )
162+
163+ err = r .Client .Status ().Update (ctx , instascaleCustomResource )
166164 if err != nil {
167165 return ctrl.Result {}, err
168166 }
0 commit comments