Skip to content

Commit 08ba909

Browse files
Merge pull request #353 from cynepco3hahue/mhc_rs_optional
Make remediation strategy optional parameter
2 parents 8191e1c + c60b339 commit 08ba909

File tree

5 files changed

+12
-7
lines changed

5 files changed

+12
-7
lines changed

install/0000_30_machine-api-operator_07_machinehealthcheck.crd.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ spec:
4040
description: Label selector to match machines whose health will be exercised
4141
type: object
4242
required:
43-
- remediationStrategy
4443
- selector
4544
type: object
4645
status:

pkg/apis/healthchecking/v1alpha1/machinehealthcheck_types.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
// ConfigMapNodeUnhealthyConditions contains the name of the unhealthy conditions config map
88
const ConfigMapNodeUnhealthyConditions = "node-unhealthy-conditions"
99

10+
// RemediationStrategyType contains remediation strategy type
1011
type RemediationStrategyType string
1112

1213
// +genclient
@@ -40,7 +41,8 @@ type MachineHealthCheckList struct {
4041
type MachineHealthCheckSpec struct {
4142
// RemediationStrategy to use in case of problem detection
4243
// default is machine deletion
43-
RemediationStrategy RemediationStrategyType `json:"remediationStrategy"`
44+
// +optional
45+
RemediationStrategy *RemediationStrategyType `json:"remediationStrategy,omitempty"`
4446
// Label selector to match machines whose health will be exercised
4547
Selector metav1.LabelSelector `json:"selector"`
4648
}

pkg/apis/healthchecking/v1alpha1/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.

pkg/controller/machinehealthcheck/machinehealthcheck_controller.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ func getMachineHealthCheckListOptions() *client.ListOptions {
155155
}
156156
}
157157

158-
func remediate(r *ReconcileMachineHealthCheck, remediationStrategy healthcheckingv1alpha1.RemediationStrategyType, machine *mapiv1.Machine) (reconcile.Result, error) {
158+
func remediate(r *ReconcileMachineHealthCheck, remediationStrategy *healthcheckingv1alpha1.RemediationStrategyType, machine *mapiv1.Machine) (reconcile.Result, error) {
159159
glog.Infof("Initialising remediation logic for machine %s", machine.Name)
160160
if !hasMachineSetOwner(*machine) {
161161
glog.Infof("Machine %s has no machineSet controller owner, skipping remediation", machine.Name)
@@ -200,10 +200,9 @@ func remediate(r *ReconcileMachineHealthCheck, remediationStrategy healthcheckin
200200
// apply remediation logic, if at least one condition last more than specified timeout
201201
// specific remediation logic goes here
202202
if unhealthyForTooLong(nodeCondition, conditionTimeout) {
203-
switch remediationStrategy {
204-
case remediationStrategyReboot:
203+
if remediationStrategy != nil && *remediationStrategy == remediationStrategyReboot {
205204
return r.remediationStrategyReboot(machine, node)
206-
default:
205+
} else {
207206
if isMaster(*machine, r.client) {
208207
glog.Infof("The machine %s is a master node, skipping remediation", machine.Name)
209208
return reconcile.Result{}, nil

pkg/controller/machinehealthcheck/machinehealthcheck_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ func testReconcile(t *testing.T, remediationWaitTime time.Duration, initObjects
247247
}
248248

249249
for _, tc := range testsCases {
250-
machineHealthCheck.Spec.RemediationStrategy = tc.remediationStrategy
250+
machineHealthCheck.Spec.RemediationStrategy = &tc.remediationStrategy
251251
objects := []runtime.Object{}
252252
objects = append(objects, initObjects...)
253253
objects = append(objects, machineHealthCheck)

0 commit comments

Comments
 (0)