# Commands

# Global flags

There are some global flags that can be appended to any command.

--home string

Location of your KUDO config. (default "~/.kudo")

--kubeconfig string

Path to your Kubernetes configuration file. (default "~/.kube/config")

-n, --namespace string

Target namespace for the object. (default "default")

--request-timeout int

Request timeout value, in seconds. Defaults to 0 (unlimited):::

-v, --v

Log level for verbose logs

--validate-install

Validate KUDO installation before running the actual command. (default true)

# Semi-global Flags

These flags are not really global, but a lot of commands have them. Use --help to see if a certain command supports it.

--help

All commands have this flag to show the usage details of that command.

-o, --output

A lot of commands support this flag that allows machine parsable output. Usually you can specify "yaml" or "json". If the the flag is not specified, human readable output is used.

--dry-run

Do not actually execute anything, run only checks and preparations for the command. Can often be combined with --output to see which resources would be applied to the cluster.

# init

Initializes or upgrades the KUDO server and client components.

Usage

kubectl kudo init [flags]

# Flags to customize the installation

These flags customize the installation, especially the server part. At the moment these values are not saved in the installation itself and have to be provided every time the init command is executed.

-n, --namespace string

For kudo init, the default is kudo-system. If a custom namespace is specified, the KUDO controller is installed in this namespace. A custom namespace has to exist before installation and will not be created.

-i, --kudo-image string

Override KUDO controller image and/or version

--version string

Override KUDO controller version of the KUDO image

--kudo-image-pull-policy string

Override KUDO controller image pull policy (default "Always")

--service-account string

Override for the default serviceAccount. By default, a service account "kudo-manager" is created with cluster-admin permissions. If a custom service account is provided, it has to exist and has to have cluster-admin permissions.

--unsafe-self-signed-webhook-ca

Use self-signed CA bundle (for testing only) for the webhooks. By default, KUDO expects cert-manager (opens new window) to be installed, multiple versions are supported.

# Other flags

--upgrade

Upgrade an existing KUDO installation

--verify

Verify an existing KUDO installation

--client-only

Only initialize the ~/.kudo directory and repository config, do not install any server side resources

-w --wait

Block until KUDO manager is running and ready to receive requests

--wait-timeout int

Wait timeout to be used (default 300) with --wait

# get

Get information about installed instances, operators and operator versions.

Usage

kubectl kudo get all [flags]

instances

Show all instances

operators

Show all operators

operatorversions

Show all operator versions

all

Show all KUDO objects

All get commands supports --output yaml option.

Searches the repository for a match on "contains" search criteria

Given an operator named foo-demo, a search for 'foo' or 'demo' would include this operator.

By default, the command only shows the latest version of an operator. Use --all-versions to list all found versions.

Usage

kubectl-kudo search [criteria] [flags]

--repo string

Name of repository configuration to use. (default defined by context)

-a, --all-versions

Return all versions of found operators.

# install

Install a KUDO package from the local filesystem, official repo or in-cluster resources.

The name argument must be a name of the package in the repository, a URL or path to package in *.tgz format, path to an unpacked package directory or a name of an already installed operator (when using the --in-cluster option).

To specify a local path as an operator, the path has to start with ./, ../ or /, otherwise KUDO expects the operatorname to be a package from the remote repository.

Usage

kubectl-kudo install <name> [flags]

--app-version string

A specific app version in the official GitHub repo. (default to the most recent)

--operator-version string

A specific operator version int the official GitHub repo. (default to the most recent)

--repo string

Name of repository configuration to use. (default defined by context)

--instance string

The Instance name. (defaults to Operator name appended with -instance)

--skip-instance

If set, install will install the Operator and OperatorVersion, but not an Instance. (default "false")

--create-namespace

If set, install will create the specified namespace and will fail if it exists. (default "false")

-p, --parameter string=value

The parameter name and value separated by '='. For example -p NODE_COUNT=3

Array and map parameters can be provided as YAMl. For example -p PORTS='[80, 443]' for an array, -p CUSTOM_LABELS='{team: dev, owner: foo}' for a map.

-P, --parameter-file string

Path to a YAML file with parameter values. The top-level element in this file must be a mapping, where keys are parameter names and values are the parameter values.

See the section on installing with overrides below for an example of a parameter value file.

This is useful if you want to keep your instances' parameter values in version control, or for specifying particularly complex or long parameter values which are inconvenient to handle in shell command line.

