func()

in pkg/controller/ingress/ingress_controller.go [404:435]


func (r *ReconcileIngress) detachTGFromASG(instance *extensionsv1beta1.Ingress) error {
	asgNames, targetGroupARN, err := r.getASGsAndTargetGroup(instance)
	if err != nil {
		return err
	}

	stackName := instance.ObjectMeta.Name

	for _, asgName := range asgNames {
		existingTargetGroupARNs, err := r.getTargetGroupsFromASG(asgName)
		if err != nil {
			r.log.Error("error describing ASG", zap.String("stackName", stackName), zap.String("asgName", asgName))
			return err
		}

		if contains(existingTargetGroupARNs, targetGroupARN) {
			r.log.Info("detaching targetGroupARN from ASG", zap.String("stackName", stackName), zap.String("asgName", asgName), zap.String("targetGroupARN", targetGroupARN))
			_, err = r.autoscalingSvc.DetachLoadBalancerTargetGroups(&autoscaling.DetachLoadBalancerTargetGroupsInput{
				AutoScalingGroupName: aws.String(asgName),
				TargetGroupARNs:      aws.StringSlice([]string{targetGroupARN}),
			})
			if err != nil {
				r.log.Error("error detaching targetGroupARN from ASG", zap.String("stackName", stackName), zap.String("asgName", asgName), zap.String("targetGroupARN", targetGroupARN))
				return err
			}
		} else {
			r.log.Info("targetGroupARN already removed from ASG", zap.String("stackName", stackName), zap.String("asgName", asgName), zap.String("targetGroupARN", targetGroupARN))
		}
	}

	return nil
}