in controllers/manager/gatewayvmconfiguration_controller.go [275:323]
func (r *GatewayVMConfigurationReconciler) ensureDeleted(
ctx context.Context,
vmConfig *egressgatewayv1alpha1.GatewayVMConfiguration,
) (ctrl.Result, error) {
log := log.FromContext(ctx)
log.Info(fmt.Sprintf("Reconciling gatewayVMConfiguration deletion %s/%s", vmConfig.Namespace, vmConfig.Name))
if !controllerutil.ContainsFinalizer(vmConfig, consts.VMConfigFinalizerName) {
log.Info("vmConfig does not have finalizer, no additional cleanup needed")
return ctrl.Result{}, nil
}
mc := metrics.NewMetricsContext(
os.Getenv(consts.PodNamespaceEnvKey),
"delete_gateway_vm_configuration",
r.SubscriptionID(),
r.ResourceGroup,
strings.ToLower(fmt.Sprintf("%s/%s", vmConfig.Namespace, vmConfig.Name)),
)
succeeded := false
defer func() { mc.ObserveControllerReconcileMetrics(succeeded) }()
vmss, _, err := r.getGatewayVMSS(ctx, vmConfig)
if err != nil {
log.Error(err, "failed to get vmss")
return ctrl.Result{}, err
}
if _, err := r.reconcileVMSS(ctx, vmConfig, vmss, "", false); err != nil {
log.Error(err, "failed to reconcile VMSS")
return ctrl.Result{}, err
}
if err := r.ensurePublicIPPrefixDeleted(ctx, vmConfig); err != nil {
log.Error(err, "failed to delete managed public ip prefix")
return ctrl.Result{}, err
}
log.Info("Removing finalizer")
controllerutil.RemoveFinalizer(vmConfig, consts.VMConfigFinalizerName)
if err := r.Update(ctx, vmConfig); err != nil {
log.Error(err, "failed to remove finalizer")
return ctrl.Result{}, err
}
log.Info("GatewayVMConfiguration deletion reconciled")
succeeded = true
return ctrl.Result{}, nil
}