fixed deployment update
This commit is contained in:
parent
cc43885279
commit
83ff9af4d6
@ -342,28 +342,41 @@ class K8sClient:
|
||||
def get_deployment_yaml(self, namespace: str, name: str) -> Optional[str]:
|
||||
"""Get deployment as YAML string."""
|
||||
try:
|
||||
from kubernetes import utils
|
||||
import yaml
|
||||
|
||||
deployment = self.apps_v1.read_namespaced_deployment(name, namespace)
|
||||
|
||||
# Convert to dict and remove managed fields and status
|
||||
deployment_dict = deployment.to_dict()
|
||||
# Use ApiClient to properly serialize the object
|
||||
api_client = client.ApiClient()
|
||||
deployment_dict = api_client.sanitize_for_serialization(deployment)
|
||||
|
||||
# Remove fields that shouldn't be edited
|
||||
if 'metadata' in deployment_dict:
|
||||
deployment_dict['metadata'].pop('managed_fields', None)
|
||||
deployment_dict['metadata'].pop('resource_version', None)
|
||||
deployment_dict['metadata'].pop('managedFields', None)
|
||||
deployment_dict['metadata'].pop('resourceVersion', None)
|
||||
deployment_dict['metadata'].pop('uid', None)
|
||||
deployment_dict['metadata'].pop('self_link', None)
|
||||
deployment_dict['metadata'].pop('creation_timestamp', None)
|
||||
deployment_dict['metadata'].pop('selfLink', None)
|
||||
deployment_dict['metadata'].pop('creationTimestamp', None)
|
||||
deployment_dict['metadata'].pop('generation', None)
|
||||
|
||||
# Remove status
|
||||
deployment_dict.pop('status', None)
|
||||
|
||||
# Convert to YAML
|
||||
import yaml
|
||||
yaml_str = yaml.dump(deployment_dict, default_flow_style=False, sort_keys=False)
|
||||
# Custom YAML representer to avoid ugly formatting
|
||||
def represent_none(self, _):
|
||||
return self.represent_scalar('tag:yaml.org,2002:null', '')
|
||||
|
||||
yaml.add_representer(type(None), represent_none)
|
||||
|
||||
# Convert to YAML with proper indentation
|
||||
yaml_str = yaml.dump(
|
||||
deployment_dict,
|
||||
default_flow_style=False,
|
||||
sort_keys=False,
|
||||
indent=2,
|
||||
allow_unicode=True,
|
||||
explicit_start=False
|
||||
)
|
||||
return yaml_str
|
||||
except ApiException as e:
|
||||
console.print(f"[red]Error reading deployment:[/red] {e}")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user