kubernetes-watch 0.1.4__py3-none-any.whl → 0.1.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,5 +4,20 @@ logger = get_run_logger()
4
4
 
5
5
  def load_secrets_to_env(data):
6
6
  for key, value in data.items():
7
+ if key in os.environ:
8
+ del os.environ[key]
7
9
  os.environ[key] = value
8
10
  # logger.info(f"ENV VAR: {key} loaded")
11
+
12
+ def load_env_from_file(filepath):
13
+ with open(filepath, "r") as f:
14
+ for line in f:
15
+ # Remove whitespace and ignore comments
16
+ line = line.strip()
17
+ if line and not line.startswith('#'):
18
+ key, value = line.split('=', 1)
19
+ # Remove the environment variable if it already exists
20
+ if key in os.environ:
21
+ del os.environ[key]
22
+ # Set the new value
23
+ os.environ[key] = value
@@ -108,12 +108,33 @@ def generate_new_secret_id(vault_client, role_name, vault_path, env_var_name):
108
108
  """
109
109
  Generates new secret_id. Note an admin role is required for this.
110
110
  """
111
- new_secret_response = vault_client.auth.approle.generate_secret_id(
112
- role_name=role_name,
113
- mount_point=f'approle/{vault_path}'
114
- )
111
+ try:
112
+ # Write directly to the Vault endpoint to create the secret ID with num_uses
113
+ # response = vault_client.write(
114
+ # f"auth/approle/{vault_path}/role/{role_name}/secret-id",
115
+ # )
116
+ response = vault_client.auth.approle.generate_secret_id(
117
+ role_name=role_name,
118
+ mount_point=f'approle/{vault_path}'
119
+ )
120
+ # Check if the response contains the secret ID
121
+ if response and 'data' in response:
122
+ secret_id = response['data']['secret_id']
123
+ secret_id_accessor = response['data']['secret_id_accessor']
124
+ logger.info("Generated a new secret ID with usage buffer.")
125
+ return {env_var_name: secret_id, f"{env_var_name}_ACCESSOR": secret_id_accessor}
126
+ else:
127
+ logger.error("No secret ID returned in the response.")
128
+ raise RuntimeError("Failed to generate new secret ID: No content returned.")
129
+ except hvac.exceptions.InvalidRequest as e:
130
+ logger.error("Error generating new secret ID: %s", str(e))
131
+ raise RuntimeError("Failed to generate new secret ID.") from e
132
+ # new_secret_response = vault_client.auth.approle.generate_secret_id(
133
+ # role_name=role_name,
134
+ # mount_point=f'approle/{vault_path}'
135
+ # )
115
136
 
116
- return { env_var_name : new_secret_response['data']['secret_id'] }
137
+ # return { env_var_name : new_secret_response['data']['secret_id'] }
117
138
 
118
139
 
119
140
 
