func()

in pkg/controller/ingress/ingress_controller.go [371:402]


func (r *ReconcileIngress) attachTGToASG(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("targetGroupARN already attached to ASG", zap.String("stackName", stackName), zap.String("asgName", asgName), zap.String("targetGroupARN", targetGroupARN))
		} else {
			r.log.Info("attaching targetGroupARN to ASG", zap.String("stackName", stackName), zap.String("asgName", asgName), zap.String("targetGroupARN", targetGroupARN))
			_, err = r.autoscalingSvc.AttachLoadBalancerTargetGroups(&autoscaling.AttachLoadBalancerTargetGroupsInput{
				AutoScalingGroupName: aws.String(asgName),
				TargetGroupARNs:      aws.StringSlice([]string{targetGroupARN}),
			})
			if err != nil {
				r.log.Error("error attaching targetGroupARN to ASG", zap.String("stackName", stackName), zap.String("asgName", asgName), zap.String("targetGroupARN", targetGroupARN))
				return err
			}
		}
	}

	return nil
}