Skip to content

Commit 0d82c53

Browse files
committed
update: logging to match current method
1 parent c7fbdaa commit 0d82c53

File tree

5 files changed

+90
-103
lines changed

5 files changed

+90
-103
lines changed

controllers/appWrapper_controller_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111

1212
func (r *AppWrapperReconciler) TestDiscoverInstanceTypes(t *testing.T) {
1313
g := gomega.NewGomegaWithT(t)
14-
ctx := context.Background()
1514
tests := []struct {
1615
name string
1716
input *arbv1.AppWrapper

controllers/appwrapper_controller.go

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package controllers
1818

1919
import (
2020
"context"
21-
"fmt"
2221
ocmsdk "github.com/openshift-online/ocm-sdk-go"
2322
"github.com/project-codeflare/instascale/pkg/config"
2423
arbv1 "github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/apis/controller/v1beta1"
@@ -157,14 +156,16 @@ func (r *AppWrapperReconciler) Reconcile(ctx context.Context, req ctrl.Request)
157156
}
158157

159158
func (r *AppWrapperReconciler) setMachineType(ctx context.Context) error {
159+
logger := ctrl.LoggerFrom(ctx)
160160
if r.MachineType != MachineTypeMachineSet && r.ocmClusterID == "" {
161-
if err := r.getOCMClusterID(); err != nil {
161+
if err := r.getOCMClusterID(ctx); err != nil {
162162
return err
163163
}
164164
}
165165
hypershiftEnabled, err := r.checkHypershiftEnabled(ctx)
166166
if err != nil {
167-
return fmt.Errorf("error checking if hypershift is enabled: %w", err)
167+
logger.Error(err, "error checking if hypershift is enabled")
168+
return err
168169
}
169170
if hypershiftEnabled {
170171
r.MachineType = MachineTypeNodePool
@@ -194,7 +195,9 @@ func (r *AppWrapperReconciler) finalizeScalingDownMachines(ctx context.Context,
194195
"newAppWrapper", matchedAw,
195196
)
196197
if err := r.swapNodeLabels(ctx, appwrapper, matchedAw); err != nil {
197-
klog.Errorf("Error swapping node labels for AppWrapper %s: %v", appwrapper.Name, err)
198+
logger.Error(err, "Error swapping node labels for AppWrapper",
199+
"appwrapper", appwrapper,
200+
)
198201
return err
199202
}
200203
} else {
@@ -204,7 +207,9 @@ func (r *AppWrapperReconciler) finalizeScalingDownMachines(ctx context.Context,
204207
"deletionMessage", deletionMessage,
205208
)
206209
if err := r.annotateToDeleteMachine(ctx, appwrapper); err != nil {
207-
klog.Errorf("Error annotating to delete machine for AppWrapper %s: %v", appwrapper.Name, err)
210+
logger.Error(err, "Error annotating to delete machine for AppWrapper",
211+
"appwrapper", appwrapper,
212+
)
208213
return err
209214
}
210215
}
@@ -215,29 +220,33 @@ func (r *AppWrapperReconciler) finalizeScalingDownMachines(ctx context.Context,
215220
"deletionMessage", deletionMessage,
216221
)
217222
if err := r.deleteMachineSet(ctx, appwrapper); err != nil {
218-
klog.Errorf("Error deleting MachineSet for AppWrapper %s: %v", appwrapper.Name, err)
223+
logger.Error(err, "Error deleting MachineSet for AppWrapper",
224+
"appwrapper", appwrapper)
219225
return err
220226
}
221227
}
222-
} else {
228+
229+
case MachineTypeNodePool:
223230
logger.Info(
224-
"AppWrapper deleted, scaling down machine pool",
231+
"AppWrapper deleted, scaling down nodepool",
225232
"appWrapper", appwrapper,
226233
"deletionMessage", deletionMessage,
227234
)
228-
}
229-
230-
case MachineTypeNodePool:
231-
klog.Infof("Appwrapper %s scale-down node pool: %s ", deletionMessage, appwrapper.Name)
232235
if _, err := r.deleteNodePool(ctx, appwrapper); err != nil {
233-
klog.Errorf("Error deleting NodePool for AppWrapper %s: %v", appwrapper.Name, err)
236+
logger.Error(err, "Error deleting NodePool for AppWrapper",
237+
"appwrapper", appwrapper)
234238
return err
235239
}
236240

237241
case MachineTypeMachinePool:
238-
klog.Infof("Appwrapper %s scale-down machine pool: %s ", deletionMessage, appwrapper.Name)
242+
logger.Info(
243+
"AppWrapper deleted, scaling down machine pool",
244+
"appWrapper", appwrapper,
245+
"deletionMessage", deletionMessage,
246+
)
239247
if _, err := r.deleteMachinePool(ctx, appwrapper); err != nil {
240-
klog.Errorf("Error deleting MachinePool for AppWrapper %s: %v", appwrapper.Name, err)
248+
logger.Error(err, "Error deleting MachinePool for AppWrapper",
249+
"appwrapper", appwrapper)
241250
return err
242251
}
243252
}
@@ -260,17 +269,16 @@ func (r *AppWrapperReconciler) SetupWithManager(ctx context.Context, mgr ctrl.Ma
260269
r.MachineType = MachineTypeMachineSet // default to MachineSet
261270
if ocmSecretRef := r.Config.OCMSecretRef; ocmSecretRef != nil {
262271
if ocmSecret, err := r.getOCMSecret(ctx, ocmSecretRef); err != nil {
263-
return fmt.Errorf("error reading OCM Secret from ref %q: %w", ocmSecretRef, err)
272+
logger.Error(err, "error reading OCM Secret from ref",
273+
"ref", ocmSecretRef)
274+
return err
264275
} else if token := ocmSecret.Data["token"]; len(token) > 0 {
265276
r.ocmToken = string(token)
266277
r.MachineType = MachineTypeMachinePool
267278
} else {
268-
return fmt.Errorf("token is missing from OCM Secret %q", ocmSecretRef)
269-
}
270-
if ok, err := r.machinePoolExists(); err != nil {
279+
logger.Error(err, "token is missing from OCM Secret",
280+
"ref", ocmSecretRef)
271281
return err
272-
} else if ok {
273-
logger.Info("Using machine pools for cluster auto-scaling")
274282
}
275283
}
276284

@@ -293,10 +301,12 @@ func (r *AppWrapperReconciler) discoverInstanceTypes(ctx context.Context, aw *ar
293301
"appWrapper", aw,
294302
)
295303
if _, exists := aw.Annotations["loggedNoInstances"]; !exists {
296-
klog.Infof("Found AW %s that cannot be scaled due to missing orderedinstance label", aw.Name)
304+
logger.Info("Found AW that cannot be scaled due to missing orderedinstance label",
305+
"appwrapper", aw)
297306
r.setAnnotation(aw, "loggedNoInstances", "true")
298307
if err := r.Update(ctx, aw); err != nil {
299-
klog.Errorf("Error adding annotation to AW %s: %v", aw.Name, err)
308+
logger.Error(err, "Error adding annotation to AW",
309+
"appwrapper", aw)
300310
}
301311
}
302312
return demandMapPerInstanceType

controllers/machinepools.go

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ package controllers
22

33
import (
44
"context"
5-
"fmt"
65
"strings"
76

87
cmv1 "github.com/openshift-online/ocm-sdk-go/clustersmgmt/v1"
98
arbv1 "github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/apis/controller/v1beta1"
109

11-
"k8s.io/apimachinery/pkg/types"
1210
ctrl "sigs.k8s.io/controller-runtime"
1311
)
1412

@@ -104,52 +102,3 @@ func (r *AppWrapperReconciler) deleteMachinePool(ctx context.Context, aw *arbv1.
104102
})
105103
return ctrl.Result{Requeue: false}, nil
106104
}
107-
108-
func (r *AppWrapperReconciler) machinePoolExists() (bool, error) {
109-
connection, err := r.createOCMConnection()
110-
if err != nil {
111-
return false, fmt.Errorf("error creating OCM connection: %w", err)
112-
}
113-
defer connection.Close()
114-
115-
machinePools := connection.ClustersMgmt().V1().Clusters().Cluster(r.ocmClusterID).MachinePools()
116-
return machinePools != nil, nil
117-
}
118-
119-
// getOCMClusterID determines the internal clusterID to be used for OCM API calls
120-
func (r *AppWrapperReconciler) getOCMClusterID(ctx context.Context) error {
121-
logger := ctrl.LoggerFrom(ctx)
122-
cv := &configv1.ClusterVersion{}
123-
err := r.Get(ctx, types.NamespacedName{Name: "version"}, cv)
124-
if err != nil {
125-
return fmt.Errorf("can't get clusterversion: %v", err)
126-
}
127-
128-
internalClusterID := string(cv.Spec.ClusterID)
129-
130-
connection, err := r.createOCMConnection()
131-
if err != nil {
132-
logger.Error(err, "Error creating OCM connection")
133-
}
134-
defer connection.Close()
135-
136-
// Get the client for the resource that manages the collection of clusters:
137-
collection := connection.ClustersMgmt().V1().Clusters()
138-
139-
response, err := collection.List().Search(fmt.Sprintf("external_id = '%s'", internalClusterID)).Size(1).Page(1).SendContext(ctx)
140-
if err != nil {
141-
logger.Error(err, "Error getting cluster id")
142-
}
143-
144-
response.Items().Each(func(cluster *cmv1.Cluster) bool {
145-
r.ocmClusterID = cluster.ID()
146-
logger.Info(
147-
"Cluster Info",
148-
"clusterId", cluster.ID(),
149-
"clusterName", cluster.Name(),
150-
"clusterState", cluster.State(),
151-
)
152-
return true
153-
})
154-
return nil
155-
}

