mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-01 19:17:58 +00:00
Remove pinned builtin plugin versions from storage (#18051)
* Removes _builtin_ versions from mount storage where it already exists * Stops new builtin versions being put into storage on mount creation/tuning * Stops the plugin catalog from returning a builtin plugin that has been overridden, so it more accurately reflects the plugins that are available to actually run
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
|
||||
log "github.com/hashicorp/go-hclog"
|
||||
"github.com/hashicorp/go-multierror"
|
||||
"github.com/hashicorp/vault/helper/versions"
|
||||
v4 "github.com/hashicorp/vault/sdk/database/dbplugin"
|
||||
v5 "github.com/hashicorp/vault/sdk/database/dbplugin/v5"
|
||||
"github.com/hashicorp/vault/sdk/helper/pluginutil"
|
||||
@@ -22,8 +23,15 @@ type databaseVersionWrapper struct {
|
||||
var _ logical.PluginVersioner = databaseVersionWrapper{}
|
||||
|
||||
// newDatabaseWrapper figures out which version of the database the pluginName is referring to and returns a wrapper object
|
||||
// that can be used to make operations on the underlying database plugin.
|
||||
// that can be used to make operations on the underlying database plugin. If a builtin pluginVersion is provided, it will
|
||||
// be ignored.
|
||||
func newDatabaseWrapper(ctx context.Context, pluginName string, pluginVersion string, sys pluginutil.LookRunnerUtil, logger log.Logger) (dbw databaseVersionWrapper, err error) {
|
||||
// 1.12.0 and 1.12.1 stored plugin version in the config, but that stored
|
||||
// builtin version may disappear from the plugin catalog when Vault is
|
||||
// upgraded, so always reference builtin plugins by an empty version.
|
||||
if versions.IsBuiltinVersion(pluginVersion) {
|
||||
pluginVersion = ""
|
||||
}
|
||||
newDB, err := v5.PluginFactoryVersion(ctx, pluginName, pluginVersion, sys, logger)
|
||||
if err == nil {
|
||||
dbw = databaseVersionWrapper{
|
||||
|
||||
Reference in New Issue
Block a user