helm-charts icon indicating copy to clipboard operation
helm-charts copied to clipboard

Updating Image to 25.0.X results in CrashLoop using KeycloakX Chart

Open tech1ndex opened this issue 1 year ago • 7 comments

Hi,

Trying to use 25.0.X images with version 2.3.0 of the Keycloak X Chart. I updated the hostname values to match the update guide here:

https://www.keycloak.org/docs/25.0.1/upgrading/#new-hostname-options

Apart from this, my previous settings should be compatible however I get the following error repeated and a restarting Keycloak:

keycloak-keycloakx-1 keycloak 2024-06-27 20:10:24,820 DEBUG [org.keycloak.services.error.KeycloakErrorHandler] (vert.x-eventloop-thread-0) Error response 404: jakarta.ws.rs.NotFoundException: Unable to find matching target resource method
keycloak-keycloakx-1 keycloak 	at org.jboss.resteasy.reactive.server.handlers.ClassRoutingHandler.throwNotFound(ClassRoutingHandler.java:233)
keycloak-keycloakx-1 keycloak 	at org.jboss.resteasy.reactive.server.handlers.ClassRoutingHandler.handle(ClassRoutingHandler.java:102)
keycloak-keycloakx-1 keycloak 	at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:123)
keycloak-keycloakx-1 keycloak 	at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
keycloak-keycloakx-1 keycloak 	at org.jboss.resteasy.reactive.server.handlers.RestInitialHandler.beginProcessing(RestInitialHandler.java:48)
keycloak-keycloakx-1 keycloak 	at org.jboss.resteasy.reactive.server.vertx.ResteasyReactiveVertxHandler.handle(ResteasyReactiveVertxHandler.java:23)
keycloak-keycloakx-1 keycloak 	at org.jboss.resteasy.reactive.server.vertx.ResteasyReactiveVertxHandler.handle(ResteasyReactiveVertxHandler.java:10)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1285)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:177)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:200)
keycloak-keycloakx-1 keycloak 	at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$1.handle(HttpServerCommonHandlers.java:62)
keycloak-keycloakx-1 keycloak 	at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$1.handle(HttpServerCommonHandlers.java:40)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1285)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:177)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:200)
keycloak-keycloakx-1 keycloak 	at io.quarkus.resteasy.reactive.server.runtime.ResteasyReactiveRecorder$13.handle(ResteasyReactiveRecorder.java:339)
keycloak-keycloakx-1 keycloak 	at io.quarkus.resteasy.reactive.server.runtime.ResteasyReactiveRecorder$13.handle(ResteasyReactiveRecorder.java:332)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1285)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:177)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:200)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:250)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1285)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:177)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:137)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RouterImpl.handle(RouterImpl.java:68)
keycloak-keycloakx-1 keycloak 	at io.vertx.ext.web.impl.RouterImpl.handle(RouterImpl.java:37)
keycloak-keycloakx-1 keycloak 	at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$3.handle(HttpServerCommonHandlers.java:103)
keycloak-keycloakx-1 keycloak 	at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$3.handle(HttpServerCommonHandlers.java:100)
keycloak-keycloakx-1 keycloak 	at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$2.handle(HttpServerCommonHandlers.java:86)
keycloak-keycloakx-1 keycloak 	at io.quarkus.vertx.http.runtime.options.HttpServerCommonHandlers$2.handle(HttpServerCommonHandlers.java:69)
keycloak-keycloakx-1 keycloak 	at io.quarkus.vertx.http.runtime.VertxHttpRecorder$1.handle(VertxHttpRecorder.java:147)
keycloak-keycloakx-1 keycloak 	at io.quarkus.vertx.http.runtime.VertxHttpRecorder$1.handle(VertxHttpRecorder.java:123)
keycloak-keycloakx-1 keycloak 	at io.vertx.core.impl.ContextImpl.emit(ContextImpl.java:328)
keycloak-keycloakx-1 keycloak 	at io.vertx.core.impl.DuplicatedContext.emit(DuplicatedContext.java:166)
keycloak-keycloakx-1 keycloak 	at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:174)
keycloak-keycloakx-1 keycloak 	at io.vertx.core.net.impl.ConnectionBase.read(ConnectionBase.java:159)
keycloak-keycloakx-1 keycloak 	at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:153)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
keycloak-keycloakx-1 keycloak 	at io.vertx.core.http.impl.Http1xUpgradeToH2CHandler.channelRead(Http1xUpgradeToH2CHandler.java:124)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
keycloak-keycloakx-1 keycloak 	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:289)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
keycloak-keycloakx-1 keycloak 	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
keycloak-keycloakx-1 keycloak 	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
keycloak-keycloakx-1 keycloak 	at io.vertx.core.http.impl.Http1xOrH2CHandler.end(Http1xOrH2CHandler.java:61)
keycloak-keycloakx-1 keycloak 	at io.vertx.core.http.impl.Http1xOrH2CHandler.channelRead(Http1xOrH2CHandler.java:38)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
keycloak-keycloakx-1 keycloak 	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:289)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
keycloak-keycloakx-1 keycloak 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
keycloak-keycloakx-1 keycloak 	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
keycloak-keycloakx-1 keycloak 	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
keycloak-keycloakx-1 keycloak 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
keycloak-keycloakx-1 keycloak 	at java.base/java.lang.Thread.run(Thread.java:1583)
keycloak-keycloakx-1 keycloak
keycloak-keycloakx-1 keycloak 2024-06-27 20:10:24,820 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (vert.x-eventloop-thread-0) JtaTransactionWrapper rollback
keycloak-keycloakx-1 keycloak 2024-06-27 20:10:24,820 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (vert.x-eventloop-thread-0) JtaTransactionWrapper end

