diff --git a/docs/content/docs/references/cli/_index.md b/docs/content/docs/references/cli/_index.md
deleted file mode 100644
index 5aca45ff2..000000000
--- a/docs/content/docs/references/cli/_index.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: "Porter Commands"
-date: 2023-09-10T01:55:46+05:30
-description: ""
-weight: 2
----
-
-**All of the Porter Commands**
-
-{{< cards >}}
-{{< card link="inspecting-bundles" title="Inspecting Bundles" >}}
-{{< card link="copy-bundles" title="Copy Bundles" >}}
-{{< card link="move-bundles-airgapped" title="Move Bundles Across Airgapped Environments" >}}
-{{< card link="collect-diag-porter" title="Collect Diagnostics from Porter" >}}
-{{< /cards >}}
diff --git a/docs/content/docs/references/cli/archive.md b/docs/content/docs/references/cli/archive.md
index 05f2c6d8e..2508a4914 100644
--- a/docs/content/docs/references/cli/archive.md
+++ b/docs/content/docs/references/cli/archive.md
@@ -20,16 +20,18 @@ porter archive FILENAME --reference PUBLISHED_BUNDLE [flags]
 ```
   porter archive mybun.tgz --reference ghcr.io/getporter/examples/porter-hello:v0.2.0
   porter archive mybun.tgz --reference localhost:5000/ghcr.io/getporter/examples/porter-hello:v0.2.0 --force
+  porter archive mybun.tgz --compression NoCompression --reference ghcr.io/getporter/examples/porter-hello:v0.2.0
 
 ```
 
 ### Options
 
 ```
-      --force               Force a fresh pull of the bundle
-  -h, --help                help for archive
-      --insecure-registry   Don't require TLS for the registry
-  -r, --reference string    Use a bundle in an OCI registry specified by the given reference.
+  -c, --compression string   Compression level to use when creating the gzipped tar archive. Allowed values are: BestCompression, BestSpeed, DefaultCompression, HuffmanOnly, NoCompression (default "DefaultCompression")
+      --force                Force a fresh pull of the bundle
+  -h, --help                 help for archive
+      --insecure-registry    Don't require TLS for the registry
+  -r, --reference string     Use a bundle in an OCI registry specified by the given reference.
 ```
 
 ### Options inherited from parent commands
diff --git a/docs/content/docs/references/cli/bundles.md b/docs/content/docs/references/cli/bundles.md
new file mode 100644
index 000000000..88b827184
--- /dev/null
+++ b/docs/content/docs/references/cli/bundles.md
@@ -0,0 +1,42 @@
+---
+title: "porter bundles"
+slug: porter_bundles
+url: /cli/porter_bundles/
+---
+## porter bundles
+
+Bundle commands
+
+### Synopsis
+
+Commands for working with bundles. These all have shortcuts so that you can call these commands without the bundle resource prefix. For example, porter bundle build is available as porter build as well.
+
+### Options
+
+```
+  -h, --help   help for bundles
+```
+
+### Options inherited from parent commands
+
+```
+      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
+      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
+```
+
+### SEE ALSO
+
+* [porter](/cli/porter/)	 - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
+
+Most commands require a Docker daemon, either local or remote.
+
+Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
+
+* [porter bundles archive](/cli/porter_bundles_archive/)	 - Archive a bundle from a reference
+* [porter bundles build](/cli/porter_bundles_build/)	 - Build a bundle
+* [porter bundles copy](/cli/porter_bundles_copy/)	 - Copy a bundle
+* [porter bundles create](/cli/porter_bundles_create/)	 - Create a bundle
+* [porter bundles explain](/cli/porter_bundles_explain/)	 - Explain a bundle
+* [porter bundles inspect](/cli/porter_bundles_inspect/)	 - Inspect a bundle
+* [porter bundles lint](/cli/porter_bundles_lint/)	 - Lint a bundle
+
diff --git a/docs/content/docs/references/cli/bundles/_index.md b/docs/content/docs/references/cli/bundles/_index.md
deleted file mode 100644
index 1bb1563f2..000000000
--- a/docs/content/docs/references/cli/bundles/_index.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: "Bundles"
-weight: 2
----
-
-## Bundle Commands
-
-### Synopsis
-
-Commands for working with bundles. These all have shortcuts so that you can call these commands without the bundle resource prefix. For example, porter bundle build is available as porter build as well.
-
-### Options
-
-```
-  -h, --help   help for bundles
-```
-
-### Options inherited from parent commands
-
-```
-      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
-      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
-```
-
-### SEE ALSO
-
-- [porter](/references/cli/porter/) - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
-
-Most commands require a Docker daemon, either local or remote.
-
-Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
-
-- [porter bundles archive](/cli/porter_bundles_archive/) - Archive a bundle from a reference
-- [porter bundles build](/cli/porter_bundles_build/) - Build a bundle
-- [porter bundles copy](/cli/porter_bundles_copy/) - Copy a bundle
-- [porter bundles create](/cli/porter_bundles_create/) - Create a bundle
-- [porter bundles explain](/cli/porter_bundles_explain/) - Explain a bundle
-- [porter bundles inspect](/cli/porter_bundles_inspect/) - Inspect a bundle
-- [porter bundles lint](/cli/porter_bundles_lint/) - Lint a bundle
diff --git a/docs/content/docs/references/cli/bundles/archive.md b/docs/content/docs/references/cli/bundles_archive.md
similarity index 64%
rename from docs/content/docs/references/cli/bundles/archive.md
rename to docs/content/docs/references/cli/bundles_archive.md
index f007f6a2b..485b998ab 100644
--- a/docs/content/docs/references/cli/bundles/archive.md
+++ b/docs/content/docs/references/cli/bundles_archive.md
@@ -20,16 +20,18 @@ porter bundles archive FILENAME --reference PUBLISHED_BUNDLE [flags]
 ```
   porter bundle archive mybun.tgz --reference ghcr.io/getporter/examples/porter-hello:v0.2.0
   porter bundle archive mybun.tgz --reference localhost:5000/ghcr.io/getporter/examples/porter-hello:v0.2.0 --force
+  porter bundle archive mybun.tgz --compression NoCompression --reference ghcr.io/getporter/examples/porter-hello:v0.2.0
 
 ```
 
 ### Options
 
 ```
-      --force               Force a fresh pull of the bundle
-  -h, --help                help for archive
-      --insecure-registry   Don't require TLS for the registry
-  -r, --reference string    Use a bundle in an OCI registry specified by the given reference.
+  -c, --compression string   Compression level to use when creating the gzipped tar archive. Allowed values are: BestCompression, BestSpeed, DefaultCompression, HuffmanOnly, NoCompression (default "DefaultCompression")
+      --force                Force a fresh pull of the bundle
+  -h, --help                 help for archive
+      --insecure-registry    Don't require TLS for the registry
+  -r, --reference string     Use a bundle in an OCI registry specified by the given reference.
 ```
 
 ### Options inherited from parent commands
diff --git a/docs/content/docs/references/cli/bundles/build.md b/docs/content/docs/references/cli/bundles_build.md
similarity index 100%
rename from docs/content/docs/references/cli/bundles/build.md
rename to docs/content/docs/references/cli/bundles_build.md
diff --git a/docs/content/docs/references/cli/bundles/copy.md b/docs/content/docs/references/cli/bundles_copy.md
similarity index 100%
rename from docs/content/docs/references/cli/bundles/copy.md
rename to docs/content/docs/references/cli/bundles_copy.md
diff --git a/docs/content/docs/references/cli/bundles/create.md b/docs/content/docs/references/cli/bundles_create.md
similarity index 69%
rename from docs/content/docs/references/cli/bundles/create.md
rename to docs/content/docs/references/cli/bundles_create.md
index cb363e64c..19563cbbc 100644
--- a/docs/content/docs/references/cli/bundles/create.md
+++ b/docs/content/docs/references/cli/bundles_create.md
@@ -9,7 +9,7 @@ Create a bundle
 
 ### Synopsis
 
-Create a bundle. This generates a porter bundle in the directory with the specified name or in the current directory if no name is provided.
+Create a bundle. This command creates a new porter bundle with the specified bundle-name, in the directory with the specified bundle-name. The directory will be created if it doesn't already exist. If no bundle-name is provided, the bundle will be created in current directory and the bundle name will be 'porter-hello'.
 
 ```
 porter bundles create [bundle-name] [flags]
diff --git a/docs/content/docs/references/cli/bundles/explain.md b/docs/content/docs/references/cli/bundles_explain.md
similarity index 100%
rename from docs/content/docs/references/cli/bundles/explain.md
rename to docs/content/docs/references/cli/bundles_explain.md
diff --git a/docs/content/docs/references/cli/bundles/inspect.md b/docs/content/docs/references/cli/bundles_inspect.md
similarity index 98%
rename from docs/content/docs/references/cli/bundles/inspect.md
rename to docs/content/docs/references/cli/bundles_inspect.md
index 0a700e9ec..11a72098b 100644
--- a/docs/content/docs/references/cli/bundles/inspect.md
+++ b/docs/content/docs/references/cli/bundles_inspect.md
@@ -2,8 +2,6 @@
 title: "porter bundles inspect"
 slug: porter_bundles_inspect
 url: /cli/porter_bundles_inspect/
-aliases:
-  - /inspect-bundles
 ---
 ## porter bundles inspect
 
diff --git a/docs/content/docs/references/cli/bundles/lint.md b/docs/content/docs/references/cli/bundles_lint.md
similarity index 100%
rename from docs/content/docs/references/cli/bundles/lint.md
rename to docs/content/docs/references/cli/bundles_lint.md
diff --git a/docs/content/docs/references/cli/create.md b/docs/content/docs/references/cli/create.md
index fb19d8b46..765ed886c 100644
--- a/docs/content/docs/references/cli/create.md
+++ b/docs/content/docs/references/cli/create.md
@@ -9,7 +9,7 @@ Create a bundle
 
 ### Synopsis
 
-Create a bundle. This generates a porter bundle in the directory with the specified name or in the current directory if no name is provided.
+Create a bundle. This command creates a new porter bundle with the specified bundle-name, in the directory with the specified bundle-name. The directory will be created if it doesn't already exist. If no bundle-name is provided, the bundle will be created in current directory and the bundle name will be 'porter-hello'.
 
 ```
 porter create [bundle-name] [flags]
