mirror of https://github.com/knative/client.git
3.0 KiB
3.0 KiB
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")