@@ -147,7 +168,8 @@ def clean_secret_ids(vault_client, role_name, secret_id_env, vault_path, has_kub
147
168
 
148
169
  Note: secret_id_env is a dictionary. The key, VAULT_SECRET_ID, has the secret_id value.
149
170
  """
150
- secret_id = secret_id_env.get("VAULT_SECRET_ID")
171
+ secret_id = secret_id_env.get("VAULT_SECRET_ID_ACCESSOR")
172
+
151
173
  if has_kube_secret_updated:
152
174
  secret_ids_path = f'auth/approle/{vault_path}/role/{role_name}/secret-id'
153
175
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kubernetes-watch
3
- Version: 0.1.4
3
+ Version: 0.1.5
4
4
  Summary:
5
5
  Author: bmotevalli
6
6
  Author-email: b.motevalli@gmail.com
@@ -12,7 +12,7 @@ kube_watch/modules/clusters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
12
12
  kube_watch/modules/clusters/kube.py,sha256=Fje6-vUA1KQ4x8T6cUYJT_eVwUYw-dR71h95ixSLqLM,7767
13
13
  kube_watch/modules/logic/actions.py,sha256=lt7OkSw6m2ZQe2SfENUsjZeD8vdpvfoE4laEkv9veEA,2471
14
14
  kube_watch/modules/logic/checks.py,sha256=CFIMVURKJP5Y3mByyJkFCrJBlVUjTG2XixiwoRquXN4,157
15
- kube_watch/modules/logic/load.py,sha256=5DKi3nAFMcoNQL504JaDc-_REJSc6GyxeXLWQwNl0BM,227
15
+ kube_watch/modules/logic/load.py,sha256=8b5Y_iRTB6c7LY1-9wQjOrl_oW4JyVp5bjwh169frkU,804
16
16
  kube_watch/modules/logic/merge.py,sha256=vwc2TwcGU-vH5W0bFXzAzOMHt36ksdS4if1c4IbTeXs,926
17
17
  kube_watch/modules/logic/scheduler.py,sha256=-p5qh3FnEQ1jlkaY0Lrj9U-vau1b07NYAXBP6M09yoU,3517
18
18
  kube_watch/modules/logic/trasnform.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -22,12 +22,12 @@ kube_watch/modules/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
22
22
  kube_watch/modules/providers/aws.py,sha256=yvxVwL7seuvxpGR2ZCrmWEMKh9hesWdPTC6LvW7Bi9E,8585
23
23
  kube_watch/modules/providers/git.py,sha256=h3rcn1FhU82nF52Ol9YHyFk4cvPxxaz_AxHnip8OXPY,1183
24
24
  kube_watch/modules/providers/github.py,sha256=WCpZIKHr4U0a4El1leXkaCv1jznf9ob5xHVeTNSpNG0,5338
25
- kube_watch/modules/providers/vault.py,sha256=kw-S4orCIrVgDKzctzYeICIVD3-A9cT_CyyFAwi4oPM,6215
25
+ kube_watch/modules/providers/vault.py,sha256=mPSjI5p1ycwXl6XFQNLohJ1rK_z_iT3QA9RJB1O3cpI,7381
26
26
  kube_watch/standalone/metarecogen/ckan_to_gn.py,sha256=FBiv6McWh4hqV6Bz08zGLzEIe4v1-D3FawjBKYbV7Ms,4767
27
27
  kube_watch/watch/__init__.py,sha256=6Ay9P_Ws7rP7ZaIrFRZtp_1uwVK4ZDmkkNhFyqPNQIU,61
28
28
  kube_watch/watch/helpers.py,sha256=T0xDSCfrW7NrmQzgIzOiojQzu_HesajMb7S_AX-tt98,6431
29
29
  kube_watch/watch/workflow.py,sha256=h0b_P_kfiPxqTFHZ6o2HkDkNaUBOwv1DKJnwEMMVXaI,4203
30
- kubernetes_watch-0.1.4.dist-info/LICENSE,sha256=StyinJRmy--Pc2vQbRToZSN4sjSVg3zccMFrktVcrEw,1096
31
- kubernetes_watch-0.1.4.dist-info/METADATA,sha256=n9GU5CEsh33BEGgYDApxctg_Rl0Oav6RfeYwVMM-fzs,4969
32
- kubernetes_watch-0.1.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
33
- kubernetes_watch-0.1.4.dist-info/RECORD,,
30
+ kubernetes_watch-0.1.5.dist-info/LICENSE,sha256=StyinJRmy--Pc2vQbRToZSN4sjSVg3zccMFrktVcrEw,1096
31
+ kubernetes_watch-0.1.5.dist-info/METADATA,sha256=GiDXVvgzxWV6zfK3VeEgqXTzRKSAKHan0Y4HML37Br0,4969
32
+ kubernetes_watch-0.1.5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
33
+ kubernetes_watch-0.1.5.dist-info/RECORD,,