Error exposing endpoints using load balancer - aws deployment
drrezaem opened this issue · 3 comments
Hi,
I have deployed Datahub on a Kubernetes cluster on AWS, but am getting this error when trying to expose the frontend endpoint using a load balancer.
> kubectl logs datahub-datahub-frontend-78fb749766-bbzp2
03:25:27,736 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [datahub-frontend/conf/logback.xml] at [file:/datahub-frontend/conf/logback.xml]
03:25:27,861 |-INFO in ch.qos.logback.core.joran.action.TimestampAction - Using current interpretation time, i.e. now, as time reference.
03:25:27,861 |-INFO in ch.qos.logback.core.joran.action.TimestampAction - Adding property to the context with key="bySecond" and value="2023-09-06_03-25-27" to the LOCAL scope
03:25:27,861 |-INFO in ch.qos.logback.core.joran.action.TimestampAction - Using current interpretation time, i.e. now, as time reference.
03:25:27,862 |-INFO in ch.qos.logback.core.joran.action.TimestampAction - Adding property to the context with key="byDate" and value="2023-09-06" to the LOCAL scope
03:25:27,862 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
03:25:27,866 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
03:25:27,901 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - This appender no longer admits a layout as a sub-component, set an encoder instead.
03:25:27,902 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
03:25:27,902 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
03:25:27,902 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
03:25:27,908 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
03:25:27,910 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
03:25:27,919 |-INFO in ch.qos.logback.core.rolling.FixedWindowRollingPolicy@6c7a164b - No compression will be used
03:25:27,923 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /tmp/datahub/logs/datahub-frontend-2023-09-06_03-25-27.log
03:25:27,923 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/tmp/datahub/logs/datahub-frontend-2023-09-06_03-25-27.log]
03:25:27,925 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
03:25:27,925 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
03:25:27,925 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT]
03:25:27,925 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
03:25:27,926 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@2e570ded - Registering current configuration as safe fallback point
03:25:28 [main] INFO o.p.play.store.ShiroAesDataEncrypter - Generated key: 17044618335a4fee
Sep 06, 2023 3:25:28 AM com.google.inject.internal.MessageProcessor visit
INFO: An exception was caught and reported. Message: com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'analytics.elastic.sslContext.sslProtocol'
com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'analytics.elastic.sslContext.sslProtocol'
at com.typesafe.config.impl.SimpleConfig.findKeyOrNull(SimpleConfig.java:156)
at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:174)
at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:180)
at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:180)
at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:180)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:188)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:193)
at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:250)
at react.analytics.AnalyticsServiceModule.createSSLContext(AnalyticsServiceModule.java:83)
at react.analytics.AnalyticsServiceModule.configure(AnalyticsServiceModule.java:63)
at com.google.inject.AbstractModule.configure(AbstractModule.java:61)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:344)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.util.Modules$OverrideModule.configure(Modules.java:173)
at com.google.inject.AbstractModule.configure(AbstractModule.java:61)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:344)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:137)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103)
at com.google.inject.Guice.createInjector(Guice.java:87)
at com.google.inject.Guice.createInjector(Guice.java:78)
at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:185)
at play.inject.guice.GuiceBuilder.injector(GuiceBuilder.java:221)
at play.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.java:156)
at play.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.java:34)
at play.api.ApplicationLoader$JavaApplicationLoaderAdapter$1.load(ApplicationLoader.scala:87)
at play.core.server.ProdServerStart$.start(ProdServerStart.scala:51)
at play.core.server.ProdServerStart$.main(ProdServerStart.scala:25)
at play.core.server.ProdServerStart.main(ProdServerStart.scala)
Oops, cannot start the server.
com.google.inject.CreationException: Unable to create injector, see the following errors:
1) An exception was caught and reported. Message: No configuration setting found for key 'analytics.elastic.sslContext.sslProtocol'
at com.google.inject.util.Modules$OverrideModule.configure(Modules.java:173)
2) Could not find a suitable constructor in react.analytics.AnalyticsService. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at react.analytics.AnalyticsService.class(AnalyticsService.java:37)
while locating react.analytics.AnalyticsService
for the 3rd parameter of react.controllers.GraphQLController.<init>(GraphQLController.java:51)
while locating react.controllers.GraphQLController
for the 11th parameter of router.Routes.<init>(Routes.scala:69)
at play.api.inject.RoutesProvider$.bindingsFromConfiguration(BuiltinModule.scala:121):
Binding(class router.Routes to self) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
2 errors
at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:543)
at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:159)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
at com.google.inject.Guice.createInjector(Guice.java:87)
at com.google.inject.Guice.createInjector(Guice.java:78)
at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:185)
at play.inject.guice.GuiceBuilder.injector(GuiceBuilder.java:221)
at play.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.java:156)
at play.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.java:34)
at play.api.ApplicationLoader$JavaApplicationLoaderAdapter$1.load(ApplicationLoader.scala:87)
at play.core.server.ProdServerStart$.start(ProdServerStart.scala:51)
at play.core.server.ProdServerStart$.main(ProdServerStart.scala:25)
at play.core.server.ProdServerStart.main(ProdServerStart.scala)
Caused by: com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'analytics.elastic.sslContext.sslProtocol'
at com.typesafe.config.impl.SimpleConfig.findKeyOrNull(SimpleConfig.java:156)
at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:174)
at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:180)
at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:180)
at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:180)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:188)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:193)
at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:250)
at react.analytics.AnalyticsServiceModule.createSSLContext(AnalyticsServiceModule.java:83)
at react.analytics.AnalyticsServiceModule.configure(AnalyticsServiceModule.java:63)
at com.google.inject.AbstractModule.configure(AbstractModule.java:61)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:344)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.util.Modules$OverrideModule.configure(Modules.java:173)
at com.google.inject.AbstractModule.configure(AbstractModule.java:61)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:344)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:137)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103)
This is the output of kubectl get deployment -n kube-system aws-load-balancer-controller
AME READY UP-TO-DATE AVAILABLE AGE
aws-load-balancer-controller 2/2 2 2 26d
And this the output of >kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
datahub-datahub-frontend <none> my.domain.com 80 90m
This is my values.yaml configuration for the front-end.
datahub-frontend:
enabled: true
image:
repository: linkedin/datahub-frontend-react
# tag: "v0.10.0" # # defaults to .global.datahub.version
tag: "latest"
# resources:
# limits:
# memory: 1400Mi
# requests:
# cpu: 100m
# memory: 512Mi
# Set up ingress to expose react front-end
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: instance
alb.ingress.kubernetes.io/certificate-arn: <<my-arn>>
alb.ingress.kubernetes.io/inbound-cidrs: 0.0.0.0/0
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
hosts:
- host: my.domain.com
redirectPaths:
- path: /*
name: ssl-redirect
port: use-annotation
paths:
- /*
I would appreciate any insights to help fix this. Thank you.
This issue is stale because it has been open for 30 days with no activity. If you believe this is still an issue on the latest DataHub release please leave a comment with the version that you tested it with. If this is a question/discussion please head to https://slack.datahubproject.io. For feature requests please use https://feature-requests.datahubproject.io
This issue was closed because it has been inactive for 30 days since being marked as stale.
Hello @drrezaem, did you ever figure this out? I'm running into the same error.