diff --git a/docs/content/docs/references/cli/credentials.md b/docs/content/docs/references/cli/credentials.md
new file mode 100644
index 000000000..2f0ab163d
--- /dev/null
+++ b/docs/content/docs/references/cli/credentials.md
@@ -0,0 +1,38 @@
+---
+title: "porter credentials"
+slug: porter_credentials
+url: /cli/porter_credentials/
+---
+## porter credentials
+
+Credentials commands
+
+### Options
+
+```
+  -h, --help   help for credentials
+```
+
+### Options inherited from parent commands
+
+```
+      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
+      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
+```
+
+### SEE ALSO
+
+* [porter](/cli/porter/)	 - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
+
+Most commands require a Docker daemon, either local or remote.
+
+Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
+
+* [porter credentials apply](/cli/porter_credentials_apply/)	 - Apply changes to a credential set
+* [porter credentials create](/cli/porter_credentials_create/)	 - Create a Credential
+* [porter credentials delete](/cli/porter_credentials_delete/)	 - Delete a Credential
+* [porter credentials edit](/cli/porter_credentials_edit/)	 - Edit Credential
+* [porter credentials generate](/cli/porter_credentials_generate/)	 - Generate Credential Set
+* [porter credentials list](/cli/porter_credentials_list/)	 - List credentials
+* [porter credentials show](/cli/porter_credentials_show/)	 - Show a Credential
+
diff --git a/docs/content/docs/references/cli/credentials/_index.md b/docs/content/docs/references/cli/credentials/_index.md
deleted file mode 100644
index a71284d10..000000000
--- a/docs/content/docs/references/cli/credentials/_index.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: "Credentials"
-weight: 3
----
-
-## Credentials Commands
-
-### Options
-
-```
-  -h, --help   help for credentials
-```
-
-### Options inherited from parent commands
-
-```
-      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
-      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
-```
-
-### SEE ALSO
-
-- [porter](/cli/porter/) - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
-
-Most commands require a Docker daemon, either local or remote.
-
-Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
-
-- [porter credentials apply](/cli/porter_credentials_apply/) - Apply changes to a credential set
-- [porter credentials create](/cli/porter_credentials_create/) - Create a Credential
-- [porter credentials delete](/cli/porter_credentials_delete/) - Delete a Credential
-- [porter credentials edit](/cli/porter_credentials_edit/) - Edit Credential
-- [porter credentials generate](/cli/porter_credentials_generate/) - Generate Credential Set
-- [porter credentials list](/cli/porter_credentials_list/) - List credentials
-- [porter credentials show](/cli/porter_credentials_show/) - Show a Credential
diff --git a/docs/content/docs/references/cli/credentials/apply.md b/docs/content/docs/references/cli/credentials_apply.md
similarity index 100%
rename from docs/content/docs/references/cli/credentials/apply.md
rename to docs/content/docs/references/cli/credentials_apply.md
diff --git a/docs/content/docs/references/cli/credentials/create.md b/docs/content/docs/references/cli/credentials_create.md
similarity index 100%
rename from docs/content/docs/references/cli/credentials/create.md
rename to docs/content/docs/references/cli/credentials_create.md
diff --git a/docs/content/docs/references/cli/credentials/delete.md b/docs/content/docs/references/cli/credentials_delete.md
similarity index 100%
rename from docs/content/docs/references/cli/credentials/delete.md
rename to docs/content/docs/references/cli/credentials_delete.md
diff --git a/docs/content/docs/references/cli/credentials/edit.md b/docs/content/docs/references/cli/credentials_edit.md
similarity index 100%
rename from docs/content/docs/references/cli/credentials/edit.md
rename to docs/content/docs/references/cli/credentials_edit.md
diff --git a/docs/content/docs/references/cli/credentials/generate.md b/docs/content/docs/references/cli/credentials_generate.md
similarity index 100%
rename from docs/content/docs/references/cli/credentials/generate.md
rename to docs/content/docs/references/cli/credentials_generate.md
diff --git a/docs/content/docs/references/cli/credentials/list.md b/docs/content/docs/references/cli/credentials_list.md
similarity index 100%
rename from docs/content/docs/references/cli/credentials/list.md
rename to docs/content/docs/references/cli/credentials_list.md
diff --git a/docs/content/docs/references/cli/credentials/show.md b/docs/content/docs/references/cli/credentials_show.md
similarity index 100%
rename from docs/content/docs/references/cli/credentials/show.md
rename to docs/content/docs/references/cli/credentials_show.md
diff --git a/docs/content/docs/references/cli/install.md b/docs/content/docs/references/cli/install.md
index 07ddf7f39..527cf9247 100644
--- a/docs/content/docs/references/cli/install.md
+++ b/docs/content/docs/references/cli/install.md
@@ -45,22 +45,24 @@ porter install [INSTALLATION] [flags]
 ### Options
 
 ```
-      --allow-docker-host-access     Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
-      --autobuild-disabled           Do not automatically build the bundle from source when the last build is out-of-date.
-      --cnab-file string             Path to the CNAB bundle.json file.
-  -c, --credential-set stringArray   Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
-      --debug                        Run the bundle in debug mode.
-  -d, --driver string                Specify a driver to use. Allowed values: docker, debug (default "docker")
-  -f, --file porter.yaml             Path to the Porter manifest. Defaults to porter.yaml in the current directory.
-      --force                        Force a fresh pull of the bundle
-  -h, --help                         help for install
-      --insecure-registry            Don't require TLS for the registry
-  -l, --label strings                Associate the specified labels with the installation. May be specified multiple times.
-  -n, --namespace string             Create the installation in the specified namespace. Defaults to the global namespace.
-      --no-logs                      Do not persist the bundle execution logs
-      --param stringArray            Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
-  -p, --parameter-set stringArray    Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
-  -r, --reference string             Use a bundle in an OCI registry specified by the given reference.
+      --allow-docker-host-access        Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
+      --autobuild-disabled              Do not automatically build the bundle from source when the last build is out-of-date.
+      --cnab-file string                Path to the CNAB bundle.json file.
+  -c, --credential-set stringArray      Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
+      --debug                           Run the bundle in debug mode.
+  -d, --driver string                   Specify a driver to use. Allowed values: docker, debug (default "docker")
+  -f, --file porter.yaml                Path to the Porter manifest. Defaults to porter.yaml in the current directory.
+      --force                           Force a fresh pull of the bundle
+  -h, --help                            help for install
+      --insecure-registry               Don't require TLS for the registry
+  -l, --label strings                   Associate the specified labels with the installation. May be specified multiple times.
+      --mount-host-volume stringArray   Mount a host volume into the bundle. Format is <host path>:<container path>[:<option>]. May be specified multiple times. Option can be ro (read-only), rw (read-write), default is ro.
+  -n, --namespace string                Create the installation in the specified namespace. Defaults to the global namespace.
+      --no-logs                         Do not persist the bundle execution logs
+      --param stringArray               Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
+  -p, --parameter-set stringArray       Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
+  -r, --reference string                Use a bundle in an OCI registry specified by the given reference.
+      --verify-bundle                   Verify the bundle signature before executing
 ```
 
 ### Options inherited from parent commands
