Thanks Yong Zhang work for this, LGTM+1 -- Thanks Xiaolong Ran
> 在 2020年6月12日,上午11:38,Yong Zhang <[email protected]> 写道: > > Hi all, > > We have developed a new tool Pulsarctl for managing Pulsar resources. It’s > written in Golang > and is an alternative tool of pulsar-admin. We’d like to contribute the > project back to the Pulsar > community. > > ## Motivation > > Pulsarctl is an alternative tool of pulsar-admin, used to manage resources > in Apache Pulsar. > Pulsarctl is written in Go and based on Pulsar REST API. It provides Go > developers with API > interface and user-friendly commands, making it easier to interact with > Pulsar brokers. > > Compared with pulsar-admin, Pulsarctl is more user-friendly. Pulsarctl > requires fewer dependencies > to use commands and provides more comprehensive description and usage for > commands. > With Pulsarctl, users can find and resolve issues faster when errors occur. > > ## Features > > Pulsarctl not only integrates the Pulsar commands and BookKeeper commands > but also > provides some useful tools like output format and context management. > > > ### Pulsar operations > > For Pulsar operations, Pulsarctl integrates almost all the commands of > pulsar-admin, including > but not limited to the following operations: > > - broker operations > - cluster operations > - tenant operations > - namespace operations > - topic operations > - function operations > - sink operations > - source operations > > Also, Pulsarctl supports the JWT(JSON Web Token) authentication and TLS > authentication. > > The following are command flags of Pulsarctl. You can use `--auth-params` > to specify the auth > params configured in pulsar-client. Or you can just specify `--token` to > use that token to connect the broker. > > ``` > Common flags: > -s, --admin-service-url string The admin web service url that > pulsarctl connects to. (default "http://localhost:8080") > --auth-params string Authentication parameters are used to > configure the public and private key files required by tls > For example: > "tlsCertFile:val1,tlsKeyFile:val2" > -C, --color string toggle colorized logs > (true,false,fabulous) (default "true") > -h, --help help for this command > --tls-allow-insecure Allow TLS insecure connection > --tls-trust-cert-path string Allow TLS trust cert file path > --token string Using the token to authentication > --token-file string Using the token file to authentication > -v, --verbose int set log level, use 0 to silence, 4 for > debugging (default 3) > ``` > > ### BookKeeper operations > > For BookKeeper operations, Pulsarctl integrates the commands listed in the > [REST API](https://bookkeeper.apache.org/docs/4.10.0/admin/http/) > > - auto-recovery operations > - bookie operations > - bookies operations > - ledger operations > > > ### Save your configuration in the different contexts > > Pulsarctl provides a context command which lets you manage your Pulsar > cluster easier. > The ‘context’ can save the different configurations of your Pulsar cluster. > And you can easily > change to another cluster by the command `pulsarctl context use`. For more > details please > refer to > https://github.com/streamnative/pulsarctl/blob/master/docs/en/how-to-use-context.md > > > ### Get different formats of the output > > Pulsarctl provides an output flag `--output` to make the output transform > into different > formats, such as text, JSON, and YAML. The default view is the text which > allows you > to check the resources in your cluster directly. Also, you can get the JSON > or YAML > format to do what you want to. > > > ### Extend Pulsarctl using plugins easily > > You can easily extend the Pulsarctl with a plugin. Pulsarctl will auto-find > the installed > plugins and you can use them directly in Pulsarctl. For more details about > the plugin, > please refer to > https://github.com/streamnative/pulsarctl/blob/master/docs/en/how-to-extend-pulsarctl-with-plugins.md > > ### Auto-complete your command > > Pulsarctl supports auto-completing your input command. If you forget some > commands, > try to `tab` it, Pulsarctl will remind you. For how to enable the > auto-completion feature, please refer to: > https://github.com/streamnative/pulsarctl/blob/master/docs/en/enable_completion.md > > ### A Golang library of Pulsar admin > > Pulsarctl is not only a command-line tool but also a library of Pulsar > admin API. You can > use it in your application to communicate with Pulsar. Here is an example > of how to use > Pulsarctl in your application: > https://github.com/streamnative/pulsarctl/blob/master/docs/en/overview_of_pulsarctl.md#admin-api > > ## More information > > - Pulsarctl project repo: https://github.com/streamnative/pulsarctl > - The latest Pulsarctl API website: > https://streamnative.io/docs/pulsarctl/v0.4.1/ > - Introduction to Pulsarctl: > https://streamnative.io/blog/tech/2019-11-26-introduction-pulsarctl
