func()

in appconfigmgrv2/controllers/secrets.go [71:113]


func (r *AppEnvConfigTemplateV2Reconciler) reconcileSecret(
	ctx context.Context,
	s *corev1.Secret,
	toSecret *corev1.Secret,
) error {
	foundOriginal := &corev1.Secret{}

	log.Info("Check", "resource", "secrets", "namespace", s.Namespace, "name", s.Name)

	err := r.Get(ctx, types.NamespacedName{Name: s.Name, Namespace: s.Namespace}, foundOriginal)
	if err != nil {
		log.Error(err, "resource", "namespace", s.Namespace, "name", s.Name)
		return err
	}

	found := &corev1.Secret{}

	err = r.Get(ctx, types.NamespacedName{Name: toSecret.Name, Namespace: toSecret.Namespace}, found)
	if err != nil && errors.IsNotFound(err) {
		log.Info("Creating Copy", "resource", "secrets", "namespace", toSecret.Namespace, "name", toSecret.Name)
		found = foundOriginal.DeepCopy()
		found.Namespace = toSecret.Namespace
		found.SetResourceVersion("")
		err = r.Create(ctx, found)
		return err
	} else if err != nil {
		return err
	}

	if !reflect.DeepEqual(foundOriginal, found) {
		// ClusterIP is assigned after creation when it is not originally set
		// so we will preserve the value.
		found = foundOriginal.DeepCopy()
		found.Namespace = s.Namespace
		found.SetResourceVersion("")
		log.Info("Updating", "resource", "services", "namespace", toSecret.Namespace, "name", toSecret.Name)
		if err := r.Update(ctx, found); err != nil {
			return err
		}
	}

	return nil
}