diff --git a/docs/content/docs/references/cli/installations.md b/docs/content/docs/references/cli/installations.md
new file mode 100644
index 000000000..259992613
--- /dev/null
+++ b/docs/content/docs/references/cli/installations.md
@@ -0,0 +1,46 @@
+---
+title: "porter installations"
+slug: porter_installations
+url: /cli/porter_installations/
+---
+## porter installations
+
+Installation commands
+
+### Synopsis
+
+Commands for working with installations of a bundle
+
+### Options
+
+```
+  -h, --help   help for installations
+```
+
+### Options inherited from parent commands
+
+```
+      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
+      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
+```
+
+### SEE ALSO
+
+* [porter](/cli/porter/)	 - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
+
+Most commands require a Docker daemon, either local or remote.
+
+Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
+
+* [porter installations apply](/cli/porter_installations_apply/)	 - Apply changes to an installation
+* [porter installations delete](/cli/porter_installations_delete/)	 - Delete an installation
+* [porter installations install](/cli/porter_installations_install/)	 - Create a new installation of a bundle
+* [porter installations invoke](/cli/porter_installations_invoke/)	 - Invoke a custom action on an installation
+* [porter installations list](/cli/porter_installations_list/)	 - List installed bundles
+* [porter installations logs](/cli/porter_installations_logs/)	 - Installation Logs commands
+* [porter installations output](/cli/porter_installations_output/)	 - Output commands
+* [porter installations runs](/cli/porter_installations_runs/)	 - Commands for working with runs of an Installation
+* [porter installations show](/cli/porter_installations_show/)	 - Show an installation of a bundle
+* [porter installations uninstall](/cli/porter_installations_uninstall/)	 - Uninstall an installation
+* [porter installations upgrade](/cli/porter_installations_upgrade/)	 - Upgrade an installation
+
diff --git a/docs/content/docs/references/cli/installations/_index.md b/docs/content/docs/references/cli/installations/_index.md
deleted file mode 100644
index b291cb778..000000000
--- a/docs/content/docs/references/cli/installations/_index.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: "porter installations"
----
-
-## porter installations
-
-Installation commands
-
-### Synopsis
-
-Commands for working with installations of a bundle
-
-### Options
-
-```
-  -h, --help   help for installations
-```
-
-### Options inherited from parent commands
-
-```
-      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
-      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
-```
-
-### SEE ALSO
-
-- [porter](/cli/porter/) - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
-
-Most commands require a Docker daemon, either local or remote.
-
-Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
-
-- [porter installations apply](/cli/porter_installations_apply/) - Apply changes to an installation
-- [porter installations delete](/cli/porter_installations_delete/) - Delete an installation
-- [porter installations install](/cli/porter_installations_install/) - Create a new installation of a bundle
-- [porter installations invoke](/cli/porter_installations_invoke/) - Invoke a custom action on an installation
-- [porter installations list](/cli/porter_installations_list/) - List installed bundles
-- [porter installations logs](/cli/porter_installations_logs/) - Installation Logs commands
-- [porter installations output](/cli/porter_installations_output/) - Output commands
-- [porter installations runs](/cli/porter_installations_runs/) - Commands for working with runs of an Installation
-- [porter installations show](/cli/porter_installations_show/) - Show an installation of a bundle
-- [porter installations uninstall](/cli/porter_installations_uninstall/) - Uninstall an installation
-- [porter installations upgrade](/cli/porter_installations_upgrade/) - Upgrade an installation
diff --git a/docs/content/docs/references/cli/installations/uninstall.md b/docs/content/docs/references/cli/installations/uninstall.md
deleted file mode 100644
index 796dabf6f..000000000
--- a/docs/content/docs/references/cli/installations/uninstall.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: "porter installations uninstall"
-slug: porter_installations_uninstall
-url: /cli/porter_installations_uninstall/
----
-## porter installations uninstall
-
-Uninstall an installation
-
-### Synopsis
-
-Uninstall an installation
-
-The first argument is the installation name to uninstall. This defaults to the name of the bundle.
-
-Porter uses the docker driver as the default runtime for executing a bundle's invocation image, but an alternate driver may be supplied via '--driver/-d'' or the PORTER_RUNTIME_DRIVER environment variable.
-For example, the 'debug' driver may be specified, which simply logs the info given to it and then exits.
-
-The docker driver runs the bundle container using the local Docker host. To use a remote Docker host, set the following environment variables:
-  DOCKER_HOST (required)
-  DOCKER_TLS_VERIFY (optional)
-  DOCKER_CERT_PATH (optional)
-
-
-```
-porter installations uninstall [INSTALLATION] [flags]
-```
-
-### Examples
-
-```
-  porter installation uninstall
-  porter installation uninstall --reference ghcr.io/getporter/examples/kubernetes:v0.2.0
-  porter installation uninstall --reference localhost:5000/ghcr.io/getporter/examples/kubernetes:v0.2.0 --insecure-registry --force
-  porter installation uninstall MyAppInDev --file myapp/bundle.json
-  porter installation uninstall --parameter-set azure --param test-mode=true --param header-color=blue
-  porter installation uninstall --credential-set azure --credential-set kubernetes
-  porter installation uninstall --driver debug
-  porter installation uninstall --delete
-  porter installation uninstall --force-delete
-
-```
-
-### Options
-
-```
-      --allow-docker-host-access     Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
-      --autobuild-disabled           Do not automatically build the bundle from source when the last build is out-of-date.
-      --cnab-file string             Path to the CNAB bundle.json file.
-  -c, --credential-set stringArray   Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
-      --debug                        Run the bundle in debug mode.
-      --delete                       Delete all records associated with the installation, assuming the uninstall action succeeds
-  -d, --driver string                Specify a driver to use. Allowed values: docker, debug (default "docker")
-  -f, --file porter.yaml             Path to the Porter manifest. Defaults to porter.yaml in the current directory.
-      --force                        Force a fresh pull of the bundle
-      --force-delete                 UNSAFE. Delete all records associated with the installation, even if uninstall fails. This is intended for cleaning up test data and is not recommended for production environments.
-  -h, --help                         help for uninstall
-      --insecure-registry            Don't require TLS for the registry
-  -n, --namespace string             Namespace of the specified installation. Defaults to the global namespace.
-      --no-logs                      Do not persist the bundle execution logs
-      --param stringArray            Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
-  -p, --parameter-set stringArray    Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
-  -r, --reference string             Use a bundle in an OCI registry specified by the given reference.
-```
-
-### Options inherited from parent commands
-
-```
-      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
-      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
-```
-
-### SEE ALSO
-
-* [porter installations](/cli/porter_installations/)	 - Installation commands
-
diff --git a/docs/content/docs/references/cli/installations/upgrade.md b/docs/content/docs/references/cli/installations/upgrade.md
deleted file mode 100644
index 983adb327..000000000
--- a/docs/content/docs/references/cli/installations/upgrade.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: "porter installations upgrade"
-slug: porter_installations_upgrade
-url: /cli/porter_installations_upgrade/
----
-## porter installations upgrade
-
-Upgrade an installation
-
-### Synopsis
-
-Upgrade an installation.
-
-The first argument is the installation name to upgrade. This defaults to the name of the bundle.
-
-Porter uses the docker driver as the default runtime for executing a bundle's invocation image, but an alternate driver may be supplied via '--driver/-d' or the PORTER_RUNTIME_DRIVER environment variable.
-For example, the 'debug' driver may be specified, which simply logs the info given to it and then exits.
-
-The docker driver runs the bundle container using the local Docker host. To use a remote Docker host, set the following environment variables:
-  DOCKER_HOST (required)
-  DOCKER_TLS_VERIFY (optional)
-  DOCKER_CERT_PATH (optional)
-
-
-```
-porter installations upgrade [INSTALLATION] [flags]
-```
-
-### Examples
-
-```
-  porter installation upgrade --version 0.2.0
-  porter installation upgrade --reference ghcr.io/getporter/examples/kubernetes:v0.2.0
-  porter installation upgrade --reference localhost:5000/ghcr.io/getporter/examples/kubernetes:v0.2.0 --insecure-registry --force
-  porter installation upgrade MyAppInDev --file myapp/bundle.json
-  porter installation upgrade --parameter-set azure --param test-mode=true --param header-color=blue
-  porter installation upgrade --credential-set azure --credential-set kubernetes
-  porter installation upgrade --driver debug
-
-```
-
-### Options
-
-```
-      --allow-docker-host-access     Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
-      --autobuild-disabled           Do not automatically build the bundle from source when the last build is out-of-date.
-      --cnab-file string             Path to the CNAB bundle.json file.
-  -c, --credential-set stringArray   Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
-      --debug                        Run the bundle in debug mode.
-  -d, --driver string                Specify a driver to use. Allowed values: docker, debug (default "docker")
-  -f, --file porter.yaml             Path to the Porter manifest. Defaults to porter.yaml in the current directory.
-      --force                        Force a fresh pull of the bundle
-  -h, --help                         help for upgrade
-      --insecure-registry            Don't require TLS for the registry
-  -n, --namespace string             Namespace of the specified installation. Defaults to the global namespace.
-      --no-logs                      Do not persist the bundle execution logs
-      --param stringArray            Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
-  -p, --parameter-set stringArray    Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
-  -r, --reference string             Use a bundle in an OCI registry specified by the given reference.
-      --version string               Version to which the installation should be upgraded. This represents the version of the bundle, which assumes the convention of setting the bundle tag to its version.
-```
-
-### Options inherited from parent commands
-
-```
-      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
-      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
-```
-
-### SEE ALSO
-
-* [porter installations](/cli/porter_installations/)	 - Installation commands
-
diff --git a/docs/content/docs/references/cli/installations/apply.md b/docs/content/docs/references/cli/installations_apply.md
similarity index 100%
rename from docs/content/docs/references/cli/installations/apply.md
rename to docs/content/docs/references/cli/installations_apply.md
diff --git a/docs/content/docs/references/cli/installations/delete.md b/docs/content/docs/references/cli/installations_delete.md
similarity index 100%
rename from docs/content/docs/references/cli/installations/delete.md
rename to docs/content/docs/references/cli/installations_delete.md
diff --git a/docs/content/docs/references/cli/installations/install.md b/docs/content/docs/references/cli/installations_install.md
similarity index 52%
rename from docs/content/docs/references/cli/installations/install.md
rename to docs/content/docs/references/cli/installations_install.md
index 266b20808..4865cbd72 100644
--- a/docs/content/docs/references/cli/installations/install.md
+++ b/docs/content/docs/references/cli/installations_install.md
@@ -45,22 +45,24 @@ porter installations install [INSTALLATION] [flags]
 ### Options
 
 ```
-      --allow-docker-host-access     Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
-      --autobuild-disabled           Do not automatically build the bundle from source when the last build is out-of-date.
-      --cnab-file string             Path to the CNAB bundle.json file.
-  -c, --credential-set stringArray   Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
-      --debug                        Run the bundle in debug mode.
-  -d, --driver string                Specify a driver to use. Allowed values: docker, debug (default "docker")
-  -f, --file porter.yaml             Path to the Porter manifest. Defaults to porter.yaml in the current directory.
-      --force                        Force a fresh pull of the bundle
-  -h, --help                         help for install
-      --insecure-registry            Don't require TLS for the registry
-  -l, --label strings                Associate the specified labels with the installation. May be specified multiple times.
-  -n, --namespace string             Create the installation in the specified namespace. Defaults to the global namespace.
-      --no-logs                      Do not persist the bundle execution logs
-      --param stringArray            Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
-  -p, --parameter-set stringArray    Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
-  -r, --reference string             Use a bundle in an OCI registry specified by the given reference.
+      --allow-docker-host-access        Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
+      --autobuild-disabled              Do not automatically build the bundle from source when the last build is out-of-date.
+      --cnab-file string                Path to the CNAB bundle.json file.
+  -c, --credential-set stringArray      Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
+      --debug                           Run the bundle in debug mode.
+  -d, --driver string                   Specify a driver to use. Allowed values: docker, debug (default "docker")
+  -f, --file porter.yaml                Path to the Porter manifest. Defaults to porter.yaml in the current directory.
+      --force                           Force a fresh pull of the bundle
+  -h, --help                            help for install
+      --insecure-registry               Don't require TLS for the registry
+  -l, --label strings                   Associate the specified labels with the installation. May be specified multiple times.
+      --mount-host-volume stringArray   Mount a host volume into the bundle. Format is <host path>:<container path>[:<option>]. May be specified multiple times. Option can be ro (read-only), rw (read-write), default is ro.
+  -n, --namespace string                Create the installation in the specified namespace. Defaults to the global namespace.
+      --no-logs                         Do not persist the bundle execution logs
+      --param stringArray               Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
+  -p, --parameter-set stringArray       Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
+  -r, --reference string                Use a bundle in an OCI registry specified by the given reference.
+      --verify-bundle                   Verify the bundle signature before executing
 ```
 
 ### Options inherited from parent commands
