From 160f30e952631a4c285d13d7588a1bf7a3309221 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 11:45:13 +0100 Subject: [PATCH] chore(deps): bump io.kubernetes:client-java from 18.0.1 to 21.0.2 (#262) * chore(deps): bump io.kubernetes:client-java from 18.0.1 to 21.0.2 Bumps [io.kubernetes:client-java](https://github.com/kubernetes-client/java) from 18.0.1 to 21.0.2. - [Release notes](https://github.com/kubernetes-client/java/releases) - [Changelog](https://github.com/kubernetes-client/java/blob/master/CHANGELOG.md) - [Commits](https://github.com/kubernetes-client/java/compare/v18.0.1...v21.0.2) --- updated-dependencies: - dependency-name: io.kubernetes:client-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * fix: update to api changes --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Piotr Wielgolaski --- james-controller-kubernetes/build.gradle | 2 +- .../kubernetes/KubernetesController.java | 63 +++++++------------ 2 files changed, 23 insertions(+), 42 deletions(-) diff --git a/james-controller-kubernetes/build.gradle b/james-controller-kubernetes/build.gradle index 0dba1750..bff32329 100644 --- a/james-controller-kubernetes/build.gradle +++ b/james-controller-kubernetes/build.gradle @@ -29,7 +29,7 @@ dependencies { implementation project(':james-agent-common') implementation project(':james-agent-io') implementation "com.google.guava:guava:${versions.guava}" - implementation 'io.kubernetes:client-java:18.0.1' + implementation 'io.kubernetes:client-java:21.0.2' testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.1") testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.0") diff --git a/james-controller-kubernetes/src/main/java/com/tomtom/james/controller/kubernetes/KubernetesController.java b/james-controller-kubernetes/src/main/java/com/tomtom/james/controller/kubernetes/KubernetesController.java index 213717da..01e2cc4f 100644 --- a/james-controller-kubernetes/src/main/java/com/tomtom/james/controller/kubernetes/KubernetesController.java +++ b/james-controller-kubernetes/src/main/java/com/tomtom/james/controller/kubernetes/KubernetesController.java @@ -64,10 +64,9 @@ public class KubernetesController implements JamesController { private static final Logger LOG = Logger.getLogger(KubernetesController.class); private final ExecutorService executor; - private final Map> informationPointsCache; + private final Map> informationPointsCache; private ApiClient apiClient; - @Override public String getId() { return "james.controller.kubernetes"; @@ -98,8 +97,8 @@ public void initialize(final JamesControllerConfiguration jamesControllerConfigu apiClient = createApiClient(configuration.getUrl(), configuration.getToken()); executor.execute(() -> { while (!Thread.interrupted()) { - try(final Watch watch = - createConfigMapWatch(apiClient, configuration.getNamespace(), configuration.getLabels())) { + try (final Watch watch = + createConfigMapWatch(apiClient, configuration.getNamespace(), configuration.getLabels())) { watchConfigMapChanges(watch, informationPointService); } catch (final Exception e) { LOG.info("Unable to setup k8s watcher", e); @@ -149,25 +148,17 @@ private void watchConfigMapChanges(final Watch watch, } } - private Map updatePairedMaps(final V1ObjectMeta metadata, final String name) { + private Map updatePairedMaps(final V1ObjectMeta metadata, final String name) { final String mainMapName = getSecondPartOfConfigurationName(name); try { final String fieldSelector = "metadata.name=" + mainMapName; final V1ConfigMapList v1ConfigMapList = - new CoreV1Api(apiClient).listNamespacedConfigMap(metadata.getNamespace(), - null, - null, - null, - fieldSelector, - null, - null, - null, - null, - null, - false); + new CoreV1Api(apiClient).listNamespacedConfigMap(metadata.getNamespace()) + .fieldSelector(fieldSelector) + .watch(false).execute(); return v1ConfigMapList.getItems().stream().findFirst().map(V1ConfigMap::getData) - .orElse(Collections.emptyMap()); + .orElse(Collections.emptyMap()); } catch (ApiException e) { LOG.warn("Problem while looking for map other map"); return Collections.emptyMap(); @@ -180,10 +171,10 @@ private String getSecondPartOfConfigurationName(final String name) { //configuration is stored in to config maps: // - configMap with configuration: CONFIG_NAME // - configMap with script files: CONFIG_NAME-files - if(name.endsWith("-files")) { + if (name.endsWith("-files")) { toReplace = "-files"; suffix = ""; - }else { + } else { suffix = "-files"; toReplace = ""; } @@ -205,41 +196,30 @@ private Watch createConfigMapWatch( .collect(Collectors.joining(",")); return Watch.createWatch( apiClient, - api.listNamespacedConfigMapCall(namespace, - null, - null, - null, - null, - labelSelector, - null, - null, - null, - null, - true, - null), + api.listNamespacedConfigMap(namespace).labelSelector(labelSelector).watch(true).buildCall(null), new TypeToken>() { }.getType()); } - private Collection readAllConfigurations(Map configMaps) { - Map configurations = new HashMap<>(); + private Collection readAllConfigurations(Map configMaps) { + Map configurations = new HashMap<>(); InMemoryScriptStore scriptStore = new InMemoryScriptStore(); for (Map.Entry configEntry : configMaps.entrySet()) { final ConfigParser parser = ConfigIOFactory.getInstance().getParser(configEntry.getKey()).orElse(null); - if(parser != null){ + if (parser != null) { configurations.put(parser, configEntry.getValue()); - } else if (configEntry.getKey().endsWith(".groovy")){ + } else if (configEntry.getKey().endsWith(".groovy")) { scriptStore.registerFile(configEntry.getKey(), configEntry.getValue()); } else { LOG.warn("Unrecognized format:" + configEntry.getKey()); } } - return configurations.entrySet().stream().flatMap(entry-> { - try (InputStream configStream = new ByteArrayInputStream(entry.getValue().getBytes());){ - return entry.getKey().parseConfiguration(configStream,scriptStore).stream(); + return configurations.entrySet().stream().flatMap(entry -> { + try (InputStream configStream = new ByteArrayInputStream(entry.getValue().getBytes());) { + return entry.getKey().parseConfiguration(configStream, scriptStore).stream(); } catch (IOException e) { - LOG.error("Unable to parse configurations: "+configMaps.keySet(),e); + LOG.error("Unable to parse configurations: " + configMaps.keySet(), e); return Stream.empty(); } }).collect(Collectors.toSet()); @@ -247,9 +227,10 @@ private Collection readAllConfigurations(Map private void processUpdate(final String configName, final Collection informationPoints, final InformationPointService informationPointService) { - final Map cache = informationPointsCache.computeIfAbsent(configName, name -> new LinkedHashMap<>()); + final Map cache = + informationPointsCache.computeIfAbsent(configName, name -> new LinkedHashMap<>()); final Map informationPointsMap = informationPoints.stream().collect( - Collectors.toMap(informationPoint -> informationPoint.getMethodReference(),Function.identity())); + Collectors.toMap(informationPoint -> informationPoint.getMethodReference(), Function.identity())); final MapDifference difference = Maps.difference(informationPointsMap, cache);