{
  "id": "glooctl",
  "name": "glooctl",
  "homepage": "https://docs.solo.io/gloo-edge/latest/reference/cli/glooctl/",
  "description": "CLI for Gloo.",
  "executables": [
    "glooctl"
  ],
  "dotfiles": {
    "paths": [
      "~/.gloo/glooctl-config.yaml"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "glooctl",
    "description": "Install Gloo Gateway on Kubernetes. Other glooctl subcommands and the Consul options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "install",
          "gateway"
        ],
        "label": "Install Gloo Gateway",
        "description": "Install the open-source Gloo Gateway into a Kubernetes cluster (requires kubectl).",
        "source": [
          {
            "id": "help",
            "kind": "manual",
            "url": "https://docs.solo.io/gloo-edge/latest/reference/cli/glooctl_install_gateway/",
            "evidence": "glooctl install gateway [flags]\n      --create-namespace      Create the namespace to install gloo into (default true)\n  -d, --dry-run               Dump the raw installation yaml instead of applying it to kubernetes\n  -f, --file string           Install Gloo from this Helm chart archive file rather than from a release\n  -n, --namespace string      namespace to install gloo into (default \"gloo-system\")\n      --release-name string   helm release name (default \"gloo\")\n      --values strings        List of files with value overrides for the Gloo Helm chart, (e.g. --values file1,file2 or --values file1 --values file2)\n      --version string        version to install (e.g. 1.4.0, defaults to latest)\n      --kube-context string        kube context to use when interacting with kubernetes\n      --kubeconfig string          kubeconfig to use, if not standard one\n  -v, --verbose                    If true, output from kubectl commands will print to stdout/stderr"
          }
        ],
        "field": [
          {
            "id": "dry_run",
            "label": "Dry run (print YAML)",
            "type": "boolean",
            "option": [
              "--dry-run",
              "-d"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "namespace",
            "label": "Namespace",
            "type": "string",
            "option": [
              "--namespace",
              "-n"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "version",
            "label": "Gloo version",
            "type": "string",
            "option": [
              "--version"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "release_name",
            "label": "Helm release name",
            "type": "string",
            "option": [
              "--release-name"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "file",
            "label": "Helm chart archive",
            "type": "path",
            "path": {
              "kind": "file",
              "role": "input"
            },
            "option": [
              "--file",
              "-f"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "values",
            "label": "Values files",
            "type": "path",
            "path": {
              "kind": "file",
              "role": "input"
            },
            "option": [
              "--values"
            ],
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "kube_context",
            "label": "Kube context",
            "type": "string",
            "option": [
              "--kube-context"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "kubeconfig",
            "label": "Kubeconfig",
            "type": "path",
            "path": {
              "kind": "file",
              "role": "input"
            },
            "option": [
              "--kubeconfig"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose kubectl output",
            "type": "boolean",
            "option": [
              "--verbose",
              "-v"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "preview",
            "label": "Preview manifests",
            "set": {
              "dry_run": [
                true
              ]
            },
            "lock": [
              "dry_run"
            ],
            "fields": [
              "dry_run",
              "namespace",
              "version",
              "values"
            ]
          },
          {
            "id": "install",
            "label": "Install",
            "fields": [
              "namespace",
              "version",
              "values",
              "kube_context"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "dry_run",
              "namespace",
              "version",
              "values"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "release_name",
              "file",
              "kube_context",
              "kubeconfig",
              "verbose"
            ]
          }
        ]
      }
    ]
  }
}
