@@ -23,6 +23,7 @@ import (
2323 "os"
2424
2525 "github.com/go-logr/logr"
26+ "github.com/google/renameio/v2"
2627 corev1 "k8s.io/api/core/v1"
2728 apierrors "k8s.io/apimachinery/pkg/api/errors"
2829 "k8s.io/apimachinery/pkg/types"
@@ -45,23 +46,18 @@ type PullSecretReconciler struct {
4546func (r * PullSecretReconciler ) Reconcile (ctx context.Context , req ctrl.Request ) (ctrl.Result , error ) {
4647 logger := log .FromContext (ctx ).WithName ("pull-secret-reconciler" )
4748
48- logger .Info ("processing event" , "name" , req .NamespacedName )
49- defer logger .Info ("processed event" , "name" , req .NamespacedName )
49+ logger .Info ("processing event" , logName ( req .NamespacedName ) ... )
50+ defer logger .Info ("processed event" , logName ( req .NamespacedName ) ... )
5051
5152 secrets := []* corev1.Secret {}
52- secret := & corev1.Secret {}
5353
5454 if r .SecretKey != nil { //nolint:nestif
55+ secret , err := r .getSecret (ctx , logger , * r .SecretKey )
56+ if err != nil {
57+ return ctrl.Result {}, err
58+ }
5559 // Add the configured pull secret to the list of secrets
56- if err := r .Get (ctx , * r .SecretKey , secret ); err != nil {
57- if apierrors .IsNotFound (err ) {
58- logger .Info ("secret not found" , "name" , r .SecretKey )
59- } else {
60- logger .Error (err , "failed to get Secret" , "name" , r .SecretKey )
61- return ctrl.Result {}, err
62- }
63- } else {
64- logger .Info ("global pull secret" , "name" , * r .SecretKey )
60+ if secret != nil {
6561 secrets = append (secrets , secret )
6662 }
6763 }
@@ -71,9 +67,9 @@ func (r *PullSecretReconciler) Reconcile(ctx context.Context, req ctrl.Request)
7167 logger .Info ("serviceaccount" , "name" , r .ServiceAccountKey )
7268 if err := r .Get (ctx , r .ServiceAccountKey , sa ); err != nil { //nolint:nestif
7369 if apierrors .IsNotFound (err ) {
74- logger .Info ("serviceaccount not found" , "serviceaccount" , r .ServiceAccountKey )
70+ logger .Info ("serviceaccount not found" , logName ( r .ServiceAccountKey ) ... )
7571 } else {
76- logger .Error (err , "failed to get serviceaccount" , "serviceaccount" , r .ServiceAccountKey )
72+ logger .Error (err , "failed to get serviceaccount" , logName ( r .ServiceAccountKey ) ... )
7773 return ctrl.Result {}, err
7874 }
7975 } else {
@@ -84,16 +80,12 @@ func (r *PullSecretReconciler) Reconcile(ctx context.Context, req ctrl.Request)
8480 // This is to update the list of secrets that we are filtering on
8581 // Add all secrets regardless if they exist or not
8682 pullSecrets = append (pullSecrets , nn )
87- secret := & corev1. Secret {}
88- err = r .Get (ctx , nn , secret )
83+
84+ secret , err : = r .getSecret (ctx , logger , nn )
8985 if err != nil {
90- if apierrors .IsNotFound (err ) {
91- logger .Info ("serviceaccount pull secret not found" , "secret" , nn )
92- } else {
93- logger .Error (err , "failed to get serviceaccount pull secret" , "secret" , nn )
94- return ctrl.Result {}, err
95- }
96- } else {
86+ return ctrl.Result {}, err
87+ }
88+ if secret != nil {
9789 secrets = append (secrets , secret )
9890 }
9991 }
@@ -108,6 +100,25 @@ func (r *PullSecretReconciler) Reconcile(ctx context.Context, req ctrl.Request)
108100 return ctrl.Result {}, r .writeSecretToFile (logger , secrets )
109101}
110102
103+ func (r * PullSecretReconciler ) getSecret (ctx context.Context , logger logr.Logger , nn types.NamespacedName ) (* corev1.Secret , error ) {
104+ secret := & corev1.Secret {}
105+ if err := r .Get (ctx , * r .SecretKey , secret ); err != nil {
106+ if apierrors .IsNotFound (err ) {
107+ logger .Info ("secret not found" , logName (nn )... )
108+ return nil , nil
109+ }
110+ logger .Error (err , "failed to get secret" , logName (nn )... )
111+ return nil , err
112+ }
113+ logger .Info ("found secret" , logName (nn )... )
114+ return secret , nil
115+ }
116+
117+ // Helper function to log NamespacedNames
118+ func logName (nn types.NamespacedName ) []any {
119+ return []any {"name" , nn .Name , "namespace" , nn .Namespace }
120+ }
121+
111122// SetupWithManager sets up the controller with the Manager.
112123func (r * PullSecretReconciler ) SetupWithManager (mgr ctrl.Manager ) error {
113124 _ , err := ctrl .NewControllerManagedBy (mgr ).
@@ -205,7 +216,7 @@ func (r *PullSecretReconciler) writeSecretToFile(logger logr.Logger, secrets []*
205216 if err != nil {
206217 return fmt .Errorf ("failed to marshal secret data: %w" , err )
207218 }
208- err = os .WriteFile (r .AuthFilePath , data , 0600 )
219+ err = renameio .WriteFile (r .AuthFilePath , data , 0600 )
209220 if err != nil {
210221 return fmt .Errorf ("failed to write secret data to file: %w" , err )
211222 }
0 commit comments