{"level":"info","timestamp":"2026-06-15T02:47:22.201Z","caller":"config/cluster_config.go:122","message":"Created MaaSModelRef informer","watchNamespace":"ALL","gvr":"maas.opendatahub.io/v1alpha1, Resource=maasmodelrefs"} {"level":"info","timestamp":"2026-06-15T02:47:22.201Z","caller":"config/cluster_config.go:129","message":"Created MaaSSubscription informer","watchNamespace":"e2e-unwatched-ns","gvr":"maas.opendatahub.io/v1alpha1, Resource=maassubscriptions"} {"level":"info","timestamp":"2026-06-15T02:47:22.201Z","caller":"cmd/main.go:65","message":"Loading database connection URL from secret..."} {"level":"info","timestamp":"2026-06-15T02:47:22.214Z","caller":"cmd/main.go:172","message":"Connecting to PostgreSQL database...","tenant":"models-as-a-service"} {"level":"info","timestamp":"2026-06-15T02:47:22.215Z","caller":"cmd/main.go:101","message":"Metrics server starting","address":":9090"} {"level":"info","timestamp":"2026-06-15T02:47:22.228Z","caller":"api_keys/db_driver.go:91","message":"Database schema applied","version":5} {"level":"info","timestamp":"2026-06-15T02:47:22.228Z","caller":"api_keys/db_driver.go:58","message":"Connected to PostgreSQL database (schema applied)","tenant":"models-as-a-service"} {"level":"info","timestamp":"2026-06-15T02:47:22.228Z","caller":"cmd/main.go:179","message":"Starting informers and waiting for cache sync..."} {"level":"info","timestamp":"2026-06-15T02:47:22.329Z","caller":"cmd/main.go:183","message":"Informer caches synced successfully"} {"level":"info","timestamp":"2026-06-15T02:47:22.332Z","caller":"cmd/main.go:200","message":"Resolved gateway internal host for access probes","host":"maas-default-gateway-openshift-default.openshift-ingress.svc.cluster.local"} {"level":"info","timestamp":"2026-06-15T02:47:22.343Z","caller":"cmd/main.go:134","message":"Server starting","address":":8443","secure":true} [GIN] 2026/06/15 - 02:47:28 | 200 | 302.465µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:47:33 | 200 | 43.802µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:47:38 | 200 | 33.268µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:47:43 | 200 | 32.108µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:47:48 | 200 | 32.715µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:47:53 | 200 | 31.663µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:47:58 | 200 | 53.196µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:01 | 200 | 42.168µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:03 | 200 | 37.695µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:08 | 200 | 34.871µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:11 | 200 | 32.508µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:13 | 200 | 41.457µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:18 | 200 | 43.738µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:21 | 200 | 33.246µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:23 | 200 | 34.339µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:28 | 200 | 39.082µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:31 | 200 | 31.08µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:33 | 200 | 37.903µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:38 | 200 | 35.597µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:41 | 200 | 32.104µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:43 | 200 | 39.536µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:48 | 200 | 32.958µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:51 | 200 | 33.401µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:53 | 200 | 31.551µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:48:58 | 200 | 33.842µs | 10.133.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-15T02:48:58.491Z","caller":"api_keys/store_postgres.go:487","message":"Revoked API key","id":"8c7efa80-199f-455e-99fc-a9e4c0a2f3e4"} {"level":"info","timestamp":"2026-06-15T02:48:58.491Z","caller":"api_keys/handler.go:339","message":"Revoked API key","keyId":"8c7efa80-199f-455e-99fc-a9e4c0a2f3e4","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/15 - 02:48:58 | 200 | 10.781182ms | 44.212.242.249 | DELETE "/v1/api-keys/8c7efa80-199f-455e-99fc-a9e4c0a2f3e4" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-15T02:48:58.538Z","caller":"config/cluster_config.go:94","message":"MaaSSubscription List() returning","count":0} {"level":"info","timestamp":"2026-06-15T02:48:58.538Z","caller":"config/cluster_config.go:70","message":"MaaSModelRef List() returning","count":6} {"level":"warn","timestamp":"2026-06-15T02:48:58.538Z","caller":"api_keys/service.go:146","message":"Subscription selection failed when creating API key","user":"system:serviceaccount:default:tester-regular-user","requestedSubscription":"simulator-subscription","error":"no matching subscription found for user"} {"level":"error","timestamp":"2026-06-15T02:48:58.539Z","caller":"api_keys/handler.go:205","message":"Failed to create API key","error":"no matching subscription found for user","stacktrace":"github.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys.(*Handler).CreateAPIKey\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys/handler.go:205\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.registerHandlers.(*Handler).ExtractUserInfo.func4\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/token/handler.go:136\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.NewMiddleware.func8\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/metrics/middleware.go:20\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.LoggerWithConfig.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/logger.go:249\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.RequestID.func7\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/middleware/request_id.go:57\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/recovery.go:102\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:644\ngithub.com/gin-gonic/gin.(*Engine).ServeHTTP\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:600\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:3340\nnet/http.(*conn).serve\n\tnet/http/server.go:2109"} [GIN] 2026/06/15 - 02:48:58 | 400 | 275.044µs | 44.212.242.249 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-15T02:48:58.594Z","caller":"config/cluster_config.go:94","message":"MaaSSubscription List() returning","count":0} {"level":"info","timestamp":"2026-06-15T02:48:58.594Z","caller":"config/cluster_config.go:70","message":"MaaSModelRef List() returning","count":6} {"level":"warn","timestamp":"2026-06-15T02:48:58.594Z","caller":"api_keys/service.go:146","message":"Subscription selection failed when creating API key","user":"system:serviceaccount:default:tester-regular-user","requestedSubscription":"simulator-subscription","error":"no matching subscription found for user"} {"level":"error","timestamp":"2026-06-15T02:48:58.594Z","caller":"api_keys/handler.go:205","message":"Failed to create API key","error":"no matching subscription found for user","stacktrace":"github.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys.(*Handler).CreateAPIKey\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys/handler.go:205\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.registerHandlers.(*Handler).ExtractUserInfo.func4\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/token/handler.go:136\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.NewMiddleware.func8\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/metrics/middleware.go:20\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.LoggerWithConfig.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/logger.go:249\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.RequestID.func7\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/middleware/request_id.go:57\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/recovery.go:102\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:644\ngithub.com/gin-gonic/gin.(*Engine).ServeHTTP\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:600\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:3340\nnet/http.(*conn).serve\n\tnet/http/server.go:2109"} [GIN] 2026/06/15 - 02:48:58 | 400 | 233.424µs | 44.212.242.249 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-15T02:48:58.650Z","caller":"config/cluster_config.go:94","message":"MaaSSubscription List() returning","count":0} {"level":"info","timestamp":"2026-06-15T02:48:58.650Z","caller":"config/cluster_config.go:70","message":"MaaSModelRef List() returning","count":6} {"level":"warn","timestamp":"2026-06-15T02:48:58.650Z","caller":"api_keys/service.go:146","message":"Subscription selection failed when creating API key","user":"system:serviceaccount:default:tester-regular-user","requestedSubscription":"simulator-subscription","error":"no matching subscription found for user"} {"level":"error","timestamp":"2026-06-15T02:48:58.650Z","caller":"api_keys/handler.go:205","message":"Failed to create API key","error":"no matching subscription found for user","stacktrace":"github.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys.(*Handler).CreateAPIKey\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys/handler.go:205\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.registerHandlers.(*Handler).ExtractUserInfo.func4\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/token/handler.go:136\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.NewMiddleware.func8\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/metrics/middleware.go:20\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.LoggerWithConfig.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/logger.go:249\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.RequestID.func7\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/middleware/request_id.go:57\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/recovery.go:102\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:644\ngithub.com/gin-gonic/gin.(*Engine).ServeHTTP\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:600\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:3340\nnet/http.(*conn).serve\n\tnet/http/server.go:2109"} [GIN] 2026/06/15 - 02:48:58 | 400 | 186.252µs | 44.212.242.249 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-15T02:48:58.687Z","caller":"config/cluster_config.go:94","message":"MaaSSubscription List() returning","count":0} {"level":"info","timestamp":"2026-06-15T02:48:58.687Z","caller":"config/cluster_config.go:70","message":"MaaSModelRef List() returning","count":6} {"level":"warn","timestamp":"2026-06-15T02:48:58.687Z","caller":"api_keys/service.go:146","message":"Subscription selection failed when creating API key","user":"system:serviceaccount:default:tester-regular-user","requestedSubscription":"simulator-subscription","error":"no matching subscription found for user"} {"level":"error","timestamp":"2026-06-15T02:48:58.687Z","caller":"api_keys/handler.go:205","message":"Failed to create API key","error":"no matching subscription found for user","stacktrace":"github.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys.(*Handler).CreateAPIKey\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys/handler.go:205\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.registerHandlers.(*Handler).ExtractUserInfo.func4\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/token/handler.go:136\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.NewMiddleware.func8\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/metrics/middleware.go:20\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.LoggerWithConfig.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/logger.go:249\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.RequestID.func7\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/middleware/request_id.go:57\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/recovery.go:102\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:644\ngithub.com/gin-gonic/gin.(*Engine).ServeHTTP\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:600\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:3340\nnet/http.(*conn).serve\n\tnet/http/server.go:2109"} [GIN] 2026/06/15 - 02:48:58 | 400 | 226.862µs | 44.212.242.249 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-15T02:49:01.494Z","caller":"config/cluster_config.go:94","message":"MaaSSubscription List() returning","count":0} {"level":"info","timestamp":"2026-06-15T02:49:01.494Z","caller":"config/cluster_config.go:70","message":"MaaSModelRef List() returning","count":6} {"level":"warn","timestamp":"2026-06-15T02:49:01.494Z","caller":"api_keys/service.go:146","message":"Subscription selection failed when creating API key","user":"system:serviceaccount:default:tester-regular-user","requestedSubscription":"simulator-subscription","error":"no matching subscription found for user"} {"level":"error","timestamp":"2026-06-15T02:49:01.494Z","caller":"api_keys/handler.go:205","message":"Failed to create API key","error":"no matching subscription found for user","stacktrace":"github.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys.(*Handler).CreateAPIKey\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys/handler.go:205\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.registerHandlers.(*Handler).ExtractUserInfo.func4\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/token/handler.go:136\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.NewMiddleware.func8\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/metrics/middleware.go:20\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.LoggerWithConfig.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/logger.go:249\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.RequestID.func7\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/middleware/request_id.go:57\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/recovery.go:102\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:644\ngithub.com/gin-gonic/gin.(*Engine).ServeHTTP\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:600\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:3340\nnet/http.(*conn).serve\n\tnet/http/server.go:2109"} [GIN] 2026/06/15 - 02:49:01 | 400 | 201.694µs | 44.212.242.249 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/15 - 02:49:01 | 200 | 33.759µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/15 - 02:49:03 | 200 | 30.72µs | 10.133.0.2 | GET "/health"