Skip to content

Commit

Permalink
Merge pull request #42 from Garfield96/improve-context-handling
Browse files Browse the repository at this point in the history
Improve golang context handling
  • Loading branch information
Nuckal777 authored Jan 14, 2025
2 parents 7fce598 + 03daa84 commit cce7fd6
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 16 deletions.
14 changes: 7 additions & 7 deletions controllers/certmanager/digicertissuer_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,35 +51,35 @@ func (r *DigicertIssuerReconciler) Reconcile(ctx context.Context, req ctrl.Reque
return ctrl.Result{}, client.IgnoreNotFound(err)
}

issuer, err := k8sutils.EnsureDigicertIssuerStatusInitialized(r.Client, issuer)
issuer, err := k8sutils.EnsureDigicertIssuerStatusInitialized(ctx, r.Client, issuer)
if err != nil {
logger.Error(err, "failed to initialize issuer status")
}

if err := validateDigicertIssuerSpec(issuer.Spec); err != nil {
k8sutils.SetDigicertIssuerStatusConditionType(
r.Client, issuer, certmanagerv1beta1.ConditionConfigurationError, certmanagerv1beta1.ConditionTrue,
ctx, r.Client, issuer, certmanagerv1beta1.ConditionConfigurationError, certmanagerv1beta1.ConditionTrue,
certmanagerv1beta1.ConditionReasonInvalidIssuerSpec, err.Error(),
)
logger.Error(err, "issuer.spec is invalid")
return ctrl.Result{}, err
}
k8sutils.SetDigicertIssuerStatusConditionType(
r.Client, issuer, certmanagerv1beta1.ConditionConfigurationError, certmanagerv1beta1.ConditionFalse, "", "",
ctx, r.Client, issuer, certmanagerv1beta1.ConditionConfigurationError, certmanagerv1beta1.ConditionFalse, "", "",
)

secretRef := issuer.Spec.Provisioner.APITokenReference
digicertAPIToken, err := k8sutils.GetSecretData(r.Client, issuer.GetNamespace(), secretRef.Name, secretRef.Key)
digicertAPIToken, err := k8sutils.GetSecretData(ctx, r.Client, issuer.GetNamespace(), secretRef.Name, secretRef.Key)
if err != nil {
logger.Error(err, "failed to get provisioner secret containing the API token")
k8sutils.SetDigicertIssuerStatusConditionType(
r.Client, issuer, certmanagerv1beta1.ConditionConfigurationError, certmanagerv1beta1.ConditionTrue,
ctx, r.Client, issuer, certmanagerv1beta1.ConditionConfigurationError, certmanagerv1beta1.ConditionTrue,
certmanagerv1beta1.ConditionReasonSecretNotFoundOrEmpty, err.Error(),
)
return ctrl.Result{}, err
}
k8sutils.SetDigicertIssuerStatusConditionType(
r.Client, issuer, certmanagerv1beta1.ConditionConfigurationError, certmanagerv1beta1.ConditionFalse, "", "",
ctx, r.Client, issuer, certmanagerv1beta1.ConditionConfigurationError, certmanagerv1beta1.ConditionFalse, "", "",
)

prov, err := provisioners.New(issuer, digicertAPIToken)
Expand All @@ -92,7 +92,7 @@ func (r *DigicertIssuerReconciler) Reconcile(ctx context.Context, req ctrl.Reque
logger.Info("provisioner is ready", "name", prov.GetName())

_, err = k8sutils.SetDigicertIssuerStatusConditionType(
r.Client, issuer, certmanagerv1beta1.ConditionReady, certmanagerv1beta1.ConditionTrue, "", "",
ctx, r.Client, issuer, certmanagerv1beta1.ConditionReady, certmanagerv1beta1.ConditionTrue, "", "",
)
return ctrl.Result{}, err
}
Expand Down
14 changes: 7 additions & 7 deletions pkg/k8sutils/digicertissuer.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
)

