{
  "repo": "tidbcloud/cert-manager",
  "binary": "cainjector",
  "binary_path": "cmd/cainjector/main.go",
  "dependencies": {
    "Runtime CAInjectorControllers.RegisterCertificateBased": {
      "infrastructure": {
        "kubernetes": {
          "conditions": [
            "Always"
          ],
          "operations": [
            {
              "operation": "Watch Certificate resources and inject CA bundles into webhook configurations, APIServices, and CRDs",
              "trigger": "Leader-elected cainjector starts",
              "implementation": "cainjector.RegisterCertificateBased(...) and registerAllInjectors(...)"
            }
          ]
        }
      },
      "services": [
        {
          "name": "cert-manager-webhook",
          "target_interface": "AdmissionRegistration and APIService CA bundles",
          "operation_type": "ca_injection",
          "conditions": [
            "Always"
          ],
          "operations": [
            {
              "operation": "Keep serving CA bundles in sync for webhook and aggregated APIs",
              "trigger": "Certificate-backed injector controllers run",
              "implementation": "MutatingWebhookSetup / ValidatingWebhookSetup / APIServiceSetup / CRDSetup"
            }
          ]
        }
      ]
    },
    "Runtime CAInjectorControllers.RegisterSecretBased": {
      "infrastructure": {
        "kubernetes": {
          "conditions": [
            "Always"
          ],
          "operations": [
            {
              "operation": "Watch Secret and kubeconfig sources and inject CA bundles",
              "trigger": "Secret-based injector goroutine starts",
              "implementation": "cainjector.RegisterSecretBased(...)"
            }
          ]
        }
      },
      "services": []
    }
  }
}
