Custom secret stores
Learning how to develop a custom secret store.
The secrets store acts as the one-stop shop for all the secrets to which your pipeline or stack components might need access. It is responsible for storing, updating and deleting only the secrets values for ZenML secrets, while the ZenML secret metadata is stored in the SQL database. The secrets store interface implemented by all available secrets store back-ends is defined in the zenml.zen_stores.secrets_stores.secrets_store_interface
core module and looks more or less like this:
This is a slimmed-down version of the real interface which aims to highlight the abstraction layer. In order to see the full definition and get the complete docstrings, please check the SDK docs .
Build your own custom secrets store
If you want to create your own custom secrets store implementation, you can follow the following steps:
Create a class that inherits from the
zenml.zen_stores.secrets_stores.base_secrets_store.BaseSecretsStore
base class and implements theabstractmethod
s shown in the interface above. UseSecretsStoreType.CUSTOM
as theTYPE
value for your secrets store class.If you need to provide any configuration, create a class that inherits from the
SecretsStoreConfiguration
class and add your configuration parameters there. Use that as theCONFIG_TYPE
value for your secrets store class.To configure the ZenML server to use your custom secrets store, make sure your code is available in the container image that is used to run the ZenML server. Then, use environment variables or helm chart values to configure the ZenML server to use your custom secrets store, as covered in the deployment guide.
Last updated