Skip to content

Commit 31e776c

Browse files
committed
refactor: propagate context instead of using context.Background/TODO
- Accept context parameter in Overcommit and OvercommitOnResize functions, propagated from the webhook admission handler - Accept context in GetDefaultSpec and GetPodServiceAccount instead of creating context.Background()/context.TODO() internally - Enables proper cancellation, timeouts, and distributed tracing through the full call chain
1 parent 1074df9 commit 31e776c

7 files changed

Lines changed: 11 additions & 13 deletions

File tree

cmd/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ func main() {
150150
os.Exit(1)
151151
}
152152

153-
serviceAccountName, err := utils.GetPodServiceAccount(mgr.GetAPIReader())
153+
serviceAccountName, err := utils.GetPodServiceAccount(ctx, mgr.GetAPIReader())
154154
if err != nil {
155155
setupLog.Error(err, "unable to get pod service account")
156156
os.Exit(1)

internal/utils/getOvercommitClass.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ func GetOvercommitClassSpec(ctx context.Context, name string, k8sClient client.C
4545
return &overcommitClass.Spec, nil
4646
}
4747

48-
func GetDefaultSpec(k8sClient client.Client) (*overcommit.OvercommitClassSpec, error) {
48+
func GetDefaultSpec(ctx context.Context, k8sClient client.Client) (*overcommit.OvercommitClassSpec, error) {
4949
if k8sClient == nil {
5050
return nil, errors.New("client parameter cannot be nil")
5151
}
5252

5353
// List all OvercommitClass
5454
var overcommitClasses overcommit.OvercommitClassList
55-
if err := k8sClient.List(context.Background(), &overcommitClasses); err != nil {
55+
if err := k8sClient.List(ctx, &overcommitClasses); err != nil {
5656
return nil, fmt.Errorf("error listing OvercommitClass: %w", err)
5757
}
5858

internal/utils/getOvercommitClass_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ var _ = Describe("GetDefaultSpec", func() {
8282

8383
It("should retrieve the default OvercommitClassSpec correctly", func() {
8484
// Try the GetDefaultSpec function
85-
spec, err := GetDefaultSpec(k8sClient)
85+
spec, err := GetDefaultSpec(context.Background(), k8sClient)
8686
Expect(err).NotTo(HaveOccurred(), "Failed to get default OvercommitClassSpec")
8787
Expect(spec).NotTo(BeNil(), "Spec should not be nil")
8888
Expect(spec.IsDefault).To(BeTrue(), "Spec.IsDefault should be true")

internal/utils/getPodDetails.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func GetPodImageDetails(ctx context.Context, client client.Reader) (string, stri
5858
return "", "", "", fmt.Errorf("no containers found in pod")
5959
}
6060

61-
func GetPodServiceAccount(client client.Reader) (string, error) {
61+
func GetPodServiceAccount(ctx context.Context, client client.Reader) (string, error) {
6262
podName := os.Getenv("POD_NAME")
6363
podNamespace := os.Getenv("POD_NAMESPACE")
6464

@@ -67,7 +67,7 @@ func GetPodServiceAccount(client client.Reader) (string, error) {
6767
}
6868

6969
pod := &corev1.Pod{}
70-
err := client.Get(context.TODO(), types.NamespacedName{
70+
err := client.Get(ctx, types.NamespacedName{
7171
Name: podName,
7272
Namespace: podNamespace,
7373
}, pod)

internal/webhook/v1alphav1/mutating/pod_webhook.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ func (d *PodCustomDefaulter) Default(ctx context.Context, obj runtime.Object) er
5151
}
5252

5353
if isResize {
54-
overcommit.OvercommitOnResize(pod, d.Recorder, d.Client)
54+
overcommit.OvercommitOnResize(ctx, pod, d.Recorder, d.Client)
5555
return nil
5656
}
5757

58-
overcommit.Overcommit(pod, d.Recorder, d.Client)
58+
overcommit.Overcommit(ctx, pod, d.Recorder, d.Client)
5959
return nil
6060
}
6161

pkg/overcommit/calculate_values_from_labels.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func getNamespaceOvercommit(ctx context.Context, pod *corev1.Pod, client client.
4040
}
4141

4242
podlog.Info("Overcommit class not found in the namespace, using the default", "namespace", ns.Name)
43-
defaultClass, err := utils.GetDefaultSpec(client)
43+
defaultClass, err := utils.GetDefaultSpec(ctx, client)
4444
if err != nil {
4545
podlog.Error(err, "Error getting the default overcommit class")
4646
return 1.0, 1.0

pkg/overcommit/make_overcommit.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ func mutateContainers(containers []corev1.Container, pod *corev1.Pod, cpuValue f
5151
}
5252
}
5353

54-
func Overcommit(pod *corev1.Pod, recorder record.EventRecorder, client client.Client) {
55-
ctx := context.Background()
54+
func Overcommit(ctx context.Context, pod *corev1.Pod, recorder record.EventRecorder, client client.Client) {
5655
className := os.Getenv("OVERCOMMIT_CLASS_NAME")
5756

5857
metrics.K8sOvercommitOperatorPodsRequestedTotal.WithLabelValues(className).Inc()
@@ -91,8 +90,7 @@ func Overcommit(pod *corev1.Pod, recorder record.EventRecorder, client client.Cl
9190
)
9291
}
9392

94-
func OvercommitOnResize(pod *corev1.Pod, recorder record.EventRecorder, client client.Client) {
95-
ctx := context.Background()
93+
func OvercommitOnResize(ctx context.Context, pod *corev1.Pod, recorder record.EventRecorder, client client.Client) {
9694
className := os.Getenv("OVERCOMMIT_CLASS_NAME")
9795

9896
metrics.K8sOvercommitOperatorPodsRequestedTotal.WithLabelValues(className).Inc()

0 commit comments

Comments
 (0)