Skip to content

Latest commit

 

History

History

knb

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

knb - kn builder

CLI tool to enhance plugin build experience for Knative Client.

Build

go build

Install

go install knative.dev/client/tools/knb@latest

Usage

Create custom kn distribution

The knb can be used to generate enhanced customized kn source files with inlined plugins.

Create configuration file .kn.yaml in a root directory of knative/client that should specify at least name, module, version coordinates of the plugin. Executing knb plugin distro command will generate the required go files and add dependency to go.mod.

Example of .kn.yaml

plugins:
  - name: kn-plugin-source-kafka
    module: knative.dev/kn-plugin-source-kafka
    pluginImportPath: knative.dev/kn-plugin-source-kafka/plugin
    version: v0.19.0
    replace:
      - module: golang.org/x/sys
        version: v0.0.0-20200302150141-5c8b2ff67527

Alternatively drop-in replace of a plugin in .kn.yaml

plugins:
  - name: kn-plugin-source-kafka
    module: knative.dev/kn-plugin-source-kafka
    pluginImportPath: knative.dev/kn-plugin-source-kafka/plugin
    version: v0.19.0
    replace:
      - module: knative.dev/kn-plugin-source-kafka
        moduleSource: github.com/forked-repository/kn-plugin-source-kafka
        version: WIP

Required:

  • name
  • module - go module name to be used for import and in go.mod file
  • version - accepted values are git tag or branch name of go module.

Optional:

  • pluginImportPath - import path override, default $module/plugin
  • replace - go module replacement defined by module,version.

Execute command

knb plugin distro

Build kn

./hack/build.sh
Enable plugin inline feature

The knb can be used to generate required go files to inline any kn plugin.

knb plugin init --name kn-source-kafka --cmd source,kafka --description "Some plugin"
List of commands

Plugin level commands

Manage kn plugins.

Usage:
  knb plugin [command]

Available Commands:
  distro      Generate required files to build `kn` with inline plugins.
  init        Generate required resource to inline plugin.

Flags:
  -h, --help   help for plugin

Use "knb plugin [command] --help" for more information about a command.
Generate required files to build `kn` with inline plugins.

Usage:
  knb plugin distro [flags]

Flags:
  -c, --config kn.yaml   Path to kn.yaml config file (default ".kn.yaml")
  -h, --help             help for distro

Generate required resource to inline plugin.

Usage:
  knb plugin init [flags]

Flags:
      --cmd kn service log   Defines command parts to execute plugin from kn. E.g kn service log can be achieved with `--cmd service,log`.
      --description string   Description of a plugin.
  -h, --help                 help for init
      --import string        Import path of plugin.
      --name string          Name of a plugin.
      --output-dir string    Output directory to write plugin.go file. (default "plugin")