@@ -29,7 +29,6 @@ import (
29
29
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
30
30
"k8s.io/apimachinery/pkg/runtime"
31
31
"k8s.io/client-go/kubernetes"
32
- "k8s.io/klog"
33
32
34
33
"k8s.io/apimachinery/pkg/labels"
35
34
ctrl "sigs.k8s.io/controller-runtime"
@@ -81,7 +80,6 @@ const (
81
80
// For more details, check Reconcile and its Result here:
82
81
// - https://pkg.go.dev/sigs.k8s.io/[email protected] /pkg/reconcile
83
82
func (r * AppWrapperReconciler ) Reconcile (ctx context.Context , req ctrl.Request ) (ctrl.Result , error ) {
84
-
85
83
_ = log .FromContext (ctx )
86
84
// todo: Move the getOCMClusterID call out of reconcile loop.
87
85
// Only reason we are calling it here is that the client is not able to make
@@ -122,7 +120,7 @@ func (r *AppWrapperReconciler) Reconcile(ctx context.Context, req ctrl.Request)
122
120
return ctrl.Result {}, nil
123
121
}
124
122
125
- demandPerInstanceType := r .discoverInstanceTypes (& appwrapper )
123
+ demandPerInstanceType := r .discoverInstanceTypes (ctx , & appwrapper )
126
124
if ocmSecretRef := r .Config .OCMSecretRef ; ocmSecretRef != nil {
127
125
return r .scaleMachinePool (ctx , & appwrapper , demandPerInstanceType )
128
126
} else {
@@ -137,6 +135,7 @@ func (r *AppWrapperReconciler) Reconcile(ctx context.Context, req ctrl.Request)
137
135
}
138
136
139
137
func (r * AppWrapperReconciler ) finalizeScalingDownMachines (ctx context.Context , appwrapper * arbv1.AppWrapper ) error {
138
+ logger := ctrl .LoggerFrom (ctx )
140
139
if appwrapper .Status .State == arbv1 .AppWrapperStateCompleted {
141
140
deletionMessage = "completed"
142
141
} else {
@@ -147,24 +146,41 @@ func (r *AppWrapperReconciler) finalizeScalingDownMachines(ctx context.Context,
147
146
case "reuse" :
148
147
matchedAw := r .findExactMatch (ctx , appwrapper )
149
148
if matchedAw != nil {
150
- klog .Infof ("Appwrapper %s %s, swapping machines to %s" , appwrapper .Name , deletionMessage , matchedAw .Name )
149
+ logger .Info (
150
+ "AppWrapper deleted transferring machines" ,
151
+ "oldAppWrapper" , appwrapper ,
152
+ "deletionMessage" , deletionMessage ,
153
+ "newAppWrapper" , matchedAw ,
154
+ )
151
155
if err := r .swapNodeLabels (ctx , appwrapper , matchedAw ); err != nil {
152
156
return err
153
157
}
154
158
} else {
155
- klog .Infof ("Appwrapper %s %s, scaling down machines" , appwrapper .Name , deletionMessage )
159
+ logger .Info (
160
+ "Scaling down machines associated with deleted AppWrapper" ,
161
+ "appWrapper" , appwrapper ,
162
+ "deletionMessage" , deletionMessage ,
163
+ )
156
164
if err := r .annotateToDeleteMachine (ctx , appwrapper ); err != nil {
157
165
return err
158
166
}
159
167
}
160
168
case "duplicate" :
161
- klog .Infof ("Appwrapper %s scale-down machineset: %s " , deletionMessage , appwrapper .Name )
169
+ logger .Info (
170
+ "AppWrapper deleted, scaling down machineset" ,
171
+ "appWrapper" , appwrapper ,
172
+ "deletionMessage" , deletionMessage ,
173
+ )
162
174
if err := r .deleteMachineSet (ctx , appwrapper ); err != nil {
163
175
return err
164
176
}
165
177
}
166
178
} else {
167
- klog .Infof ("Appwrapper %s scale-down machine pool: %s " , deletionMessage , appwrapper .Name )
179
+ logger .Info (
180
+ "AppWrapper deleted, scaling down machine pool" ,
181
+ "appWrapper" , appwrapper ,
182
+ "deletionMessage" , deletionMessage ,
183
+ )
168
184
if _ , err := r .deleteMachinePool (ctx , appwrapper ); err != nil {
169
185
return err
170
186
}
@@ -175,6 +191,7 @@ func (r *AppWrapperReconciler) finalizeScalingDownMachines(ctx context.Context,
175
191
// SetupWithManager sets up the controller with the Manager.
176
192
func (r * AppWrapperReconciler ) SetupWithManager (ctx context.Context , mgr ctrl.Manager ) error {
177
193
194
+ logger := ctrl .LoggerFrom (ctx )
178
195
restConfig := mgr .GetConfig ()
179
196
180
197
var err error
@@ -197,20 +214,21 @@ func (r *AppWrapperReconciler) SetupWithManager(ctx context.Context, mgr ctrl.Ma
197
214
if ok , err := r .machinePoolExists (); err != nil {
198
215
return err
199
216
} else if ok {
200
- klog .Info ("Using machine pools for cluster auto-scaling" )
217
+ logger .Info ("Using machine pools for cluster auto-scaling" )
201
218
}
202
219
}
203
220
204
221
return ctrl .NewControllerManagedBy (mgr ).
205
- For (& arbv1.AppWrapper {}).
222
+ For (& arbv1.AppWrapper {}).Named ( "instascale" ).
206
223
Complete (r )
207
224
}
208
225
209
226
func (r * AppWrapperReconciler ) getOCMSecret (ctx context.Context , secretRef * corev1.SecretReference ) (* corev1.Secret , error ) {
210
227
return r .kubeClient .CoreV1 ().Secrets (secretRef .Namespace ).Get (ctx , secretRef .Name , metav1.GetOptions {})
211
228
}
212
229
213
- func (r * AppWrapperReconciler ) discoverInstanceTypes (aw * arbv1.AppWrapper ) map [string ]int {
230
+ func (r * AppWrapperReconciler ) discoverInstanceTypes (ctx context.Context , aw * arbv1.AppWrapper ) map [string ]int {
231
+ logger := ctrl .LoggerFrom (ctx )
214
232
demandMapPerInstanceType := make (map [string ]int )
215
233
var instanceRequired []string
216
234
for k , v := range aw .Labels {
@@ -220,7 +238,10 @@ func (r *AppWrapperReconciler) discoverInstanceTypes(aw *arbv1.AppWrapper) map[s
220
238
}
221
239
222
240
if len (instanceRequired ) < 1 {
223
- klog .Infof ("Found AW %s that cannot be scaled due to missing orderedinstance label" , aw .ObjectMeta .Name )
241
+ logger .Info (
242
+ "AppWrapper cannot be scaled out due to missing orderedinstance label" ,
243
+ "appWrapper" , aw ,
244
+ )
224
245
return demandMapPerInstanceType
225
246
}
226
247
@@ -237,6 +258,7 @@ func (r *AppWrapperReconciler) discoverInstanceTypes(aw *arbv1.AppWrapper) map[s
237
258
}
238
259
239
260
func (r * AppWrapperReconciler ) findExactMatch (ctx context.Context , aw * arbv1.AppWrapper ) * arbv1.AppWrapper {
261
+ logger := ctrl .LoggerFrom (ctx )
240
262
var match * arbv1.AppWrapper = nil
241
263
appwrappers := arbv1.AppWrapperList {}
242
264
@@ -250,7 +272,7 @@ func (r *AppWrapperReconciler) findExactMatch(ctx context.Context, aw *arbv1.App
250
272
251
273
err := r .List (ctx , & appwrappers , listOptions )
252
274
if err != nil {
253
- klog .Error ("Cannot list queued appwrappers, associated machines will be deleted" )
275
+ logger .Error (err , "Cannot list queued appwrappers, associated machines will be deleted" )
254
276
return match
255
277
}
256
278
var existingAcquiredMachineTypes = ""
@@ -265,7 +287,11 @@ func (r *AppWrapperReconciler) findExactMatch(ctx context.Context, aw *arbv1.App
265
287
if eachAw .Status .State != arbv1 .AppWrapperStateEnqueued {
266
288
if eachAw .Labels ["orderedinstance" ] == existingAcquiredMachineTypes {
267
289
match = & eachAw
268
- klog .Infof ("Found exact match, %v appwrapper has acquired machinetypes %v" , eachAw .Name , existingAcquiredMachineTypes )
290
+ logger .Info (
291
+ "AppWrapper has successfully acquired requested machine types" ,
292
+ "appWrapper" , eachAw ,
293
+ "acquiredMachineTypes" , existingAcquiredMachineTypes ,
294
+ )
269
295
break
270
296
}
271
297
}
0 commit comments