{
  "repo": "tidbcloud/gke-provider",
  "binary": "gke-provider",
  "binary_path": "main.go",
  "surface_kind": "worker_service",
  "type": "worker_service",
  "services": [
    {
      "name": "GKEProviderLifecycle",
      "package": "main",
      "methods": [
        {
          "name": "BuildManager",
          "name_key": "Runtime GKEProviderLifecycle.BuildManager",
          "input": "controller-runtime flags + kubeconfig + root config",
          "output": "configured manager with metrics listener and health probes",
          "type": "local"
        },
        {
          "name": "RegisterEKSConnectionController",
          "name_key": "Runtime GKEProviderLifecycle.RegisterEKSConnectionController",
          "input": "manager",
          "output": "EKSConnection controller wired into reconcile loop",
          "type": "local"
        },
        {
          "name": "RegisterNetworkController",
          "name_key": "Runtime GKEProviderLifecycle.RegisterNetworkController",
          "input": "manager + label selector predicate",
          "output": "Network controller wired into reconcile loop",
          "type": "local"
        },
        {
          "name": "StartManager",
          "name_key": "Runtime GKEProviderLifecycle.StartManager",
          "input": "signal handler",
          "output": "running controller manager",
          "type": "local"
        }
      ]
    }
  ],
  "extensions": {
    "notes": [
      "main.go runs a long-lived controller-runtime manager rather than a one-shot CLI.",
      "The binary exposes controller-runtime metrics on :8080 and health/readiness probes on :8081."
    ]
  }
}
