in pkg/service/platform/k8s/k8s.go [524:557]
func (s *K8SService) CreateConfigMap(instance *gerritApi.Gerrit, configMapName string, configMapData map[string]string) error {
ctx := context.Background()
labels := platformHelper.GenerateLabels(instance.Name)
configMapObject := &coreV1Api.ConfigMap{
ObjectMeta: metaV1.ObjectMeta{
Name: configMapName,
Namespace: instance.Namespace,
Labels: labels,
},
Data: configMapData,
}
if err := controllerutil.SetControllerReference(instance, configMapObject, s.Scheme); err != nil {
return errors.Wrapf(err, "Couldn't set reference for Config Map %v object", configMapObject.Name)
}
_, err := s.CoreClient.ConfigMaps(instance.Namespace).Get(ctx, configMapObject.Name, metaV1.GetOptions{})
if err == nil {
return nil
}
if !k8sErrors.IsNotFound(err) {
return errors.Wrapf(err, "Couldn't get ConfigMap %v object", configMapObject.Name)
}
cm, err := s.CoreClient.ConfigMaps(configMapObject.Namespace).Create(ctx, configMapObject, metaV1.CreateOptions{})
if err != nil {
return errors.Wrapf(err, "Couldn't create Config Map %v object", cm.Name)
}
log.Info(fmt.Sprintf("ConfigMap %s/%s has been created", cm.Namespace, cm.Name))
return nil
}