code: func (c *Cloud) ensureLoadBalancerHealthCheck(loadBalancer *elb.LoadBalancerDescription, protocol string, port int32, path string, annotations map[string]string) error {
  	name := aws.StringValue(loadBalancer.LoadBalancerName)
  
  	actual := loadBalancer.HealthCheck
  	expectedTarget := protocol + ":" + strconv.FormatInt(int64(port), 10) + path
  	expected, err := c.getExpectedHealthCheck(expectedTarget, annotations)
  	if err != nil {
  		return fmt.Errorf("cannot update health check for load balancer %q: %q", name, err)
  	}
  
  	// comparing attributes 1 by 1 to avoid breakage in case a new field is
  	// added to the HC which breaks the equality
  	if aws.StringValue(expected.Target) == aws.StringValue(actual.Target) &&
  		aws.Int64Value(expected.HealthyThreshold) == aws.Int64Value(actual.HealthyThreshold) &&
  		aws.Int64Value(expected.UnhealthyThreshold) == aws.Int64Value(actual.UnhealthyThreshold) &&
  		aws.Int64Value(expected.Interval) == aws.Int64Value(actual.Interval) &&
  		aws.Int64Value(expected.Timeout) == aws.Int64Value(actual.Timeout) {
  		return nil
  	}
  
  	request := &elb.ConfigureHealthCheckInput{}
  	request.HealthCheck = expected
  	request.LoadBalancerName = loadBalancer.LoadBalancerName
  
  	_, err = c.elb.ConfigureHealthCheck(request)
  	if err != nil {
  		return fmt.Errorf("error configuring load balancer health check for %q: %q", name, err)
  	}
  
  	return nil
  }
docs: // Makes sure that the health check for an ELB matches the configured health check node port