minikubeSpec top-level property

FigSpec minikubeSpec
final

Completion spec for minikube CLI

Implementation

final FigSpec minikubeSpec = FigSpec(
    name: 'minikube',
    description:
        'Minikube provisions and manages local Kubernetes clusters optimized for development workflows',
    subcommands: [
      Subcommand(
          name: 'start',
          description: 'Starts a local Kubernetes cluster',
          options: [
            Option(
                name: '--addons',
                description:
                    'Enable addons. see `minikube addons list` for a list of valid addon names'),
            Option(
                name: '--apiserver-ips',
                description:
                    'A set of apiserver IP Addresses which are used in the generated certificate for kubernetes'),
            Option(
                name: '--apiserver-name',
                description:
                    'The authoritative apiserver hostname for apiserver certificates and connectivity'),
            Option(
                name: '--apiserver-names',
                description:
                    'A set of apiserver names which are used in the generated certificate for kubernetes'),
            Option(
                name: '--apiserver-port',
                description: 'The apiserver listening port'),
            Option(
                name: '--auto-update-drivers',
                description:
                    'If set, automatically updates drivers to the latest version',
                args: [
                  Arg(suggestions: [
                    FigSuggestion(name: 'true'),
                    FigSuggestion(name: 'false')
                  ])
                ]),
            Option(
                name: '--base-image',
                description:
                    'The base image to use for docker/podman drivers. Intended for local development'),
            Option(
                name: '--cache-images',
                description:
                    'If true, cache docker images for the current bootstrapper and load them into the machine'),
            Option(
                name: '--cert-expiration',
                description: 'Duration until minikube certificate expiration'),
            Option(name: '--cni', description: 'CNI plug-in to use', args: [
              Arg(name: 'cni-plugin', suggestions: [
                FigSuggestion(name: 'auto'),
                FigSuggestion(name: 'bridge'),
                FigSuggestion(name: 'cilium'),
                FigSuggestion(name: 'flannel'),
                FigSuggestion(name: 'kindnet')
              ])
            ]),
            Option(
                name: '--container-runtime',
                description: 'The container runtime to be used',
                args: [
                  Arg(name: 'container-runtime', suggestions: [
                    FigSuggestion(name: 'docker'),
                    FigSuggestion(name: 'cri-o'),
                    FigSuggestion(name: 'containerd')
                  ])
                ]),
            Option(
                name: '--cpus',
                description: 'Number of CPUs allocated to Kubernetes',
                args: [
                  Arg(
                      name: 'cpu number',
                      suggestions: [FigSuggestion(name: 'max')])
                ]),
            Option(
                name: '--cri-socket',
                description: 'The cri socket path to be used'),
            Option(
                name: '--delete-on-failure',
                description:
                    'If set, delete the current cluster if start fails and try again',
                args: [
                  Arg(suggestions: [
                    FigSuggestion(name: 'true'),
                    FigSuggestion(name: 'false')
                  ])
                ]),
            Option(
                name: '--disable-driver-mounts',
                description:
                    'Disables the filesystem mounts provided by the hypervisors'),
            Option(
                name: '--disk-size',
                description: 'Disk size allocated to the minikube VM'),
            Option(
                name: '--dns-domain',
                description:
                    'The cluster dns domain name used in the Kubernetes cluster'),
            Option(
                name: '--dns-proxy',
                description: 'Enable proxy for NAT DNS requests'),
            Option(
                name: '--docker-env',
                description:
                    'Environment variables to pass to the Docker daemon. (format: key=value)'),
            Option(
                name: '--docker-opt',
                description:
                    'Specify arbitrary flags to pass to the Docker daemon. (format: key=value)'),
            Option(
                name: '--download-only',
                description:
                    'If true, only download and cache files for later use - don\'t install or start anything'),
            Option(name: '--driver', description: 'Choose driver', args: [
              Arg(name: 'driver', suggestions: [
                FigSuggestion(name: 'virtualbox'),
                FigSuggestion(name: 'parallels'),
                FigSuggestion(name: 'vmwarefusion'),
                FigSuggestion(name: 'hyperkit'),
                FigSuggestion(name: 'vmware'),
                FigSuggestion(name: 'docker'),
                FigSuggestion(name: 'podman')
              ])
            ]),
            Option(
                name: '--dry-run',
                description:
                    'Dry-run mode. Validates configuration, but does not mutate system state'),
            Option(
                name: '--embed-certs',
                description: 'If true, will embed the certs in kubeconfig',
                args: [
                  Arg(suggestions: [
                    FigSuggestion(name: 'true'),
                    FigSuggestion(name: 'false')
                  ])
                ]),
            Option(
                name: '--extra-config',
                description:
                    'A set of key=value pairs that describe configuration that may be passed to different components'),
            Option(
                name: '--extra-disks',
                description:
                    'Number of extra disks created and attached to the minikube VM'),
            Option(
                name: '--feature-gates',
                description:
                    'A set of key=value pairs that describe feature gates for alpha/experimental features'),
            Option(
                name: '--force',
                description:
                    'Force minikube to perform possibly dangerous operations'),
            Option(
                name: '--force-systemd',
                description:
                    'If set, force the container runtime to use systemd as cgroup manager',
                args: [
                  Arg(suggestions: [
                    FigSuggestion(name: 'true'),
                    FigSuggestion(name: 'false')
                  ])
                ]),
            Option(
                name: '--host-dns-resolver',
                description: 'Enable host resolver for NAT DNS requests'),
            Option(
                name: '--host-only-cidr',
                description: 'The CIDR to be used for the minikube VM'),
            Option(
                name: '--host-only-nic-type',
                description: 'NIC Type used for host only network',
                args: [
                  Arg(name: 'nic type', suggestions: [
                    FigSuggestion(name: 'Am79C970A'),
                    FigSuggestion(name: 'Am79C973'),
                    FigSuggestion(name: '82540EM'),
                    FigSuggestion(name: '82543GC'),
                    FigSuggestion(name: '82545EM'),
                    FigSuggestion(name: 'virtio')
                  ])
                ]),
            Option(
                name: '--hyperkit-vpnkit-sock',
                description:
                    'Location of the VPNKit socket used for networking'),
            Option(
                name: '--hyperkit-vsock-ports',
                description:
                    'List of guest VSock ports that should be exposed as sockets on the host'),
            Option(
                name: '--hyperv-external-adapter',
                description:
                    'External Adapter on which external switch will be created if no external switch is found'),
            Option(
                name: '--hyperv-use-external-switch',
                description:
                    'Whether to use external switch over Default Switch if virtual switch not explicitly specified'),
            Option(
                name: '--hyperv-virtual-switch',
                description:
                    'The hyperv virtual switch name. Defaults to first found'),
            Option(
                name: '--image-mirror-country',
                description: 'Country code of the image mirror to be used'),
            Option(
                name: '--image-repository',
                description:
                    'Alternative image repository to pull docker images from'),
            Option(
                name: '--insecure-registry',
                description:
                    'Insecure Docker registries to pass to the Docker daemon'),
            Option(
                name: '--install-addons',
                description: 'If set, install addons. Defaults to true',
                args: [
                  Arg(suggestions: [
                    FigSuggestion(name: 'true'),
                    FigSuggestion(name: 'false')
                  ])
                ]),
            Option(
                name: '--interactive',
                description: 'Allow user prompts for more information'),
            Option(
                name: '--iso-url',
                description: 'Locations to fetch the minikube ISO from'),
            Option(
                name: '--keep-context',
                description:
                    'This will keep the existing kubectl context and will create a minikube context'),
            Option(
                name: '--kubernetes-version',
                description:
                    'The Kubernetes version that the minikube VM will use'),
            Option(
                name: '--kvm-gpu',
                description:
                    'Enable experimental NVIDIA GPU support in minikube'),
            Option(
                name: '--kvm-hidden',
                description:
                    'Hide the hypervisor signature from the guest in minikube'),
            Option(
                name: '--kvm-network',
                description: 'The KVM default network name'),
            Option(
                name: '--kvm-numa-count',
                description:
                    'Simulate numa node count in minikube, supported numa node count range is 1-8',
                args: [
                  Arg(name: 'numa count', suggestions: [
                    FigSuggestion(name: '1'),
                    FigSuggestion(name: '2'),
                    FigSuggestion(name: '3'),
                    FigSuggestion(name: '4'),
                    FigSuggestion(name: '5'),
                    FigSuggestion(name: '6'),
                    FigSuggestion(name: '7'),
                    FigSuggestion(name: '8')
                  ])
                ]),
            Option(
                name: '--kvm-qemu-uri',
                description: 'The KVM QEMU connection URI'),
            Option(
                name: '--listen-address',
                description: 'IP Address to use to expose ports'),
            Option(
                name: '--memory',
                description: 'Amount of RAM to allocate to Kubernetes'),
            Option(
                name: '--mount',
                description:
                    'This will start the mount daemon and automatically mount files into minikube'),
            Option(
                name: '--mount-string',
                description:
                    'The argument to pass the minikube mount command on start'),
            Option(
                name: '--namespace',
                description: 'The named space to activate after start'),
            Option(
                name: '--nat-nic-type',
                description: 'NIC Type used for nat network'),
            Option(
                name: '--native-ssh',
                description: 'Use native Golang SSH client'),
            Option(
                name: '--network', description: 'Network to run minikube with'),
            Option(
                name: '--network-plugin',
                description: 'Kubelet network plug-in to use'),
            Option(
                name: '--nfs-share',
                description:
                    'Local folders to share with Guest via NFS mounts'),
            Option(
                name: '--nfs-shares-root',
                description: 'Where to root the NFS Shares'),
            Option(
                name: '--no-kubernetes',
                description:
                    'If set, minikube VM/container will start without starting or configuring Kubernetes'),
            Option(
                name: '--no-vtx-check',
                description:
                    'Disable checking for the availability of hardware virtualization before the vm is started'),
            Option(
                name: ['--nodes', '-n'],
                description: 'The number of nodes to spin up'),
            sharedOpts['output']!,
            Option(
                name: '--ports',
                description: 'List of ports that should be exposed'),
            Option(
                name: '--preload',
                description:
                    'If set, download tarball of preloaded images if available to improve start time',
                args: [
                  Arg(suggestions: [
                    FigSuggestion(name: 'true'),
                    FigSuggestion(name: 'false')
                  ])
                ]),
            Option(
                name: '--registry-mirror',
                description: 'Registry mirrors to pass to the Docker daemon'),
            Option(
                name: '--service-cluster-ip-range',
                description: 'The CIDR to be used for service cluster IPs'),
            Option(name: '--ssh-ip-address', description: 'IP address'),
            Option(name: '--ssh-key', description: 'SSH key'),
            Option(name: '--ssh-port', description: 'SSH port'),
            Option(name: '--ssh-user', description: 'SSH user'),
            Option(name: '--trace', description: 'Send trace events', args: [
              Arg(name: 'trace', suggestions: [FigSuggestion(name: 'gcp')])
            ]),
            Option(
                name: '--uuid',
                description: 'Provide VM UUID to restore MAC address'),
            Option(name: '--vm', description: 'Filter to use only VM Drivers'),
            Option(
                name: '--wait',
                description:
                    'Comma separated list of Kubernetes components to verify and wait for after starting a cluster'),
            Option(
                name: '--wait-timeout',
                description:
                    'Max time to wait per Kubernetes or host to be healthy')
          ]),
      Subcommand(
          name: 'status',
          description: 'Gets the status of a local Kubernetes cluster',
          options: [
            Option(
                name: ['--format', '-f'],
                description: 'Go template format string for the status output'),
            Option(name: ['--layout', '-l'], description: 'Output layout'),
            Option(
                name: ['--node', '-n'],
                description: 'The node to check status for'),
            sharedOpts['output']!,
            Option(
                name: ['--watch', '-w'],
                description:
                    'Continuously listing/getting the status with optional interval duration')
          ]),
      Subcommand(
          name: 'stop',
          description: 'Stops a running local Kubernetes cluster',
          options: [
            Option(
                name: '--all',
                description: 'Set flag to stop all profiles (clusters)'),
            Option(name: '--cancel-scheduled', description: 'Output layout'),
            Option(
                name: '--keep-context-active',
                description: 'The node to check status for'),
            sharedOpts['output']!,
            Option(
                name: '--schedule',
                description:
                    'Set flag to stop cluster after a set amount of time')
          ]),
      Subcommand(
          name: 'delete',
          description: 'Deletes a local Kubernetes cluster',
          options: [
            Option(
                name: '--all', description: 'Set flag to delete all profiles'),
            Option(
                name: '--purge',
                description:
                    'Set this flag to delete the \'.minikube\' folder from your user directory')
          ]),
      Subcommand(name: 'unpause', description: 'Unpause Kubernetes', options: [
        Option(
            name: ['--all-namespaces', '-A'],
            description: 'If set, unpause all namespaces'),
        Option(
            name: ['--namespaces', '-n'], description: 'Namespaces to unpause'),
        sharedOpts['output']!,
      ]),
      Subcommand(
          name: 'docker-env',
          description: 'Configure environment to use minikube\'s Docker daemon',
          options: [
            Option(
                name: ['--no-proxy', '-A'],
                description: 'If set, unpause all namespaces'),
            sharedOpts['output']!,
            sharedOpts['shell']!,
            Option(
                name: '--ssh-host',
                description: 'Use SSH connection instead of HTTPS (port 2376)'),
            sharedOpts['unset']!,
          ]),
      Subcommand(
          name: 'podman-env',
          description:
              'Configure environment to use minikube\'s Podman service',
          options: [sharedOpts['shell']!, sharedOpts['unset']!]),
      Subcommand(
          name: 'cache',
          description: 'Add, delete, or push a local image into minikube',
          subcommands: [
            Subcommand(name: 'add', description: 'Add an image to local cache'),
            Subcommand(
                name: 'delete',
                description: 'Delete an image from the local cache'),
            Subcommand(
                name: 'list',
                description: 'List all available images from the local cache'),
            Subcommand(name: 'reload', description: 'Reload cached images')
          ]),
      Subcommand(name: 'image', description: 'Manage images', subcommands: [
        Subcommand(
            name: 'build', description: 'Build a container image in minikube'),
        Subcommand(name: 'load', description: 'Load a image into minikube'),
        Subcommand(name: 'ls', description: 'List images'),
        Subcommand(name: 'pull', description: 'Pull images'),
        Subcommand(name: 'push', description: 'Push images'),
        Subcommand(name: 'rm', description: 'Remove one or more images'),
        Subcommand(name: 'save', description: 'Save a image from minikube'),
        Subcommand(name: 'tag', description: 'Tag images')
      ]),
      Subcommand(
          name: 'addons',
          description: 'Enable or disable a minikube addon',
          subcommands: [
            Subcommand(
                name: 'configure',
                description:
                    'Configures the addon w/ADDON_NAME within minikube'),
            Subcommand(
                name: 'disable',
                description: 'Disables the addon w/ADDON_NAME within minikube'),
            Subcommand(
                name: 'enable',
                description: 'Enables the addon w/ADDON_NAME within minikube'),
            Subcommand(
                name: 'images',
                description: 'List image names the addon w/ADDON_NAME used'),
            Subcommand(
                name: 'list',
                description:
                    'Lists all available minikube addons as well as their current statuses'),
            Subcommand(
                name: 'open',
                description: 'Opens the addon w/ADDON_NAME within minikube')
          ]),
      Subcommand(
          name: 'config',
          description: 'Modify persistent configuration values',
          subcommands: [
            Subcommand(
                name: 'defaults',
                description:
                    'Lists all valid default values for PROPERTY_NAME'),
            Subcommand(
                name: 'get',
                description:
                    'Gets the value of PROPERTY_NAME from the minikube config file'),
            Subcommand(
                name: 'set',
                description:
                    'Sets an individual value in a minikube config file'),
            Subcommand(
                name: 'unset',
                description:
                    'Unsets an individual value in a minikube config file'),
            Subcommand(
                name: 'view',
                description:
                    'Display values currently set in the minikube config file')
          ]),
      Subcommand(
          name: 'profile',
          description: 'Get or list the current profiles (clusters)',
          subcommands: [
            Subcommand(name: 'list', description: 'Lists all minikube profiles')
          ]),
      Subcommand(
          name: 'update-context',
          description: 'Update kubeconfig in case of an IP or port change'),
      Subcommand(
          name: 'service',
          description: 'Returns a URL to connect to a service',
          subcommands: [
            Subcommand(
                name: 'list',
                description:
                    'Lists the URLs for the services in your local cluster',
                options: [
                  Option(
                      name: ['--namespace', '-n'],
                      description: 'The services namespace')
                ])
          ],
          options: [
            Option(
                name: '--https',
                description: 'Open the service URL with https instead of http'),
            Option(
                name: '--interval',
                description:
                    'The initial time interval for each check that wait performs in seconds'),
            Option(name: '--namespace', description: 'The service namespace'),
            Option(
                name: '--url',
                description:
                    'Display the Kubernetes service URL in the CLI instead of opening it in the default browser'),
            Option(
                name: '--wait',
                description: 'Amount of time to wait for a service in seconds')
          ]),
      Subcommand(
          name: 'tunnel',
          description: 'Connect to LoadBalancer services',
          options: [
            Option(
                name: ['--cleanup', '-c'],
                description: 'Call with cleanup=true to remove old tunnels')
          ]),
      Subcommand(
          name: 'mount',
          description: 'Mounts the specified directory into minikube',
          options: [
            Option(
                name: '--9p-version',
                description:
                    'Specify the 9p version that the mount should use'),
            Option(
                name: '--gid',
                description: 'Default group id used for the mount'),
            Option(
                name: '--ip',
                description:
                    'Specify the ip that the mount should be setup on'),
            Option(
                name: '--kill',
                description:
                    'Kill the mount process spawned by minikube start'),
            Option(
                name: '--mode',
                description: 'File permissions used for the mount'),
            Option(
                name: '--msize',
                description:
                    'The number of bytes to use for 9p packet payload'),
            Option(
                name: '--options',
                description: 'Additional mount options, such as cache=fscache'),
            Option(
                name: '--port',
                description:
                    'Specify the port that the mount should be setup on'),
            Option(
                name: '--type',
                description:
                    'Specify the mount filesystem type (supported types: 9p)'),
            Option(
                name: '--uid',
                description: 'Default user id used for the mount')
          ]),
      Subcommand(
          name: 'ssh',
          description: 'Log into the minikube environment (for debugging)',
          options: [
            Option(
                name: '--native-ssh',
                description: 'Use native Golang SSH client'),
            Option(name: ['--node', '-n'], description: 'The node to ssh into')
          ]),
      Subcommand(
          name: 'kubectl',
          description: 'Run a kubectl binary matching the cluster version',
          options: [
            Option(
                name: '--ssh',
                description:
                    'Use SSH for running kubernetes client on the node')
          ]),
      Subcommand(
          name: 'node',
          description: 'Add, remove, or list additional nodes',
          subcommands: [
            Subcommand(
                name: 'add', description: 'Adds a node to the given cluster'),
            Subcommand(
                name: 'delete', description: 'Deletes a node from a cluster'),
            Subcommand(name: 'list', description: 'List nodes'),
            Subcommand(name: 'start', description: 'Starts a node'),
            Subcommand(name: 'stop', description: 'Stops a node in a cluster')
          ]),
      Subcommand(
          name: 'cp',
          description: 'Copy the specified file into minikube',
          args: [Arg(name: '[source] [target]')]),
      Subcommand(
          name: 'ssh-key',
          description:
              'Retrieve the ssh identity key path of the specified node',
          options: [
            Option(
                name: ['--node', '-n'],
                description: 'The node to get ssh-key path')
          ]),
      Subcommand(
          name: 'ssh-host',
          description: 'Retrieve the ssh host key of the specified node',
          options: [
            Option(
                name: '--append-known',
                description: 'Add host key to SSH known_hosts file'),
            Option(name: ['--node', '-n'], description: 'The node to ssh into')
          ]),
      Subcommand(
          name: 'ip',
          description: 'Retrieves the IP address of the specified node',
          options: [
            Option(name: ['--node', '-n'], description: 'The node to get IP')
          ]),
      Subcommand(
          name: 'logs',
          description: 'Returns logs to debug a local Kubernetes cluster',
          options: [
            Option(
                name: '--file',
                description:
                    'If present, writes to the provided file instead of stdout'),
            Option(
                name: ['--follow', '-f'],
                description: 'Show only the most recent journal entries'),
            Option(
                name: ['--length', '-n'],
                description: 'Number of lines back to go within the log'),
            Option(
                name: '--node',
                description:
                    'The node to get logs from. Defaults to the primary control plane'),
            Option(
                name: '--problems',
                description:
                    'Show only log entries which point to known problems')
          ]),
      Subcommand(
          name: 'update-check',
          description: 'Print current and latest version number'),
      Subcommand(
          name: 'version',
          description: 'Print the version of minikube',
          options: [
            Option(
                name: '--components',
                description:
                    'List versions of all components included with minikube'),
            sharedOpts['output']!,
            Option(
                name: '--short',
                description: 'Print just the version number',
                args: [
                  Arg(suggestions: [
                    FigSuggestion(name: 'true'),
                    FigSuggestion(name: 'false')
                  ])
                ])
          ]),
      Subcommand(
          name: 'options',
          description: 'Add, remove, or list additional nodes'),
      Subcommand(
          name: 'completion',
          description: 'Generate command completion for a shell',
          subcommands: [
            Subcommand(name: 'bash', description: 'Bash completion'),
            Subcommand(name: 'fish', description: 'Fish completion'),
            Subcommand(name: 'zsh', description: 'Zsh completion')
          ])
    ]);