Carvel Logo

Authoring Commands Reference

Package

kctrl authoring commands help users generate resources that interact with kapp-controllers packaging layer.

Initialising the package

The package init command takes user inputs and creates a boilerplate for package creation. It should be run before using the package release or dev command.

$ kctrl package init

Supported flags:

  • --chdir string, Location of the working directory
  • --tty, boolean, Force TTY-like output

Note: We suggest to run pkg init in an interactive flow.

Releasing the Package

The package release command is used to generate Package and PackageMetadata resources.

$ kctrl package release -v 1.0.0 --repo-output packages

Supported flags:

  • -v, --version string, Version to be released
  • --repo-output string, Output location for artifacts in repository bundle format
  • --copy-to string, Output location for artifacts (default “carvel-artifacts”)
  • --chdir string, Location of the working directory
  • --tty, boolean, Force TTY-like output
  • --openapi-schema, boolean, Generates openapi schema for ytt and helm templated files and adds it to generated package
  • --tag string, Tag pushed with imgpkg bundle (default “build-”)

Package Repository

Releasing a Package Repository

The package repository release command publishes a PackageRepository using the output of --repo-output flag from the package release command.

$ kctrl package repository release -v 1.0.0

Supported flags:

  • -v, --version string, Version to be released
  • --copy-to string, Output location for artifacts (default “carvel-artifacts”)
  • --chdir string, Location of the working directory
  • --tty, boolean, Force TTY-like output
  • --tag string, Tag pushed with imgpkg bundle

Note: If the tag flag is not provided, the value of version flag is added as tag. In case both flags are empty, the default tag would be unix TIMESTAMP

Dev

kctrl dev command help in testing the package locally using kapp-controller’s APIs.

$ kctrl dev

Supported flags:

  • --delete Delete deployed app
  • -f, --file strings Set App CR, Package CR, PackageInstall CR file (required)
  • -b, --kbld-build Allow kbld build
  • -l, --local Use local fetch source
  • -n, --namespace string, Specified namespace ($KCTRL_NAMESPACE or default from kubeconfig)
  • --tty, boolean, Force TTY-like output

Global Flags

  • --debug boolean, Include debug output
  • --color boolean, Set color output (default true)
  • --column string, Filter to show only given columns
  • --json boolean, Output as JSON
  • --kube-api-burst, int, Set Kubernetes API client burst limit (default 1000)
  • --kube-api-qps float32, Set Kubernetes API client QPS limit (default 1000)
  • --kubeconfig string, Path to the kubeconfig file ($KCTRL_KUBECONFIG),
  • --kubeconfig-contextstring, Kubeconfig context override ($KCTRL_KUBECONFIG_CONTEXT)
  • --kubeconfig-yaml string, Kubeconfig contents as YAML ($KCTRL_KUBECONFIG_YAML)

(Help improve our docs: edit this page on GitHub)