diff --git a/docs/content/docs/references/cli/installations/invoke.md b/docs/content/docs/references/cli/installations_invoke.md
similarity index 50%
rename from docs/content/docs/references/cli/installations/invoke.md
rename to docs/content/docs/references/cli/installations_invoke.md
index 9f2746f4c..5dcfb201c 100644
--- a/docs/content/docs/references/cli/installations/invoke.md
+++ b/docs/content/docs/references/cli/installations_invoke.md
@@ -42,22 +42,23 @@ porter installations invoke [INSTALLATION] --action ACTION [flags]
 ### Options
 
 ```
-      --action string                Custom action name to invoke.
-      --allow-docker-host-access     Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
-      --autobuild-disabled           Do not automatically build the bundle from source when the last build is out-of-date.
-      --cnab-file string             Path to the CNAB bundle.json file.
-  -c, --credential-set stringArray   Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
-      --debug                        Run the bundle in debug mode.
-  -d, --driver string                Specify a driver to use. Allowed values: docker, debug (default "docker")
-  -f, --file porter.yaml             Path to the Porter manifest. Defaults to porter.yaml in the current directory.
-      --force                        Force a fresh pull of the bundle
-  -h, --help                         help for invoke
-      --insecure-registry            Don't require TLS for the registry
-  -n, --namespace string             Namespace of the specified installation. Defaults to the global namespace.
-      --no-logs                      Do not persist the bundle execution logs
-      --param stringArray            Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
-  -p, --parameter-set stringArray    Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
-  -r, --reference string             Use a bundle in an OCI registry specified by the given reference.
+      --action string                   Custom action name to invoke.
+      --allow-docker-host-access        Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
+      --autobuild-disabled              Do not automatically build the bundle from source when the last build is out-of-date.
+      --cnab-file string                Path to the CNAB bundle.json file.
+  -c, --credential-set stringArray      Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
+      --debug                           Run the bundle in debug mode.
+  -d, --driver string                   Specify a driver to use. Allowed values: docker, debug (default "docker")
+  -f, --file porter.yaml                Path to the Porter manifest. Defaults to porter.yaml in the current directory.
+      --force                           Force a fresh pull of the bundle
+  -h, --help                            help for invoke
+      --insecure-registry               Don't require TLS for the registry
+      --mount-host-volume stringArray   Mount a host volume into the bundle. Format is <host path>:<container path>[:<option>]. May be specified multiple times. Option can be ro (read-only), rw (read-write), default is ro.
+  -n, --namespace string                Namespace of the specified installation. Defaults to the global namespace.
+      --no-logs                         Do not persist the bundle execution logs
+      --param stringArray               Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
+  -p, --parameter-set stringArray       Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
+  -r, --reference string                Use a bundle in an OCI registry specified by the given reference.
 ```
 
 ### Options inherited from parent commands
diff --git a/docs/content/docs/references/cli/installations/list.md b/docs/content/docs/references/cli/installations_list.md
similarity index 59%
rename from docs/content/docs/references/cli/installations/list.md
rename to docs/content/docs/references/cli/installations_list.md
index 5e7c3e571..c69e81cfd 100644
--- a/docs/content/docs/references/cli/installations/list.md
+++ b/docs/content/docs/references/cli/installations_list.md
@@ -35,14 +35,15 @@ porter installations list [flags]
 ### Options
 
 ```
-      --all-namespaces     Include all namespaces in the results.
-  -h, --help               help for list
-  -l, --label strings      Filter the installations by a label formatted as: KEY=VALUE. May be specified multiple times.
-      --limit int          Limit the number of installations by a certain amount. Defaults to 0.
-      --name string        Filter the installations where the name contains the specified substring.
-  -n, --namespace string   Filter the installations by namespace. Defaults to the global namespace.
-  -o, --output string      Specify an output format.  Allowed values: plaintext, json, yaml (default "plaintext")
-      --skip int           Skip the number of installations by a certain amount. Defaults to 0.
+      --all-namespaces          Include all namespaces in the results.
+      --field-selector string   Selector (field query) to filter on, supports '=' (e.g. --field-selector bundle.version=0.2.0,status.action=install). All fields from the json output are supported.
+  -h, --help                    help for list
+  -l, --label strings           Filter the installations by a label formatted as: KEY=VALUE. May be specified multiple times.
+      --limit int               Limit the number of installations by a certain amount. Defaults to 0.
+      --name string             Filter the installations where the name contains the specified substring.
+  -n, --namespace string        Filter the installations by namespace. Defaults to the global namespace.
+  -o, --output string           Specify an output format.  Allowed values: plaintext, json, yaml (default "plaintext")
+      --skip int                Skip the number of installations by a certain amount. Defaults to 0.
 ```
 
 ### Options inherited from parent commands
