{
  "repo": "pingcap/advanced-statefulset",
  "binary": "controller-manager",
  "binary_path": "cmd/controller-manager/main.go",
  "surface_kind": "controller_service",
  "type": "controller_service",
  "extensions": {},
  "services": [
    {
      "name": "AdvancedStatefulSetLifecycle",
      "package": "app",
      "methods": [
        {
          "name": "InitializeControllerManagerCommand",
          "name_key": "AdvancedStatefulSetLifecycle.InitializeControllerManagerCommand",
          "input": "cobra command flags + kubeconfig options",
          "output": "configured controller-manager command",
          "type": "local"
        },
        {
          "name": "BuildControllerConfig",
          "name_key": "AdvancedStatefulSetLifecycle.BuildControllerConfig",
          "input": "master + kubeconfig + generic component options",
          "output": "kube clients, pingcap client, event recorder, and optional leader election config",
          "type": "local"
        },
        {
          "name": "StartLeaderElection",
          "name_key": "AdvancedStatefulSetLifecycle.StartLeaderElection",
          "input": "leader election config + callbacks",
          "output": "single active controller-manager instance",
          "type": "local"
        },
        {
          "name": "StartInformerFactories",
          "name_key": "AdvancedStatefulSetLifecycle.StartInformerFactories",
          "input": "core informer factory + pingcap informer factory",
          "output": "running shared informer caches",
          "type": "local"
        },
        {
          "name": "StartStatefulSetController",
          "name_key": "AdvancedStatefulSetLifecycle.StartStatefulSetController",
          "input": "pod informer + statefulset informer + pvc informer + revision informer",
          "output": "running Advanced StatefulSet reconcile workers",
          "type": "local"
        }
      ]
    }
  ]
}