tech1ndex avatar Jun 27 '24 20:06 tech1ndex

why not use version: 2.4.1 of chart

linonetwo avatar Jun 28 '24 16:06 linonetwo

why not use version: 2.4.1 of chart

Didn't see it available in the releases when I posted this, will give it a try.

tech1ndex avatar Jun 28 '24 18:06 tech1ndex

@linonetwo Version 2.4.1 of the chart is much better and will install successfully apart from the Service Monitor which appears to be broken, I get the following when attempting to enable it:

Warning  error   98s   helm-controller  Helm install failed: YAML parse error on keycloakx/templates/servicemonitor.yaml: error converting YAML to JSON: yaml: invalid map key: map[interface {}]interface {}{".Values.http.internalPort":interface {}(nil)}

tech1ndex avatar Jul 02 '24 13:07 tech1ndex

I seem not using Service Monitor, so I'm finished now.

linonetwo avatar Jul 02 '24 14:07 linonetwo

Try updating to 2.4.2.

It may have fixed the issue as I didn't have it

AMontagu avatar Jul 04 '24 10:07 AMontagu

@AMontagu Same thing for me in 2.4.2:

  Last Attempted Revision:         2.4.2
  Last Attempted Values Checksum:  af5418679f5804cfa9e3502dc4283f19768cff0d
  Observed Generation:             1
Events:
  Type     Reason  Age    From             Message
  ----     ------  ----   ----             -------
  Normal   info    2m17s  helm-controller  HelmChart 'flux-system/keycloak-keycloak' is not ready
  Normal   info    2m13s  helm-controller  Helm install has started
  Warning  error   2m13s  helm-controller  Helm install failed: YAML parse error on keycloakx/templates/servicemonitor.yaml: error converting YAML to JSON: yaml: invalid map key: map[interface {}]interface {}{".Values.http.internalPort":interface {}(nil)}

tech1ndex avatar Jul 04 '24 13:07 tech1ndex

Yeah by lokking here: https://github.com/codecentric/helm-charts/commit/e1f5237dea3a16996fa6e7cf891fe97bd80c7261#diff-0d42a0bcf21efda1331b8bbd8b883ee80f6b5587a3e02d7820c187911174663cR152

it seem that the value is on the name instead of the port

You may want to override this settings

AMontagu avatar Jul 04 '24 17:07 AMontagu

This issue has been marked as stale because it has been open for 30 days with no activity. It will be automatically closed in 10 days if no further activity occurs.

github-actions[bot] avatar Sep 03 '24 12:09 github-actions[bot]