Merge pull request #70384 from grayluck/hccheck-cleanup

Remove return value of mergeHealthChecks. Simplified HC equivalence check
This commit is contained in:
Kubernetes Prow Robot 2019-08-08 19:35:25 -07:00 committed by GitHub
commit 9a5b262532
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 15 deletions

View File

@ -640,7 +640,7 @@ func makeHTTPHealthCheck(name, path string, port int32) *compute.HttpHealthCheck
// The HC interval will be reconciled to 8 seconds.
// If the existing health check is larger than the default interval,
// the configuration will be kept.
func mergeHTTPHealthChecks(hc, newHC *compute.HttpHealthCheck) *compute.HttpHealthCheck {
func mergeHTTPHealthChecks(hc, newHC *compute.HttpHealthCheck) {
if hc.CheckIntervalSec > newHC.CheckIntervalSec {
newHC.CheckIntervalSec = hc.CheckIntervalSec
}
@ -653,16 +653,23 @@ func mergeHTTPHealthChecks(hc, newHC *compute.HttpHealthCheck) *compute.HttpHeal
if hc.HealthyThreshold > newHC.HealthyThreshold {
newHC.HealthyThreshold = hc.HealthyThreshold
}
return newHC
}
// needToUpdateHTTPHealthChecks checks whether the http healthcheck needs to be
// updated.
func needToUpdateHTTPHealthChecks(hc, newHC *compute.HttpHealthCheck) bool {
changed := hc.Port != newHC.Port || hc.RequestPath != newHC.RequestPath || hc.Description != newHC.Description
changed = changed || hc.CheckIntervalSec < newHC.CheckIntervalSec || hc.TimeoutSec < newHC.TimeoutSec
changed = changed || hc.UnhealthyThreshold < newHC.UnhealthyThreshold || hc.HealthyThreshold < newHC.HealthyThreshold
return changed
switch {
case
hc.Port != newHC.Port,
hc.RequestPath != newHC.RequestPath,
hc.Description != newHC.Description,
hc.CheckIntervalSec < newHC.CheckIntervalSec,
hc.TimeoutSec < newHC.TimeoutSec,
hc.UnhealthyThreshold < newHC.UnhealthyThreshold,
hc.HealthyThreshold < newHC.HealthyThreshold:
return true
}
return false
}
func (g *Cloud) ensureHTTPHealthCheck(name, path string, port int32) (hc *compute.HttpHealthCheck, err error) {
@ -685,7 +692,7 @@ func (g *Cloud) ensureHTTPHealthCheck(name, path string, port int32) (hc *comput
klog.V(4).Infof("Checking http health check params %s", name)
if needToUpdateHTTPHealthChecks(hc, newHC) {
klog.Warningf("Health check %v exists but parameters have drifted - updating...", name)
newHC = mergeHTTPHealthChecks(hc, newHC)
mergeHTTPHealthChecks(hc, newHC)
if err := g.UpdateHTTPHealthCheck(newHC); err != nil {
klog.Warningf("Failed to reconcile http health check %v parameters", name)
return nil, err

View File

@ -415,7 +415,7 @@ func (g *Cloud) ensureInternalHealthCheck(name string, svcName types.NamespacedN
if needToUpdateHealthChecks(hc, expectedHC) {
klog.V(2).Infof("ensureInternalHealthCheck: health check %v exists but parameters have drifted - updating...", name)
expectedHC = mergeHealthChecks(hc, expectedHC)
mergeHealthChecks(hc, expectedHC)
if err := g.UpdateHealthCheck(expectedHC); err != nil {
klog.Warningf("Failed to reconcile http health check %v parameters", name)
return nil, err
@ -637,7 +637,7 @@ func firewallRuleEqual(a, b *compute.Firewall) bool {
// The HC interval will be reconciled to 8 seconds.
// If the existing health check is larger than the default interval,
// the configuration will be kept.
func mergeHealthChecks(hc, newHC *compute.HealthCheck) *compute.HealthCheck {
func mergeHealthChecks(hc, newHC *compute.HealthCheck) {
if hc.CheckIntervalSec > newHC.CheckIntervalSec {
newHC.CheckIntervalSec = hc.CheckIntervalSec
}
@ -650,18 +650,24 @@ func mergeHealthChecks(hc, newHC *compute.HealthCheck) *compute.HealthCheck {
if hc.HealthyThreshold > newHC.HealthyThreshold {
newHC.HealthyThreshold = hc.HealthyThreshold
}
return newHC
}
// needToUpdateHealthChecks checks whether the healthcheck needs to be updated.
func needToUpdateHealthChecks(hc, newHC *compute.HealthCheck) bool {
if hc.HttpHealthCheck == nil || newHC.HttpHealthCheck == nil {
switch {
case
hc.HttpHealthCheck == nil,
newHC.HttpHealthCheck == nil,
hc.HttpHealthCheck.Port != newHC.HttpHealthCheck.Port,
hc.HttpHealthCheck.RequestPath != newHC.HttpHealthCheck.RequestPath,
hc.Description != newHC.Description,
hc.CheckIntervalSec < newHC.CheckIntervalSec,
hc.TimeoutSec < newHC.TimeoutSec,
hc.UnhealthyThreshold < newHC.UnhealthyThreshold,
hc.HealthyThreshold < newHC.HealthyThreshold:
return true
}
changed := hc.HttpHealthCheck.Port != newHC.HttpHealthCheck.Port || hc.HttpHealthCheck.RequestPath != newHC.HttpHealthCheck.RequestPath || hc.Description != newHC.Description
changed = changed || hc.CheckIntervalSec < newHC.CheckIntervalSec || hc.TimeoutSec < newHC.TimeoutSec
changed = changed || hc.UnhealthyThreshold < newHC.UnhealthyThreshold || hc.HealthyThreshold < newHC.HealthyThreshold
return changed
return false
}
// backendsListEqual asserts that backend lists are equal by instance group link only