Skip to content
This repository was archived by the owner on Jan 31, 2025. It is now read-only.

Commit

Permalink
BC-7239 - write first draft
Browse files Browse the repository at this point in the history
  • Loading branch information
mamutmk5 authored Jun 21, 2024
1 parent 9b29d79 commit d5483dc
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 3 deletions.
18 changes: 15 additions & 3 deletions src/main/java/de/svs/doido/mongo/ConfigmapApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,34 @@

import jakarta.ws.rs.Path;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import jakarta.inject.Inject;
import svs.doido.mongo.dto.Configmap;
import svs.doido.mongo.kubernetes.configmap.Read;
import svs.doido.mongo.kubernetes.configmap.Write;

@Path("/configmap")
public class ConfigmapApi {

@Inject
Read cfg;
Read cfgRead;

@Inject
Write cfgWrite;

@GET
@Path("/{namespace}/{configmapName}")
@Produces(MediaType.APPLICATION_JSON)
public Configmap configmaps(String namespace, String configmapName) {
return cfg.readConfigmap(namespace,configmapName);
public Configmap configmapsRead(String namespace, String configmapName) {
return cfgRead.readConfigmap(namespace,configmapName);
}

@POST
@Path("/{namespace}/{configmapName}")
@Produces(MediaType.APPLICATION_JSON)
public void configmapsWrite(String namespace, String configmapName) {
cfgWrite.writeConfigmap(namespace,configmapName);
}
}
51 changes: 51 additions & 0 deletions src/main/java/de/svs/doido/mongo/kubernetes/configmap/Write.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package svs.doido.mongo.kubernetes.configmap;

import svs.doido.mongo.dto.Configmap;
import io.fabric8.kubernetes.api.model.ConfigMap;
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.client.KubernetesClient;
import jakarta.inject.Inject;
import jakarta.enterprise.context.RequestScoped;

import java.util.Map;
import java.util.HashMap;

@RequestScoped
public class Write {

@Inject
KubernetesClient client;

public void writeConfigmap(String namespace, String name, Configmap cfg) {
ConfigMap configmap = client.configMaps().inNamespace(namespace).withName(cfg.getName()).get();
Map<String,String> labels;
Map<String,String> data;
ObjectMeta meta;

if(configmap != NULL) {
labels = configmap.getMetadata().getLabels();
if(
labels.containsKey("app.kubernetes.io/name") &&
labels.get("app.kubernetes.io/name").equal("doido-mongo")
) {
data = configmap.getData();
data.put("uri", cfg.getUri);
configmap.setData(data);
client.configMaps().resource(configmap).createOrReplace();
}
}
else {
labels = new HashMap<String,String>();
data = new HashMap<String,String>();
labels.put("app.kubernetes.io/name", "doido-mongo");
data.put("uri", cfg.getUri());
configmap = new ConfigMapBuilder().withNewMetadata().withName(cfg.getName()).withNamespace(namespace).and().build();
configmap.setData(data);
meta = configmap.getMetadata();
meta.setLables(labels);
configmap.setMetadata(meta);
client.configMaps().resource(configmap).create();
}
}
}

0 comments on commit d5483dc

Please sign in to comment.