Verified Commit 7dafeacb authored by João Capucho's avatar João Capucho
Browse files

Utilize the storage version when creating the CRD informer

parent 72811342
Loading
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ package org.etsi.osl.cridge;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.etsi.osl.domain.model.kubernetes.KubernetesCRDV1;
import org.etsi.osl.tmf.ri639.model.Resource;
import org.etsi.osl.tmf.ri639.model.ResourceCreate;
@@ -18,6 +19,7 @@ import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
import io.fabric8.kubernetes.api.model.GenericKubernetesResource;
import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition;
import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionVersion;
import io.fabric8.kubernetes.client.Watch;
import io.fabric8.kubernetes.client.Watcher;
import io.fabric8.kubernetes.client.WatcherException;
@@ -197,12 +199,23 @@ public class WatcherService {
	}

	protected void createCRDSharedIndexInformer(CustomResourceDefinition crd) {
		final Optional<CustomResourceDefinitionVersion> maybeStorageVersion = crd.getSpec().getVersions()
				.stream()
				.filter(CustomResourceDefinitionVersion::getStorage)
				.findFirst();

		if (maybeStorageVersion.isEmpty()) {
			logger.error("Cannot create createCRDSharedIndexInformer. No storage version found in kind: {}",
					crd.getSpec().getNames().getKind());
			return;
		}
		
		ResourceDefinitionContext context = new ResourceDefinitionContext.Builder()
				.withGroup(crd.getSpec().getGroup())
				.withVersion(crd.getSpec().getVersions().get(0).getName())
				.withVersion(maybeStorageVersion.get().getName())
				.withKind(crd.getSpec().getNames().getKind())
				.withPlural(crd.getSpec().getNames().getPlural()).build();

		try {
			int a = kubernetesClientResource.getKubernetesClient().genericKubernetesResources(context).list().getItems().size();
		} catch (Exception e) {