docs: add plugin limits and lifecycle sections (#12697)
* docs: add plugin limits and lifecycle sections * remove extranous comments on the limits page * add more lifecycle cases, review feedback * address follow-up review feedback * rename section to "External plugin limits"
This commit is contained in:
parent
f56654ef56
commit
752e4a48a1
|
@ -285,3 +285,21 @@ The current number of unexpired leases can be monitored via the
|
||||||
The Transform secret engine obeys the [FF3-1 minimum and maximum sizes
|
The Transform secret engine obeys the [FF3-1 minimum and maximum sizes
|
||||||
on the length of an input](/docs/secrets/transform#input-limits), which
|
on the length of an input](/docs/secrets/transform#input-limits), which
|
||||||
are a function of the alphabet size.
|
are a function of the alphabet size.
|
||||||
|
|
||||||
|
### External plugin limits
|
||||||
|
|
||||||
|
The [plugin system](/docs/internals/plugins) launches a separate process
|
||||||
|
initiated by Vault that communicates over RPC. For each secret engine and auth
|
||||||
|
method that's enabled as an external plugin, Vault will spawn a process on the
|
||||||
|
host system. For the Database Secrets Engines, external database plugins will
|
||||||
|
spawn a process for every configured connection.
|
||||||
|
|
||||||
|
Regardless of plugin type, each of these processes will incur resource overhead
|
||||||
|
on the system, including but not limited to resources such as CPU, memory,
|
||||||
|
networking, and file descriptors. There's no specific limit on the number
|
||||||
|
secrets engines, auth methods, or database configured connections that can be
|
||||||
|
enabled. This ultimately depends on the particular plugin resource utilization,
|
||||||
|
the extent to which that plugin is being called, and the available resources on
|
||||||
|
the system. For plugins of the same type, each additional process will incur a
|
||||||
|
roughly linear increase in resource utilization. This assumes the usage of each
|
||||||
|
plugin of the same type is similar.
|
||||||
|
|
|
@ -37,6 +37,33 @@ It is possible to enable a custom plugin with a name that's identical to a
|
||||||
built-in plugin. In such a situation, Vault will always choose the custom plugin
|
built-in plugin. In such a situation, Vault will always choose the custom plugin
|
||||||
when enabling it.
|
when enabling it.
|
||||||
|
|
||||||
|
## Plugin Lifecycle
|
||||||
|
|
||||||
|
Vault plugins are long-running processes that remain running once they are
|
||||||
|
spawned by Vault, the parent process. Plugin processes can be started by Vault's
|
||||||
|
active node and performance standby nodes. Additionally, there are cases where
|
||||||
|
plugin processes may be terminated by Vault. These cases include but are not
|
||||||
|
limited to:
|
||||||
|
|
||||||
|
- Vault active node step-down
|
||||||
|
- Vault barrier seal
|
||||||
|
- Vault graceful shutdown
|
||||||
|
- Disabling a Secrets Engine or Auth method that uses external plugins
|
||||||
|
- Database configured connection deletion
|
||||||
|
- Database configured connection update
|
||||||
|
- Database configured connection reset request
|
||||||
|
- Database root credentials rotation
|
||||||
|
- WAL Rollback from a previously failed root credentials rotation operation
|
||||||
|
|
||||||
|
The lifecycle of plugin processes are managed automatically by Vault.
|
||||||
|
Termination of these processes are typical in certain scenarios, such as the
|
||||||
|
ones listed above. Vault will start plugin processes when needed, typically by
|
||||||
|
lazily loading the plugin when a request that requires the plugin is received by
|
||||||
|
Vault. A plugin process may be started or terminated through other internal
|
||||||
|
processes within Vault as well. Since Vault manages and tracks the lifecycle of
|
||||||
|
its plugins, these processes should not be terminated by anything other than
|
||||||
|
Vault.
|
||||||
|
|
||||||
## Plugin Communication
|
## Plugin Communication
|
||||||
|
|
||||||
Vault creates a mutually authenticated TLS connection for communication with the
|
Vault creates a mutually authenticated TLS connection for communication with the
|
||||||
|
|
Loading…
Reference in New Issue