Thanks Yong for this great job, +1 On 2020/6/15, 09:34, "PengHui Li" <codelipeng...@gmail.com> wrote:
+1 On Jun 15, 2020, 9:24 AM +0800, xiaolong ran <ranxiaolong...@gmail.com>, wrote: > Thanks Yong Zhang work for this, LGTM+1 > > -- > Thanks > Xiaolong Ran > > > 在 2020年6月12日,上午11:38,Yong Zhang <zhangyong1025...@gmail.com> 写道: > > > > 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 >