Skip to content

Commit f0dfd46

Browse files
author
Yuvaraj Kakaraparthi
committed
add NodeVolumeDetachTimeout to MachineDeploymentTopology
1 parent 9c71915 commit f0dfd46

File tree

8 files changed

+41
-13
lines changed

8 files changed

+41
-13
lines changed

api/v1alpha4/conversion.go

+1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ func (src *Cluster) ConvertTo(dstRaw conversion.Hub) error {
6363
dst.Spec.Topology.Workers.MachineDeployments[i].FailureDomain = restored.Spec.Topology.Workers.MachineDeployments[i].FailureDomain
6464
dst.Spec.Topology.Workers.MachineDeployments[i].Variables = restored.Spec.Topology.Workers.MachineDeployments[i].Variables
6565
dst.Spec.Topology.Workers.MachineDeployments[i].NodeDrainTimeout = restored.Spec.Topology.Workers.MachineDeployments[i].NodeDrainTimeout
66+
dst.Spec.Topology.Workers.MachineDeployments[i].NodeVolumeDetachTimeout = restored.Spec.Topology.Workers.MachineDeployments[i].NodeVolumeDetachTimeout
6667
dst.Spec.Topology.Workers.MachineDeployments[i].NodeDeletionTimeout = restored.Spec.Topology.Workers.MachineDeployments[i].NodeDeletionTimeout
6768
}
6869
}

api/v1alpha4/zz_generated.conversion.go

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1beta1/cluster_types.go

+5
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,11 @@ type MachineDeploymentTopology struct {
178178
// +optional
179179
NodeDrainTimeout *metav1.Duration `json:"nodeDrainTimeout,omitempty"`
180180

181+
// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes
182+
// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations.
183+
// +optional
184+
NodeVolumeDetachTimeout *metav1.Duration `json:"nodeVolumeDetachTimeout,omitempty"`
185+
181186
// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine
182187
// hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely.
183188
// Defaults to 10 seconds.

api/v1beta1/zz_generated.deepcopy.go

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1beta1/zz_generated.openapi.go

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/cluster.x-k8s.io_clusters.yaml

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/controllers/topology/cluster/desired_state.go

+8-7
Original file line numberDiff line numberDiff line change
@@ -545,13 +545,14 @@ func computeMachineDeployment(_ context.Context, s *scope.Scope, desiredControlP
545545
Annotations: mergeMap(machineDeploymentTopology.Metadata.Annotations, machineDeploymentBlueprint.Metadata.Annotations),
546546
},
547547
Spec: clusterv1.MachineSpec{
548-
ClusterName: s.Current.Cluster.Name,
549-
Version: pointer.String(version),
550-
Bootstrap: clusterv1.Bootstrap{ConfigRef: contract.ObjToRef(desiredMachineDeployment.BootstrapTemplate)},
551-
InfrastructureRef: *contract.ObjToRef(desiredMachineDeployment.InfrastructureMachineTemplate),
552-
FailureDomain: machineDeploymentTopology.FailureDomain,
553-
NodeDrainTimeout: machineDeploymentTopology.NodeDrainTimeout,
554-
NodeDeletionTimeout: machineDeploymentTopology.NodeDeletionTimeout,
548+
ClusterName: s.Current.Cluster.Name,
549+
Version: pointer.String(version),
550+
Bootstrap: clusterv1.Bootstrap{ConfigRef: contract.ObjToRef(desiredMachineDeployment.BootstrapTemplate)},
551+
InfrastructureRef: *contract.ObjToRef(desiredMachineDeployment.InfrastructureMachineTemplate),
552+
FailureDomain: machineDeploymentTopology.FailureDomain,
553+
NodeDrainTimeout: machineDeploymentTopology.NodeDrainTimeout,
554+
NodeVolumeDetachTimeout: machineDeploymentTopology.NodeVolumeDetachTimeout,
555+
NodeDeletionTimeout: machineDeploymentTopology.NodeDeletionTimeout,
555556
},
556557
},
557558
},

internal/controllers/topology/cluster/desired_state_test.go

+8-6
Original file line numberDiff line numberDiff line change
@@ -1324,17 +1324,19 @@ func TestComputeMachineDeployment(t *testing.T) {
13241324
replicas := int32(5)
13251325
failureDomain := "always-up-region"
13261326
nodeDrainTimeout := metav1.Duration{Duration: 10 * time.Second}
1327+
nodeVolumeDetachTimeout := metav1.Duration{Duration: 10 * time.Second}
13271328
nodeDeletionTimeout := metav1.Duration{Duration: 10 * time.Second}
13281329
mdTopology := clusterv1.MachineDeploymentTopology{
13291330
Metadata: clusterv1.ObjectMeta{
13301331
Labels: map[string]string{"foo": "baz"},
13311332
},
1332-
Class: "linux-worker",
1333-
Name: "big-pool-of-machines",
1334-
Replicas: &replicas,
1335-
FailureDomain: &failureDomain,
1336-
NodeDrainTimeout: &nodeDrainTimeout,
1337-
NodeDeletionTimeout: &nodeDeletionTimeout,
1333+
Class: "linux-worker",
1334+
Name: "big-pool-of-machines",
1335+
Replicas: &replicas,
1336+
FailureDomain: &failureDomain,
1337+
NodeDrainTimeout: &nodeDrainTimeout,
1338+
NodeVolumeDetachTimeout: &nodeVolumeDetachTimeout,
1339+
NodeDeletionTimeout: &nodeDeletionTimeout,
13381340
}
13391341

13401342
t.Run("Generates the machine deployment and the referenced templates", func(t *testing.T) {

0 commit comments

Comments
 (0)