{"level":"info","timestamp":"2026-06-10T17:17:44.088Z","caller":"cmd/main.go:65","message":"Loading database connection URL from secret..."} {"level":"info","timestamp":"2026-06-10T17:17:44.179Z","caller":"cmd/main.go:172","message":"Connecting to PostgreSQL database..."} {"level":"info","timestamp":"2026-06-10T17:17:44.179Z","caller":"cmd/main.go:101","message":"Metrics server starting","address":":9090"} {"level":"info","timestamp":"2026-06-10T17:17:44.268Z","caller":"api_keys/db_driver.go:90","message":"Database schema applied","version":4} {"level":"info","timestamp":"2026-06-10T17:17:44.268Z","caller":"api_keys/db_driver.go:57","message":"Connected to PostgreSQL database (schema applied)"} {"level":"info","timestamp":"2026-06-10T17:17:44.375Z","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-10T17:17:44.390Z","caller":"cmd/main.go:134","message":"Server starting","address":":8443","secure":true} [GIN] 2026/06/10 - 17:17:50 | 200 | 53.77µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:17:55 | 200 | 40.092µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:00 | 200 | 33.446µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:05 | 200 | 40.48µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:10 | 200 | 33.427µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:15 | 200 | 35.064µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:20 | 200 | 31.676µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:21 | 200 | 33.931µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:25 | 200 | 34.459µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:30 | 200 | 36.572µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:31 | 200 | 30.391µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:35 | 200 | 34.408µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:40 | 200 | 34.373µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:41 | 200 | 42.066µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:45 | 200 | 33.761µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:50 | 200 | 36.973µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:51 | 200 | 32.801µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:18:55 | 200 | 32.813µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:00 | 200 | 32.124µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:01 | 200 | 31.566µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:05 | 200 | 32.622µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:10 | 200 | 33.275µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:11 | 200 | 35.385µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:15 | 200 | 34.101µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:20 | 200 | 32.314µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:21 | 200 | 35.771µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:25 | 200 | 35.065µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:30 | 200 | 45.097µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:31 | 200 | 34.525µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:35 | 200 | 54.007µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:40 | 200 | 33.019µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:41 | 200 | 32.466µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:45 | 200 | 32.911µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:50 | 200 | 32.355µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:51 | 200 | 38.008µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:19:55 | 200 | 43.348µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:00 | 200 | 39.827µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:01 | 200 | 38.756µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:05 | 200 | 38.163µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:10 | 200 | 41.404µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:11 | 200 | 39.265µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:15 | 200 | 44.215µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:20 | 200 | 40.643µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:21 | 200 | 39.65µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:25 | 200 | 41.759µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:30 | 200 | 33.168µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:31 | 200 | 37.883µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:35 | 200 | 42.223µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:40 | 200 | 40.568µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:41 | 200 | 37.642µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:45 | 200 | 45.482µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:50 | 200 | 38.897µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:51 | 200 | 44.825µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:20:55 | 200 | 38.861µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:00 | 200 | 48.554µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:01 | 200 | 39.024µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:05 | 200 | 47.64µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:10 | 200 | 38.592µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:11 | 200 | 55.202µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:15 | 200 | 38.995µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:20 | 200 | 38.855µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:21 | 200 | 43.686µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:25 | 200 | 34.9µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:30 | 200 | 41.692µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:31 | 200 | 33.74µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:35 | 200 | 35.421µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:40 | 200 | 36.6µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:41 | 200 | 32.492µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:45 | 200 | 33.593µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:50 | 200 | 33.869µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:51 | 200 | 34.227µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:21:55 | 200 | 36.823µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:00 | 200 | 36.058µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:01 | 200 | 38.16µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:05 | 200 | 32.195µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:10 | 200 | 42.695µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:11 | 200 | 35.98µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:15 | 200 | 34.774µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:20 | 200 | 33.065µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:21 | 200 | 33.409µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:25 | 200 | 45.55µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:30 | 200 | 35.416µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:31 | 200 | 31.359µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:35 | 200 | 33.247µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:40 | 200 | 36.372µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:41 | 200 | 53.853µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:45 | 200 | 38.716µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:50 | 200 | 31.346µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:51 | 200 | 33.552µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:22:55 | 200 | 32.414µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:00 | 200 | 39.052µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:01 | 200 | 31.728µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:05 | 200 | 31.756µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:10 | 200 | 32.815µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:11 | 200 | 34.019µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:15 | 200 | 37.014µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:20 | 200 | 33.134µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:21 | 200 | 41.431µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:25 | 200 | 38.682µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:30 | 200 | 40.334µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:31 | 200 | 33.74µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:35 | 200 | 33.834µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:40 | 200 | 32.421µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:41 | 200 | 32.255µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:45 | 200 | 33.046µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-10T17:23:48.644Z","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":"0b33ada0-6f90-46ad-ac9d-b4b52cbedd7e","ephemeral":false} {"level":"info","timestamp":"2026-06-10T17:23:48.644Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"0b33ada0-6f90-46ad-ac9d-b4b52cbedd7e","keyPrefix":"sk-oai-eqbv37vRNNLP...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/06/10 - 17:23:48 | 201 | 12.60306ms | 52.71.36.72 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/10 - 17:23:48 | 200 | 1.575138ms | 10.133.0.46 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/10 - 17:23:48 | 200 | 500.141µs | 10.133.0.46 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/10 - 17:23:48 | 200 | 329.348µs | 10.133.0.46 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/10 - 17:23:48 | 200 | 50.978485ms | 52.71.36.72 | GET "/v1/models" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-10T17:23:49.003Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"0b33ada0-6f90-46ad-ac9d-b4b52cbedd7e"} {"level":"info","timestamp":"2026-06-10T17:23:49.003Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"0b33ada0-6f90-46ad-ac9d-b4b52cbedd7e","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/10 - 17:23:49 | 200 | 3.023502ms | 52.71.36.72 | DELETE "/v1/api-keys/0b33ada0-6f90-46ad-ac9d-b4b52cbedd7e" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/10 - 17:23:50 | 200 | 33.199µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:51 | 200 | 33.787µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:23:55 | 200 | 36.508µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:24:00 | 200 | 37.304µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:24:01 | 200 | 33.562µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:24:05 | 200 | 34.539µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:24:10 | 200 | 37.191µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:24:11 | 200 | 30.591µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:24:15 | 200 | 59.696µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:24:20 | 200 | 33.897µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/10 - 17:24:21 | 200 | 35.873µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-10T17:24:21.692Z","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":"9864a8cc-a572-4355-921a-e3d52204d45a","ephemeral":false} {"level":"info","timestamp":"2026-06-10T17:24:21.692Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"9864a8cc-a572-4355-921a-e3d52204d45a","keyPrefix":"sk-oai-1YrujHzFT6FT...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/06/10 - 17:24:21 | 201 | 1.673257ms | 52.71.36.72 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/10 - 17:24:21 | 200 | 504.11µs | 10.133.0.46 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/10 - 17:24:21 | 200 | 454.939µs | 10.133.0.46 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/10 - 17:24:21 | 200 | 114.149µs | 10.133.0.46 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/10 - 17:24:21 | 200 | 11.177058ms | 52.71.36.72 | GET "/v1/models" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-10T17:24:22.000Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"9864a8cc-a572-4355-921a-e3d52204d45a"} {"level":"info","timestamp":"2026-06-10T17:24:22.001Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"9864a8cc-a572-4355-921a-e3d52204d45a","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/10 - 17:24:22 | 200 | 2.002386ms | 52.71.36.72 | DELETE "/v1/api-keys/9864a8cc-a572-4355-921a-e3d52204d45a" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/10 - 17:24:25 | 200 | 32.041µs | 10.134.0.2 | GET "/health"