Skip to content

Instantly share code, notes, and snippets.

@Egnod
Created December 15, 2020 22:11
Show Gist options
  • Save Egnod/820187d92e9ccf8ad8eead48b711c5f2 to your computer and use it in GitHub Desktop.
Save Egnod/820187d92e9ccf8ad8eead48b711c5f2 to your computer and use it in GitHub Desktop.
import hvac
from sitri.providers.contrib.system import SystemConfigProvider
from sitri.providers.contrib.vault import VaultKVConfigProvider
from sitri.settings.contrib.vault import VaultKVSettings
configurator = SystemConfigProvider(prefix="superapp")
ENV = configurator.get("env")
is_local_mode = ENV == "local"
local_mode_file_path = configurator.get("local_mode_file_path")
def vault_client_factory() -> hvac.Client:
client = hvac.Client(url=configurator.get("vault_api"))
client.auth_approle(
role_id=configurator.get("role_id"),
secret_id=configurator.get("secret_id"),
)
return client
provider = VaultKVConfigProvider(
vault_connector=vault_client_factory,
mount_point=f"{configurator.get('app_name')}/{ENV}",
)
class BaseConfig(VaultKVSettings.VaultKVSettingsConfig):
provider = provider
local_mode = is_local_mode
local_provider_args = {"json_path": local_mode_file_path}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment