Closed glorytiger closed 9 months ago
The 3.20.x values are indeed misleading as this feature requires a NoopRepository (https://download.gravitee.io/#graviteeio-apim/plugins/repositories/gravitee-apim-repository-noop/) which is available only for APIM 4.0+
This issue will be fixed, a new version will be available soon
Describe the bug
API pod wont start when api.analytics.type is set to none in values.yaml.j2
To Reproduce
Set the value described above to
none
and deployExpected behaviour
API pod should start
Current behaviour
API pod won't start
Useful information
Stack trace from API pod
09:35:07.815 [graviteeio-node] ERROR i.g.r.a.s.node.GraviteeApisNode - An error occurred while starting component class io.gravitee.node.monitoring.healthcheck.NodeHealthCheckService java.lang.IllegalArgumentException: Cannot instantiate interface io.gravitee.node.api.healthcheck.Probe : io.gravitee.rest.api.repository.healthcheck.AnalyticsRepositoryProbe at io.gravitee.common.spring.factory.SpringFactoriesLoader.createSpringFactoriesInstances(SpringFactoriesLoader.java:96) at io.gravitee.common.spring.factory.SpringFactoriesLoader.getSpringFactoriesInstances(SpringFactoriesLoader.java:70) at io.gravitee.common.spring.factory.SpringFactoriesLoader.getFactoriesInstances(SpringFactoriesLoader.java:56) at io.gravitee.node.monitoring.healthcheck.ProbeManagerImpl.getProbes(ProbeManagerImpl.java:41) at io.gravitee.node.monitoring.healthcheck.NodeHealthCheckService.doStart(NodeHealthCheckService.java:76) at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32) at io.gravitee.node.container.AbstractNode.startComponents(AbstractNode.java:178) at io.gravitee.node.container.AbstractNode.doStart(AbstractNode.java:76) at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32) at io.gravitee.node.container.AbstractContainer.doStart(AbstractContainer.java:87) at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at io.gravitee.rest.api.standalone.boostrap.Bootstrap.start(Bootstrap.java:155) at io.gravitee.rest.api.standalone.boostrap.Bootstrap.main(Bootstrap.java:164) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'io.gravitee.rest.api.repository.healthcheck.AnalyticsRepositoryProbe': Unsatisfied dependency expressed through field 'analyticsRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.gravitee.repository.analytics.api.AnalyticsRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations:
{@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:659)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:639)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBean(AbstractAutowireCapableBeanFactory.java:343)
at io.gravitee.common.spring.factory.SpringFactoriesLoader.createSpringFactoriesInstances(SpringFactoriesLoader.java:90)
... 16 common frames omitted
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.gravitee.repository.analytics.api.AnalyticsRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1799) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1355) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1309) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:656) ... 22 common frames omitted 09:35:07.816 [graviteeio-node] ERROR i.g.r.a.s.GraviteeApisContainer - An unexpected error occurs while starting Gravitee.io - Rest APIs java.lang.IllegalArgumentException: Cannot instantiate interface io.gravitee.node.api.healthcheck.Probe : io.gravitee.rest.api.repository.healthcheck.AnalyticsRepositoryProbe at io.gravitee.common.spring.factory.SpringFactoriesLoader.createSpringFactoriesInstances(SpringFactoriesLoader.java:96) at io.gravitee.common.spring.factory.SpringFactoriesLoader.getSpringFactoriesInstances(SpringFactoriesLoader.java:70) at io.gravitee.common.spring.factory.SpringFactoriesLoader.getFactoriesInstances(SpringFactoriesLoader.java:56) at io.gravitee.node.monitoring.healthcheck.ProbeManagerImpl.getProbes(ProbeManagerImpl.java:41) at io.gravitee.node.monitoring.healthcheck.NodeHealthCheckService.doStart(NodeHealthCheckService.java:76) at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32) at io.gravitee.node.container.AbstractNode.startComponents(AbstractNode.java:178) at io.gravitee.node.container.AbstractNode.doStart(AbstractNode.java:76) at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32) at io.gravitee.node.container.AbstractContainer.doStart(AbstractContainer.java:87) at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at io.gravitee.rest.api.standalone.boostrap.Bootstrap.start(Bootstrap.java:155) at io.gravitee.rest.api.standalone.boostrap.Bootstrap.main(Bootstrap.java:164) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'io.gravitee.rest.api.repository.healthcheck.AnalyticsRepositoryProbe': Unsatisfied dependency expressed through field 'analyticsRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.gravitee.repository.analytics.api.AnalyticsRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations:
{@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:659)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:639)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBean(AbstractAutowireCapableBeanFactory.java:343)
at io.gravitee.common.spring.factory.SpringFactoriesLoader.createSpringFactoriesInstances(SpringFactoriesLoader.java:90)
... 16 common frames omitted
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.gravitee.repository.analytics.api.AnalyticsRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1799) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1355) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1309) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:656) ... 22 common frames omitted 09:35:07.816 [graviteeio-node] INFO i.g.r.a.s.GraviteeApisContainer - Shutting-down Gravitee.io - Rest APIs... 09:35:07.816 [graviteeio-node] INFO i.g.r.a.s.node.GraviteeApisNode - Gravitee.io - Rest APIs is stopping
Environment
apim 3.20.22, chart 3.20.22
Potential impacts
Unable to run Gravitee without analytics
Dependencies
Deployed via Helm