{"level":"info","timestamp":"2026-06-05T13:15:22.492Z","caller":"cmd/main.go:65","message":"Loading database connection URL from secret..."} {"level":"info","timestamp":"2026-06-05T13:15:22.509Z","caller":"cmd/main.go:172","message":"Connecting to PostgreSQL database..."} {"level":"info","timestamp":"2026-06-05T13:15:22.509Z","caller":"cmd/main.go:101","message":"Metrics server starting","address":":9090"} {"level":"info","timestamp":"2026-06-05T13:15:22.672Z","caller":"api_keys/db_driver.go:90","message":"Database schema applied","version":3} {"level":"info","timestamp":"2026-06-05T13:15:22.673Z","caller":"api_keys/db_driver.go:57","message":"Connected to PostgreSQL database (schema applied)"} {"level":"info","timestamp":"2026-06-05T13:15:22.779Z","caller":"cmd/main.go:193","message":"Resolved gateway internal host for access probes","host":"maas-default-gateway-openshift-default.openshift-ingress.svc.cluster.local"} {"level":"info","timestamp":"2026-06-05T13:15:22.891Z","caller":"cmd/main.go:134","message":"Server starting","address":":8443","secure":true} [GIN] 2026/06/05 - 13:15:28 | 200 | 60.716µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:15:33 | 200 | 32.161µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:15:38 | 200 | 38.239µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:15:43 | 200 | 44.21µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:15:48 | 200 | 42.249µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:15:53 | 200 | 42.777µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:15:58 | 200 | 42.779µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:00 | 200 | 33.406µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:03 | 200 | 39.297µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:08 | 200 | 35.367µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:10 | 200 | 34.869µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:13 | 200 | 33.397µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:18 | 200 | 34.575µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:20 | 200 | 32.349µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:23 | 200 | 33.635µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:28 | 200 | 33.125µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:30 | 200 | 35.961µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:33 | 200 | 47.963µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:38 | 200 | 42.454µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:40 | 200 | 33.365µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:43 | 200 | 33.979µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:48 | 200 | 33.707µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:50 | 200 | 40.645µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:53 | 200 | 41.441µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:16:58 | 200 | 40.529µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:00 | 200 | 34.768µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:03 | 200 | 35.284µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:08 | 200 | 47.349µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:10 | 200 | 34.495µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:13 | 200 | 35.794µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:18 | 200 | 33.431µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:20 | 200 | 36.633µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:23 | 200 | 33.73µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:28 | 200 | 38.955µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:30 | 200 | 40.249µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:33 | 200 | 39.941µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:38 | 200 | 36.098µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:40 | 200 | 34.704µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:43 | 200 | 32.82µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:48 | 200 | 35.065µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:50 | 200 | 34.11µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:53 | 200 | 33.999µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:17:58 | 200 | 35.89µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:00 | 200 | 43.302µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:03 | 200 | 33.753µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:08 | 200 | 36.148µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:10 | 200 | 35.828µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:13 | 200 | 34.189µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:18 | 200 | 35.835µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:20 | 200 | 35.71µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:23 | 200 | 34.903µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:28 | 200 | 56.85µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:30 | 200 | 33.187µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:33 | 200 | 36.066µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:38 | 200 | 33.842µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:40 | 200 | 33.975µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:43 | 200 | 33.837µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:48 | 200 | 38.531µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:50 | 200 | 34.391µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:53 | 200 | 35.468µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:18:58 | 200 | 35.358µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:00 | 200 | 35.898µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:03 | 200 | 35.634µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:08 | 200 | 37.518µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:10 | 200 | 32.695µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:13 | 200 | 33.566µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:18 | 200 | 33.7µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:20 | 200 | 57.476µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:23 | 200 | 35.59µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:28 | 200 | 37.689µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:30 | 200 | 33.141µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:33 | 200 | 31.844µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:38 | 200 | 32.04µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:40 | 200 | 32.437µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:43 | 200 | 32.864µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:48 | 200 | 40.02µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:50 | 200 | 32.306µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:53 | 200 | 32.416µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:19:58 | 200 | 35.607µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:00 | 200 | 41.765µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:03 | 200 | 40.721µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:08 | 200 | 40.673µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:10 | 200 | 46.286µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:13 | 200 | 37.011µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:18 | 200 | 44.898µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:20 | 200 | 46.948µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:23 | 200 | 52.878µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:28 | 200 | 45.28µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:30 | 200 | 48.271µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:33 | 200 | 43.055µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:38 | 200 | 34.714µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:40 | 200 | 38.84µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:43 | 200 | 39.32µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:48 | 200 | 53.702µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:50 | 200 | 39.838µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:53 | 200 | 39.27µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:20:58 | 200 | 42.536µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:00 | 200 | 39.217µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:03 | 200 | 41.544µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:08 | 200 | 41.277µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:10 | 200 | 41.594µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:13 | 200 | 38.452µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:18 | 200 | 48.199µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:20 | 200 | 73.998µs | 10.132.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-05T13:21:22.521Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"id":"290a84fc-62dc-408e-9a5c-830d650f76d5","ephemeral":false} {"level":"info","timestamp":"2026-06-05T13:21:22.521Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"290a84fc-62dc-408e-9a5c-830d650f76d5","keyPrefix":"sk-oai-IlHHQ7pc5LoV...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/06/05 - 13:21:22 | 201 | 11.079445ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/05 - 13:21:22 | 200 | 1.442482ms | 10.133.0.31 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/05 - 13:21:23 | 200 | 768.551305ms | 34.228.250.194 | GET "/v1/models" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-05T13:21:23.429Z","caller":"api_keys/store_postgres.go:467","message":"Revoked API key","id":"290a84fc-62dc-408e-9a5c-830d650f76d5"} {"level":"info","timestamp":"2026-06-05T13:21:23.429Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"290a84fc-62dc-408e-9a5c-830d650f76d5","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/05 - 13:21:23 | 200 | 3.069778ms | 34.228.250.194 | DELETE "/v1/api-keys/290a84fc-62dc-408e-9a5c-830d650f76d5" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/05 - 13:21:23 | 200 | 41.034µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:28 | 200 | 40.345µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:30 | 200 | 62.743µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:33 | 200 | 41.309µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:38 | 200 | 41.045µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:40 | 200 | 41.009µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:43 | 200 | 40.99µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:48 | 200 | 41.039µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:50 | 200 | 50.053µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:21:53 | 200 | 38.494µs | 10.132.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-05T13:21:56.047Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"id":"6bb9a4d3-c08e-42cb-a614-f086d7c3bd54","ephemeral":false} {"level":"info","timestamp":"2026-06-05T13:21:56.047Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"6bb9a4d3-c08e-42cb-a614-f086d7c3bd54","keyPrefix":"sk-oai-CPwVSUX9ga83...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/06/05 - 13:21:56 | 201 | 2.198609ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/05 - 13:21:56 | 200 | 648.142µs | 10.133.0.31 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/05 - 13:21:56 | 200 | 778.33936ms | 34.228.250.194 | GET "/v1/models" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-05T13:21:56.929Z","caller":"api_keys/store_postgres.go:467","message":"Revoked API key","id":"6bb9a4d3-c08e-42cb-a614-f086d7c3bd54"} {"level":"info","timestamp":"2026-06-05T13:21:56.929Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"6bb9a4d3-c08e-42cb-a614-f086d7c3bd54","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/05 - 13:21:56 | 200 | 2.308929ms | 34.228.250.194 | DELETE "/v1/api-keys/6bb9a4d3-c08e-42cb-a614-f086d7c3bd54" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/05 - 13:21:58 | 200 | 41.59µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/05 - 13:22:00 | 200 | 43.688µs | 10.132.0.2 | GET "/health"