+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
>