diff --git a/docs/content/docs/references/cli/installations/logs.md b/docs/content/docs/references/cli/installations_logs.md
similarity index 100%
rename from docs/content/docs/references/cli/installations/logs.md
rename to docs/content/docs/references/cli/installations_logs.md
diff --git a/docs/content/docs/references/cli/installations/logs_show.md b/docs/content/docs/references/cli/installations_logs_show.md
similarity index 100%
rename from docs/content/docs/references/cli/installations/logs_show.md
rename to docs/content/docs/references/cli/installations_logs_show.md
diff --git a/docs/content/docs/references/cli/installations/output.md b/docs/content/docs/references/cli/installations_output.md
similarity index 100%
rename from docs/content/docs/references/cli/installations/output.md
rename to docs/content/docs/references/cli/installations_output.md
diff --git a/docs/content/docs/references/cli/installations/output_list.md b/docs/content/docs/references/cli/installations_output_list.md
similarity index 100%
rename from docs/content/docs/references/cli/installations/output_list.md
rename to docs/content/docs/references/cli/installations_output_list.md
diff --git a/docs/content/docs/references/cli/installations/output_show.md b/docs/content/docs/references/cli/installations_output_show.md
similarity index 100%
rename from docs/content/docs/references/cli/installations/output_show.md
rename to docs/content/docs/references/cli/installations_output_show.md
diff --git a/docs/content/docs/references/cli/installations/runs.md b/docs/content/docs/references/cli/installations_runs.md
similarity index 100%
rename from docs/content/docs/references/cli/installations/runs.md
rename to docs/content/docs/references/cli/installations_runs.md
diff --git a/docs/content/docs/references/cli/installations/runs_list.md b/docs/content/docs/references/cli/installations_runs_list.md
similarity index 100%
rename from docs/content/docs/references/cli/installations/runs_list.md
rename to docs/content/docs/references/cli/installations_runs_list.md
diff --git a/docs/content/docs/references/cli/installations/show.md b/docs/content/docs/references/cli/installations_show.md
similarity index 100%
rename from docs/content/docs/references/cli/installations/show.md
rename to docs/content/docs/references/cli/installations_show.md
diff --git a/docs/content/docs/references/cli/installations_uninstall.md b/docs/content/docs/references/cli/installations_uninstall.md
new file mode 100644
index 000000000..7b6436d21
--- /dev/null
+++ b/docs/content/docs/references/cli/installations_uninstall.md
@@ -0,0 +1,77 @@
+---
+title: "porter installations uninstall"
+slug: porter_installations_uninstall
+url: /cli/porter_installations_uninstall/
+---
+## porter installations uninstall
+
+Uninstall an installation
+
+### Synopsis
+
+Uninstall an installation
+
+The first argument is the installation name to uninstall. This defaults to the name of the bundle.
+
+Porter uses the docker driver as the default runtime for executing a bundle's invocation image, but an alternate driver may be supplied via '--driver/-d'' or the PORTER_RUNTIME_DRIVER environment variable.
+For example, the 'debug' driver may be specified, which simply logs the info given to it and then exits.
+
+The docker driver runs the bundle container using the local Docker host. To use a remote Docker host, set the following environment variables:
+  DOCKER_HOST (required)
+  DOCKER_TLS_VERIFY (optional)
+  DOCKER_CERT_PATH (optional)
+
+
+```
+porter installations uninstall [INSTALLATION] [flags]
+```
+
+### Examples
+
+```
+  porter installation uninstall
+  porter installation uninstall --reference ghcr.io/getporter/examples/kubernetes:v0.2.0
+  porter installation uninstall --reference localhost:5000/ghcr.io/getporter/examples/kubernetes:v0.2.0 --insecure-registry --force
+  porter installation uninstall MyAppInDev --file myapp/bundle.json
+  porter installation uninstall --parameter-set azure --param test-mode=true --param header-color=blue
+  porter installation uninstall --credential-set azure --credential-set kubernetes
+  porter installation uninstall --driver debug
+  porter installation uninstall --delete
+  porter installation uninstall --force-delete
+
+```
+
+### Options
+
+```
+      --allow-docker-host-access        Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
+      --autobuild-disabled              Do not automatically build the bundle from source when the last build is out-of-date.
+      --cnab-file string                Path to the CNAB bundle.json file.
+  -c, --credential-set stringArray      Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
+      --debug                           Run the bundle in debug mode.
+      --delete                          Delete all records associated with the installation, assuming the uninstall action succeeds
+  -d, --driver string                   Specify a driver to use. Allowed values: docker, debug (default "docker")
+  -f, --file porter.yaml                Path to the Porter manifest. Defaults to porter.yaml in the current directory.
+      --force                           Force a fresh pull of the bundle
+      --force-delete                    UNSAFE. Delete all records associated with the installation, even if uninstall fails. This is intended for cleaning up test data and is not recommended for production environments.
+  -h, --help                            help for uninstall
+      --insecure-registry               Don't require TLS for the registry
+      --mount-host-volume stringArray   Mount a host volume into the bundle. Format is <host path>:<container path>[:<option>]. May be specified multiple times. Option can be ro (read-only), rw (read-write), default is ro.
+  -n, --namespace string                Namespace of the specified installation. Defaults to the global namespace.
+      --no-logs                         Do not persist the bundle execution logs
+      --param stringArray               Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
+  -p, --parameter-set stringArray       Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
+  -r, --reference string                Use a bundle in an OCI registry specified by the given reference.
+```
+
+### Options inherited from parent commands
+
+```
+      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
+      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
+```
+
+### SEE ALSO
+
+* [porter installations](/cli/porter_installations/)	 - Installation commands
+
diff --git a/docs/content/docs/references/cli/installations_upgrade.md b/docs/content/docs/references/cli/installations_upgrade.md
new file mode 100644
index 000000000..68ba02a66
--- /dev/null
+++ b/docs/content/docs/references/cli/installations_upgrade.md
@@ -0,0 +1,74 @@
+---
+title: "porter installations upgrade"
+slug: porter_installations_upgrade
+url: /cli/porter_installations_upgrade/
+---
+## porter installations upgrade
+
+Upgrade an installation
+
+### Synopsis
+
+Upgrade an installation.
+
+The first argument is the installation name to upgrade. This defaults to the name of the bundle.
+
+Porter uses the docker driver as the default runtime for executing a bundle's invocation image, but an alternate driver may be supplied via '--driver/-d' or the PORTER_RUNTIME_DRIVER environment variable.
+For example, the 'debug' driver may be specified, which simply logs the info given to it and then exits.
+
+The docker driver runs the bundle container using the local Docker host. To use a remote Docker host, set the following environment variables:
+  DOCKER_HOST (required)
+  DOCKER_TLS_VERIFY (optional)
+  DOCKER_CERT_PATH (optional)
+
+
+```
+porter installations upgrade [INSTALLATION] [flags]
+```
+
+### Examples
+
+```
+  porter installation upgrade --version 0.2.0
+  porter installation upgrade --reference ghcr.io/getporter/examples/kubernetes:v0.2.0
+  porter installation upgrade --reference localhost:5000/ghcr.io/getporter/examples/kubernetes:v0.2.0 --insecure-registry --force
+  porter installation upgrade MyAppInDev --file myapp/bundle.json
+  porter installation upgrade --parameter-set azure --param test-mode=true --param header-color=blue
+  porter installation upgrade --credential-set azure --credential-set kubernetes
+  porter installation upgrade --driver debug
+
+```
+
+### Options
+
+```
+      --allow-docker-host-access        Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
+      --autobuild-disabled              Do not automatically build the bundle from source when the last build is out-of-date.
+      --cnab-file string                Path to the CNAB bundle.json file.
+  -c, --credential-set stringArray      Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
+      --debug                           Run the bundle in debug mode.
+  -d, --driver string                   Specify a driver to use. Allowed values: docker, debug (default "docker")
+  -f, --file porter.yaml                Path to the Porter manifest. Defaults to porter.yaml in the current directory.
+      --force                           Force a fresh pull of the bundle
+  -h, --help                            help for upgrade
+      --insecure-registry               Don't require TLS for the registry
+      --mount-host-volume stringArray   Mount a host volume into the bundle. Format is <host path>:<container path>[:<option>]. May be specified multiple times. Option can be ro (read-only), rw (read-write), default is ro.
+  -n, --namespace string                Namespace of the specified installation. Defaults to the global namespace.
+      --no-logs                         Do not persist the bundle execution logs
+      --param stringArray               Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
+  -p, --parameter-set stringArray       Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
+  -r, --reference string                Use a bundle in an OCI registry specified by the given reference.
+      --version string                  Version to which the installation should be upgraded. This represents the version of the bundle, which assumes the convention of setting the bundle tag to its version.
+```
+
+### Options inherited from parent commands
+
+```
+      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
+      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
+```
+
+### SEE ALSO
+
+* [porter installations](/cli/porter_installations/)	 - Installation commands
+
diff --git a/docs/content/docs/references/cli/invoke.md b/docs/content/docs/references/cli/invoke.md
index f8466e066..40be721ac 100644
--- a/docs/content/docs/references/cli/invoke.md
+++ b/docs/content/docs/references/cli/invoke.md
@@ -42,22 +42,23 @@ porter invoke [INSTALLATION] --action ACTION [flags]
 ### Options
 
 ```
-      --action string                Custom action name to invoke.
-      --allow-docker-host-access     Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
-      --autobuild-disabled           Do not automatically build the bundle from source when the last build is out-of-date.
-      --cnab-file string             Path to the CNAB bundle.json file.
-  -c, --credential-set stringArray   Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
-      --debug                        Run the bundle in debug mode.
-  -d, --driver string                Specify a driver to use. Allowed values: docker, debug (default "docker")
-  -f, --file porter.yaml             Path to the Porter manifest. Defaults to porter.yaml in the current directory.
-      --force                        Force a fresh pull of the bundle
-  -h, --help                         help for invoke
-      --insecure-registry            Don't require TLS for the registry
-  -n, --namespace string             Namespace of the specified installation. Defaults to the global namespace.
-      --no-logs                      Do not persist the bundle execution logs
-      --param stringArray            Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
-  -p, --parameter-set stringArray    Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
-  -r, --reference string             Use a bundle in an OCI registry specified by the given reference.
+      --action string                   Custom action name to invoke.
+      --allow-docker-host-access        Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
+      --autobuild-disabled              Do not automatically build the bundle from source when the last build is out-of-date.
+      --cnab-file string                Path to the CNAB bundle.json file.
+  -c, --credential-set stringArray      Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
+      --debug                           Run the bundle in debug mode.
+  -d, --driver string                   Specify a driver to use. Allowed values: docker, debug (default "docker")
+  -f, --file porter.yaml                Path to the Porter manifest. Defaults to porter.yaml in the current directory.
+      --force                           Force a fresh pull of the bundle
+  -h, --help                            help for invoke
+      --insecure-registry               Don't require TLS for the registry
+      --mount-host-volume stringArray   Mount a host volume into the bundle. Format is <host path>:<container path>[:<option>]. May be specified multiple times. Option can be ro (read-only), rw (read-write), default is ro.
+  -n, --namespace string                Namespace of the specified installation. Defaults to the global namespace.
+      --no-logs                         Do not persist the bundle execution logs
+      --param stringArray               Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
+  -p, --parameter-set stringArray       Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
+  -r, --reference string                Use a bundle in an OCI registry specified by the given reference.
 ```
 
 ### Options inherited from parent commands
diff --git a/docs/content/docs/references/cli/list.md b/docs/content/docs/references/cli/list.md
index 5eb823029..3a1a8108f 100644
--- a/docs/content/docs/references/cli/list.md
+++ b/docs/content/docs/references/cli/list.md
@@ -35,14 +35,15 @@ porter list [flags]
 ### Options
 
 ```
-      --all-namespaces     Include all namespaces in the results.
-  -h, --help               help for list
-  -l, --label strings      Filter the installations by a label formatted as: KEY=VALUE. May be specified multiple times.
-      --limit int          Limit the number of installations by a certain amount. Defaults to 0.
-      --name string        Filter the installations where the name contains the specified substring.
-  -n, --namespace string   Filter the installations by namespace. Defaults to the global namespace.
-  -o, --output string      Specify an output format.  Allowed values: plaintext, json, yaml (default "plaintext")
-      --skip int           Skip the number of installations by a certain amount. Defaults to 0.
+      --all-namespaces          Include all namespaces in the results.
+      --field-selector string   Selector (field query) to filter on, supports '=' (e.g. --field-selector bundle.version=0.2.0,status.action=install). All fields from the json output are supported.
+  -h, --help                    help for list
+  -l, --label strings           Filter the installations by a label formatted as: KEY=VALUE. May be specified multiple times.
+      --limit int               Limit the number of installations by a certain amount. Defaults to 0.
+      --name string             Filter the installations where the name contains the specified substring.
+  -n, --namespace string        Filter the installations by namespace. Defaults to the global namespace.
+  -o, --output string           Specify an output format.  Allowed values: plaintext, json, yaml (default "plaintext")
+      --skip int                Skip the number of installations by a certain amount. Defaults to 0.
 ```
 
 ### Options inherited from parent commands
