{
  "id": "clusterctl",
  "name": "clusterctl",
  "homepage": "https://cluster-api.sigs.k8s.io/",
  "executables": [
    "clusterctl"
  ],
  "dotfiles": {
    "paths": [],
    "secret": [
      "[configHome]/cluster-api/clusterctl.yaml",
      "~/.cluster-api/clusterctl.yaml"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Cluster API management",
    "description": "Install providers, generate and describe clusters, and move Cluster API objects with clusterctl. Upgrade, delete and other commands are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "init"
        ],
        "label": "Install providers",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://cluster-api.sigs.k8s.io/clusterctl/commands/init.html",
            "revision": "2026-10-27",
            "evidence": "clusterctl init --infrastructure aws\n--core flag, the --bootstrap flag or the --control-plane flags\nspecify the target namespace by using the --target-namespace flag\n"
          }
        ],
        "field": [
          {
            "id": "infrastructure",
            "label": "Infrastructure provider",
            "description": "e.g. aws or aws:v0.4.1.",
            "type": "string",
            "option": [
              "--infrastructure"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "core",
            "label": "Core provider",
            "type": "string",
            "option": [
              "--core"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "bootstrap",
            "label": "Bootstrap provider",
            "type": "string",
            "option": [
              "--bootstrap"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "control_plane",
            "label": "Control plane provider",
            "type": "string",
            "option": [
              "--control-plane"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "target_namespace",
            "label": "Target namespace",
            "type": "string",
            "option": [
              "--target-namespace"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "init",
            "label": "Init with infrastructure",
            "fields": [
              "infrastructure",
              "target_namespace"
            ],
            "required": [
              "infrastructure"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "infrastructure",
              "target_namespace"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "core",
              "bootstrap",
              "control_plane"
            ]
          }
        ]
      },
      {
        "path": [
          "generate",
          "cluster"
        ],
        "label": "Generate a cluster manifest",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://cluster-api.sigs.k8s.io/clusterctl/commands/generate-cluster.html",
            "revision": "2026-10-27",
            "evidence": "clusterctl generate cluster my-cluster --kubernetes-version v1.28.0 --control-plane-machine-count=3 --worker-machine-count=3 > my-cluster.yaml\n--infrastructure aws:v0.4.1\n--flavor high-availability\n--from https://foo.bar/my-template.yaml\n--target-namespace\nclusterctl generate cluster --list-variables flag\n"
          }
        ],
        "field": [
          {
            "id": "name",
            "label": "Cluster name",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "help"
            ]
          },
          {
            "id": "kubernetes_version",
            "label": "Kubernetes version",
            "type": "string",
            "option": [
              "--kubernetes-version"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "control_plane_count",
            "label": "Control plane machines",
            "type": "integer",
            "option": [
              "--control-plane-machine-count"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "worker_count",
            "label": "Worker machines",
            "type": "integer",
            "option": [
              "--worker-machine-count"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "infrastructure",
            "label": "Infrastructure provider",
            "type": "string",
            "option": [
              "--infrastructure"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "flavor",
            "label": "Template flavor",
            "type": "string",
            "option": [
              "--flavor"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "from",
            "label": "Template source",
            "description": "URL or local file path of a cluster template.",
            "type": "string",
            "option": [
              "--from"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "target_namespace",
            "label": "Target namespace",
            "type": "string",
            "option": [
              "--target-namespace"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "list_variables",
            "label": "List template variables",
            "type": "boolean",
            "option": [
              "--list-variables"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "gen",
            "label": "Generate manifest",
            "fields": [
              "name",
              "kubernetes_version",
              "control_plane_count",
              "worker_count",
              "infrastructure",
              "flavor"
            ],
            "required": [
              "name"
            ]
          },
          {
            "id": "vars",
            "label": "List variables",
            "set": {
              "list_variables": [
                true
              ]
            },
            "lock": [
              "list_variables"
            ],
            "fields": [
              "name",
              "list_variables",
              "infrastructure",
              "flavor"
            ],
            "required": [
              "name"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "name",
              "kubernetes_version",
              "control_plane_count",
              "worker_count",
              "infrastructure"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "flavor",
              "from",
              "target_namespace",
              "list_variables"
            ]
          }
        ]
      },
      {
        "path": [
          "describe",
          "cluster"
        ],
        "label": "Describe a cluster",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://cluster-api.sigs.k8s.io/clusterctl/commands/describe-cluster.html",
            "revision": "2026-10-27",
            "evidence": "clusterctl describe cluster capi-quickstart\nBy using --grouping=false, the user can force the visualization to show all the machines\nBy using the --echo flag\n--show-conditions KubeadmControlPlane\n"
          }
        ],
        "field": [
          {
            "id": "name",
            "label": "Cluster name",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "help"
            ]
          },
          {
            "id": "grouping",
            "label": "Group identical machines",
            "type": "boolean",
            "option": [
              "--grouping"
            ],
            "false_option": "--grouping=false",
            "sources": [
              "help"
            ]
          },
          {
            "id": "echo",
            "label": "Show infrastructure and bootstrap objects",
            "type": "boolean",
            "option": [
              "--echo"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "show_conditions",
            "label": "Show all conditions for kinds",
            "description": "Comma separated kind or kind/name list.",
            "type": "string",
            "option": [
              "--show-conditions"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "describe",
            "label": "Describe",
            "fields": [
              "name",
              "echo",
              "show_conditions"
            ],
            "required": [
              "name"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "name",
              "echo",
              "show_conditions"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "grouping"
            ]
          }
        ]
      },
      {
        "path": [
          "move"
        ],
        "label": "Move Cluster API objects",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://cluster-api.sigs.k8s.io/clusterctl/commands/move.html",
            "revision": "2026-10-27",
            "evidence": "clusterctl move --to-kubeconfig=\"path-to-target-kubeconfig.yaml\"\nuse the --namespace flag\nclusterctl move --to-directory and clusterctl move --from-directory\nWith --dry-run option you can dry-run the move action\n"
          }
        ],
        "field": [
          {
            "id": "to_kubeconfig",
            "label": "Target kubeconfig",
            "type": "path",
            "option": [
              "--to-kubeconfig"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "namespace",
            "label": "Namespace",
            "type": "string",
            "option": [
              "--namespace"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "to_directory",
            "label": "Export to directory",
            "type": "path",
            "option": [
              "--to-directory"
            ],
            "path": {
              "kind": "directory",
              "role": "output"
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "from_directory",
            "label": "Import from directory",
            "type": "path",
            "option": [
              "--from-directory"
            ],
            "path": {
              "kind": "directory",
              "role": "input"
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "dry_run",
            "label": "Dry run",
            "type": "boolean",
            "option": [
              "--dry-run"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "preview",
            "label": "Preview a move",
            "set": {
              "dry_run": [
                true
              ]
            },
            "lock": [
              "dry_run"
            ],
            "fields": [
              "to_kubeconfig",
              "namespace",
              "dry_run"
            ],
            "required": [
              "to_kubeconfig"
            ]
          },
          {
            "id": "move",
            "label": "Move to another cluster",
            "fields": [
              "to_kubeconfig",
              "namespace"
            ],
            "required": [
              "to_kubeconfig"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "to_kubeconfig",
              "namespace",
              "dry_run"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "to_directory",
              "from_directory"
            ]
          }
        ]
      }
    ]
  }
}