func SetDigicertIssuerStatusConditionType(k8sClient client.Client, cur *certmanagerv1beta1.DigicertIssuer, statusType certmanagerv1beta1.ConditionType, status certmanagerv1beta1.ConditionStatus, reason certmanagerv1beta1.ConditionReason, message string) (*certmanagerv1beta1.DigicertIssuer, error) {
func SetDigicertIssuerStatusConditionType(ctx context.Context, k8sClient client.Client, cur *certmanagerv1beta1.DigicertIssuer, statusType certmanagerv1beta1.ConditionType, status certmanagerv1beta1.ConditionStatus, reason certmanagerv1beta1.ConditionReason, message string) (*certmanagerv1beta1.DigicertIssuer, error) {
ts := metav1.NewTime(time.Now().UTC())
newCondition := certmanagerv1beta1.DigicertIssuerCondition{
Type: statusType,
Expand All @@ -49,7 +49,7 @@ func SetDigicertIssuerStatusConditionType(k8sClient client.Client, cur *certmana

if new.Status.Conditions == nil || len(new.Status.Conditions) == 0 {
new.Status.Conditions = []certmanagerv1beta1.DigicertIssuerCondition{newCondition}
return patchDigicertIssuerStatus(k8sClient, cur, new)
return patchDigicertIssuerStatus(ctx, k8sClient, cur, new)
}

for idx, curCondition := range new.Status.Conditions {
Expand All @@ -58,16 +58,16 @@ func SetDigicertIssuerStatusConditionType(k8sClient client.Client, cur *certmana
}
}

return patchDigicertIssuerStatus(k8sClient, cur, new)
return patchDigicertIssuerStatus(ctx, k8sClient, cur, new)
}

func EnsureDigicertIssuerStatusInitialized(k8sClient client.Client, issuer *certmanagerv1beta1.DigicertIssuer) (*certmanagerv1beta1.DigicertIssuer, error) {
func EnsureDigicertIssuerStatusInitialized(ctx context.Context, k8sClient client.Client, issuer *certmanagerv1beta1.DigicertIssuer) (*certmanagerv1beta1.DigicertIssuer, error) {
if isDigicertIssuerReady(issuer) {
return issuer, nil
}

return SetDigicertIssuerStatusConditionType(
k8sClient, issuer, certmanagerv1beta1.ConditionReady, certmanagerv1beta1.ConditionFalse, "", "",
ctx, k8sClient, issuer, certmanagerv1beta1.ConditionReady, certmanagerv1beta1.ConditionFalse, "", "",
)
}

Expand All @@ -78,9 +78,9 @@ func isDigicertIssuerReady(issuer *certmanagerv1beta1.DigicertIssuer) bool {
})
}

func patchDigicertIssuerStatus(k8sClient client.Client, cur, new *certmanagerv1beta1.DigicertIssuer) (*certmanagerv1beta1.DigicertIssuer, error) {
func patchDigicertIssuerStatus(ctx context.Context, k8sClient client.Client, cur, new *certmanagerv1beta1.DigicertIssuer) (*certmanagerv1beta1.DigicertIssuer, error) {
patch := client.MergeFrom(cur)
if err := k8sClient.Status().Patch(context.Background(), new, patch); err != nil {
if err := k8sClient.Status().Patch(ctx, new, patch); err != nil {
return cur, err
}

Expand Down
4 changes: 2 additions & 2 deletions pkg/k8sutils/secret.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
)

func GetSecretData(k8sClient client.Client, secretNamespace, secretName, secretDataKey string) (string, error) {
func GetSecretData(ctx context.Context, k8sClient client.Client, secretNamespace, secretName, secretDataKey string) (string, error) {
s := new(corev1.Secret)
if err := k8sClient.Get(context.Background(), client.ObjectKey{
if err := k8sClient.Get(ctx, client.ObjectKey{
Namespace: secretNamespace,
Name: secretName,
}, s); err != nil {
Expand Down

0 comments on commit cce7fd6

Please sign in to comment.