44import java .util .Collections ;
55import java .util .HashSet ;
66import java .util .Map ;
7- import java .util .Objects ;
87import java .util .Optional ;
98import java .util .Set ;
109import java .util .function .BooleanSupplier ;
1514
1615import org .jboss .jandex .DotName ;
1716import org .jboss .logging .Logger ;
18- import org .semver4j .Semver ;
19- import org .semver4j .Semver .VersionDiff ;
2017
2118import com .fasterxml .jackson .databind .ObjectMapper ;
2219
4037import io .quarkiverse .operatorsdk .runtime .OperatorProducer ;
4138import io .quarkiverse .operatorsdk .runtime .QuarkusConfigurationService ;
4239import io .quarkiverse .operatorsdk .runtime .RunTimeOperatorConfiguration ;
43- import io .quarkiverse .operatorsdk .runtime .Version ;
4440import io .quarkus .arc .deployment .AdditionalBeanBuildItem ;
4541import io .quarkus .arc .deployment .SyntheticBeanBuildItem ;
4642import io .quarkus .arc .deployment .UnremovableBeanBuildItem ;
@@ -118,10 +114,11 @@ void updateControllerConfigurations(
118114 RunTimeOperatorConfiguration runTimeConfiguration ,
119115 BuildProducer <SyntheticBeanBuildItem > syntheticBeanBuildItemBuildProducer ,
120116 GeneratedCRDInfoBuildItem generatedCRDs ,
121- ConfigurationServiceBuildItem serviceBuildItem ,
117+ ControllerConfigurationsBuildItem serviceBuildItem ,
118+ VersionBuildItem versionBuildItem ,
122119 LaunchModeBuildItem launchMode ) {
123120 final var supplier = recorder
124- .configurationServiceSupplier (serviceBuildItem .getVersion (),
121+ .configurationServiceSupplier (versionBuildItem .getVersion (),
125122 serviceBuildItem .getControllerConfigs (),
126123 generatedCRDs .getCRDGenerationInfo (),
127124 runTimeConfiguration , buildTimeConfiguration , launchMode .getLaunchMode ());
@@ -135,68 +132,18 @@ void updateControllerConfigurations(
135132 .done ());
136133 }
137134
138- private void checkVersionCompatibility (String found , String expected , String name ) {
139- // optimize most common case
140- if (Objects .equals (found , expected )) {
141- return ;
142- }
143- final var foundVersionOpt = getSemverFrom (found );
144- final var expectedVersionOpt = getSemverFrom (expected );
145- if (foundVersionOpt .isEmpty () || expectedVersionOpt .isEmpty ()) {
146- // abort version check if we couldn't parse the version for some reason as a version check should not prevent the rest of the processing to proceed
147- return ;
148- }
149- final var foundVersion = foundVersionOpt .get ();
150- final var expectedVersion = expectedVersionOpt .get ();
151- if (!expectedVersion .equals (foundVersion )) {
152- String message = "Mismatched " + name + " version found: \" " + found + "\" , expected: \" " + expected + "\" " ;
153- if (buildTimeConfiguration .failOnVersionCheck ) {
154- throw new RuntimeException (message );
155- } else {
156- final var diff = expectedVersion .diff (foundVersion );
157- if (diff .compareTo (VersionDiff .MINOR ) >= 0 ) {
158- log .warn (message
159- + " by at least a minor version and things might not work as expected." );
160- } else {
161- log .debug (message );
162- }
163- }
164- }
165- }
166-
167- private static Optional <Semver > getSemverFrom (String version ) {
168- try {
169- return Optional .of (Semver .coerce (version ));
170- } catch (Exception e ) {
171- log .warn ("Couldn't convert version " + version );
172- }
173- return Optional .empty ();
174- }
175-
176135 @ BuildStep
177- ConfigurationServiceBuildItem createConfigurationServiceAndOperator (
136+ ControllerConfigurationsBuildItem createConfigurationServiceAndOperator (
178137 OutputTargetBuildItem outputTarget ,
179138 CombinedIndexBuildItem combinedIndexBuildItem ,
180139 KubernetesClientBuildItem kubernetesClientBuildItem ,
181140 BuildProducer <AdditionalBeanBuildItem > additionalBeans ,
182141 BuildProducer <ReflectiveClassBuildItem > reflectionClasses ,
183142 BuildProducer <ForceNonWeakReflectiveClassBuildItem > forcedReflectionClasses ,
184143 BuildProducer <GeneratedCRDInfoBuildItem > generatedCRDInfo ,
185- BuildProducer <VersionBuildItem > versionBuildItemBuildProducer ,
186144 LiveReloadBuildItem liveReload , LaunchModeBuildItem launchMode ,
187145 BuildProducer <RunTimeConfigurationDefaultBuildItem > runtimeConfig ) {
188146
189- // check versions alignment
190- final var version = Version .loadFromProperties ();
191- versionBuildItemBuildProducer .produce (new VersionBuildItem (version ));
192- final var runtimeQuarkusVersion = io .quarkus .builder .Version .getVersion ();
193- checkVersionCompatibility (runtimeQuarkusVersion , version .getQuarkusVersion (), "Quarkus" );
194- final var runtimeFabric8Version = io .fabric8 .kubernetes .client .Version .clientVersion ();
195- checkVersionCompatibility (runtimeFabric8Version , version .getKubernetesClientVersion (),
196- "JOSDK Fabric8 Kubernetes Client" );
197- String quarkusFabric8Version = io .quarkus .kubernetes .client .deployment .Versions .KUBERNETES_CLIENT ;
198- checkVersionCompatibility (runtimeFabric8Version , quarkusFabric8Version , "Quarkus-provided Fabric8 Kubernetes Client" );
199-
200147 final CRDConfiguration crdConfig = buildTimeConfiguration .crd ;
201148 final boolean validateCustomResources = ConfigurationUtils .shouldValidateCustomResources (
202149 buildTimeConfiguration .crd .validate );
@@ -307,7 +254,7 @@ ConfigurationServiceBuildItem createConfigurationServiceAndOperator(
307254
308255 generatedCRDInfo .produce (new GeneratedCRDInfoBuildItem (crdInfo ));
309256
310- return new ConfigurationServiceBuildItem ( version , controllerConfigs );
257+ return new ControllerConfigurationsBuildItem ( controllerConfigs );
311258 }
312259
313260 private void registerAssociatedClassesForReflection (BuildProducer <ReflectiveClassBuildItem > reflectionClasses ,
@@ -333,7 +280,7 @@ public boolean getAsBoolean() {
333280
334281 @ BuildStep (onlyIf = IsRBACEnabled .class )
335282 public void addRBACForResources (BuildProducer <DecoratorBuildItem > decorators ,
336- ConfigurationServiceBuildItem configurations ) {
283+ ControllerConfigurationsBuildItem configurations ) {
337284
338285 final var configs = configurations .getControllerConfigs ();
339286 decorators .produce (new DecoratorBuildItem (
0 commit comments