diff --git a/docs/content/docs/references/cli/mixins.md b/docs/content/docs/references/cli/mixins.md
new file mode 100644
index 000000000..a22c61f22
--- /dev/null
+++ b/docs/content/docs/references/cli/mixins.md
@@ -0,0 +1,37 @@
+---
+title: "porter mixins"
+slug: porter_mixins
+url: /cli/porter_mixins/
+---
+## porter mixins
+
+Mixin commands. Mixins assist with authoring bundles.
+
+### Options
+
+```
+  -h, --help   help for mixins
+```
+
+### Options inherited from parent commands
+
+```
+      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
+      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
+```
+
+### SEE ALSO
+
+* [porter](/cli/porter/)	 - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
+
+Most commands require a Docker daemon, either local or remote.
+
+Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
+
+* [porter mixins create](/cli/porter_mixins_create/)	 - Create a new mixin project based on the getporter/skeletor repository
+* [porter mixins feed](/cli/porter_mixins_feed/)	 - Feed commands
+* [porter mixins install](/cli/porter_mixins_install/)	 - Install a mixin
+* [porter mixins list](/cli/porter_mixins_list/)	 - List installed mixins
+* [porter mixins search](/cli/porter_mixins_search/)	 - Search available mixins
+* [porter mixins uninstall](/cli/porter_mixins_uninstall/)	 - Uninstall a mixin
+
diff --git a/docs/content/docs/references/cli/mixins/_index.md b/docs/content/docs/references/cli/mixins/_index.md
deleted file mode 100644
index c0a9e6632..000000000
--- a/docs/content/docs/references/cli/mixins/_index.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: "porter mixins"
----
-
-## porter mixins
-
-Mixin commands. Mixins assist with authoring bundles.
-
-### Options
-
-```
-  -h, --help   help for mixins
-```
-
-### Options inherited from parent commands
-
-```
-      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
-      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
-```
-
-### SEE ALSO
-
-- [porter](/cli/porter/) - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
-
-Most commands require a Docker daemon, either local or remote.
-
-Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
-
-- [porter mixins create](/cli/porter_mixins_create/) - Create a new mixin project based on the getporter/skeletor repository
-- [porter mixins feed](/cli/porter_mixins_feed/) - Feed commands
-- [porter mixins install](/cli/porter_mixins_install/) - Install a mixin
-- [porter mixins list](/cli/porter_mixins_list/) - List installed mixins
-- [porter mixins search](/cli/porter_mixins_search/) - Search available mixins
-- [porter mixins uninstall](/cli/porter_mixins_uninstall/) - Uninstall a mixin
diff --git a/docs/content/docs/references/cli/mixins/create.md b/docs/content/docs/references/cli/mixins_create.md
similarity index 100%
rename from docs/content/docs/references/cli/mixins/create.md
rename to docs/content/docs/references/cli/mixins_create.md
diff --git a/docs/content/docs/references/cli/mixins/feed.md b/docs/content/docs/references/cli/mixins_feed.md
similarity index 100%
rename from docs/content/docs/references/cli/mixins/feed.md
rename to docs/content/docs/references/cli/mixins_feed.md
diff --git a/docs/content/docs/references/cli/mixins/feed_generate.md b/docs/content/docs/references/cli/mixins_feed_generate.md
similarity index 96%
rename from docs/content/docs/references/cli/mixins/feed_generate.md
rename to docs/content/docs/references/cli/mixins_feed_generate.md
index 065384de6..2c065064d 100644
--- a/docs/content/docs/references/cli/mixins/feed_generate.md
+++ b/docs/content/docs/references/cli/mixins_feed_generate.md
@@ -19,15 +19,13 @@ VERSION/MIXIN-GOOS-GOARCH[FILE_EXT]
 
 More than one mixin may be present in the directory, and the directories may be nested a few levels deep, as long as the file path ends with the above naming convention, porter will find and match it. Below is an example directory structure that porter can list to generate a feed:
 
-```
 bin/
 └── v1.2.3/
     ├── mymixin-darwin-amd64
     ├── mymixin-linux-amd64
     └── mymixin-windows-amd64.exe
-```
 
-See https://porter.sh/development/dist-a-mixin/ more details.
+See https://porter.sh/mixin-dev-guide/distribution more details.
 
 
 ```
diff --git a/docs/content/docs/references/cli/mixins/feed_template.md b/docs/content/docs/references/cli/mixins_feed_template.md
similarity index 100%
rename from docs/content/docs/references/cli/mixins/feed_template.md
rename to docs/content/docs/references/cli/mixins_feed_template.md
diff --git a/docs/content/docs/references/cli/mixins/install.md b/docs/content/docs/references/cli/mixins_install.md
similarity index 100%
rename from docs/content/docs/references/cli/mixins/install.md
rename to docs/content/docs/references/cli/mixins_install.md
diff --git a/docs/content/docs/references/cli/mixins/list.md b/docs/content/docs/references/cli/mixins_list.md
similarity index 100%
rename from docs/content/docs/references/cli/mixins/list.md
rename to docs/content/docs/references/cli/mixins_list.md
diff --git a/docs/content/docs/references/cli/mixins/search.md b/docs/content/docs/references/cli/mixins_search.md
similarity index 100%
rename from docs/content/docs/references/cli/mixins/search.md
rename to docs/content/docs/references/cli/mixins_search.md
diff --git a/docs/content/docs/references/cli/mixins/uninstall.md b/docs/content/docs/references/cli/mixins_uninstall.md
similarity index 100%
rename from docs/content/docs/references/cli/mixins/uninstall.md
rename to docs/content/docs/references/cli/mixins_uninstall.md
diff --git a/docs/content/docs/references/cli/parameters.md b/docs/content/docs/references/cli/parameters.md
new file mode 100644
index 000000000..66379627d
--- /dev/null
+++ b/docs/content/docs/references/cli/parameters.md
@@ -0,0 +1,38 @@
+---
+title: "porter parameters"
+slug: porter_parameters
+url: /cli/porter_parameters/
+---
+## porter parameters
+
+Parameter set commands
+
+### Options
+
+```
+  -h, --help   help for parameters
+```
+
+### Options inherited from parent commands
+
+```
+      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
+      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
+```
+
+### SEE ALSO
+
+* [porter](/cli/porter/)	 - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
+
+Most commands require a Docker daemon, either local or remote.
+
+Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
+
+* [porter parameters apply](/cli/porter_parameters_apply/)	 - Apply changes to a parameter set
+* [porter parameters create](/cli/porter_parameters_create/)	 - Create a Parameter Set
+* [porter parameters delete](/cli/porter_parameters_delete/)	 - Delete a Parameter Set
+* [porter parameters edit](/cli/porter_parameters_edit/)	 - Edit Parameter Set
+* [porter parameters generate](/cli/porter_parameters_generate/)	 - Generate Parameter Set
+* [porter parameters list](/cli/porter_parameters_list/)	 - List parameter sets
+* [porter parameters show](/cli/porter_parameters_show/)	 - Show a Parameter Set
+
diff --git a/docs/content/docs/references/cli/parameters/_index.md b/docs/content/docs/references/cli/parameters/_index.md
deleted file mode 100644
index f04c9554c..000000000
--- a/docs/content/docs/references/cli/parameters/_index.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: "Parameters"
-weight: 4
----
-
-## Parameter set commands
-
-### Options
-
-```
-  -h, --help   help for parameters
-```
-
-### Options inherited from parent commands
-
-```
-      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
-      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
-```
-
-### SEE ALSO
-
-- [porter](/cli/porter/) - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
-
-Most commands require a Docker daemon, either local or remote.
-
-Try our [QuickStart](/docs/quickstart) to learn how to use Porter.
-
-{{< cards >}}
-{{< card link="apply" title="Porter Parameters Apply" >}}
-{{< card link="create" title="Porter Parameters Create" >}}
-{{< card link="delete" title="Porter Parameters Delete" >}}
-{{< card link="edit" title="Porter Parameters Edit" >}}
-{{< card link="generate" title="Porter Parameters Generate" >}}
-{{< card link="list" title="Porter Parameters List" >}}
-{{< card link="show" title="Porter Parameters Show" >}}
-{{< /cards >}}
diff --git a/docs/content/docs/references/cli/parameters/create.md b/docs/content/docs/references/cli/parameters/create.md
deleted file mode 100644
index bff747741..000000000
--- a/docs/content/docs/references/cli/parameters/create.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: "Porter Parameters Create"
-aliases:
-  - /cli/porter_parameters_create/
----
-
-Create a Parameter Set
-
-### Synopsis
-
-Create a new blank resource for the definition of a Parameter Set.
-
-```
-porter parameters create [flags]
-```
-
-### Examples
-
-```
-porter parameters create FILE [--output yaml|json]
-porter parameters create parameter-set.json
-porter parameters create parameter-set --output yaml
-```
-
-### Options
-
-```
--h, --help            help for create
-    --output string   Parameter set resource file format
-```
-
-### Options inherited from parent commands
-
-```
---experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
---verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
-```
-
-### SEE ALSO
-
-- [porter parameters](/cli/porter_parameters/) - Parameter set commands
diff --git a/docs/content/docs/references/cli/parameters/apply.md b/docs/content/docs/references/cli/parameters_apply.md
similarity index 75%
rename from docs/content/docs/references/cli/parameters/apply.md
rename to docs/content/docs/references/cli/parameters_apply.md
index d0ee1d5a3..c688bbc82 100644
--- a/docs/content/docs/references/cli/parameters/apply.md
+++ b/docs/content/docs/references/cli/parameters_apply.md
@@ -1,8 +1,9 @@
 ---
-title: "Porter Parameters Apply"
-aliases:
-  - /cli/porter_parameters_apply/
+title: "porter parameters apply"
+slug: porter_parameters_apply
+url: /cli/porter_parameters_apply/
 ---
+## porter parameters apply
 
 Apply changes to a parameter set
 
@@ -13,8 +14,9 @@ Apply changes from the specified file to a parameter set. If the parameter set d
 Supported file extensions: json and yaml.
 
 You can use the generate and show commands to create the initial file:
-porter parameters generate myparams --reference SOME_BUNDLE
-porter parameters show myparams --output yaml > myparams.yaml
+  porter parameters generate myparams --reference SOME_BUNDLE
+  porter parameters show myparams --output yaml > myparams.yaml
+
 
 ```
 porter parameters apply FILE [flags]
@@ -42,4 +44,5 @@ porter parameters apply FILE [flags]
 
 ### SEE ALSO
 
