Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified docs/src/main/asciidoc/images/devui_card_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions extensions/flyway-oracle/runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@
<groupId>org.flywaydb</groupId>
<artifactId>flyway-database-oracle</artifactId>
</dependency>
<dependency>
<groupId>org.graalvm.sdk</groupId>
<artifactId>nativeimage</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package io.quarkus.flyway.oracle.runtime.graal;

import java.sql.Connection;
import java.util.Properties;

import org.flywaydb.core.api.configuration.Configuration;

import com.oracle.svm.core.annotate.Substitute;
import com.oracle.svm.core.annotate.TargetClass;

@TargetClass(org.flywaydb.database.oracle.OracleDatabaseType.class)
public final class OracleDatabaseTypeSubstitution {

@Substitute
public Connection alterConnectionAsNeeded(Connection connection, Configuration configuration) {
return connection;
}

@Substitute
public void setDefaultConnectionProps(String url, Properties props, ClassLoader classLoader) {
String osUser = System.getProperty("user.name");
props.put("v$session.osuser", osUser.substring(0, Math.min(osUser.length(), 30)));
props.put("v$session.program", "Flyway by Redgate");
props.put("oracle.net.keepAlive", "true");
props.put("oracle.net.disableOob", "true");
}
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
package io.quarkus.kubernetes.client.deployment.internal;

import static io.quarkus.kubernetes.client.runtime.internal.KubernetesClientUtils.createConfig;

import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.QuarkusBuildCloseablesBuildItem;
import io.quarkus.kubernetes.client.runtime.internal.KubernetesClientBuildConfig;
import io.quarkus.kubernetes.client.runtime.internal.KubernetesClientUtils;
import io.quarkus.kubernetes.client.runtime.internal.QuarkusHttpClientFactory;
import io.quarkus.kubernetes.client.spi.KubernetesClientBuildItem;

public class KubernetesClientBuildStep {

private KubernetesClientBuildConfig buildConfig;

@BuildStep
public KubernetesClientBuildItem process(QuarkusBuildCloseablesBuildItem closeablesBuildItem) {
QuarkusHttpClientFactory httpClientFactory = new QuarkusHttpClientFactory();
closeablesBuildItem.add(httpClientFactory);
return new KubernetesClientBuildItem(createConfig(buildConfig), httpClientFactory);
return new KubernetesClientBuildItem(KubernetesClientUtils.createConfig(), httpClientFactory);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
import io.quarkus.devservices.common.ContainerAddress;
import io.quarkus.devservices.common.ContainerLocator;
import io.quarkus.devservices.common.ContainerShutdownCloseable;
import io.quarkus.kubernetes.client.runtime.internal.KubernetesClientBuildConfig;
import io.quarkus.kubernetes.client.runtime.internal.KubernetesClientBuildTimeConfig;
import io.quarkus.kubernetes.client.runtime.internal.KubernetesDevServicesBuildTimeConfig;
import io.quarkus.kubernetes.client.runtime.internal.KubernetesDevServicesBuildTimeConfig.Flavor;
import io.quarkus.kubernetes.client.spi.KubernetesDevServiceInfoBuildItem;
Expand Down Expand Up @@ -101,7 +101,7 @@ public DevServicesResultBuildItem setupKubernetesDevService(
DockerStatusBuildItem dockerStatusBuildItem,
DevServicesComposeProjectBuildItem composeProjectBuildItem,
LaunchModeBuildItem launchMode,
KubernetesClientBuildConfig kubernetesClientBuildTimeConfig,
KubernetesClientBuildTimeConfig kubernetesClientBuildTimeConfig,
List<DevServicesSharedNetworkBuildItem> devServicesSharedNetworkBuildItem,
Optional<ConsoleInstalledBuildItem> consoleInstalledBuildItem,
CuratedApplicationShutdownBuildItem closeBuildItem,
Expand All @@ -110,7 +110,7 @@ public DevServicesResultBuildItem setupKubernetesDevService(
BuildProducer<KubernetesDevServiceInfoBuildItem> devServicesKube,
Optional<KubernetesDevServiceRequestBuildItem> devServiceKubeRequest) {

KubernetesDevServiceCfg configuration = getConfiguration(kubernetesClientBuildTimeConfig);
KubernetesDevServiceCfg configuration = new KubernetesDevServiceCfg(kubernetesClientBuildTimeConfig.devservices());

if (devService != null) {
boolean shouldShutdownTheCluster = !configuration.equals(cfg);
Expand Down Expand Up @@ -181,7 +181,7 @@ public DevServicesResultBuildItem setupKubernetesDevService(
@Produce(ServiceStartBuildItem.class)
public void applyManifests(
KubernetesDevServiceInfoBuildItem kubernetesDevServiceInfoBuildItem,
KubernetesClientBuildConfig kubernetesClientBuildTimeConfig) {
KubernetesClientBuildTimeConfig kubernetesClientBuildTimeConfig) {
if (kubernetesDevServiceInfoBuildItem == null) {
// Gracefully return in case the Kubernetes dev service could not be found
log.error("Cannot apply manifests because the Kubernetes dev service is not running");
Expand Down Expand Up @@ -399,7 +399,6 @@ private <T extends KubernetesVersionEnum<T>> T findOrElseThrow(final Flavor flav
}

private Map<String, String> getKubernetesClientConfigFromKubeConfig(KubeConfig kubeConfig) {

ClusterSpec cluster = kubeConfig.getClusters().get(0).getCluster();
UserSpec user = kubeConfig.getUsers().get(0).getUser();
return Map.of(
Expand Down Expand Up @@ -427,11 +426,6 @@ private KubeConfig getKubeconfigFromRunningContainer(ContainerAddress containerA
return container.getKubeconfigFromContainer();
}

private KubernetesDevServiceCfg getConfiguration(KubernetesClientBuildConfig cfg) {
KubernetesDevServicesBuildTimeConfig devServicesConfig = cfg.devservices();
return new KubernetesDevServiceCfg(devServicesConfig);
}

@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
private static final class KubernetesDevServiceCfg {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
import io.quarkus.kubernetes.client.runtime.KubernetesClientProducer;
import io.quarkus.kubernetes.client.runtime.KubernetesConfigProducer;
import io.quarkus.kubernetes.client.runtime.KubernetesSerializationProducer;
import io.quarkus.kubernetes.client.runtime.internal.KubernetesClientBuildConfig;
import io.quarkus.kubernetes.client.runtime.internal.KubernetesClientBuildTimeConfig;
import io.quarkus.kubernetes.client.spi.KubernetesClientCapabilityBuildItem;
import io.quarkus.maven.dependency.ArtifactKey;

Expand Down Expand Up @@ -98,7 +98,7 @@ RemovedResourceBuildItem unregisterVertHttpClient() {

@BuildStep
public void process(ApplicationIndexBuildItem applicationIndex, CombinedIndexBuildItem combinedIndexBuildItem,
KubernetesClientBuildConfig kubernetesClientConfig,
KubernetesClientBuildTimeConfig kubernetesClientBuildTimeConfig,
BuildProducer<ExtensionSslNativeSupportBuildItem> sslNativeSupport,
BuildProducer<FeatureBuildItem> featureProducer,
BuildProducer<ReflectiveClassBuildItem> reflectiveClasses,
Expand All @@ -110,7 +110,7 @@ public void process(ApplicationIndexBuildItem applicationIndex, CombinedIndexBui
featureProducer.produce(new FeatureBuildItem(Feature.KUBERNETES_CLIENT));

kubernetesClientCapabilityProducer
.produce(new KubernetesClientCapabilityBuildItem(kubernetesClientConfig.generateRbac()));
.produce(new KubernetesClientCapabilityBuildItem(kubernetesClientBuildTimeConfig.generateRbac()));

// register fully (and not weakly) for reflection watchers, informers and custom resources
final Set<DotName> watchedClasses = new HashSet<>();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package io.quarkus.kubernetes.client.runtime.internal;

import io.quarkus.runtime.annotations.ConfigDocSection;
import io.quarkus.runtime.annotations.ConfigPhase;
import io.quarkus.runtime.annotations.ConfigRoot;
import io.smallrye.config.ConfigMapping;
import io.smallrye.config.WithDefault;

@ConfigMapping(prefix = "quarkus.kubernetes-client")
@ConfigRoot(phase = ConfigPhase.BUILD_TIME)
public interface KubernetesClientBuildTimeConfig {

/**
* Enable the generation of the RBAC manifests. If enabled and no other role binding are provided using the properties
* `quarkus.kubernetes.rbac.`, it will generate a default role binding using the role "view" and the application
* service account.
*/
@WithDefault("true")
boolean generateRbac();

/**
* Dev Services
*/
@ConfigDocSection(generated = true)
KubernetesDevServicesBuildTimeConfig devservices();
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,13 @@
import java.util.Optional;
import java.util.OptionalInt;

import io.quarkus.runtime.annotations.ConfigDocSection;
import io.quarkus.runtime.annotations.ConfigPhase;
import io.quarkus.runtime.annotations.ConfigRoot;
import io.smallrye.config.ConfigMapping;
import io.smallrye.config.WithDefault;

@ConfigMapping(prefix = "quarkus.kubernetes-client")
@ConfigRoot(phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED)
public interface KubernetesClientBuildConfig {
@ConfigRoot(phase = ConfigPhase.RUN_TIME)
public interface KubernetesClientConfig {

/**
* Whether the client should trust a self-signed certificate if so presented by the API server
Expand All @@ -25,12 +23,6 @@ public interface KubernetesClientBuildConfig {
*/
Optional<String> apiServerUrl();

/**
* Use api-server-url instead.
*/
@Deprecated(forRemoval = true)
Optional<String> masterUrl();

/**
* Default namespace to use
*/
Expand Down Expand Up @@ -153,17 +145,4 @@ public interface KubernetesClientBuildConfig {
*/
Optional<List<String>> noProxy();

/**
* Enable the generation of the RBAC manifests. If enabled and no other role binding are provided using the properties
* `quarkus.kubernetes.rbac.`, it will generate a default role binding using the role "view" and the application
* service account.
*/
@WithDefault("true")
boolean generateRbac();

/**
* Dev Services
*/
@ConfigDocSection(generated = true)
KubernetesDevServicesBuildTimeConfig devservices();
}
Loading
Loading