Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions controlplane/kubeadm/internal/controllers/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ import (
"sigs.k8s.io/cluster-api/feature"
"sigs.k8s.io/cluster-api/internal/util/inplace"
"sigs.k8s.io/cluster-api/internal/util/ssa"
"sigs.k8s.io/cluster-api/internal/webhooks"
"sigs.k8s.io/cluster-api/util"
"sigs.k8s.io/cluster-api/util/cache"
"sigs.k8s.io/cluster-api/util/collections"
Expand Down Expand Up @@ -864,6 +865,7 @@ func (r *KubeadmControlPlaneReconciler) syncMachines(ctx context.Context, contro
// Set all other in-place mutable fields that impact the ability to tear down existing machines.
m.Spec.Deletion.NodeDrainTimeoutSeconds = controlPlane.KCP.Spec.MachineTemplate.Spec.Deletion.NodeDrainTimeoutSeconds
m.Spec.Deletion.NodeDeletionTimeoutSeconds = controlPlane.KCP.Spec.MachineTemplate.Spec.Deletion.NodeDeletionTimeoutSeconds
webhooks.DefaultMachineNodeDeletionTimeoutSeconds(m) // Default to avoid unnecessary patch calls if field is not set on KCP.
m.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = controlPlane.KCP.Spec.MachineTemplate.Spec.Deletion.NodeVolumeDetachTimeoutSeconds
m.Spec.Taints = controlPlane.KCP.Spec.MachineTemplate.Spec.Taints

Expand Down
2 changes: 2 additions & 0 deletions internal/controllers/machineset/machineset_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ import (
clientutil "sigs.k8s.io/cluster-api/internal/util/client"
"sigs.k8s.io/cluster-api/internal/util/inplace"
"sigs.k8s.io/cluster-api/internal/util/ssa"
"sigs.k8s.io/cluster-api/internal/webhooks"
"sigs.k8s.io/cluster-api/util"
"sigs.k8s.io/cluster-api/util/annotations"
"sigs.k8s.io/cluster-api/util/collections"
Expand Down Expand Up @@ -665,6 +666,7 @@ func (r *Reconciler) syncMachines(ctx context.Context, s *scope) (ctrl.Result, b
m.Spec.ReadinessGates = machineSet.Spec.Template.Spec.ReadinessGates
m.Spec.Deletion.NodeDrainTimeoutSeconds = machineSet.Spec.Template.Spec.Deletion.NodeDrainTimeoutSeconds
m.Spec.Deletion.NodeDeletionTimeoutSeconds = machineSet.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds
webhooks.DefaultMachineNodeDeletionTimeoutSeconds(m) // Default to avoid unnecessary patch calls if field is not set on MS.
m.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = machineSet.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds
m.Spec.MinReadySeconds = machineSet.Spec.Template.Spec.MinReadySeconds
m.Spec.Taints = machineSet.Spec.Template.Spec.Taints
Expand Down
9 changes: 7 additions & 2 deletions internal/webhooks/machine.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,16 @@ func (webhook *Machine) Default(_ context.Context, m *clusterv1.Machine) error {
m.Spec.Version = normalizedVersion
}

DefaultMachineNodeDeletionTimeoutSeconds(m)

return nil
}

// DefaultMachineNodeDeletionTimeoutSeconds defaults the Machine NodeDeletionTimeoutSeconds field.
func DefaultMachineNodeDeletionTimeoutSeconds(m *clusterv1.Machine) {
if m.Spec.Deletion.NodeDeletionTimeoutSeconds == nil {
m.Spec.Deletion.NodeDeletionTimeoutSeconds = ptr.To(defaultNodeDeletionTimeoutSeconds)
}

return nil
}

// ValidateCreate implements webhook.CustomValidator so a webhook will be registered for the type.
Expand Down
Loading