-- [porter parameters](/cli/porter_parameters/) - Parameter set commands
+* [porter parameters](/cli/porter_parameters/)	 - Parameter set commands
+
diff --git a/docs/content/docs/references/cli/parameters_create.md b/docs/content/docs/references/cli/parameters_create.md
new file mode 100644
index 000000000..f0849f5c3
--- /dev/null
+++ b/docs/content/docs/references/cli/parameters_create.md
@@ -0,0 +1,44 @@
+---
+title: "porter parameters create"
+slug: porter_parameters_create
+url: /cli/porter_parameters_create/
+---
+## porter parameters create
+
+Create a Parameter Set
+
+### Synopsis
+
+Create a new blank resource for the definition of a Parameter Set.
+
+```
+porter parameters create [flags]
+```
+
+### Examples
+
+```
+
+		porter parameters create FILE [--output yaml|json]
+		porter parameters create parameter-set.json
+		porter parameters create parameter-set --output yaml
+```
+
+### Options
+
+```
+  -h, --help            help for create
+      --output string   Parameter set resource file format
+```
+
+### Options inherited from parent commands
+
+```
+      --experimental strings   Comma separated list of experimental features to enable. See https://porter.sh/configuration/#experimental-feature-flags for available feature flags.
+      --verbosity string       Threshold for printing messages to the console. Available values are: debug, info, warning, error. (default "info")
+```
+
+### SEE ALSO
+
+* [porter parameters](/cli/porter_parameters/)	 - Parameter set commands
+
diff --git a/docs/content/docs/references/cli/parameters/delete.md b/docs/content/docs/references/cli/parameters_delete.md
similarity index 100%
rename from docs/content/docs/references/cli/parameters/delete.md
rename to docs/content/docs/references/cli/parameters_delete.md
diff --git a/docs/content/docs/references/cli/parameters/edit.md b/docs/content/docs/references/cli/parameters_edit.md
similarity index 79%
rename from docs/content/docs/references/cli/parameters/edit.md
rename to docs/content/docs/references/cli/parameters_edit.md
index a2b81731c..2e0e5246c 100644
--- a/docs/content/docs/references/cli/parameters/edit.md
+++ b/docs/content/docs/references/cli/parameters_edit.md
@@ -1,8 +1,9 @@
 ---
-title: "Porter Parameters Edit"
-aliases:
-  - /cli/porter_parameters_edit/
+title: "porter parameters edit"
+slug: porter_parameters_edit
+url: /cli/porter_parameters_edit/
 ---
+## porter parameters edit
 
 Edit Parameter Set
 
@@ -36,4 +37,5 @@ porter parameters edit [flags]
 
 ### SEE ALSO
 
-- [porter parameters](/cli/porter_parameters/) - Parameter set commands
+* [porter parameters](/cli/porter_parameters/)	 - Parameter set commands
+
diff --git a/docs/content/docs/references/cli/parameters/generate.md b/docs/content/docs/references/cli/parameters_generate.md
similarity index 100%
rename from docs/content/docs/references/cli/parameters/generate.md
rename to docs/content/docs/references/cli/parameters_generate.md
diff --git a/docs/content/docs/references/cli/parameters/list.md b/docs/content/docs/references/cli/parameters_list.md
similarity index 100%
rename from docs/content/docs/references/cli/parameters/list.md
rename to docs/content/docs/references/cli/parameters_list.md
diff --git a/docs/content/docs/references/cli/parameters/show.md b/docs/content/docs/references/cli/parameters_show.md
similarity index 100%
rename from docs/content/docs/references/cli/parameters/show.md
rename to docs/content/docs/references/cli/parameters_show.md
diff --git a/docs/content/docs/references/cli/plugins/_index.md b/docs/content/docs/references/cli/plugins.md
similarity index 51%
rename from docs/content/docs/references/cli/plugins/_index.md
rename to docs/content/docs/references/cli/plugins.md
index eb0e21e9b..7261f9fb1 100644
--- a/docs/content/docs/references/cli/plugins/_index.md
+++ b/docs/content/docs/references/cli/plugins.md
@@ -1,7 +1,8 @@
 ---
 title: "porter plugins"
+slug: porter_plugins
+url: /cli/porter_plugins/
 ---
-
 ## porter plugins
 
 Plugin commands. Plugins enable Porter to work on different cloud providers and systems.
@@ -21,14 +22,15 @@ Plugin commands. Plugins enable Porter to work on different cloud providers and
 
 ### SEE ALSO
 
-- [porter](/cli/porter/) - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
+* [porter](/cli/porter/)	 - With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
 
 Most commands require a Docker daemon, either local or remote.
 
 Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
 
-- [porter plugins install](/cli/porter_plugins_install/) - Install plugins
-- [porter plugins list](/cli/porter_plugins_list/) - List installed plugins
-- [porter plugins search](/cli/porter_plugins_search/) - Search available plugins
-- [porter plugins show](/cli/porter_plugins_show/) - Show details about an installed plugin
-- [porter plugins uninstall](/cli/porter_plugins_uninstall/) - Uninstall a plugin
+* [porter plugins install](/cli/porter_plugins_install/)	 - Install plugins
+* [porter plugins list](/cli/porter_plugins_list/)	 - List installed plugins
+* [porter plugins search](/cli/porter_plugins_search/)	 - Search available plugins
+* [porter plugins show](/cli/porter_plugins_show/)	 - Show details about an installed plugin
+* [porter plugins uninstall](/cli/porter_plugins_uninstall/)	 - Uninstall a plugin
+
diff --git a/docs/content/docs/references/cli/plugins/install.md b/docs/content/docs/references/cli/plugins_install.md
similarity index 100%
rename from docs/content/docs/references/cli/plugins/install.md
rename to docs/content/docs/references/cli/plugins_install.md
diff --git a/docs/content/docs/references/cli/plugins/list.md b/docs/content/docs/references/cli/plugins_list.md
similarity index 100%
rename from docs/content/docs/references/cli/plugins/list.md
rename to docs/content/docs/references/cli/plugins_list.md
diff --git a/docs/content/docs/references/cli/plugins/search.md b/docs/content/docs/references/cli/plugins_search.md
similarity index 100%
rename from docs/content/docs/references/cli/plugins/search.md
rename to docs/content/docs/references/cli/plugins_search.md
diff --git a/docs/content/docs/references/cli/plugins/show.md b/docs/content/docs/references/cli/plugins_show.md
similarity index 100%
rename from docs/content/docs/references/cli/plugins/show.md
rename to docs/content/docs/references/cli/plugins_show.md
diff --git a/docs/content/docs/references/cli/plugins/uninstall.md b/docs/content/docs/references/cli/plugins_uninstall.md
similarity index 100%
rename from docs/content/docs/references/cli/plugins/uninstall.md
rename to docs/content/docs/references/cli/plugins_uninstall.md
diff --git a/docs/content/docs/references/cli/porter.md b/docs/content/docs/references/cli/porter.md
index 918f8160b..3de25ca3d 100644
--- a/docs/content/docs/references/cli/porter.md
+++ b/docs/content/docs/references/cli/porter.md
@@ -1,8 +1,9 @@
 ---
-title: "Overview"
-weight: 1
+title: "porter"
 slug: porter
+url: /cli/porter/
 ---
+## porter
 
 With Porter you can package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command.
 
@@ -10,6 +11,7 @@ Most commands require a Docker daemon, either local or remote.
 
 Try our QuickStart https://porter.sh/quickstart to learn how to use Porter.
 
+
 ```
 porter [flags]
 ```
@@ -34,28 +36,29 @@ porter [flags]
 
 ### SEE ALSO
 
-- [porter archive](/cli/porter_archive/) - Archive a bundle from a reference
-- [porter build](/cli/porter_build/) - Build a bundle
-- [porter bundles](/cli/references/cli/bundles/) - Bundle commands
-- [porter completion](/cli/porter_completion/) - Generate completion script
-- [porter copy](/cli/porter_copy/) - Copy a bundle
-- [porter create](/cli/porter_create/) - Create a bundle
-- [porter credentials](/references/cli/credentials/) - Credentials commands
-- [porter explain](/cli/porter_explain/) - Explain a bundle
-- [porter inspect](/cli/porter_inspect/) - Inspect a bundle
-- [porter install](/cli/porter_install/) - Create a new installation of a bundle
-- [porter installations](/references/cli/installations/) - Installation commands
-- [porter invoke](/cli/porter_invoke/) - Invoke a custom action on an installation
-- [porter lint](/cli/porter_lint/) - Lint a bundle
-- [porter list](/cli/porter_list/) - List installed bundles
-- [porter logs](/cli/porter_logs/) - Show the logs from an installation
-- [porter mixins](/references/cli/mixins/) - Mixin commands. Mixins assist with authoring bundles.
-- [porter parameters](/references/cli/parameters/) - Parameter set commands
-- [porter plugins](/references/cli/plugins/) - Plugin commands. Plugins enable Porter to work on different cloud providers and systems.
-- [porter publish](/cli/porter_publish/) - Publish a bundle
-- [porter schema](/cli/porter_schema/) - Print the JSON schema for the Porter manifest
-- [porter show](/cli/porter_show/) - Show an installation of a bundle
-- [porter storage](/cli/porter_storage/) - Manage data stored by Porter
-- [porter uninstall](/cli/porter_uninstall/) - Uninstall an installation
-- [porter upgrade](/cli/porter_upgrade/) - Upgrade an installation
-- [porter version](/cli/porter_version/) - Print the application version
+* [porter archive](/cli/porter_archive/)	 - Archive a bundle from a reference
+* [porter build](/cli/porter_build/)	 - Build a bundle
+* [porter bundles](/cli/porter_bundles/)	 - Bundle commands
+* [porter completion](/cli/porter_completion/)	 - Generate completion script
+* [porter copy](/cli/porter_copy/)	 - Copy a bundle
+* [porter create](/cli/porter_create/)	 - Create a bundle
+* [porter credentials](/cli/porter_credentials/)	 - Credentials commands
+* [porter explain](/cli/porter_explain/)	 - Explain a bundle
+* [porter inspect](/cli/porter_inspect/)	 - Inspect a bundle
+* [porter install](/cli/porter_install/)	 - Create a new installation of a bundle
+* [porter installations](/cli/porter_installations/)	 - Installation commands
+* [porter invoke](/cli/porter_invoke/)	 - Invoke a custom action on an installation
+* [porter lint](/cli/porter_lint/)	 - Lint a bundle
+* [porter list](/cli/porter_list/)	 - List installed bundles
+* [porter logs](/cli/porter_logs/)	 - Show the logs from an installation
+* [porter mixins](/cli/porter_mixins/)	 - Mixin commands. Mixins assist with authoring bundles.
+* [porter parameters](/cli/porter_parameters/)	 - Parameter set commands
+* [porter plugins](/cli/porter_plugins/)	 - Plugin commands. Plugins enable Porter to work on different cloud providers and systems.
+* [porter publish](/cli/porter_publish/)	 - Publish a bundle
+* [porter schema](/cli/porter_schema/)	 - Print the JSON schema for the Porter manifest
+* [porter show](/cli/porter_show/)	 - Show an installation of a bundle
+* [porter storage](/cli/porter_storage/)	 - Manage data stored by Porter
+* [porter uninstall](/cli/porter_uninstall/)	 - Uninstall an installation
+* [porter upgrade](/cli/porter_upgrade/)	 - Upgrade an installation
+* [porter version](/cli/porter_version/)	 - Print the application version
+
diff --git a/docs/content/docs/references/cli/publish.md b/docs/content/docs/references/cli/publish.md
index 289289100..4fc8b14d5 100644
--- a/docs/content/docs/references/cli/publish.md
+++ b/docs/content/docs/references/cli/publish.md
@@ -42,6 +42,7 @@ porter publish [flags]
       --insecure-registry    Don't require TLS for the registry
   -r, --reference string     Use a bundle in an OCI registry specified by the given reference.
       --registry string      Override the registry portion of the bundle reference, e.g. docker.io, myregistry.com/myorg
