Skip to content
Closed
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
13 changes: 13 additions & 0 deletions core/deployment/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,19 @@
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>templating-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>filtering-java-templates</id>
<goals>
<goal>filter-sources</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package io.quarkiverse.operatorsdk.deployment;

public final class Versions {

public static final String QUARKUS = "${quarkus.version}";

}
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,10 @@
import io.quarkus.gizmo.MethodCreator;
import io.quarkus.gizmo.MethodDescriptor;
import io.quarkus.gizmo.ResultHandle;
import io.quarkus.kubernetes.client.deployment.KubernetesClientProcessor;
import io.quarkus.kubernetes.client.spi.KubernetesClientBuildItem;
import io.quarkus.kubernetes.spi.DecoratorBuildItem;
import io.quarkus.runtime.Quarkus;
import io.quarkus.runtime.QuarkusApplication;
import io.quarkus.runtime.metrics.MetricsFactory;

Expand Down Expand Up @@ -124,6 +126,17 @@ void updateControllerConfigurations(
.done());
}

private void checkVersionCompatibility(String found, String expected, String name) {
if (!found.equals(expected)) {
String message = "Incompatible " + name + " version found: \"" + found + "\", expected: \"" + expected + "\"";
if (buildTimeConfiguration.failOnVersionCheck) {
throw new RuntimeException(message);
} else {
log.warn(message);
}
}
}

@BuildStep
ConfigurationServiceBuildItem createConfigurationServiceAndOperator(
OutputTargetBuildItem outputTarget,
Expand All @@ -135,6 +148,15 @@ ConfigurationServiceBuildItem createConfigurationServiceAndOperator(
BuildProducer<GeneratedCRDInfoBuildItem> generatedCRDInfo,
LiveReloadBuildItem liveReload, LaunchModeBuildItem launchMode) {

String runtimeQuarkusVersion = Quarkus.class.getPackage().getImplementationVersion();
checkVersionCompatibility(runtimeQuarkusVersion, Versions.QUARKUS, "Quarkus");

// String runtimeFabric8Version = io.fabric8.kubernetes.client.Version.clientVersion();
// String josdkFabric8Version = io.javaoperatorsdk.operator.Versions.KUBERNETES_CLIENT;
// String quarkusFabric8Version = io.quarkus.kubernetes.client.deployment.Versions.KUBERNETES_CLIENT;
// checkVersionCompatibility(josdkFabric8Version, quarkusFabric8Version, "JOSDK Fabric8 kubernetes-client ");
// checkVersionCompatibility(runtimeFabric8Version, quarkusFabric8Version, "Fabric8 kubernetes-client");

final CRDConfiguration crdConfig = buildTimeConfiguration.crd;
final boolean validateCustomResources = ConfigurationUtils.shouldValidateCustomResources(
buildTimeConfiguration.crd.validate);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,10 @@ public class BuildTimeOperatorConfiguration {
*/
@ConfigItem(defaultValue = "true")
public Boolean stopOnInformerErrorDuringStartup;

/**
* Whether to fail or only emit a warning on version validation at compile time.
*/
@ConfigItem(defaultValue = "true")
public Boolean failOnVersionCheck;
}