This is an automated email from the ASF dual-hosted git repository.

urfree pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git


The following commit(s) were added to refs/heads/main by this push:
     new 7f0757db367 Docs sync done from apache/pulsar(#9da5980)
7f0757db367 is described below

commit 7f0757db367b51717769d25c530719d547f792db
Author: Pulsar Site Updater <[email protected]>
AuthorDate: Wed Nov 16 06:01:42 2022 +0000

    Docs sync done from apache/pulsar(#9da5980)
---
 site2/website-next/docs/about.md                   |  4 +-
 site2/website-next/docs/developers-landing.md      | 10 +--
 site2/website-next/docs/how-to-landing.md          | 17 +++++
 .../docs/install-deploy-upgrade-landing.md         | 23 ++++++
 site2/website-next/docs/reference-cli-tools.md     |  2 +-
 site2/website-next/docs/security-athenz.md         | 38 +---------
 site2/website-next/docs/security-basic-auth.md     | 40 +---------
 site2/website-next/docs/security-jwt.md            | 42 +----------
 site2/website-next/docs/security-kerberos.md       |  2 +-
 site2/website-next/docs/security-oauth2.md         | 19 +++--
 site2/website-next/docs/security-overview.md       | 18 +++--
 .../docs/security-tls-authentication.md            | 87 ++++------------------
 site2/website-next/docs/tutorials-namespace.md     | 44 +++++++++++
 .../website-next/docs/tutorials-produce-consume.md | 77 +++++++++++++++++++
 site2/website-next/docs/tutorials-tenant.md        | 54 ++++++++++++++
 site2/website-next/docs/tutorials-topic.md         | 39 ++++++++++
 site2/website-next/sidebars.json                   |  4 +
 17 files changed, 314 insertions(+), 206 deletions(-)

diff --git a/site2/website-next/docs/about.md b/site2/website-next/docs/about.md
index 6a1dd538372..25b093fdc0f 100644
--- a/site2/website-next/docs/about.md
+++ b/site2/website-next/docs/about.md
@@ -27,9 +27,9 @@ Select one of the content blocks below to begin your Pulsar 
journey. If you ...
 <BlockLinks>
     <BlockLink title="About Pulsar" url="/docs/next/concepts-overview/" />
     <BlockLink title="Get Started" url="/docs/next/getting-started-home/" />
-    <BlockLink title="Install, Deploy, Upgrade" url="/docs/next/deploy-aws/" />
+    <BlockLink title="Install, Deploy, Upgrade" 
url="/docs/next/install-deploy-upgrade-landing/" />
     <BlockLink title="Pulsar for Developers" 
url="/docs/next/developers-landing/" />
-    <BlockLink title="How To" url="/docs/next/functions-develop/" />
+    <BlockLink title="How To" url="/docs/next/how-to-landing/" />
     <BlockLink title="Reference" url="/docs/next/reference-terminology/" />
 </BlockLinks>
 
diff --git a/site2/website-next/docs/developers-landing.md 
b/site2/website-next/docs/developers-landing.md
index df03e4fe318..f5c8ccee181 100644
--- a/site2/website-next/docs/developers-landing.md
+++ b/site2/website-next/docs/developers-landing.md
@@ -1,12 +1,12 @@
 ---
 id: developers-landing
 title: Pulsar for Developers
-sidebar_label: "get started"
+sidebar_label: "Pulsar for Developers"
 ---
 
 Developing applications for Pulsar can be a fun and rewarding experience. With 
Pulsar, you can quickly create, deploy, and manage your services using a 
powerful CLI tool and a comprehensive set of libraries. The topics below will 
get you started!
 
-- [Simulation tools](develop-tools.md)
-- [Developing binary protocol](developing-binary-protocol.md)
-- [Modular load manager](develop-load-manager.md)
-- [Pulsar plugin development](develop-plugin.md)
+- [Develop simulation tools](develop-tools.md)
+- [Develop binary protocol](developing-binary-protocol.md)
+- [Develop load manager](develop-load-manager.md)
+- [Develop Pulsar plugin](develop-plugin.md)
diff --git a/site2/website-next/docs/how-to-landing.md 
b/site2/website-next/docs/how-to-landing.md
new file mode 100644
index 00000000000..90c47b64b6b
--- /dev/null
+++ b/site2/website-next/docs/how-to-landing.md
@@ -0,0 +1,17 @@
+---
+Id: how-to-landing
+title: How-to
+sidebar_label: “”
+---
+
+
+Learning new software can be an overwhelming task, but relax – most aspects of 
Pulsar can be easily configured in just a few steps. These tutorials will show 
you how to quickly create topics, tenants, and namespaces, produce and consume 
messages, and more!
+
+- [How to create a topic](tutorials-topic.md)
+- [How to create a tenant](tutorials-tenant.md)
+- [How to create a namespace](tutorials-namespace.md)
+- [How to produce and consume messages](tutorials-produce-consume.md)
+
+
+
+
diff --git a/site2/website-next/docs/install-deploy-upgrade-landing.md 
b/site2/website-next/docs/install-deploy-upgrade-landing.md
new file mode 100644
index 00000000000..5751dca2eb5
--- /dev/null
+++ b/site2/website-next/docs/install-deploy-upgrade-landing.md
@@ -0,0 +1,23 @@
+---
+Id: install-deploy-upgrade-landing
+title: Install, Deploy and Upgrade Pulsar
+sidebar_label: “Tutorials”
+---
+
+
+Any developer can install, deploy, and upgrade Apache Pulsar in a few simple 
steps and start building scalable, real-time applications quickly. The 
resources below will kickstart your deployment!
+
+- [Set up a standalone Pulsar locally](getting-started-standalone.md)
+
+- [Deploy a Pulsar cluster on AWS using Terraform and Ansible](deploy-aws.md)
+
+- [Deploy a Pulsar cluster using Helm](helm-deploy.md)
+
+- [Upgrade Pulsar Helm release](helm-upgrade.md)
+
+
+
+
+
+
+
diff --git a/site2/website-next/docs/reference-cli-tools.md 
b/site2/website-next/docs/reference-cli-tools.md
index 7d28866076e..3c592b19563 100644
--- a/site2/website-next/docs/reference-cli-tools.md
+++ b/site2/website-next/docs/reference-cli-tools.md
@@ -14,7 +14,7 @@ Pulsar offers several command-line tools that you can use for 
managing Pulsar in
 * `pulsar-shell`
 * `bookkeeper`
 
-::: tip
+:::tip
 
 For the latest and complete information about command-line tools, including 
commands, flags, descriptions, and more information, see [Pulsar 
Reference](https://pulsar.apache.org/reference).
 
diff --git a/site2/website-next/docs/security-athenz.md 
b/site2/website-next/docs/security-athenz.md
index 3bccffd70b7..5d10173dd09 100644
--- a/site2/website-next/docs/security-athenz.md
+++ b/site2/website-next/docs/security-athenz.md
@@ -36,42 +36,17 @@ Note that you can specify any action and resource in step 2 
since they are not u
 
 For more specific steps involving the Athenz UI, refer to [Example Service 
Access Control 
Setup](https://github.com/AthenZ/athenz/blob/master/docs/example_service_athenz_setup.md#server-provider-domain).
 
-## Enable Athenz authentication on brokers
+## Enable Athenz authentication on brokers/proxies
 
-:::note
-
-When you are using Athenz as an authentication provider, it's highly 
recommended to use [TLS encryption](security-tls-transport.md) as it can 
protect role tokens from being intercepted and reused. For more details 
involving TLS encryption, see [Architecture - Data 
Model](https://github.com/AthenZ/athenz/blob/master/docs/data_model).
-
-:::
-
-In the `conf/broker.conf` configuration file in your Pulsar installation, you 
need to provide the class name of the Athenz authentication provider as well as 
a comma-separated list of provider domain names.
-
-```properties
-# Add the Athenz auth provider
-authenticationEnabled=true
-authorizationEnabled=true
-authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderAthenz
-athenzDomainNames=pulsar
-
-# Authentication settings of the broker itself. Used when the broker connects 
to other brokers, either in same or other clusters
-brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationAthenz
-brokerClientAuthenticationParameters={"tenantDomain":"shopping","tenantService":"some_app","providerDomain":"pulsar","privateKey":"file:///path/to/private.pem","keyId":"v1"}
-```
-
-> A full listing of parameters is available in the `conf/broker.conf` file, 
you can also find the default
-> values for those parameters in [Broker 
Configuration](reference-configuration.md#broker).
-
-## Enable Athenz authentication on proxies
-
-Configure the required parameters in the `conf/proxy.conf` file in your Pulsar 
installation.
+To configure brokers/proxies to authenticate clients using Authenz, add the 
following parameters to the `conf/broker.conf` and the `conf/proxy.conf` files 
and provide the class name of the Athenz authentication provider as well as a 
comma-separated list of provider domain names. If you use a standalone Pulsar, 
you need to add these parameters to the `conf/standalone.conf` file.
 
 ```properties
 # Add the Athenz auth provider
 authenticationEnabled=true
-authorizationEnabled=true
 
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderAthenz
 athenzDomainNames=pulsar
 
+# Authentication settings of the broker itself. Used when the broker connects 
to other brokers, or when the proxy connects to brokers, either in same or 
other clusters
 
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationAthenz
 
brokerClientAuthenticationParameters={"tenantDomain":"shopping","tenantService":"some_app","providerDomain":"pulsar","privateKey":"file:///path/to/private.pem","keyId":"v1"}
 ```
@@ -205,14 +180,9 @@ You need to add the following authentication parameters to 
the `conf/client.conf
 
 ```properties
 # URL for the broker
-serviceUrl=https://broker.example.com:8443/
+serviceUrl=http://broker.example.com:8080
 
 # Set Athenz auth plugin and its parameters
 authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationAthenz
 
authParams={"tenantDomain":"shopping","tenantService":"some_app","providerDomain":"pulsar","privateKey":"file:///path/to/private.pem","keyId":"v1"}
-
-# Enable TLS
-useTls=true
-tlsAllowInsecureConnection=false
-tlsTrustCertsFilePath=/path/to/cacert.pem
 ```
\ No newline at end of file
diff --git a/site2/website-next/docs/security-basic-auth.md 
b/site2/website-next/docs/security-basic-auth.md
index 608a1281bef..b6aad41114f 100644
--- a/site2/website-next/docs/security-basic-auth.md
+++ b/site2/website-next/docs/security-basic-auth.md
@@ -55,9 +55,9 @@ cat path/to/.htpasswd
 superuser:$apr1$GBIYZYFZ$MzLcPrvoUky16mLcK6UtX/
 ```
 
-## Enable basic authentication on brokers
+## Enable basic authentication on brokers/proxies
 
-To configure brokers to authenticate clients, add the following parameters to 
the `conf/broker.conf` file. If you use a standalone Pulsar, you need to add 
these parameters to the `conf/standalone.conf` file:
+To configure brokers/proxies to authenticate clients using basic, add the 
following parameters to the `conf/broker.conf` and the `conf/proxy.conf` file. 
If you use a standalone Pulsar, you need to add these parameters to the 
`conf/standalone.conf` file:
 
 ```conf
 # Configuration to enable Basic authentication
@@ -70,43 +70,9 @@ basicAuthConf=file:///path/to/.htpasswd
 # basicAuthConf=data:;base64,YOUR-BASE64
 # basicAuthConf=YOUR-BASE64
 
-# Authentication settings of the broker itself. Used when the broker connects 
to other brokers, either in same or other clusters
+# Authentication settings of the broker itself. Used when the broker connects 
to other brokers, or when the proxy connects to brokers, either in same or 
other clusters
 
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
 brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
-
-# If this flag is set then the broker authenticates the original Auth data
-# else it just accepts the originalPrincipal and authorizes it (if required).
-authenticateOriginalAuthData=true
-```
-
-:::note
-
-You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the 
value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this 
environment variable to implement HTTP basic authentication.
-
-:::
-
-## Enable basic authentication on proxies
-
-To configure proxies to authenticate clients, add the following parameters to 
the `conf/proxy.conf` file:
-
-```conf
-# For clients connecting to the proxy
-authenticationEnabled=true
-authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
-
-basicAuthConf=file:///path/to/.htpasswd
-# basicAuthConf=/path/to/.htpasswd
-# When use the base64 format, you need to encode the .htpaswd content to bas64
-# basicAuthConf=data:;base64,YOUR-BASE64
-# basicAuthConf=YOUR-BASE64
-
-# For the proxy to connect to brokers
-brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
-brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
-
-# Whether client authorization credentials are forwarded to the broker for 
re-authorization.
-# Authentication must be enabled via authenticationEnabled=true for this to 
take effect.
-forwardAuthorizationCredentials=true
 ```
 
 :::note
diff --git a/site2/website-next/docs/security-jwt.md 
b/site2/website-next/docs/security-jwt.md
index 88d0ac408d9..2ca2737db8d 100644
--- a/site2/website-next/docs/security-jwt.md
+++ b/site2/website-next/docs/security-jwt.md
@@ -91,27 +91,22 @@ The token itself does not have any permission associated. 
You need to [enable au
 
 :::
 
-## Enable JWT authentication on brokers
+## Enable JWT authentication on brokers/proxies
 
-To configure brokers to authenticate clients using JWT, add the following 
parameters to the `conf/broker.conf` or `conf/standalone.conf` file.
+To configure brokers/proxies to authenticate clients using JWT, add the 
following parameters to the `conf/broker.conf` and the `conf/proxy.conf` file. 
If you use a standalone Pulsar, you need to add these parameters to the 
`conf/standalone.conf` file:
 
 ```properties
 # Configuration to enable authentication
 authenticationEnabled=true
 
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderToken
 
-# Authentication settings of the broker itself. Used when the broker connects 
to other brokers, either in same or other clusters
+# Authentication settings of the broker itself. Used when the broker connects 
to other brokers, or when the proxy connects to brokers, either in same or 
other clusters
 
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
 
brokerClientAuthenticationParameters={"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0LXVzZXIifQ.9OHgE9ZUDeBTZs7nSMEFIuGNEX18FLR3qvy8mqxSxXw"}
 # Either configure the token string or specify to read it from a file. The 
following three available formats are all valid:
 # brokerClientAuthenticationParameters={"token":"your-token-string"}
 # brokerClientAuthenticationParameters=token:your-token-string
 # brokerClientAuthenticationParameters=file:///path/to/token
-brokerClientTrustCertsFilePath=/path/my-ca/certs/ca.cert.pem
-
-# If this flag is set then the broker authenticates the original Auth data
-# else it just accepts the originalPrincipal and authorizes it (if required).
-authenticateOriginalAuthData=true
 
 # If using secret key (Note: key files must be DER-encoded)
 tokenSecretKey=file:///path/to/secret.key
@@ -122,37 +117,6 @@ tokenSecretKey=file:///path/to/secret.key
 # tokenPublicKey=file:///path/to/public.key
 ```
 
-:::note
-
-Equivalent to `brokerClientAuthenticationParameters`, you need to configure 
`authParams` in the `conf/client.conf` file.
-
-:::
-
-## Enable JWT authentication on proxies
-
-To configure proxies to authenticate clients using JWT, add the following 
parameters to the `conf/proxy.conf` file.
-
-```properties
-# For clients connecting to the proxy
-authenticationEnabled=true
-authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderToken
-tokenSecretKey=file:///path/to/secret.key
-
-# For the proxy to connect to brokers
-brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
-brokerClientAuthenticationParameters={"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0LXVzZXIifQ.9OHgE9ZUDeBTZs7nSMEFIuGNEX18FLR3qvy8mqxSxXw"}
-# Either configure the token string or specify to read it from a file. The 
following three available formats are all valid:
-# brokerClientAuthenticationParameters={"token":"your-token-string"}
-# brokerClientAuthenticationParameters=token:your-token-string
-# brokerClientAuthenticationParameters=file:///path/to/token
-```
-
-:::note
-
-The proxy uses its own token when connecting to brokers. You need to configure 
the role token for this key pair in the `proxyRoles` of the brokers. For more 
details, see [authorization](security-authorization.md).
-
-:::
-
 ## Configure JWT authentication in CLI Tools
 
 [Command-line tools](reference-cli-tools.md) like 
[`pulsar-admin`](/tools/pulsar-admin/), 
[`pulsar-perf`](reference-cli-tools.md), and 
[`pulsar-client`](reference-cli-tools.md) use the `conf/client.conf` config 
file in a Pulsar installation.
diff --git a/site2/website-next/docs/security-kerberos.md 
b/site2/website-next/docs/security-kerberos.md
index 9d7b7ddf1aa..150173bebae 100644
--- a/site2/website-next/docs/security-kerberos.md
+++ b/site2/website-next/docs/security-kerberos.md
@@ -56,7 +56,7 @@ 
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationPr
 saslJaasClientAllowedIds=.*client.* ## regex for principals that are allowed 
to connect to brokers
 saslJaasServerSectionName=PulsarBroker ## corresponds to the section in the 
JAAS configuration file for brokers
 
-## Authentication settings of the broker itself. Used when the broker connects 
to other brokers
+# Authentication settings of the broker itself. Used when the broker connects 
to other brokers, or when the proxy connects to brokers, either in same or 
other clusters
 
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationSasl
 
brokerClientAuthenticationParameters={"saslJaasClientSectionName":"PulsarClient",
 "serverType":"broker"}
 ```
diff --git a/site2/website-next/docs/security-oauth2.md 
b/site2/website-next/docs/security-oauth2.md
index abedc3bba57..bd994e26419 100644
--- a/site2/website-next/docs/security-oauth2.md
+++ b/site2/website-next/docs/security-oauth2.md
@@ -15,18 +15,25 @@ After communicating with the OAuth 2.0 server, the Pulsar 
client gets an access
 
 ## Enable OAuth2 authentication on brokers/proxies
 
-To configure brokers to authenticate clients using OAuth2, add the following 
parameters to the `conf/broker.conf` and `conf/proxy.conf` file.
+To configure brokers/proxies to authenticate clients using OAuth2, add the 
following parameters to the `conf/broker.conf` and the `conf/proxy.conf` file. 
If you use a standalone Pulsar, you need to add these parameters to the 
`conf/standalone.conf` file:
 
 ```properties
 # Configuration to enable authentication
 authenticationEnabled=true
 
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderToken
-tokenPublicKey=/path/to/publicKey
-# Authentication settings of the broker itself. Used when the broker connects 
to other brokers,
-# either in same or other clusters
+
+# Authentication settings of the broker itself. Used when the broker connects 
to other brokers, or when the proxy connects to brokers, either in same or 
other clusters
 
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.oauth2.AuthenticationOAuth2
-brokerClientAuthenticationParameters={"privateKey":"/path/to/privateKey",\
-  
"audience":"https://dev-kt-aa9ne.us.auth0.com/api/v2/","issuerUrl":"https://dev-kt-aa9ne.us.auth0.com"}
+brokerClientAuthenticationParameters={"privateKey":"file:///path/to/privateKey","audience":"https://dev-kt-aa9ne.us.auth0.com/api/v2/","issuerUrl":"https://dev-kt-aa9ne.us.auth0.com"}
+# 
brokerClientAuthenticationParameters={"privateKey":"data:application/json;base64,privateKey-body-to-base64","audience":"https://dev-kt-aa9ne.us.auth0.com/api/v2/","issuerUrl":"https://dev-kt-aa9ne.us.auth0.com"}
+
+# If using secret key (Note: key files must be DER-encoded)
+tokenSecretKey=file:///path/to/secret.key
+# The key can also be passed inline:
+# tokenSecretKey=data:;base64,FLFyW0oLJ2Fi22KKCm21J18mbAdztfSHN/lAT5ucEKU=
+
+# If using public/private (Note: key files must be DER-encoded)
+# tokenPublicKey=file:///path/to/public.key
 ```
 
 ## Configure OAuth2 authentication in Pulsar clients
diff --git a/site2/website-next/docs/security-overview.md 
b/site2/website-next/docs/security-overview.md
index 917b7ac7af2..a5b88c21a38 100644
--- a/site2/website-next/docs/security-overview.md
+++ b/site2/website-next/docs/security-overview.md
@@ -28,7 +28,7 @@ Encryption ensures that if an attacker gets access to your 
data, the attacker ca
 
 Authentication is the process of verifying the identity of clients. In Pulsar, 
the authentication provider is responsible for properly identifying clients and 
associating them with role tokens. Note that if you only enable authentication, 
an authenticated role token can access all resources in the cluster. 
 
-**How it works in Pulsar**
+### How it works in Pulsar
 
 Pulsar provides a pluggable authentication framework, and Pulsar 
brokers/proxies use this mechanism to authenticate clients.
 
@@ -38,13 +38,17 @@ The way how each client passes its authentication data to 
brokers varies dependi
   - If a client supports authentication refreshing and the credential is 
expired, brokers send the `CommandAuthChallenge` command to exchange the 
authentication data with the client. If the next check finds that the previous 
authentication exchange has not been returned, brokers disconnect the client.
   - If a client does not support authentication refreshing and the credential 
is expired, brokers disconnect the client.
 
-:::note
+### Authentication data limitations on the proxies
 
-When you use proxies between clients and brokers, brokers only authenticate 
proxies (known as **self-authentication**) by default. To forward the 
authentication data from clients to brokers for client authentication (known as 
**original authentication**), you need to:
-1. Set `forwardAuthorizationCredentials` to `true` in the `conf/proxy.conf` 
file.
-2. Set `authenticateOriginalAuthData` to `true` in the `conf/broker.conf` 
file, which ensures that brokers recheck the client authentication.
+When you use proxies between clients and brokers, there are two authentication 
data:
+* authentication data from proxies that brokers default to authenticate - 
known as **self-authentication**.
+* authentication data from clients that proxies forward to brokers for 
authenticating - known as **original authentication**.
 
-:::
+**Important:** If your authentication data contains an expiration time, or 
your authorization provider depends on the authentication data, you must:
+
+1. Ensure your authentication data of proxies has no expiration time since 
brokers don't support refreshing this authentication data.
+2. Set `forwardAuthorizationCredentials` to `true` in the `conf/proxy.conf` 
file.
+3. Set `authenticateOriginalAuthData` to `true` in the `conf/broker.conf` 
file, which ensures that brokers recheck the client authentication.
 
 **What's next?**
 
@@ -59,7 +63,7 @@ When you use proxies between clients and brokers, brokers 
only authenticate prox
 
 :::note
 
-Starting from 2.11.0, [TLS authentication](security-tls-authentication.md) 
includes [TLS encryption](security-tls-transport.md) by default. If you 
configure TLS authentication first, then TLS encryption automatically applies; 
if you configure TLS encryption first, you can select any one of the above 
authentication providers.
+Starting from 2.11.0, you can configure [Mutual 
TLS](security-tls-transport.md) with any one of the above authentication 
providers.
 
 :::
 
diff --git a/site2/website-next/docs/security-tls-authentication.md 
b/site2/website-next/docs/security-tls-authentication.md
index 7b86ca8e906..f37d5db1fb3 100644
--- a/site2/website-next/docs/security-tls-authentication.md
+++ b/site2/website-next/docs/security-tls-authentication.md
@@ -13,91 +13,28 @@ import TabItem from '@theme/TabItem';
 
 TLS authentication is an extension of [TLS transport 
encryption](security-tls-transport.md). Not only servers have keys and certs 
that the client uses to verify the identity of servers, clients also have keys 
and certs that the server uses to verify the identity of clients. You must have 
TLS transport encryption configured on your cluster before you can use TLS 
authentication. This guide assumes you already have TLS transport encryption 
configured.
 
-## Create client certificates
+## Enable TLS authentication on brokers/proxies
 
-Client certificates are generated using the certificate authority. Server 
certificates are also generated with the same certificate authority.
-
-The biggest difference between client certs and server certs is that the 
**common name** for the client certificate is the **role token** that the 
client is authenticated as.
-
-To use client certificates, you need to set 
`tlsRequireTrustedClientCertOnConnect=true` at the broker side. For details, 
refer to [TLS broker 
configuration](security-tls-transport.md#configure-brokers).
-
-First, you need to enter the following command to generate the key :
-
-```bash
-openssl genrsa -out admin.key.pem 2048
-```
-
-Similar to the broker, the client expects the key to be in [PKCS 
8](https://en.wikipedia.org/wiki/PKCS_8) format, so you need to convert it by 
entering the following command:
-
-```bash
-openssl pkcs8 -topk8 -inform PEM -outform PEM \
-    -in admin.key.pem -out admin.key-pk8.pem -nocrypt
-```
-
-Next, enter the command below to generate the certificate request. When you 
are asked for a **common name**, enter the **role token** that you want this 
key pair to authenticate a client as.
-
-```bash
-openssl req -config openssl.cnf \
-    -key admin.key.pem -new -sha256 -out admin.csr.pem
-```
-
-:::note
-
-If `openssl.cnf` is not specified, read [Certificate 
authority](security-tls-transport.md#create-a-certificate-authority) to get 
`openssl.cnf`.
-
-:::
-
-Then, enter the command below to sign with a request with the certificate 
authority. Note that the client certs use the **usr_cert** extension, which 
allows the cert to be used for client authentication.
-
-```bash
-openssl ca -config openssl.cnf -extensions usr_cert \
-    -days 1000 -notext -md sha256 \
-    -in admin.csr.pem -out admin.cert.pem
-```
-
-You can get a cert, `admin.cert.pem`, and a key, `admin.key-pk8.pem` from this 
command. With `ca.cert.pem`, clients can use this cert and this key to 
authenticate themselves to brokers and proxies as the role token ``admin``.
-
-:::note
-
-If the "unable to load CA private key" error occurs and the reason for this 
error is "No such file or directory: /etc/pki/CA/private/cakey.pem" in this 
step. Try the command below to generate `cakey.pem`.
-
-```bash
-cd /etc/pki/tls/misc/CA
-./CA -newca
-```
-
-:::
-
-## Enable TLS authentication on brokers
-
-To configure brokers to authenticate clients, add the following parameters to 
`broker.conf`, alongside [the configuration to enable TLS 
transport](security-tls-transport.md#configure-brokers):
+To configure brokers/proxies to authenticate clients using Mutual TLS, add the 
following parameters to the `conf/broker.conf` and the `conf/proxy.conf` file. 
If you use a standalone Pulsar, you need to add these parameters to the 
`conf/standalone.conf` file:
 
 ```properties
 # Configuration to enable authentication
 authenticationEnabled=true
 
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderTls
-tlsRequireTrustedClientCertOnConnect=true
 
 
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationTls
-brokerClientAuthenticationParameters={"tlsCertFile":"/path/my-ca/admin.cert.pem","tlsKeyFile":"/path/my-ca/admin.key-pk8.pem"}
-brokerClientTrustCertsFilePath=/path/my-ca/certs/ca.cert.pem
-```
-
-## Enable TLS authentication on proxies
-
-To configure proxies to authenticate clients, add the following parameters to 
`proxy.conf`, alongside [the configuration to enable TLS 
transport](security-tls-transport.md#configure-proxies):
+brokerClientAuthenticationParameters={"tlsCertFile":"/path/to/admin.cert.pem","tlsKeyFile":"/path/to/admin.key-pk8.pem"}
+brokerClientTrustCertsFilePath=/path/to/ca.cert.pem
 
-The proxy should have its own client key pair for connecting to brokers. You 
need to configure the role token for this key pair in the `proxyRoles` of the 
brokers. See the [authorization guide](security-authorization.md) for more 
details.
+tlsCertificateFilePath=/path/to/broker.cert.pem
+tlsKeyFilePath=/path/to/broker.key-pk8.pem
+tlsTrustCertsFilePath=/path/to/ca.cert.pem
 
-```properties
-# For clients connecting to the proxy
-authenticationEnabled=true
-authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderTls
 tlsRequireTrustedClientCertOnConnect=true
+tlsAllowInsecureConnection=false
 
-# For the proxy to connect to brokers
-brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationTls
-brokerClientAuthenticationParameters=tlsCertFile:/path/to/proxy.cert.pem,tlsKeyFile:/path/to/proxy.key-pk8.pem
+# Tls cert refresh duration in seconds (set 0 to check on every new connection)
+tlsCertRefreshCheckDurationSec=300
 ```
 
 ## Configure TLS authentication in Pulsar clients
@@ -223,7 +160,6 @@ 
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationPr
 
 # Enable KeyStore type
 tlsEnabledWithKeyStore=true
-tlsRequireTrustedClientCertOnConnect=true
 
 # key store
 tlsKeyStoreType=JKS
@@ -244,6 +180,9 @@ brokerClientTlsTrustStorePassword=clientpw
 # internal auth config
 
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationKeyStoreTls
 
brokerClientAuthenticationParameters={"keyStoreType":"JKS","keyStorePath":"/var/private/tls/client.keystore.jks","keyStorePassword":"clientpw"}
+
+tlsRequireTrustedClientCertOnConnect=true
+tlsAllowInsecureConnection=false
 ```
 
 ### Configure clients
diff --git a/site2/website-next/docs/tutorials-namespace.md 
b/site2/website-next/docs/tutorials-namespace.md
new file mode 100644
index 00000000000..6caa4e784fb
--- /dev/null
+++ b/site2/website-next/docs/tutorials-namespace.md
@@ -0,0 +1,44 @@
+---
+Id: tutorials-namespace
+title: How to create a namespace
+sidebar_label: “Tutorials”
+---
+
+
+Pulsar namespaces are logical groupings of topics.
+
+Namespaces can be managed via:
+
+- The namespaces command of the pulsar-admin tool
+- The /admin/v2/namespaces endpoint of the admin {@inject: rest:REST:/} API
+- The namespaces method of the PulsarAdmin object in the Java API
+
+In this tutorial, we create a namespace called pulsar in the tenant apache. 
Then we list namespaces of tenant apache to see if the namespace is created 
successfully.
+
+Create the namespace.
+
+```bash
+bin/pulsar-admin namespaces create apache/pulsar
+```
+
+Verify the namespace.
+
+```bash
+bin/pulsar-admin namespaces list apache
+```
+
+You should see similar output to show the namespace apache/pulsar has been 
successfully created.
+
+#### Related Topics
+
+- [Set up a tenant](tutorials-tenant.md)
+- [Create a topic](tutorials-topic.md)
+- [Produce and consume messages](tutorials-produce-consume.md)
+- [Manage clusters](admin-api-clusters.md)
+
+
+
+
+
+
+
diff --git a/site2/website-next/docs/tutorials-produce-consume.md 
b/site2/website-next/docs/tutorials-produce-consume.md
new file mode 100644
index 00000000000..dd333f5c73d
--- /dev/null
+++ b/site2/website-next/docs/tutorials-produce-consume.md
@@ -0,0 +1,77 @@
+---
+Id: tutorials-produce-consume
+title: Produce and consume messages
+sidebar_label: “Tutorials”
+---
+
+In this tutorial, we will:
+- Configure the Pulsar client
+- Create a subscription
+- Create a producer
+- Send test messages
+- Verify the results
+
+## Prerequisites
+
+- [Create tenant](tutorials-tenant.md)
+- [Create namespace](tutorials-namespace.md)
+- [Create topic](tutorials-topic.md)
+
+## Produce and consume messages
+
+1. In the `${PULSAR_HOME}/conf/client.conf` file, replace `webServiceUrl` and 
`brokerServiceUrl` with your service URL.
+
+2. Create a subscription to consume messages from `apache/pulsar/test-topic`.
+
+   ```bash
+   bin/pulsar-client consume -s sub apache/pulsar/test-topic  -n 0
+   ```
+
+3. In a new terminal, create a producer and send 10 messages to test-topic.
+
+   ```bash
+   bin/pulsar-client produce apache/pulsar/test-topic  -m "---------hello 
apache pulsar-------" -n 10
+   ```
+
+4. Verify the results.
+
+   ```
+   ----- got message -----
+   ---------hello apache pulsar-------
+   ----- got message -----
+   ---------hello apache pulsar-------
+   ----- got message -----
+   ---------hello apache pulsar-------
+   ----- got message -----
+   ---------hello apache pulsar-------
+   ----- got message -----
+   ---------hello apache pulsar-------
+   ----- got message -----
+   ---------hello apache pulsar-------
+   ----- got message -----
+   ---------hello apache pulsar-------
+   ----- got message -----
+   ---------hello apache pulsar-------
+   ----- got message -----
+   ---------hello apache pulsar-------
+   ----- got message -----
+   ---------hello apache pulsar-------
+
+   Output from the producer side shows the messages have been produced 
successfully:
+   18:15:15.489 [main] INFO  org.apache.pulsar.client.cli.PulsarClientTool - 
10 messages successfully produced.
+   ```
+
+#### Related Topics
+- [Set up a tenant](tutorials-tenant.md)
+- [Create a topic](tutorials-topic.md)
+- [Create a namespace](tutorials-namespace.md)
+- [Manage clusters](admin-api-clusters.md)
+
+
+
+
+
+
+
+
+
diff --git a/site2/website-next/docs/tutorials-tenant.md 
b/site2/website-next/docs/tutorials-tenant.md
new file mode 100644
index 00000000000..92192797d89
--- /dev/null
+++ b/site2/website-next/docs/tutorials-tenant.md
@@ -0,0 +1,54 @@
+---
+Id: tutorials-tenant
+title: How to set up a tenant
+sidebar_label: “Tutorials”
+---
+
+
+Pulsar is a powerful messaging system you can use to process and route high 
volumes of data. Each tenant provides a distinct unit of isolation with its own 
set of roles, permissions, configuration settings, and bookmarks. 
+
+In this tutorial, you will create a new tenant, named “apache” in your Pulsar 
cluster, hosted in K8s helm. 
+
+To create a tenant:
+
+1. Enter the toolset container.
+
+   ```bash
+   kubectl exec -it -n pulsar pulsar-mini-toolset-0 -- /bin/bash
+   ```
+
+2. In the toolset container, create a tenant named apache.
+
+   ```bash
+   bin/pulsar-admin tenants create apache
+   ```
+
+3. List the tenants to see if the tenant is created successfully.
+
+   ```bash
+   bin/pulsar-admin tenants list
+   ```
+
+   You should see a similar output as below. 
+
+   ```
+   The tenant apache has been successfully created.
+   "apache"
+   "public"
+   "pulsar"
+   ```
+
+#### Related Topics
+
+- [How to create a namespace](tutorials-namespace.md)
+- [How to create a topic](tutorials-topic.md)
+- [Run a standalone cluster in Kubernetes](getting-started-helm.md)
+
+
+
+
+
+
+
+
+
diff --git a/site2/website-next/docs/tutorials-topic.md 
b/site2/website-next/docs/tutorials-topic.md
new file mode 100644
index 00000000000..e0ebc8fbfea
--- /dev/null
+++ b/site2/website-next/docs/tutorials-topic.md
@@ -0,0 +1,39 @@
+---
+Id: tutorials-topic
+title: How to create a topic
+sidebar_label: “Tutorials”
+---
+
+
+Apache Pulsar is a distributed messaging system that supports high performance 
and low latency. Topics are the primary way to structure data in Apache Pulsar. 
A Pulsar topic is a unit of storage that organizes messages into a stream. Each 
message in a topic has an offset, which uniquely identifies the message within 
the topic. 
+
+## Prerequisites
+[Publish to partitioned 
topics](admin-api-topics.md#publish-to-partitioned-topics)
+
+## Create a topic
+
+1. Create `test-topic` with 4 partitions in the namespace `apache/pulsar`.
+
+   ```bash
+   bin/pulsar-admin topics create-partitioned-topic apache/pulsar/test-topic 
-p 4
+   ```
+
+2. List all the partitioned topics in the namespace `apache/pulsar`.
+
+   ```bash
+   bin/pulsar-admin topics list-partitioned-topics apache/pulsar
+   ```
+
+#### Related Topics
+
+- [How to set up a tenant](tutorials-tenant.md)
+- [How to create a namespace](tutorials-namespace.md)
+- [How to produce and consume messages](tutorial-produce-consume.md)
+
+
+
+
+
+
+
+
diff --git a/site2/website-next/sidebars.json b/site2/website-next/sidebars.json
index 4e0573602bd..44890c019e4 100644
--- a/site2/website-next/sidebars.json
+++ b/site2/website-next/sidebars.json
@@ -210,6 +210,10 @@
     {
       "type": "category",
       "label": "Deployment",
+      "link": {
+        "type": "doc",
+        "id": "install-deploy-upgrade-landing"
+      },
       "items": [
         "deploy-aws",
         {


Reply via email to