Replies: 7 comments 10 replies
-
@DanGhita writes on the draft version of this proposal:
|
Beta Was this translation helpful? Give feedback.
-
I would personally like it if we could keep the auth methods for the major cloud providers but apart from that I agree with the approach to only support OSS plugins. This moves a lot of functionality to external community supported plugins, but allows us to properly maintain the ones we support. One question I have left is where we draw the line wrt. OSS? Does that mean officially supporting source available projects like Elasticsearch or Consul is something we won't do? |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Proposal Accepted 2024-02-01. Plugins will be pulled in-tree with the ability to fork as external repositories long-term should the community purse the the use of a registry. |
Beta Was this translation helpful? Give feedback.
-
The proposal was based on sound principles and I'm glad it passed. I am interested in understanding the functionality that the OSS database plugins that remain in the openbao repo provide, specifically the mysql one. The files are terse https://github.com/openbao/openbao/blob/main/plugins/database/mysql/mysql-database-plugin/main.go . I'm happy to help create/improve documentation if I can be pointed in the right direction. |
Beta Was this translation helpful? Give feedback.
-
Edited 2024-04-01: Removed database-redis from the list of supported plugins (https://redis.com/blog/redis-adopts-dual-source-available-licensing/). LF Valkey (https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community) future replacement. |
Beta Was this translation helpful? Give feedback.
-
What about Login MFA? Can external plugins provide the Login MFA feature (Okta, Duo, PingID)? Or will they continue to live in openbao core? At least these files (plus tests) include Login MFA bits:
|
Beta Was this translation helpful? Give feedback.
-
Plugin Proposal
This proposal outlines plugins to support, based on the four major types of plugins (auth, secrets, database -- a specialization of secrets, and storage).
The philosophy of this plugin reduction is as follows:
In particular, this means that plugins previously built-in like database/mongodb no longer are first-class supported as they are not under an OSI license. Similarly, all cloud vendors' plugins have been moved external as well, for the community to support independent of the main core release cycle.
This proposal suggests aligning with Lars's proposal to move builtin, supported plugins into the main repository: these builtin plugins will be released with the binary and thus versioned similarly. External, community-supported plugins can be in separate repositories released as separate binaries & container images, allowing additional maintainers to be added. This has the added benefit of not tying these external plugins to the main repository's release cycle, allowing contributors to release as they see fit and not holding up the main release on third-party dependencies.
(To be clear -- For non-OSI integration plugins for which the broader community is interest in maintaining them, the suggested mechanism is via a separate repository, building external plugins (rather than built-in to the release binary). This will allow additional maintainers to be nominated (without commit access to the main repository) and allows for a separate release schedule more suitable for this plugin. This is to say, the broader OpenBao community can support additional proprietary plugins, but the core release artifacts and release cycle will not include these by default.)
This should greatly reduce the binary size as well, as many dependencies can be removed (as, for instance, the Azure SDK and other cloud provider SDKs can be removed as a dependency, which greatly contributed to binary size -- see
https://github.com/hashicorp/vault/issues/22893#issuecomment-1712569767
).Lastly, storage plugins were removed. Only two types of plugins were officially supported in an Enterprise context upstream: Consul and Raft. Consul is no longer OSI-licensed, and no fork has been made aparent at this time. Other plugins lack features that Raft has (in the Vault Enterprise variant), and support for multiple backend storage plugins has caused other issues. Thus, the decision to simplify to Raft aligns more closely with what upstream has done in practice and greatly reduces our maintenance burden. In-mem and file backends are left for historical testing reasons and will not be supported in production (non-dev-mode) usage.
See repos.md for context on the different types of plugins.
Auth
Database
redisgithub.com/hashicorp/vault-plugin-database-redisSecrets
Storage
go-kms-wrapping
Initially no plugins will be removed from this, but the package will remain as a separate repository. However, if PKCS#11 bindings are contributed, this could warrant a migration from native seals to PKCS#11 libraries to reduce binary size and avoid the need to maintain each cloud provider's integration separately. This has the added benefit of easing cross-cloud migrations and being testable locally with SoftHSM.
Net Additions and Removals
Additions to Main Repo
database-redisRemovals to Community Supported
Beta Was this translation helpful? Give feedback.
All reactions