Skip to content

Commit 82257b1

Browse files
authored
Merge pull request #7362 from farodin91/add-min-ready-seconds
✨ Add topology field for MinReadySeconds
2 parents e032bec + 2815007 commit 82257b1

File tree

9 files changed

+33
-1
lines changed

9 files changed

+33
-1
lines changed

api/v1alpha4/conversion.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ func (src *Cluster) ConvertTo(dstRaw conversion.Hub) error {
6969
dst.Spec.Topology.Workers.MachineDeployments[i].NodeDrainTimeout = restored.Spec.Topology.Workers.MachineDeployments[i].NodeDrainTimeout
7070
dst.Spec.Topology.Workers.MachineDeployments[i].NodeVolumeDetachTimeout = restored.Spec.Topology.Workers.MachineDeployments[i].NodeVolumeDetachTimeout
7171
dst.Spec.Topology.Workers.MachineDeployments[i].NodeDeletionTimeout = restored.Spec.Topology.Workers.MachineDeployments[i].NodeDeletionTimeout
72+
dst.Spec.Topology.Workers.MachineDeployments[i].MinReadySeconds = restored.Spec.Topology.Workers.MachineDeployments[i].MinReadySeconds
7273
dst.Spec.Topology.Workers.MachineDeployments[i].MachineHealthCheck = restored.Spec.Topology.Workers.MachineDeployments[i].MachineHealthCheck
7374
}
7475
}

api/v1alpha4/zz_generated.conversion.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1beta1/cluster_types.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,13 @@ type MachineDeploymentTopology struct {
199199
// +optional
200200
NodeDeletionTimeout *metav1.Duration `json:"nodeDeletionTimeout,omitempty"`
201201

202+
// Minimum number of seconds for which a newly created machine should
203+
// be ready.
204+
// Defaults to 0 (machine will be considered available as soon as it
205+
// is ready)
206+
// +optional
207+
MinReadySeconds *int32 `json:"minReadySeconds,omitempty"`
208+
202209
// Variables can be used to customize the MachineDeployment through patches.
203210
// +optional
204211
Variables *MachineDeploymentVariables `json:"variables,omitempty"`

api/v1beta1/zz_generated.deepcopy.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1beta1/zz_generated.openapi.go

Lines changed: 7 additions & 0 deletions
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

Lines changed: 6 additions & 0 deletions
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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,8 @@ func computeMachineDeployment(_ context.Context, s *scope.Scope, desiredControlP
601601
Namespace: s.Current.Cluster.Namespace,
602602
},
603603
Spec: clusterv1.MachineDeploymentSpec{
604-
ClusterName: s.Current.Cluster.Name,
604+
ClusterName: s.Current.Cluster.Name,
605+
MinReadySeconds: machineDeploymentTopology.MinReadySeconds,
605606
Template: clusterv1.MachineTemplateSpec{
606607
ObjectMeta: clusterv1.ObjectMeta{
607608
Labels: mergeMap(machineDeploymentTopology.Metadata.Labels, machineDeploymentBlueprint.Metadata.Labels),

internal/controllers/topology/cluster/desired_state_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1328,6 +1328,7 @@ func TestComputeMachineDeployment(t *testing.T) {
13281328
nodeDrainTimeout := metav1.Duration{Duration: 10 * time.Second}
13291329
nodeVolumeDetachTimeout := metav1.Duration{Duration: 10 * time.Second}
13301330
nodeDeletionTimeout := metav1.Duration{Duration: 10 * time.Second}
1331+
minReadySeconds := int32(5)
13311332
mdTopology := clusterv1.MachineDeploymentTopology{
13321333
Metadata: clusterv1.ObjectMeta{
13331334
Labels: map[string]string{"foo": "baz"},
@@ -1339,6 +1340,7 @@ func TestComputeMachineDeployment(t *testing.T) {
13391340
NodeDrainTimeout: &nodeDrainTimeout,
13401341
NodeVolumeDetachTimeout: &nodeVolumeDetachTimeout,
13411342
NodeDeletionTimeout: &nodeDeletionTimeout,
1343+
MinReadySeconds: &minReadySeconds,
13421344
}
13431345

13441346
t.Run("Generates the machine deployment and the referenced templates", func(t *testing.T) {
@@ -1365,6 +1367,7 @@ func TestComputeMachineDeployment(t *testing.T) {
13651367

13661368
actualMd := actual.Object
13671369
g.Expect(*actualMd.Spec.Replicas).To(Equal(replicas))
1370+
g.Expect(*actualMd.Spec.MinReadySeconds).To(Equal(minReadySeconds))
13681371
g.Expect(*actualMd.Spec.Template.Spec.FailureDomain).To(Equal(failureDomain))
13691372
g.Expect(*actualMd.Spec.Template.Spec.NodeDrainTimeout).To(Equal(nodeDrainTimeout))
13701373
g.Expect(*actualMd.Spec.Template.Spec.NodeDeletionTimeout).To(Equal(nodeDeletionTimeout))

test/e2e/data/infrastructure-docker/v1beta1/main/bases/cluster-with-topology.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ spec:
2626
name: "md-0"
2727
nodeDeletionTimeout: "30s"
2828
nodeVolumeDetachTimeout: "5m"
29+
minReadySeconds: 5
2930
replicas: ${WORKER_MACHINE_COUNT}
3031
failureDomain: fd4
3132
variables:

0 commit comments

Comments
 (0)