func()

in appconfigmgrv2/controllers/ingress.go [36:71]


func (r *AppEnvConfigTemplateV2Reconciler) reconcileIngress(
	ctx context.Context,
	in *appconfig.AppEnvConfigTemplateV2,
) error {
	ing := ingress(in)
	if ing == nil {
		if err := r.removeIngress(ctx, in); err != nil {
			return fmt.Errorf("garbage collecting: %v", err)
		}
		return nil
	}

	if err := controllerutil.SetControllerReference(in, ing, r.Scheme); err != nil {
		return fmt.Errorf("setting controller reference for ingress: %v", err)
	}

	log.Info("Reconciling", "resource", "ingress", "name", ing.Name, "namespace", ing.Namespace)
	found := &v1beta1.Ingress{}
	err := r.Get(ctx, types.NamespacedName{Name: ing.Name, Namespace: ing.Namespace}, found)
	if err != nil && errors.IsNotFound(err) {
		log.Info("Creating", "resource", "ingress", "namespace", ing.Namespace, "name", ing.Name)
		err = r.Create(ctx, ing)
		return err
	} else if err != nil {
		return err
	}

	if !reflect.DeepEqual(ing.Spec, found.Spec) {
		log.Info("Updating", "resource", "ingress", "namespace", ing.Namespace, "name", ing.Name)
		if err := r.Update(ctx, found); err != nil {
			return err
		}
	}

	return nil
}