Parameters are collected by first reading the files specified with --parameter-file/-P (in the order specified) and then from values specified with --parameter/-p. Last encountered value of a given parameter wins. This lets you define defaults in one or more files, and override them on the command line as needed.

--wait

Specify if the CLI should wait for the install to complete before returning (default "false")

--wait-time int

Specify the max wait time in seconds for CLI for the install to complete before returning (default "300")

--in-cluster

When specified, the operator is searched in the already installed in-cluster operator versions. To see already installed operator versions use the get command.

# plan

# plan status

Shows the plan status of the given instance.

This command supports --output yaml.

Usage

kubectl kudo plan status --instance=<instanceName> [flags]

--wait

Specify if the CLI should wait for the plan to complete before returning (default "false")

# plan history

Lists history for each plan of an instance.

Usage

kubectl kudo plan history --instance=<instanceName>

# plan trigger

Triggers a specific plan on a particular instance.

Usage

kubectl kudo plan trigger --name=<planName> --instance=<instanceName> [flags]

--wait

Specify if the CLI should wait for the triggered plan to complete before returning (default "false")

--wait-time int

Specify the max wait time in seconds for CLI for the triggered plan to complete before returning (default "300")

# uninstall

Uninstall an instance of a KUDO package. This also removes dependent objects, e.g. deployments, pods. It will NOT remove the OperatorVersion or Operator CRD.

Usage

kubectl-kudo uninstall --instance=<instanceName> [flags]

WARNING

This will uninstall the specified operator instance and may lead to data loss!

# update

Update KUDO operator instance with new parameters. The update of parameters can trigger the execution of specific plans.

Usage

kubectl kudo update --instance=<instanceName> [flags]

-p, --parameter string=value

The parameter name and value separated by '='. For example -p NODE_COUNT=3

-P, --parameter-file string

A YAML file with parameters. See install for details.

--wait

Specify if the CLI should wait for the update to complete before returning (default "false")

--wait-time int

Specify the max wait time in seconds for CLI for the update to complete before returning (default "300")

Info

Updating the value of a parameter in an instance will trigger the plan which is specified in the parameter definition.

# upgrade

Upgrade a KUDO operator instance from the currently installed version to a new version. The upgrade argument must be a name of the package in the repository, a path to package in *.tgz format, or a path to an unpacked package directory.

To specify a local path as an operator, the path has to start with ./, ../ or /, otherwise KUDO expects the operatorname to be a package from the remote repository.

Depending on the new operator version you may need to specify certain parameters, for example if the new operator version has newly added required parameters.

Usage

kubectl kudo upgrade <operatorname> --instance=<instanceName> [flags]

--app-version string

A specific app version in the official GitHub repo. (default to the most recent)

--operator-version string

A specific operator version int the official GitHub repo. (default to the most recent)

--repo string

Name of repository configuration to use. (default defined by context)

-p, --parameter string=value

The parameter name and value separated by '='. For example -p NODE_COUNT=3

-P, --parameter-file string

A YAML file with parameters. See install for details.

# diagnostics

Diagnostics provides functionality to collect and analyze diagnostics data

Usage

kubectl kudo diagnostics collect --instance=<instanceName> [flags]

--log-since duration

Only return logs newer than a relative duration like 5s, 2m, or 3h. Defaults to all logs.

-O, --output-directory string

The output directory for the collected resources. Defaults to 'diag' (default "diag")

# Development Commands

These commands are mostly interesting for operator developers.

# package

This command consists of multiple sub-commands to interact with KUDO packages.

It can be used to package or verify an operator, or list parameters. When working with parameters it can provide a list of parameters from a remote operator given a url or repository along with the name and version.

add

Add content to an operator package files

create

Package a local KUDO operator into a tarball.

list

List context from an operator package

new

Wizard style helper to create new operator

verify

Verify a package

For more details please use --help with the CLI.

# repo

This command consists of multiple sub-commands to interact with KUDO repositories.

It can be used to add, remove, list, and index kudo repositories.

add

Add an operator repository

context

Set default for operator repository context

index

Generate an index file given a directory containing KUDO operator packages

list

List operator repositories

remove

Remove an operator repository

For more details please use --help

# test

Runs KUTTL tests against a Kubernetes cluster.

For more details see KUTTL (opens new window)

# version

Show the version of KUDO.