-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerate_secret_ini_file.py
41 lines (35 loc) · 1.06 KB
/
generate_secret_ini_file.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import secrets
import string
import base64
import logging
def generate_password(size):
# Generate a secure password
alphabet = string.ascii_letters + string.digits # + string.punctuation
return ''.join(secrets.choice(alphabet) for i in range(size))
def generate_base64_password(size):
binary_string = secrets.token_bytes(size)
return base64.b64encode(binary_string).decode()
config = {}
with open("helm_secret.ini.example", "r") as f:
for line in f.readlines():
try:
if not line.strip():
continue
if "=" not in line:
key=line
value=""
else:
key, value = line.split('=')
key = key.strip()
value = value.strip()
config[key] = value
except ValueError:
# syntax error
logging.error(f"Syntax error in line: {line}")
pass
config['JWT_SECRET'] = generate_password(64)
config['DB_PASSWORD'] = generate_password(32)
config['APP_KEY'] = 'base64:' + generate_base64_password(64)
with open("helm_secret.ini", "w") as f:
for key, value in config.items():
f.write(f"{key}={value}\n")