Skip to content

Commit

Permalink
Merge pull request quarkusio#46386 from ch007m/kubernetes-devservice
Browse files Browse the repository at this point in the history
Create a KubernetesDevServiceInfoBuildItem
  • Loading branch information
iocanel authored Feb 20, 2025
2 parents 0c9ccb3 + d695154 commit d0768d3
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import io.fabric8.kubernetes.client.Config;
import io.quarkus.deployment.Feature;
import io.quarkus.deployment.IsNormal;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.annotations.BuildSteps;
import io.quarkus.deployment.builditem.CuratedApplicationShutdownBuildItem;
Expand All @@ -62,6 +63,7 @@
import io.quarkus.kubernetes.client.runtime.internal.KubernetesClientBuildConfig;
import io.quarkus.kubernetes.client.runtime.internal.KubernetesDevServicesBuildTimeConfig;
import io.quarkus.kubernetes.client.runtime.internal.KubernetesDevServicesBuildTimeConfig.Flavor;
import io.quarkus.kubernetes.client.spi.KubernetesDevServiceInfoBuildItem;
import io.quarkus.runtime.configuration.ConfigUtils;

@BuildSteps(onlyIfNot = IsNormal.class, onlyIf = { DevServicesConfig.Enabled.class, NoQuarkusTestKubernetesClient.class })
Expand Down Expand Up @@ -89,7 +91,8 @@ public DevServicesResultBuildItem setupKubernetesDevService(
Optional<ConsoleInstalledBuildItem> consoleInstalledBuildItem,
CuratedApplicationShutdownBuildItem closeBuildItem,
LoggingSetupBuildItem loggingSetupBuildItem,
DevServicesConfig devServicesConfig) {
DevServicesConfig devServicesConfig,
BuildProducer<KubernetesDevServiceInfoBuildItem> devServicesKube) {

KubernetesDevServiceCfg configuration = getConfiguration(kubernetesClientBuildTimeConfig);

Expand All @@ -108,7 +111,8 @@ public DevServicesResultBuildItem setupKubernetesDevService(
try {
devService = startKubernetes(dockerStatusBuildItem, configuration, launchMode,
!devServicesSharedNetworkBuildItem.isEmpty(),
devServicesConfig.timeout());
devServicesConfig.timeout(),
devServicesKube);
if (devService == null) {
compressor.closeAndDumpCaptured();
} else {
Expand Down Expand Up @@ -161,7 +165,8 @@ private void shutdownCluster() {

@SuppressWarnings("unchecked")
private RunningDevService startKubernetes(DockerStatusBuildItem dockerStatusBuildItem, KubernetesDevServiceCfg config,
LaunchModeBuildItem launchMode, boolean useSharedNetwork, Optional<Duration> timeout) {
LaunchModeBuildItem launchMode, boolean useSharedNetwork, Optional<Duration> timeout,
BuildProducer<KubernetesDevServiceInfoBuildItem> devServicesKube) {
if (!config.devServicesEnabled) {
// explicitly disabled
log.debug("Not starting Dev Services for Kubernetes, as it has been disabled in the config.");
Expand Down Expand Up @@ -233,6 +238,9 @@ private RunningDevService startKubernetes(DockerStatusBuildItem dockerStatusBuil

KubeConfig kubeConfig = KubeConfigUtils.parseKubeConfig(container.getKubeconfig());

devServicesKube
.produce(new KubernetesDevServiceInfoBuildItem(container.getKubeconfig(), container.getContainerId()));

return new RunningDevService(Feature.KUBERNETES_CLIENT.getName(), container.getContainerId(),
new ContainerShutdownCloseable(container, Feature.KUBERNETES_CLIENT.getName()),
getKubernetesClientConfigFromKubeConfig(kubeConfig));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package io.quarkus.kubernetes.client.spi;

import io.quarkus.builder.item.SimpleBuildItem;

public final class KubernetesDevServiceInfoBuildItem extends SimpleBuildItem {
private final String kubeConfig;
private final String containerId;

public KubernetesDevServiceInfoBuildItem(String kubeConfig, String containerId) {
this.kubeConfig = kubeConfig;
this.containerId = containerId;
}

public String getKubeConfig() {
return kubeConfig;
}

public String getContainerId() {
return containerId;
}

}

0 comments on commit d0768d3

Please sign in to comment.