Skip to content

Commit 57cc133

Browse files
committed
Less duplications
1 parent 0654a4c commit 57cc133

File tree

1 file changed

+25
-15
lines changed

1 file changed

+25
-15
lines changed

src/zenml/integrations/kubernetes/orchestrators/kube_utils.py

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -466,21 +466,31 @@ def create_or_update_secret_from_manifest(
466466
"""
467467
namespace = secret_manifest["metadata"]["namespace"]
468468
secret_name = secret_manifest["metadata"]["name"]
469-
470-
try:
471-
core_api.create_namespaced_secret(
472-
namespace=namespace,
473-
body=secret_manifest,
474-
)
475-
except ApiException as e:
476-
if e.status == 409: # Already exists, update it
477-
core_api.patch_namespaced_secret(
478-
name=secret_name,
479-
namespace=namespace,
480-
body=secret_manifest,
481-
)
482-
else:
483-
raise
469+
470+
# Extract data from manifest - handle both 'data' and 'stringData' fields
471+
secret_data = {}
472+
473+
# Handle base64-encoded 'data' field
474+
if "data" in secret_manifest:
475+
import base64
476+
for key, encoded_value in secret_manifest["data"].items():
477+
if encoded_value is not None:
478+
# Decode base64 data back to string
479+
secret_data[key] = base64.b64decode(encoded_value).decode('utf-8')
480+
else:
481+
secret_data[key] = None
482+
483+
# Handle plain text 'stringData' field
484+
if "stringData" in secret_manifest:
485+
secret_data.update(secret_manifest["stringData"])
486+
487+
# Use the existing create_or_update_secret function
488+
create_or_update_secret(
489+
core_api=core_api,
490+
namespace=namespace,
491+
secret_name=secret_name,
492+
data=secret_data,
493+
)
484494

485495

486496
def delete_secret(

0 commit comments

Comments
 (0)