From 8a00e7ab32d5cb4b5b1fa0237cf2add3ddb77bd3 Mon Sep 17 00:00:00 2001 From: Derek Nola Date: Thu, 4 Jan 2024 09:51:30 -0800 Subject: [PATCH] Add a retry around updating a secrets-encrypt node annotations (#9123) * Add a retry around updating a se node annotations Signed-off-by: Derek Nola --- pkg/server/secrets-encrypt.go | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/pkg/server/secrets-encrypt.go b/pkg/server/secrets-encrypt.go index 6075305474..adde459a90 100644 --- a/pkg/server/secrets-encrypt.go +++ b/pkg/server/secrets-encrypt.go @@ -22,6 +22,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" apiserverconfigv1 "k8s.io/apiserver/pkg/apis/config/v1" + "k8s.io/client-go/util/retry" "k8s.io/utils/pointer" ) @@ -215,13 +216,16 @@ func encryptionPrepare(ctx context.Context, server *config.Control, force bool) return err } nodeName := os.Getenv("NODE_NAME") - node, err := server.Runtime.Core.Core().V1().Node().Get(nodeName, metav1.GetOptions{}) + err = retry.RetryOnConflict(retry.DefaultRetry, func() error { + node, err := server.Runtime.Core.Core().V1().Node().Get(nodeName, metav1.GetOptions{}) + if err != nil { + return err + } + return secretsencrypt.WriteEncryptionHashAnnotation(server.Runtime, node, secretsencrypt.EncryptionPrepare) + }) if err != nil { return err } - if err = secretsencrypt.WriteEncryptionHashAnnotation(server.Runtime, node, secretsencrypt.EncryptionPrepare); err != nil { - return err - } return cluster.Save(ctx, server, true) } @@ -244,13 +248,16 @@ func encryptionRotate(ctx context.Context, server *config.Control, force bool) e } logrus.Infoln("Encryption keys right rotated") nodeName := os.Getenv("NODE_NAME") - node, err := server.Runtime.Core.Core().V1().Node().Get(nodeName, metav1.GetOptions{}) + err = retry.RetryOnConflict(retry.DefaultRetry, func() error { + node, err := server.Runtime.Core.Core().V1().Node().Get(nodeName, metav1.GetOptions{}) + if err != nil { + return err + } + return secretsencrypt.WriteEncryptionHashAnnotation(server.Runtime, node, secretsencrypt.EncryptionRotate) + }) if err != nil { return err } - if err := secretsencrypt.WriteEncryptionHashAnnotation(server.Runtime, node, secretsencrypt.EncryptionRotate); err != nil { - return err - } return cluster.Save(ctx, server, true) }