tree f11b553dfda6e9bc748d09459667e48e425363aa
parent b19258cd0ffead7777ee7715f24c1e3fd3c210c5
author Jennifer Huang <47805623+Jennifer88huang@users.noreply.github.com> 1614931139 +0800
committer GitHub <noreply@github.com> 1614931139 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgQeTDCRBK7hj4Ov3rIwAAdHIIAG9rgBz/wB7Lt4Kzth7a6SuN
 ZoN5w0YGhF6sfLdS5tFT656A5zEZ6ICjDuzdBriY7ziqCvoutRXe/9mz0DWBbbhC
 9rtxqcpuYiNirf0z93MsAmPGz3VXZz5Q/Vr/e0BF5y50eS4dBLqrGfmgTZluVx7N
 ol1542tV/saOAlqkXdsfv/wSQFoX9PZafGgqeGOfm68V/1ZkFIEDvdznGcIDdVA0
 1s/98UMt/io3ljX9nwzCiT3KKaQWDv1L8omihuWFm82DZ15SQUkqAShy7QaOvXkJ
 L8YCSfE1w5jaNlZ4tCPO7xfk5GX3RWbVCUX0Fy9Rx9LwtwJsmkv1WIOduSQRpGM=
 =xF03
 -----END PGP SIGNATURE-----
 

[docs] Remove pulsar-admin from reference section (#9813)

### Motivation

Currently, we have [CLI website](http://pulsar.apache.org/tools/pulsar-admin/2.8.0-SNAPSHOT/), which generate `pulsar-admin` commands and usage automatically.

### Modifications
1. Remove the `pulsar-admin` section from Reference.
2. Navigate the original link to `pulsar-admin` reference page to the CLI website.

Related info:
1. The change will take effect in 2.8.0 release. For the earlier releases, keep it in the sidebar.
2. We still keep the `reference-pulsar-admin.md` file in the directory. If [this link](https://pulsar.apache.org/docs/en/next/pulsar-admin/) is used externally, it still works.
3. In future, if we add reference to the complete `pulsar-admin` usage, we can navigate to the CLI website. And we'll not maintain the `reference-pulsar-admin.md` file anymore.