controllers/nodepools.go

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,19 @@ package controllers
22

33
import (
44
"context"
5-
"fmt"
6-
"os"
75
"strings"
86

97
cmv1 "github.com/openshift-online/ocm-sdk-go/clustersmgmt/v1"
108
arbv1 "github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/apis/controller/v1beta1"
119

12-
"k8s.io/klog"
1310
ctrl "sigs.k8s.io/controller-runtime"
1411
)
1512

1613
func (r *AppWrapperReconciler) scaleNodePool(ctx context.Context, aw *arbv1.AppWrapper, demandPerInstanceType map[string]int) (ctrl.Result, error) {
14+
logger := ctrl.LoggerFrom(ctx)
1715
connection, err := r.createOCMConnection()
1816
if err != nil {
19-
fmt.Fprintf(os.Stderr, "Error creating OCM connection: %v", err)
17+
logger.Error(err, "Error creating OCM connection")
2018
return ctrl.Result{}, err
2119
}
2220
defer connection.Close()
@@ -32,7 +30,6 @@ func (r *AppWrapperReconciler) scaleNodePool(ctx context.Context, aw *arbv1.AppW
3230

3331
numberOfMachines := 0
3432
response.Items().Each(func(nodePool *cmv1.NodePool) bool {
35-
3633
if nodePool.AWSNodePool().InstanceType() == userRequestedInstanceType && hasAwLabel(nodePool.Labels(), aw) {
3734
numberOfMachines = nodePool.Replicas()
3835
return false
@@ -43,29 +40,43 @@ func (r *AppWrapperReconciler) scaleNodePool(ctx context.Context, aw *arbv1.AppW
4340
if numberOfMachines != replicas {
4441
m := make(map[string]string)
4542
m[aw.Name] = aw.Name
46-
klog.Infof("The instanceRequired array: %v", userRequestedInstanceType)
43+
logger.Info("The instanceRequired array",
44+
"InstanceRequired", userRequestedInstanceType)
4745

4846
nodePoolID := strings.ReplaceAll(aw.Name+"-"+userRequestedInstanceType, ".", "-")
4947

5048
createNodePool, err := cmv1.NewNodePool().AWSNodePool(cmv1.NewAWSNodePool().InstanceType(userRequestedInstanceType)).ID(nodePoolID).Replicas(replicas).Labels(m).Build()
5149
if err != nil {
52-
klog.Errorf(`Error building NodePool: %v`, err)
50+
logger.Error(
51+
err, "Error building NodePool",
52+
"userRequestedInstanceType", userRequestedInstanceType,
53+
)
5354
}
54-
klog.Infof("Built NodePool with instance type %v and name %v", userRequestedInstanceType, createNodePool.ID())
55+
logger.Info(
56+
"Sending NodePool creation request",
57+
"instanceType", userRequestedInstanceType,
58+
"nodePoolName", createNodePool.ID(),
59+
)
5560
response, err := clusterNodePools.Add().Body(createNodePool).SendContext(ctx)
5661
if err != nil {
57-
klog.Errorf(`Error creating NodePool: %v`, err)
62+
logger.Error(err, "Error creating NodePool")
63+
} else {
64+
logger.Info(
65+
"Successfully created NodePool",
66+
"nodePoolName", createNodePool.ID(),
67+
"response", response,
68+
)
5869
}
59-
klog.Infof("Created NodePool: %v", response)
6070
}
6171
}
6272
return ctrl.Result{Requeue: false}, nil
6373
}
6474

6575
func (r *AppWrapperReconciler) deleteNodePool(ctx context.Context, aw *arbv1.AppWrapper) (ctrl.Result, error) {
76+
logger := ctrl.LoggerFrom(ctx)
6677
connection, err := r.createOCMConnection()
6778
if err != nil {
68-
fmt.Fprintf(os.Stderr, "Error creating OCM connection: %v", err)
79+
logger.Error(err, "Error creating OCM connection")
6980
return ctrl.Result{}, err
7081
}
7182
defer connection.Close()
@@ -79,39 +90,50 @@ func (r *AppWrapperReconciler) deleteNodePool(ctx context.Context, aw *arbv1.App
7990
if strings.Contains(id, aw.Name) {
8091
targetNodePool, err := connection.ClustersMgmt().V1().Clusters().Cluster(r.ocmClusterID).NodePools().NodePool(id).Delete().SendContext(ctx)
8192
if err != nil {
82-
klog.Infof("Error deleting target nodepool %v", targetNodePool)
93+
logger.Error(
94+
err, "Error deleting nodepool",
95+
"nodePool", targetNodePool,
96+
)
97+
} else {
98+
logger.Info(
99+
"Successfully scaled down target nodepool",
100+
"nodePool", targetNodePool,
101+
)
83102
}
84-
klog.Infof("Successfully Scaled down target nodepool %v", id)
85103
}
86104
return true
87105
})
88106
return ctrl.Result{Requeue: false}, nil
89107
}
90108

91109
func (r *AppWrapperReconciler) checkHypershiftEnabled(ctx context.Context) (bool, error) {
110+
logger := ctrl.LoggerFrom(ctx)
92111
connection, err := r.createOCMConnection()
93112
if err != nil {
94-
return false, fmt.Errorf("error creating OCM connection: %w", err)
113+
logger.Error(err, "Error creating OCM connection")
114+
return false, err
95115
}
96116
defer connection.Close()
97117

98118
clusterResource := connection.ClustersMgmt().V1().Clusters().Cluster(r.ocmClusterID)
99119

100120
response, err := clusterResource.Get().SendContext(ctx)
101121
if err != nil {
102-
return false, fmt.Errorf("error fetching cluster details: %w", err)
122+
logger.Error(err, "error fetching cluster details")
123+
return false, err
103124
}
104125

105126
body := response.Body()
106127
if body == nil {
107-
return false, fmt.Errorf("empty response body")
128+
logger.Error(err, "Empty resource body when checking Hypershift enabled status")
129+
return false, err
108130
}
109131

110132
hypershiftEnabled := false
111133
if body.Hypershift() != nil {
112134
hypershiftEnabled = body.Hypershift().Enabled()
113135
}
114136

115-
fmt.Printf("Hypershift enabled status: %v\n", hypershiftEnabled)
137+
logger.Info("Checked Hypershift enabled status", "status", hypershiftEnabled)
116138
return hypershiftEnabled, nil
117139
}

0 commit comments

Comments
 (0)