4343import io .fabric8 .kubernetes .client .Config ;
4444import io .quarkus .deployment .Feature ;
4545import io .quarkus .deployment .IsNormal ;
46+ import io .quarkus .deployment .annotations .BuildProducer ;
4647import io .quarkus .deployment .annotations .BuildStep ;
4748import io .quarkus .deployment .annotations .BuildSteps ;
4849import io .quarkus .deployment .builditem .CuratedApplicationShutdownBuildItem ;
6263import io .quarkus .kubernetes .client .runtime .internal .KubernetesClientBuildConfig ;
6364import io .quarkus .kubernetes .client .runtime .internal .KubernetesDevServicesBuildTimeConfig ;
6465import io .quarkus .kubernetes .client .runtime .internal .KubernetesDevServicesBuildTimeConfig .Flavor ;
66+ import io .quarkus .kubernetes .client .spi .KubernetesDevServiceInfoBuildItem ;
6567import io .quarkus .runtime .configuration .ConfigUtils ;
6668
6769@ BuildSteps (onlyIfNot = IsNormal .class , onlyIf = { DevServicesConfig .Enabled .class , NoQuarkusTestKubernetesClient .class })
@@ -89,7 +91,8 @@ public DevServicesResultBuildItem setupKubernetesDevService(
8991 Optional <ConsoleInstalledBuildItem > consoleInstalledBuildItem ,
9092 CuratedApplicationShutdownBuildItem closeBuildItem ,
9193 LoggingSetupBuildItem loggingSetupBuildItem ,
92- DevServicesConfig devServicesConfig ) {
94+ DevServicesConfig devServicesConfig ,
95+ BuildProducer <KubernetesDevServiceInfoBuildItem > devServicesKube ) {
9396
9497 KubernetesDevServiceCfg configuration = getConfiguration (kubernetesClientBuildTimeConfig );
9598
@@ -108,7 +111,8 @@ public DevServicesResultBuildItem setupKubernetesDevService(
108111 try {
109112 devService = startKubernetes (dockerStatusBuildItem , configuration , launchMode ,
110113 !devServicesSharedNetworkBuildItem .isEmpty (),
111- devServicesConfig .timeout ());
114+ devServicesConfig .timeout (),
115+ devServicesKube );
112116 if (devService == null ) {
113117 compressor .closeAndDumpCaptured ();
114118 } else {
@@ -161,7 +165,8 @@ private void shutdownCluster() {
161165
162166 @ SuppressWarnings ("unchecked" )
163167 private RunningDevService startKubernetes (DockerStatusBuildItem dockerStatusBuildItem , KubernetesDevServiceCfg config ,
164- LaunchModeBuildItem launchMode , boolean useSharedNetwork , Optional <Duration > timeout ) {
168+ LaunchModeBuildItem launchMode , boolean useSharedNetwork , Optional <Duration > timeout ,
169+ BuildProducer <KubernetesDevServiceInfoBuildItem > devServicesKube ) {
165170 if (!config .devServicesEnabled ) {
166171 // explicitly disabled
167172 log .debug ("Not starting Dev Services for Kubernetes, as it has been disabled in the config." );
@@ -233,6 +238,9 @@ private RunningDevService startKubernetes(DockerStatusBuildItem dockerStatusBuil
233238
234239 KubeConfig kubeConfig = KubeConfigUtils .parseKubeConfig (container .getKubeconfig ());
235240
241+ devServicesKube
242+ .produce (new KubernetesDevServiceInfoBuildItem (container .getKubeconfig (), container .getContainerId ()));
243+
236244 return new RunningDevService (Feature .KUBERNETES_CLIENT .getName (), container .getContainerId (),
237245 new ContainerShutdownCloseable (container , Feature .KUBERNETES_CLIENT .getName ()),
238246 getKubernetesClientConfigFromKubeConfig (kubeConfig ));
0 commit comments