Skip to content

Commit c72b303

Browse files
authored
feat: add metrics bundle annotations, fix wrong version handling (#563)
* feat: add metrics bundle annotations, fix wrong version handling Fixes #551 Fixes #554 * chore: release 6.0.0
1 parent 0c2b365 commit c72b303

File tree

5 files changed

+47
-22
lines changed

5 files changed

+47
-22
lines changed

.github/project.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: Java Operator SDK Extension
22
release:
3-
current-version: 6.0.0.CR1
4-
next-version: 6.0.0-SNAPSHOT
3+
current-version: 6.0.0
4+
next-version: 6.0.1-SNAPSHOT
55

bundle-generator/deployment/src/main/java/io/quarkiverse/operatorsdk/bundle/deployment/BundleGenerator.java

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@
1313
import io.quarkiverse.operatorsdk.bundle.runtime.BundleGenerationConfiguration;
1414
import io.quarkiverse.operatorsdk.bundle.runtime.CSVMetadataHolder;
1515
import io.quarkiverse.operatorsdk.common.ReconcilerAugmentedClassInfo;
16-
import io.quarkiverse.operatorsdk.runtime.BuildTimeOperatorConfiguration;
1716
import io.quarkiverse.operatorsdk.runtime.CRDInfo;
17+
import io.quarkiverse.operatorsdk.runtime.Version;
1818
import io.quarkus.container.util.PathsUtil;
1919

2020
public class BundleGenerator {
21+
2122
private static final Logger log = Logger.getLogger(BundleGenerator.class);
2223

2324
public static final String MANIFESTS = "manifests";
@@ -32,19 +33,25 @@ public class BundleGenerator {
3233
private static final String MEDIA_TYPE = "mediatype";
3334
private static final String CHANNEL = "channel";
3435
private static final String CHANNELS = "channels";
35-
private static final String PREFIX_ANNOTATION = "operators.operatorframework.io.bundle";
36+
private static final String BUNDLE_PREFIX = "operators.operatorframework.io.bundle";
37+
private static final String METRICS_PREFIX = "operators.operatorframework.io.metrics";
38+
private static final String ANNOTATIONS_VERSION = "v1";
39+
private static final String BUILDER = "builder";
40+
private static final String METRICS_V1 = "metrics+v1";
41+
private static final String PROJECT_LAYOUT = "project_layout";
42+
private static final String LAYOUT_V1_ALPHA = "quarkus.javaoperatorsdk.io/v1-alpha";
43+
private static final String QOSDK = "qosdk-bundle-generator/";
3644

3745
private BundleGenerator() {
3846
}
3947

4048
public static List<ManifestsBuilder> prepareGeneration(BundleGenerationConfiguration bundleConfiguration,
41-
BuildTimeOperatorConfiguration operatorConfiguration,
42-
Map<CSVMetadataHolder, List<ReconcilerAugmentedClassInfo>> csvGroups, Map<String, CRDInfo> crds,
49+
Version version, Map<CSVMetadataHolder, List<ReconcilerAugmentedClassInfo>> csvGroups, Map<String, CRDInfo> crds,
4350
Path outputDirectory) {
4451
List<ManifestsBuilder> builders = new ArrayList<>();
4552
for (Map.Entry<CSVMetadataHolder, List<ReconcilerAugmentedClassInfo>> entry : csvGroups.entrySet()) {
4653
final var csvMetadata = entry.getKey();
47-
final var labels = generateBundleLabels(csvMetadata, bundleConfiguration, operatorConfiguration);
54+
final var labels = generateBundleLabels(csvMetadata, bundleConfiguration, version);
4855

4956
final var mainSourcesRoot = PathsUtil.findMainSourcesRoot(outputDirectory);
5057
final var csvBuilder = new CsvManifestsBuilder(csvMetadata, entry.getValue(),
@@ -82,18 +89,18 @@ private static HashSet<String> addCRDManifestBuilder(Map<String, CRDInfo> crds,
8289
}
8390

8491
private static SortedMap<String, String> generateBundleLabels(CSVMetadataHolder csvMetadata,
85-
BundleGenerationConfiguration bundleConfiguration,
86-
BuildTimeOperatorConfiguration operatorConfiguration) {
92+
BundleGenerationConfiguration bundleConfiguration, Version version) {
8793
SortedMap<String, String> values = new TreeMap<>();
88-
for (String version : operatorConfiguration.crd.versions) {
89-
values.put(join(PREFIX_ANNOTATION, CHANNEL, DEFAULT, version),
90-
bundleConfiguration.defaultChannel.orElse(bundleConfiguration.channels.get(0)));
91-
values.put(join(PREFIX_ANNOTATION, CHANNELS, version), String.join(COMMA, bundleConfiguration.channels));
92-
values.put(join(PREFIX_ANNOTATION, MANIFESTS, version), MANIFESTS + SLASH);
93-
values.put(join(PREFIX_ANNOTATION, MEDIA_TYPE, version), REGISTRY_PLUS + version);
94-
values.put(join(PREFIX_ANNOTATION, METADATA, version), METADATA + SLASH);
95-
values.put(join(PREFIX_ANNOTATION, PACKAGE, version), csvMetadata.name);
96-
}
94+
values.put(join(BUNDLE_PREFIX, CHANNEL, DEFAULT, ANNOTATIONS_VERSION),
95+
bundleConfiguration.defaultChannel.orElse(bundleConfiguration.channels.get(0)));
96+
values.put(join(BUNDLE_PREFIX, CHANNELS, ANNOTATIONS_VERSION), String.join(COMMA, bundleConfiguration.channels));
97+
values.put(join(BUNDLE_PREFIX, MANIFESTS, ANNOTATIONS_VERSION), MANIFESTS + SLASH);
98+
values.put(join(BUNDLE_PREFIX, MEDIA_TYPE, ANNOTATIONS_VERSION), REGISTRY_PLUS + ANNOTATIONS_VERSION);
99+
values.put(join(BUNDLE_PREFIX, METADATA, ANNOTATIONS_VERSION), METADATA + SLASH);
100+
values.put(join(BUNDLE_PREFIX, PACKAGE, ANNOTATIONS_VERSION), csvMetadata.name);
101+
values.put(join(METRICS_PREFIX, BUILDER), QOSDK + version.getExtensionVersion() + "+" + version.getExtensionCommit());
102+
values.put(join(METRICS_PREFIX, MEDIA_TYPE, ANNOTATIONS_VERSION), METRICS_V1);
103+
values.put(join(METRICS_PREFIX, PROJECT_LAYOUT), LAYOUT_V1_ALPHA);
97104

98105
return values;
99106
}

bundle-generator/deployment/src/main/java/io/quarkiverse/operatorsdk/bundle/deployment/BundleProcessor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
import io.quarkiverse.operatorsdk.common.ConfigurationUtils;
3838
import io.quarkiverse.operatorsdk.common.ReconcilerAugmentedClassInfo;
3939
import io.quarkiverse.operatorsdk.deployment.GeneratedCRDInfoBuildItem;
40-
import io.quarkiverse.operatorsdk.runtime.BuildTimeOperatorConfiguration;
40+
import io.quarkiverse.operatorsdk.deployment.VersionBuildItem;
4141
import io.quarkiverse.operatorsdk.runtime.CRDInfo;
4242
import io.quarkus.deployment.annotations.BuildProducer;
4343
import io.quarkus.deployment.annotations.BuildStep;
@@ -82,9 +82,9 @@ CSVMetadataBuildItem gatherCSVMetadata(ApplicationInfoBuildItem configuration,
8282
@BuildStep
8383
void generateBundle(ApplicationInfoBuildItem configuration,
8484
BundleGenerationConfiguration bundleConfiguration,
85-
BuildTimeOperatorConfiguration operatorConfiguration,
8685
OutputTargetBuildItem outputTarget,
8786
CSVMetadataBuildItem csvMetadata,
87+
VersionBuildItem versionBuildItem,
8888
BuildProducer<GeneratedBundleBuildItem> doneGeneratingCSV,
8989
GeneratedCRDInfoBuildItem generatedCustomResourcesDefinitions,
9090
List<GeneratedKubernetesResourceBuildItem> generatedKubernetesManifests,
@@ -141,8 +141,8 @@ void generateBundle(ApplicationInfoBuildItem configuration,
141141
}
142142
});
143143
});
144-
final var generated = BundleGenerator.prepareGeneration(bundleConfiguration,
145-
operatorConfiguration, csvMetadata.getCsvGroups(), crds, outputTarget.getOutputDirectory());
144+
final var generated = BundleGenerator.prepareGeneration(bundleConfiguration, versionBuildItem.getVersion(),
145+
csvMetadata.getCsvGroups(), crds, outputTarget.getOutputDirectory());
146146
generated.forEach(manifestBuilder -> {
147147
final var fileName = manifestBuilder.getFileName();
148148
try {

core/deployment/src/main/java/io/quarkiverse/operatorsdk/deployment/OperatorSDKProcessor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,13 @@ ConfigurationServiceBuildItem createConfigurationServiceAndOperator(
153153
BuildProducer<ReflectiveClassBuildItem> reflectionClasses,
154154
BuildProducer<ForceNonWeakReflectiveClassBuildItem> forcedReflectionClasses,
155155
BuildProducer<GeneratedCRDInfoBuildItem> generatedCRDInfo,
156+
BuildProducer<VersionBuildItem> versionBuildItemBuildProducer,
156157
LiveReloadBuildItem liveReload, LaunchModeBuildItem launchMode,
157158
BuildProducer<RunTimeConfigurationDefaultBuildItem> runtimeConfig) {
158159

159160
// check versions alignment
160161
final var version = Version.loadFromProperties();
162+
versionBuildItemBuildProducer.produce(new VersionBuildItem(version));
161163
final var runtimeQuarkusVersion = Quarkus.class.getPackage().getImplementationVersion();
162164
checkVersionCompatibility(runtimeQuarkusVersion, version.getQuarkusVersion(), "Quarkus");
163165
final var runtimeFabric8Version = io.fabric8.kubernetes.client.Version.clientVersion();
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.quarkiverse.operatorsdk.deployment;
2+
3+
import io.quarkiverse.operatorsdk.runtime.Version;
4+
import io.quarkus.builder.item.SimpleBuildItem;
5+
6+
public final class VersionBuildItem extends SimpleBuildItem {
7+
private final Version version;
8+
9+
public VersionBuildItem(Version version) {
10+
this.version = version;
11+
}
12+
13+
public Version getVersion() {
14+
return version;
15+
}
16+
}

0 commit comments

Comments
 (0)