@@ -87,9 +87,11 @@ func (r *Resources) EnsureSecrets(ctx context.Context, log zerolog.Logger, cache
8787 defer metrics .SetDuration (inspectSecretsDurationGauges .WithLabelValues (deploymentName ), start )
8888 counterMetric := inspectedSecretsCounters .WithLabelValues (deploymentName )
8989
90+ reconcileRequired := k8sutil .NewReconcile ()
91+
9092 if spec .IsAuthenticated () {
9193 counterMetric .Inc ()
92- if err := r . refreshCache ( ctx , cachedStatus , r .ensureTokenSecret (ctx , cachedStatus , secrets , spec .Authentication .GetJWTSecretName ())); err != nil {
94+ if err := reconcileRequired . WithError ( r .ensureTokenSecret (ctx , cachedStatus , secrets , spec .Authentication .GetJWTSecretName ())); err != nil {
9395 return errors .WithStack (err )
9496 }
9597
@@ -103,23 +105,23 @@ func (r *Resources) EnsureSecrets(ctx context.Context, log zerolog.Logger, cache
103105
104106 if spec .Metrics .IsEnabled () {
105107 if imageFound && pod .VersionHasJWTSecretKeyfolder (image .ArangoDBVersion , image .Enterprise ) {
106- if err := r . refreshCache ( ctx , cachedStatus , r .ensureExporterTokenSecret (ctx , cachedStatus , secrets , spec .Metrics .GetJWTTokenSecretName (), pod .JWTSecretFolder (deploymentName ))); err != nil {
108+ if err := reconcileRequired . WithError ( r .ensureExporterTokenSecret (ctx , cachedStatus , secrets , spec .Metrics .GetJWTTokenSecretName (), pod .JWTSecretFolder (deploymentName ))); err != nil {
107109 return errors .WithStack (err )
108110 }
109111 } else {
110- if err := r . refreshCache ( ctx , cachedStatus , r .ensureExporterTokenSecret (ctx , cachedStatus , secrets , spec .Metrics .GetJWTTokenSecretName (), spec .Authentication .GetJWTSecretName ())); err != nil {
112+ if err := reconcileRequired . WithError ( r .ensureExporterTokenSecret (ctx , cachedStatus , secrets , spec .Metrics .GetJWTTokenSecretName (), spec .Authentication .GetJWTSecretName ())); err != nil {
111113 return errors .WithStack (err )
112114 }
113115 }
114116 }
115117 }
116118 if spec .IsSecure () {
117119 counterMetric .Inc ()
118- if err := r . refreshCache ( ctx , cachedStatus , r .ensureTLSCACertificateSecret (ctx , cachedStatus , secrets , spec .TLS )); err != nil {
120+ if err := reconcileRequired . WithError ( r .ensureTLSCACertificateSecret (ctx , cachedStatus , secrets , spec .TLS )); err != nil {
119121 return errors .WithStack (err )
120122 }
121123
122- if err := r . refreshCache ( ctx , cachedStatus , r .ensureSecretWithEmptyKey (ctx , cachedStatus , secrets , GetCASecretName (r .context .GetAPIObject ()), "empty" )); err != nil {
124+ if err := reconcileRequired . WithError ( r .ensureSecretWithEmptyKey (ctx , cachedStatus , secrets , GetCASecretName (r .context .GetAPIObject ()), "empty" )); err != nil {
123125 return errors .WithStack (err )
124126 }
125127
@@ -165,13 +167,9 @@ func (r *Resources) EnsureSecrets(ctx context.Context, log zerolog.Logger, cache
165167 }
166168 owner := member .AsOwner ()
167169 errCert := createTLSServerCertificate (ctx , log , secrets , serverNames , spec .TLS , tlsKeyfileSecretName , & owner )
168- if err := r . refreshCache ( ctx , cachedStatus , errCert ); err != nil && ! k8sutil .IsAlreadyExists (err ) {
170+ if err := reconcileRequired . WithError ( errCert ); err != nil && ! k8sutil .IsAlreadyExists (err ) {
169171 return errors .WithStack (errors .Wrapf (err , "Failed to create TLS keyfile secret" ))
170172 }
171-
172- if err := r .refreshCache (ctx , cachedStatus , operatorErrors .Reconcile ()); err != nil {
173- return errors .WithStack (err )
174- }
175173 }
176174 }
177175 return nil
@@ -181,47 +179,30 @@ func (r *Resources) EnsureSecrets(ctx context.Context, log zerolog.Logger, cache
181179 }
182180 if spec .RocksDB .IsEncrypted () {
183181 if i := status .CurrentImage ; i != nil && features .EncryptionRotation ().Supported (i .ArangoDBVersion , i .Enterprise ) {
184- if err := r . refreshCache ( ctx , cachedStatus , r .ensureEncryptionKeyfolderSecret (ctx , cachedStatus , secrets , spec .RocksDB .Encryption .GetKeySecretName (), pod .GetEncryptionFolderSecretName (deploymentName ))); err != nil {
182+ if err := reconcileRequired . WithError ( r .ensureEncryptionKeyfolderSecret (ctx , cachedStatus , secrets , spec .RocksDB .Encryption .GetKeySecretName (), pod .GetEncryptionFolderSecretName (deploymentName ))); err != nil {
185183 return errors .WithStack (err )
186184 }
187185 }
188186 }
189187 if spec .Sync .IsEnabled () {
190188 counterMetric .Inc ()
191- if err := r . refreshCache ( ctx , cachedStatus , r .ensureTokenSecret (ctx , cachedStatus , secrets , spec .Sync .Authentication .GetJWTSecretName ())); err != nil {
189+ if err := reconcileRequired . WithError ( r .ensureTokenSecret (ctx , cachedStatus , secrets , spec .Sync .Authentication .GetJWTSecretName ())); err != nil {
192190 return errors .WithStack (err )
193191 }
194192 counterMetric .Inc ()
195- if err := r . refreshCache ( ctx , cachedStatus , r .ensureTokenSecret (ctx , cachedStatus , secrets , spec .Sync .Monitoring .GetTokenSecretName ())); err != nil {
193+ if err := reconcileRequired . WithError ( r .ensureTokenSecret (ctx , cachedStatus , secrets , spec .Sync .Monitoring .GetTokenSecretName ())); err != nil {
196194 return errors .WithStack (err )
197195 }
198196 counterMetric .Inc ()
199- if err := r . refreshCache ( ctx , cachedStatus , r .ensureTLSCACertificateSecret (ctx , cachedStatus , secrets , spec .Sync .TLS )); err != nil {
197+ if err := reconcileRequired . WithError ( r .ensureTLSCACertificateSecret (ctx , cachedStatus , secrets , spec .Sync .TLS )); err != nil {
200198 return errors .WithStack (err )
201199 }
202200 counterMetric .Inc ()
203- if err := r . refreshCache ( ctx , cachedStatus , r .ensureClientAuthCACertificateSecret (ctx , cachedStatus , secrets , spec .Sync .Authentication )); err != nil {
201+ if err := reconcileRequired . WithError ( r .ensureClientAuthCACertificateSecret (ctx , cachedStatus , secrets , spec .Sync .Authentication )); err != nil {
204202 return errors .WithStack (err )
205203 }
206204 }
207- return nil
208- }
209-
210- func (r * Resources ) refreshCache (ctx context.Context , cachedStatus inspectorInterface.Inspector , err error ) error {
211- if err == nil {
212- return nil
213- }
214-
215- if operatorErrors .IsReconcile (err ) {
216- err := cachedStatus .Refresh (ctx , r .context .GetKubeCli (), r .context .GetMonitoringV1Cli (), r .context .GetArangoCli (), r .context .GetNamespace ())
217- if err != nil {
218- return errors .WithStack (err )
219- }
220- } else {
221- return errors .WithStack (err )
222- }
223-
224- return nil
205+ return reconcileRequired .Reconcile ()
225206}
226207
227208func (r * Resources ) ensureTokenSecretFolder (ctx context.Context , cachedStatus inspectorInterface.Inspector , secrets k8sutil.SecretInterface , secretName , folderSecretName string ) error {
0 commit comments