{"level":"info","timestamp":"2026-06-05T18:34:44.722Z","caller":"cmd/main.go:65","message":"Loading database connection URL from secret..."} {"level":"info","timestamp":"2026-06-05T18:34:44.737Z","caller":"cmd/main.go:172","message":"Connecting to PostgreSQL database..."} {"level":"info","timestamp":"2026-06-05T18:34:44.738Z","caller":"cmd/main.go:101","message":"Metrics server starting","address":":9090"} {"level":"info","timestamp":"2026-06-05T18:34:44.912Z","caller":"api_keys/db_driver.go:90","message":"Database schema applied","version":4} {"level":"info","timestamp":"2026-06-05T18:34:44.913Z","caller":"api_keys/db_driver.go:57","message":"Connected to PostgreSQL database (schema applied)"} {"level":"info","timestamp":"2026-06-05T18:34:45.022Z","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-05T18:34:45.097Z","caller":"cmd/main.go:134","message":"Server starting","address":":8443","secure":true} [GIN] 2026/06/05 - 18:34:51 | 200 | 65.365µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:34:56 | 200 | 41.519µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:01 | 200 | 50.37µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:06 | 200 | 66.536µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:11 | 200 | 40.779µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:16 | 200 | 47.847µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:21 | 200 | 34.118µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:21 | 200 | 37.108µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:26 | 200 | 43.76µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:31 | 200 | 39.602µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:31 | 200 | 48.378µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:36 | 200 | 42.24µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:41 | 200 | 43.924µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:41 | 200 | 48.951µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:46 | 200 | 39.743µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:51 | 200 | 39.607µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:51 | 200 | 39.594µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:35:56 | 200 | 53.172µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:01 | 200 | 49.233µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:01 | 200 | 39.078µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:06 | 200 | 40.473µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:11 | 200 | 40.451µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:11 | 200 | 36.353µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:16 | 200 | 54.943µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:21 | 200 | 40.257µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:21 | 200 | 38.981µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:26 | 200 | 41.35µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:31 | 200 | 36.824µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:31 | 200 | 39.952µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:36 | 200 | 43.167µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:41 | 200 | 39.95µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:41 | 200 | 39.674µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:46 | 200 | 41.174µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:51 | 200 | 38.79µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:51 | 200 | 39.913µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:36:56 | 200 | 38.505µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:01 | 200 | 38.295µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:01 | 200 | 31.237µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:06 | 200 | 62.141µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:11 | 200 | 41.411µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:11 | 200 | 39.051µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:16 | 200 | 39.245µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:21 | 200 | 48.221µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:21 | 200 | 45.326µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:26 | 200 | 40.69µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:31 | 200 | 43.102µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:31 | 200 | 38.056µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:36 | 200 | 38.011µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:41 | 200 | 39.814µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:41 | 200 | 40.879µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:46 | 200 | 45.724µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:51 | 200 | 40.437µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:51 | 200 | 40.083µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:37:56 | 200 | 42.489µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:01 | 200 | 47.837µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:01 | 200 | 37.885µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:06 | 200 | 45.144µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:11 | 200 | 39.151µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:11 | 200 | 39.31µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:16 | 200 | 52.314µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:21 | 200 | 40.445µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:21 | 200 | 39.005µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:26 | 200 | 42.166µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:31 | 200 | 40.572µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:31 | 200 | 41.639µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:36 | 200 | 39.523µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:41 | 200 | 37.798µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:41 | 200 | 40.047µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:46 | 200 | 39.663µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:51 | 200 | 40.817µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:51 | 200 | 40.994µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:38:56 | 200 | 40.332µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:01 | 200 | 39.043µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:01 | 200 | 50.978µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:06 | 200 | 38.423µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:11 | 200 | 55.159µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:11 | 200 | 38.192µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:16 | 200 | 33.937µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:21 | 200 | 53.834µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:21 | 200 | 33.097µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:26 | 200 | 31.126µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:31 | 200 | 34.373µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:31 | 200 | 31.73µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:36 | 200 | 33.877µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:41 | 200 | 33.031µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:41 | 200 | 32.969µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:46 | 200 | 33.88µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:51 | 200 | 32.017µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:51 | 200 | 36.598µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:39:56 | 200 | 37.841µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:01 | 200 | 34.39µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:01 | 200 | 33.813µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:06 | 200 | 38.945µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:11 | 200 | 34.1µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:11 | 200 | 35.955µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:16 | 200 | 45.487µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:21 | 200 | 36.36µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:21 | 200 | 34.291µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:26 | 200 | 35.944µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:31 | 200 | 34.697µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:31 | 200 | 38.786µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:36 | 200 | 33.976µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:41 | 200 | 34.302µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:41 | 200 | 32.112µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:46 | 200 | 42.006µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:51 | 200 | 42.892µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:51 | 200 | 33.064µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:40:56 | 200 | 41.817µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:41:01 | 200 | 33.907µs | 10.133.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-05T18:41:01.648Z","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":"07887601-6734-4cce-8895-c8945551aa88","ephemeral":false} {"level":"info","timestamp":"2026-06-05T18:41:01.648Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"07887601-6734-4cce-8895-c8945551aa88","keyPrefix":"sk-oai-Bk7qaHNOXjPs...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/06/05 - 18:41:01 | 201 | 11.40206ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/05 - 18:41:01 | 200 | 1.520627ms | 10.133.0.52 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/05 - 18:41:01 | 200 | 42.754µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:41:02 | 200 | 767.312254ms | 34.228.250.194 | GET "/v1/models" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-05T18:41:02.545Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"07887601-6734-4cce-8895-c8945551aa88"} {"level":"info","timestamp":"2026-06-05T18:41:02.545Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"07887601-6734-4cce-8895-c8945551aa88","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/05 - 18:41:02 | 200 | 3.142774ms | 34.228.250.194 | DELETE "/v1/api-keys/07887601-6734-4cce-8895-c8945551aa88" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/05 - 18:41:06 | 200 | 40.228µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:41:11 | 200 | 42.959µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:41:11 | 200 | 41.343µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:41:16 | 200 | 45.395µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:41:21 | 200 | 50.813µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:41:21 | 200 | 40.349µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:41:26 | 200 | 40.228µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:41:31 | 200 | 41.525µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/05 - 18:41:31 | 200 | 46.013µs | 10.133.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-05T18:41:35.058Z","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":"abb1fbf5-14ac-4977-9f5f-7ba9dd8c317b","ephemeral":false} {"level":"info","timestamp":"2026-06-05T18:41:35.058Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"abb1fbf5-14ac-4977-9f5f-7ba9dd8c317b","keyPrefix":"sk-oai-ICjQrixhf7Hb...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/06/05 - 18:41:35 | 201 | 2.160994ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/05 - 18:41:35 | 200 | 601.581µs | 10.133.0.52 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/05 - 18:41:35 | 200 | 750.226805ms | 34.228.250.194 | GET "/v1/models" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-05T18:41:35.907Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"abb1fbf5-14ac-4977-9f5f-7ba9dd8c317b"} {"level":"info","timestamp":"2026-06-05T18:41:35.907Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"abb1fbf5-14ac-4977-9f5f-7ba9dd8c317b","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/05 - 18:41:35 | 200 | 2.578667ms | 34.228.250.194 | DELETE "/v1/api-keys/abb1fbf5-14ac-4977-9f5f-7ba9dd8c317b" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/05 - 18:41:36 | 200 | 37.656µs | 10.133.0.2 | GET "/health"