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
}