{
  "repo": "tidbcloud/cert-manager",
  "binary": "controller",
  "binary_path": "cmd/controller/main.go",
  "dependencies": {
    "HTTP GET /metrics": {
      "infrastructure": {
        "prometheus": {
          "conditions": [
            "Always"
          ],
          "operations": [
            {
              "operation": "Expose cert-manager controller metrics",
              "trigger": "Metrics server starts on metrics-listen-address",
              "implementation": "ctx.Metrics.Start(opts.MetricsListenAddress, opts.EnablePprof)"
            }
          ]
        }
      },
      "services": []
    },
    "HTTP GET /debug/pprof/*": {
      "infrastructure": {},
      "services": []
    },
    "Runtime ControllerManager.Run": {
      "infrastructure": {
        "kubernetes": {
          "conditions": [
            "Always"
          ],
          "operations": [
            {
              "operation": "Watch cert-manager and Kubernetes resources and reconcile certificates, issuers, challenges, and ingress shims",
              "trigger": "Main controller process starts",
              "implementation": "controller.Known(), informer factories, clientset.NewForConfig, kubernetes.NewForConfig, leader election"
            }
          ]
        }
      },
      "services": [
        {
          "name": "acmesolver",
          "target_interface": "HTTP01 challenge pod",
          "operation_type": "workload_orchestrator",
          "conditions": [
            "When HTTP01 challenges are used"
          ],
          "operations": [
            {
              "operation": "Launch challenge solver pods and services",
              "trigger": "HTTP01 challenge reconciliation",
              "implementation": "pkg/issuer/acme/http creates solver Pod/Service/Ingress resources"
            }
          ]
        }
      ]
    }
  }
}
