func createOrUpdateSecret()

in reconcilers/reconciler.go [103:130]


func createOrUpdateSecret(ctx context.Context, clientset kubernetes.Interface, data goalresolvers.CertificateData) *error {
	logger := log.MustGetLogger(ctx)

	secret, getErr := clientset.CoreV1().Secrets(config.AppConfig.Namespace).Get(ctx, utils.SecretName(), metav1.GetOptions{})

	if k8serrors.IsNotFound(getErr) {
		logger.Infof(ctx, "create secret %s", utils.SecretName())
		cerr := createTlsSecret(ctx, clientset, data)
		if cerr != nil {
			logger.Errorf(ctx, "fail to create secret %s. error: %s", utils.SecretName(), *cerr)
			return cerr
		}
		return nil
	}

	if getErr != nil {
		logger.Errorf(ctx, "get secret %s failed. error: %s", utils.SecretName(), getErr)
		return &getErr
	}

	// Label has been checked in the goal resolver
	cerr := updateTlsSecret(ctx, clientset, data, secret)
	if cerr != nil {
		logger.Errorf(ctx, "fail to update secret %s. error: %s", utils.SecretName(), *cerr)
		return cerr
	}
	return nil
}