diff --git a/operator-framework-core/pom.xml b/operator-framework-core/pom.xml
index bb8e3bcda7..da1da49555 100644
--- a/operator-framework-core/pom.xml
+++ b/operator-framework-core/pom.xml
@@ -47,6 +47,19 @@
full
+
+ org.codehaus.mojo
+ templating-maven-plugin
+ 1.0.0
+
+
+ filtering-java-templates
+
+ filter-sources
+
+
+
+
diff --git a/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/api/config/Versions.java b/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/api/config/Versions.java
new file mode 100644
index 0000000000..8d67199510
--- /dev/null
+++ b/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/api/config/Versions.java
@@ -0,0 +1,10 @@
+package io.javaoperatorsdk.operator.api.config;
+
+public final class Versions {
+
+ private Versions() {}
+
+ protected static final String JOSDK = "${project.version}";
+ protected static final String KUBERNETES_CLIENT = "${fabric8-client.version}";
+
+}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Version.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Version.java
index 6bfb5bb2e5..a9cbaa5d44 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Version.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Version.java
@@ -6,7 +6,10 @@
/** A class encapsulating the version information associated with this SDK instance. */
public class Version {
- public static final Version UNKNOWN = new Version("unknown", "unknown", Date.from(Instant.EPOCH));
+ public static final Version UNKNOWN =
+ new Version(Versions.JOSDK, "unknown", Date.from(Instant.EPOCH));
+ public static final Version KUBENETES_CLIENT =
+ new Version(Versions.KUBERNETES_CLIENT, "unknown", Date.from(Instant.EPOCH));
private final String sdk;
private final String commit;
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/VersionTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/VersionTest.java
new file mode 100644
index 0000000000..2a6b8002e3
--- /dev/null
+++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/VersionTest.java
@@ -0,0 +1,17 @@
+package io.javaoperatorsdk.operator.api.config;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class VersionTest {
+
+ @Test
+ void versionShouldReturnTheSameResultFromMavenAndProperties() {
+ String versionFromProperties = Utils.loadFromProperties().getSdkVersion();
+ String versionFromMaven = Version.UNKNOWN.getSdkVersion();
+
+ assertEquals(versionFromProperties, versionFromMaven);
+ }
+
+}