|
1 | 1 | import os
|
| 2 | + |
2 | 3 | import hvac
|
3 | 4 |
|
4 | 5 | # Configuration for Vault
|
5 |
| -VAULT_ADDR = 'http://localhost:8200' |
6 |
| -VAULT_OIDC_CLIENT_ID = 'your_oidc_client_id' |
7 |
| -VAULT_OIDC_ISSUER_URL = 'https://your-oidc-issuer-url' |
| 6 | +VAULT_ADDR = "http://localhost:8200" |
| 7 | +VAULT_OIDC_CLIENT_ID = "your_oidc_client_id" |
| 8 | +VAULT_OIDC_ISSUER_URL = "https://your-oidc-issuer-url" |
8 | 9 |
|
9 | 10 | # Static variables
|
10 |
| -STATIC_VARIABLES = { |
11 |
| - 'API_KEY': 'static_api_key', |
12 |
| - 'DATABASE_URL': 'static_database_url' |
13 |
| -} |
| 11 | +STATIC_VARIABLES = {"API_KEY": "static_api_key", "DATABASE_URL": "static_database_url"} |
| 12 | + |
14 | 13 |
|
15 | 14 | def get_secret_from_vault(path):
|
16 | 15 | client = hvac.Client(url=VAULT_ADDR)
|
17 |
| - token = client.auth.oidc.login( |
18 |
| - role='your_oidc_role', |
19 |
| - jwt=os.environ['JWT'] |
20 |
| - )['auth']['client_token'] |
21 |
| - |
| 16 | + token = client.auth.oidc.login(role="your_oidc_role", jwt=os.environ["JWT"])[ |
| 17 | + "auth" |
| 18 | + ]["client_token"] |
| 19 | + |
22 | 20 | client.token = token
|
23 |
| - secret = client.secrets.kv.v2.read_secret_version(path=path)['data']['data'] |
| 21 | + secret = client.secrets.kv.v2.read_secret_version(path=path)["data"]["data"] |
24 | 22 | return secret
|
25 | 23 |
|
| 24 | + |
26 | 25 | def generate_env_file(env_path):
|
27 |
| - with open(env_path, 'w') as env_file: |
| 26 | + with open(env_path, "w") as env_file: |
28 | 27 | for key, value in STATIC_VARIABLES.items():
|
29 | 28 | env_file.write(f"{key}={value}\n")
|
30 |
| - |
| 29 | + |
31 | 30 | # Add secrets from Vault
|
32 | 31 | vault_secrets = {
|
33 |
| - 'SECRET_KEY': get_secret_from_vault('secret/key'), |
34 |
| - 'PASSWORD': get_secret_from_vault('secret/password') |
| 32 | + "SECRET_KEY": get_secret_from_vault("secret/key"), |
| 33 | + "PASSWORD": get_secret_from_vault("secret/password"), |
35 | 34 | }
|
36 |
| - |
| 35 | + |
37 | 36 | for key, value in vault_secrets.items():
|
38 | 37 | env_file.write(f"{key}={value}\n")
|
39 | 38 |
|
40 |
| -if __name__ == '__main__': |
41 |
| - env_path = '.env' |
| 39 | + |
| 40 | +if __name__ == "__main__": |
| 41 | + env_path = ".env" |
42 | 42 | generate_env_file(env_path)
|
43 | 43 | print(f"Environment file generated at {env_path}")
|
0 commit comments