func()

in operator/pkg/awsprovider/instances/reconciler.go [47:67]


func (c *Controller) Reconcile(ctx context.Context, dataplane *v1alpha1.DataPlane) error {
	asg, err := c.getAutoScalingGroup(ctx, AutoScalingGroupNameFor(dataplane))
	if err != nil {
		return fmt.Errorf("getting auto scaling group for %v, %w", dataplane.Spec.ClusterName, err)
	}
	if asg == nil {
		if err := c.createAutoScalingGroup(ctx, dataplane); err != nil {
			return fmt.Errorf("creating auto scaling group for %v, %w", dataplane.Spec.ClusterName, err)
		}
		zap.S().Infof("[%s] Created autoscaling group", dataplane.Spec.ClusterName)
		return nil
	}
	if asg.Status != nil && *asg.Status == "Delete in progress" {
		// there are scenarios if you delete ASG and recreate quickly ASG might still be getting deleted
		return fmt.Errorf("ASG %v deletion in progress", ptr.StringValue(asg.AutoScalingGroupName))
	}
	if err := c.updateAutoScalingGroup(ctx, dataplane, asg); err != nil {
		return fmt.Errorf("updating auto scaling group %v, %w", AutoScalingGroupNameFor(dataplane), err)
	}
	return nil
}