func()

in pkg/service/platform/k8s/k8s.go [392:425]


func (s *K8SService) CreateSecret(gerrit *gerritApi.Gerrit, secretName string, data map[string][]byte, labels map[string]string) error {
	ctx := context.Background()
	vLog := log.WithValues(nameKey, secretName)
	vLog.Info("creating secret")

	_, err := s.CoreClient.Secrets(gerrit.Namespace).Get(ctx, secretName, metaV1.GetOptions{})
	if err == nil {
		return nil
	}

	if !k8sErrors.IsNotFound(err) {
		return fmt.Errorf("failed to GET secret resorce %q: %w", secretName, err)
	}

	log.Info("Creating a new Secret for Gerrit", nameKey, secretName)

	gerritSecretObject := newGerritSecret(secretName, gerrit.Name, gerrit.Namespace, data)

	maps.Copy(gerritSecretObject.Labels, labels)

	err = controllerutil.SetControllerReference(gerrit, gerritSecretObject, s.Scheme)
	if err != nil {
		return fmt.Errorf("failed to set owner %q (Gerrit resource) as a controller OwnerReference on %q (Gerrit Secret resource): %w", gerrit.Name, gerritSecretObject.Name, err)
	}

	_, err = s.CoreClient.Secrets(gerritSecretObject.Namespace).Create(ctx, gerritSecretObject, metaV1.CreateOptions{})
	if err != nil {
		return fmt.Errorf("failed to create gerrit Secret resource %q: %w", gerritSecretObject.Name, err)
	}

	log.Info("Secret has been created", nameKey, gerritSecretObject.Name)

	return nil
}