{
  "repo": "tidbcloud/aws-shared-provider",
  "binary": "csi-node-taint",
  "binary_path": "cmd/csi-node-taint/main.go",
  "dependencies": {
    "HTTP GET /healthz": {
      "infrastructure": {},
      "services": []
    },
    "HTTP GET /readyz": {
      "infrastructure": {},
      "services": []
    },
    "Runtime CSINodeReconciler.Reconcile": {
      "infrastructure": {},
      "services": [
        {
          "name": "kubernetes-api",
          "target_interface": "GET /apis/storage.k8s.io/v1/csinodes",
          "operation_type": "http_get",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "Get CSINode",
              "trigger": "Fetch CSINode resource",
              "conditions": ["Always"],
              "implementation": "r.Get(ctx, req.NamespacedName, csiNode)"
            }
          ]
        },
        {
          "name": "kubernetes-api",
          "target_interface": "GET /api/v1/nodes",
          "operation_type": "http_get",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "Get Node",
              "trigger": "Fetch corresponding Node resource",
              "conditions": ["Always"],
              "implementation": "r.Get(ctx, req.NamespacedName, node)"
            }
          ]
        },
        {
          "name": "kubernetes-api",
          "target_interface": "PUT /api/v1/nodes/{name}",
          "operation_type": "http_put",
          "conditions": ["CSINode has drivers and Node has not-ready taint"],
          "operations": [
            {
              "operation": "Update Node taints",
              "trigger": "Remove csi.tidbcloud.com/not-ready taint",
              "conditions": ["CSINode.Spec.Drivers != nil", "Node has not-ready taint"],
              "implementation": "r.Update(ctx, node)"
            }
          ]
        }
      ]
    }
  }
}
