Skip to content

Commit 6e3ab71

Browse files
committed
test/e2e/in-memory: set providerID after VM is provisioned
Signed-off-by: Stefan Büringer [email protected]
1 parent 6aaae2f commit 6e3ab71

File tree

1 file changed

+40
-28
lines changed

1 file changed

+40
-28
lines changed

test/infrastructure/inmemory/internal/controllers/inmemorymachine_controller.go

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3333
kerrors "k8s.io/apimachinery/pkg/util/errors"
3434
"k8s.io/klog/v2"
35+
"k8s.io/utils/pointer"
3536
ctrl "sigs.k8s.io/controller-runtime"
3637
"sigs.k8s.io/controller-runtime/pkg/builder"
3738
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -263,12 +264,14 @@ func (r *InMemoryMachineReconciler) reconcileNormalCloudMachine(ctx context.Cont
263264
x := inMemoryMachine.Spec.Behaviour.VM.Provisioning
264265

265266
provisioningDuration = x.StartupDuration.Duration
266-
jitter, err := strconv.ParseFloat(x.StartupJitter, 64)
267-
if err != nil {
268-
return ctrl.Result{}, errors.Wrapf(err, "failed to parse VM's StartupJitter")
269-
}
270-
if jitter > 0.0 {
271-
provisioningDuration += time.Duration(rand.Float64() * jitter * float64(provisioningDuration)) //nolint:gosec // Intentionally using a weak random number generator here.
267+
if x.StartupJitter != "" {
268+
jitter, err := strconv.ParseFloat(x.StartupJitter, 64)
269+
if err != nil {
270+
return ctrl.Result{}, errors.Wrapf(err, "failed to parse VM's StartupJitter")
271+
}
272+
if jitter > 0.0 {
273+
provisioningDuration += time.Duration(rand.Float64() * jitter * float64(provisioningDuration)) //nolint:gosec // Intentionally using a weak random number generator here.
274+
}
272275
}
273276
}
274277

@@ -281,6 +284,8 @@ func (r *InMemoryMachineReconciler) reconcileNormalCloudMachine(ctx context.Cont
281284

282285
// TODO: consider if to surface VM provisioned also on the cloud machine (currently it surfaces only on the inMemoryMachine)
283286

287+
inMemoryMachine.Spec.ProviderID = pointer.String(calculateProviderID(inMemoryMachine))
288+
inMemoryMachine.Status.Ready = true
284289
conditions.MarkTrue(inMemoryMachine, infrav1.VMProvisionedCondition)
285290
return ctrl.Result{}, nil
286291
}
@@ -297,12 +302,14 @@ func (r *InMemoryMachineReconciler) reconcileNormalNode(ctx context.Context, clu
297302
x := inMemoryMachine.Spec.Behaviour.Node.Provisioning
298303

299304
provisioningDuration = x.StartupDuration.Duration
300-
jitter, err := strconv.ParseFloat(x.StartupJitter, 64)
301-
if err != nil {
302-
return ctrl.Result{}, errors.Wrapf(err, "failed to parse node's StartupJitter")
303-
}
304-
if jitter > 0.0 {
305-
provisioningDuration += time.Duration(rand.Float64() * jitter * float64(provisioningDuration)) //nolint:gosec // Intentionally using a weak random number generator here.
305+
if x.StartupJitter != "" {
306+
jitter, err := strconv.ParseFloat(x.StartupJitter, 64)
307+
if err != nil {
308+
return ctrl.Result{}, errors.Wrapf(err, "failed to parse node's StartupJitter")
309+
}
310+
if jitter > 0.0 {
311+
provisioningDuration += time.Duration(rand.Float64() * jitter * float64(provisioningDuration)) //nolint:gosec // Intentionally using a weak random number generator here.
312+
}
306313
}
307314
}
308315

@@ -325,7 +332,7 @@ func (r *InMemoryMachineReconciler) reconcileNormalNode(ctx context.Context, clu
325332
Name: inMemoryMachine.Name,
326333
},
327334
Spec: corev1.NodeSpec{
328-
ProviderID: fmt.Sprintf("in-memory://%s", inMemoryMachine.Name),
335+
ProviderID: calculateProviderID(inMemoryMachine),
329336
},
330337
Status: corev1.NodeStatus{
331338
Conditions: []corev1.NodeCondition{
@@ -355,13 +362,14 @@ func (r *InMemoryMachineReconciler) reconcileNormalNode(ctx context.Context, clu
355362
}
356363
}
357364

358-
inMemoryMachine.Spec.ProviderID = &node.Spec.ProviderID
359-
inMemoryMachine.Status.Ready = true
360-
361365
conditions.MarkTrue(inMemoryMachine, infrav1.NodeProvisionedCondition)
362366
return ctrl.Result{}, nil
363367
}
364368

369+
func calculateProviderID(inMemoryMachine *infrav1.InMemoryMachine) string {
370+
return fmt.Sprintf("in-memory://%s", inMemoryMachine.Name)
371+
}
372+
365373
func (r *InMemoryMachineReconciler) reconcileNormalETCD(ctx context.Context, cluster *clusterv1.Cluster, machine *clusterv1.Machine, inMemoryMachine *infrav1.InMemoryMachine) (ctrl.Result, error) {
366374
// No-op if the machine is not a control plane machine.
367375
if !util.IsControlPlaneMachine(machine) {
@@ -379,12 +387,14 @@ func (r *InMemoryMachineReconciler) reconcileNormalETCD(ctx context.Context, clu
379387
x := inMemoryMachine.Spec.Behaviour.Etcd.Provisioning
380388

381389
provisioningDuration = x.StartupDuration.Duration
382-
jitter, err := strconv.ParseFloat(x.StartupJitter, 64)
383-
if err != nil {
384-
return ctrl.Result{}, errors.Wrapf(err, "failed to parse etcd's StartupJitter")
385-
}
386-
if jitter > 0.0 {
387-
provisioningDuration += time.Duration(rand.Float64() * jitter * float64(provisioningDuration)) //nolint:gosec // Intentionally using a weak random number generator here.
390+
if x.StartupJitter != "" {
391+
jitter, err := strconv.ParseFloat(x.StartupJitter, 64)
392+
if err != nil {
393+
return ctrl.Result{}, errors.Wrapf(err, "failed to parse etcd's StartupJitter")
394+
}
395+
if jitter > 0.0 {
396+
provisioningDuration += time.Duration(rand.Float64() * jitter * float64(provisioningDuration)) //nolint:gosec // Intentionally using a weak random number generator here.
397+
}
388398
}
389399
}
390400

@@ -494,12 +504,14 @@ func (r *InMemoryMachineReconciler) reconcileNormalAPIServer(ctx context.Context
494504
x := inMemoryMachine.Spec.Behaviour.APIServer.Provisioning
495505

496506
provisioningDuration = x.StartupDuration.Duration
497-
jitter, err := strconv.ParseFloat(x.StartupJitter, 64)
498-
if err != nil {
499-
return ctrl.Result{}, errors.Wrapf(err, "failed to parse API server's StartupJitter")
500-
}
501-
if jitter > 0.0 {
502-
provisioningDuration += time.Duration(rand.Float64() * jitter * float64(provisioningDuration)) //nolint:gosec // Intentionally using a weak random number generator here.
507+
if x.StartupJitter != "" {
508+
jitter, err := strconv.ParseFloat(x.StartupJitter, 64)
509+
if err != nil {
510+
return ctrl.Result{}, errors.Wrapf(err, "failed to parse API server's StartupJitter")
511+
}
512+
if jitter > 0.0 {
513+
provisioningDuration += time.Duration(rand.Float64() * jitter * float64(provisioningDuration)) //nolint:gosec // Intentionally using a weak random number generator here.
514+
}
503515
}
504516
}
505517

0 commit comments

Comments
 (0)