+      --sign-bundle          Sign the bundle using the configured signing plugin
       --tag string           Override the Docker tag portion of the bundle reference, e.g. latest, v0.1.1
 ```
 
diff --git a/docs/content/docs/references/cli/storage/_index.md b/docs/content/docs/references/cli/storage.md
similarity index 100%
rename from docs/content/docs/references/cli/storage/_index.md
rename to docs/content/docs/references/cli/storage.md
diff --git a/docs/content/docs/references/cli/storage/fix-permissions.md b/docs/content/docs/references/cli/storage_fix-permissions.md
similarity index 100%
rename from docs/content/docs/references/cli/storage/fix-permissions.md
rename to docs/content/docs/references/cli/storage_fix-permissions.md
diff --git a/docs/content/docs/references/cli/storage/migrate.md b/docs/content/docs/references/cli/storage_migrate.md
similarity index 95%
rename from docs/content/docs/references/cli/storage/migrate.md
rename to docs/content/docs/references/cli/storage_migrate.md
index 8b628a9a9..a47ce325e 100644
--- a/docs/content/docs/references/cli/storage/migrate.md
+++ b/docs/content/docs/references/cli/storage_migrate.md
@@ -11,7 +11,7 @@ Migrate data from v0.38 to v1
 
 Migrate data from Porter v0.38 into a v1 installation of Porter.
 
-See https://porter.sh/getting-started/migrate-v0-v1 for a full description of the migration process. Below is a summary:
+See https://porter.sh/storage-migrate for a full description of the migration process. Below is a summary:
 
 Before running this command, you should have:
 
diff --git a/docs/content/docs/references/cli/uninstall.md b/docs/content/docs/references/cli/uninstall.md
index aea8f82cc..e1487b365 100644
--- a/docs/content/docs/references/cli/uninstall.md
+++ b/docs/content/docs/references/cli/uninstall.md
@@ -44,23 +44,24 @@ porter uninstall [INSTALLATION] [flags]
 ### Options
 
 ```
-      --allow-docker-host-access     Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
-      --autobuild-disabled           Do not automatically build the bundle from source when the last build is out-of-date.
-      --cnab-file string             Path to the CNAB bundle.json file.
-  -c, --credential-set stringArray   Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
-      --debug                        Run the bundle in debug mode.
-      --delete                       Delete all records associated with the installation, assuming the uninstall action succeeds
-  -d, --driver string                Specify a driver to use. Allowed values: docker, debug (default "docker")
-  -f, --file porter.yaml             Path to the Porter manifest. Defaults to porter.yaml in the current directory.
-      --force                        Force a fresh pull of the bundle
-      --force-delete                 UNSAFE. Delete all records associated with the installation, even if uninstall fails. This is intended for cleaning up test data and is not recommended for production environments.
-  -h, --help                         help for uninstall
-      --insecure-registry            Don't require TLS for the registry
-  -n, --namespace string             Namespace of the specified installation. Defaults to the global namespace.
-      --no-logs                      Do not persist the bundle execution logs
-      --param stringArray            Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
-  -p, --parameter-set stringArray    Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
-  -r, --reference string             Use a bundle in an OCI registry specified by the given reference.
+      --allow-docker-host-access        Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
+      --autobuild-disabled              Do not automatically build the bundle from source when the last build is out-of-date.
+      --cnab-file string                Path to the CNAB bundle.json file.
+  -c, --credential-set stringArray      Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
+      --debug                           Run the bundle in debug mode.
+      --delete                          Delete all records associated with the installation, assuming the uninstall action succeeds
+  -d, --driver string                   Specify a driver to use. Allowed values: docker, debug (default "docker")
+  -f, --file porter.yaml                Path to the Porter manifest. Defaults to porter.yaml in the current directory.
+      --force                           Force a fresh pull of the bundle
+      --force-delete                    UNSAFE. Delete all records associated with the installation, even if uninstall fails. This is intended for cleaning up test data and is not recommended for production environments.
+  -h, --help                            help for uninstall
+      --insecure-registry               Don't require TLS for the registry
+      --mount-host-volume stringArray   Mount a host volume into the bundle. Format is <host path>:<container path>[:<option>]. May be specified multiple times. Option can be ro (read-only), rw (read-write), default is ro.
+  -n, --namespace string                Namespace of the specified installation. Defaults to the global namespace.
+      --no-logs                         Do not persist the bundle execution logs
+      --param stringArray               Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
+  -p, --parameter-set stringArray       Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
+  -r, --reference string                Use a bundle in an OCI registry specified by the given reference.
 ```
 
 ### Options inherited from parent commands
diff --git a/docs/content/docs/references/cli/upgrade.md b/docs/content/docs/references/cli/upgrade.md
index f3291705b..da097b4ea 100644
--- a/docs/content/docs/references/cli/upgrade.md
+++ b/docs/content/docs/references/cli/upgrade.md
@@ -42,22 +42,23 @@ porter upgrade [INSTALLATION] [flags]
 ### Options
 
 ```
-      --allow-docker-host-access     Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
-      --autobuild-disabled           Do not automatically build the bundle from source when the last build is out-of-date.
-      --cnab-file string             Path to the CNAB bundle.json file.
-  -c, --credential-set stringArray   Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
-      --debug                        Run the bundle in debug mode.
-  -d, --driver string                Specify a driver to use. Allowed values: docker, debug (default "docker")
-  -f, --file porter.yaml             Path to the Porter manifest. Defaults to porter.yaml in the current directory.
-      --force                        Force a fresh pull of the bundle
-  -h, --help                         help for upgrade
-      --insecure-registry            Don't require TLS for the registry
-  -n, --namespace string             Namespace of the specified installation. Defaults to the global namespace.
-      --no-logs                      Do not persist the bundle execution logs
-      --param stringArray            Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
-  -p, --parameter-set stringArray    Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
-  -r, --reference string             Use a bundle in an OCI registry specified by the given reference.
-      --version string               Version to which the installation should be upgraded. This represents the version of the bundle, which assumes the convention of setting the bundle tag to its version.
+      --allow-docker-host-access        Controls if the bundle should have access to the host's Docker daemon with elevated privileges. See https://porter.sh/configuration/#allow-docker-host-access for the full implications of this flag.
+      --autobuild-disabled              Do not automatically build the bundle from source when the last build is out-of-date.
+      --cnab-file string                Path to the CNAB bundle.json file.
+  -c, --credential-set stringArray      Credential sets to use when running the bundle. It should be a named set of credentials and may be specified multiple times.
+      --debug                           Run the bundle in debug mode.
+  -d, --driver string                   Specify a driver to use. Allowed values: docker, debug (default "docker")
+  -f, --file porter.yaml                Path to the Porter manifest. Defaults to porter.yaml in the current directory.
+      --force                           Force a fresh pull of the bundle
+  -h, --help                            help for upgrade
+      --insecure-registry               Don't require TLS for the registry
+      --mount-host-volume stringArray   Mount a host volume into the bundle. Format is <host path>:<container path>[:<option>]. May be specified multiple times. Option can be ro (read-only), rw (read-write), default is ro.
+  -n, --namespace string                Namespace of the specified installation. Defaults to the global namespace.
+      --no-logs                         Do not persist the bundle execution logs
+      --param stringArray               Define an individual parameter in the form NAME=VALUE. Overrides parameters otherwise set via --parameter-set. May be specified multiple times.
+  -p, --parameter-set stringArray       Parameter sets to use when running the bundle. It should be a named set of parameters and may be specified multiple times.
+  -r, --reference string                Use a bundle in an OCI registry specified by the given reference.
+      --version string                  Version to which the installation should be upgraded. This represents the version of the bundle, which assumes the convention of setting the bundle tag to its version.
 ```
 
 ### Options inherited from parent commands
diff --git a/magefile.go b/magefile.go
index 27dab5633..d902a4838 100644
--- a/magefile.go
+++ b/magefile.go
@@ -164,8 +164,8 @@ func XBuildMixins() {
 // Generate cli documentation for the website
 func DocsGen() {
 	// Remove the generated cli directory so that it can detect deleted files
-	os.RemoveAll("docs/content/cli")
-	os.Mkdir("docs/content/cli", pkg.FileModeDirectory)
+	os.RemoveAll("docs/content/docs/references/cli")
+	os.Mkdir("docs/content/docs/references/cli", pkg.FileModeDirectory)
 
 	must.RunV("go", "run", "--tags=docs", "./cmd/porter", "docs")
 }
diff --git a/pkg/docs/generator.go b/pkg/docs/generator.go
index 3d4d7d102..69cd05d78 100644
--- a/pkg/docs/generator.go
+++ b/pkg/docs/generator.go
@@ -17,7 +17,7 @@ type DocsOptions struct {
 	Destination string
 }
 
-const DefaultDestination = "./docs/content/cli/"
+const DefaultDestination = "./docs/content/docs/references/cli"
 
 func (o *DocsOptions) Validate(cxt *portercontext.Context) error {
 	if o.Destination == "" {