Skip to content

Commit

Permalink
fix: rke2 registration token generated twice
Browse files Browse the repository at this point in the history
Signed-off-by: Carlos Salas <[email protected]>
  • Loading branch information
salasberryfin committed Jan 12, 2024
1 parent c692853 commit 1f6bccd
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions bootstrap/internal/controllers/rke2config_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -334,14 +334,28 @@ func (r *RKE2ConfigReconciler) handleClusterNotInitialized(ctx context.Context,

conditions.MarkTrue(scope.Config, bootstrapv1.CertificatesAvailableCondition)

token, err := r.generateAndStoreToken(ctx, scope)
if err != nil {
scope.Logger.Error(err, "unable to generate and store an RKE2 server token")
// RKE2 server token must only be generated once, so all nodes join the cluster with the same registration token.
var token string

return ctrl.Result{}, err
tokenSecret := &corev1.Secret{}
secretKey := types.NamespacedName{
Namespace: scope.Config.Namespace,
Name: bsutil.TokenName(scope.Cluster.Name),
}
err := r.Client.Get(ctx, secretKey, tokenSecret)

if err != nil {
token, err = r.generateAndStoreToken(ctx, scope)
if err != nil {
scope.Logger.Error(err, "unable to generate and store an RKE2 server token")

scope.Logger.Info("RKE2 server token generated and stored in Secret!")
return ctrl.Result{}, err
}

scope.Logger.Info("RKE2 server token generated and stored in Secret!")
} else {
token = string(tokenSecret.Data["value"])
}

configStruct, configFiles, err := rke2.GenerateInitControlPlaneConfig(
rke2.ServerConfigOpts{
Expand Down

0 comments on commit 1f6bccd

Please sign in to comment.