@@ -10,6 +10,7 @@ import (
1010 "github.com/webdevops/kube-bootstrap-token-manager/cloudprovider"
1111 "github.com/webdevops/kube-bootstrap-token-manager/config"
1212 corev1 "k8s.io/api/core/v1"
13+ "k8s.io/apimachinery/pkg/api/errors"
1314 v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1415 "k8s.io/client-go/kubernetes"
1516 _ "k8s.io/client-go/plugin/pkg/client/auth"
@@ -229,11 +230,15 @@ func (m *KubeBootstrapTokenManager) createOrUpdateToken(token *bootstraptoken.Bo
229230 resourceNs := m .Opts .BootstrapToken .Namespace
230231
231232 resource , err := m .k8sClient .CoreV1 ().Secrets (resourceNs ).Get (m .ctx , resourceName , v1.GetOptions {})
232- if resource == nil && err != nil {
233- return err
234- }
235-
236- if resource == nil || resource .UID == "" {
233+ if err == nil {
234+ // update
235+ contextLogger .Infof ("updating existing bootstrap token \" %s\" with expiration %s" , resourceName , token .ExpirationString ())
236+ resource = m .updateTokenData (resource , token )
237+ if _ , err := m .k8sClient .CoreV1 ().Secrets (resourceNs ).Update (m .ctx , resource , v1.UpdateOptions {}); err != nil {
238+ return err
239+ }
240+ } else if errors .IsNotFound (err ) {
241+ // create
237242 resource = & corev1.Secret {}
238243 resource .SetName (resourceName )
239244 resource .SetNamespace (resourceNs )
@@ -244,11 +249,8 @@ func (m *KubeBootstrapTokenManager) createOrUpdateToken(token *bootstraptoken.Bo
244249 return err
245250 }
246251 } else {
247- contextLogger .Infof ("updating existing bootstrap token \" %s\" with expiration %s" , resourceName , token .ExpirationString ())
248- resource = m .updateTokenData (resource , token )
249- if _ , err := m .k8sClient .CoreV1 ().Secrets (resourceNs ).Update (m .ctx , resource , v1.UpdateOptions {}); err != nil {
250- return err
251- }
252+ // error
253+ return err
252254 }
253255
254256 if syncToCloud {
0 commit comments