kubernetes-client/python
View on GitHubDeployment spec properties are inadvertently removed when serializing
Open
#2,435 opened on Aug 14, 2025
help wantedkind/bug
Repository metrics
- Stars
- (6,225 stars)
- PR merge metrics
- (Avg merge 10d 3h) (2 merged PRs in 30d)
Description
Summary
Various valid deployment spec properties are seemingly wiped out when I load it into a V1DeploymentSpec object, make a small change, then re-serialize to a dict.
Details
I am extracting a V1DeploymentSpec from a ClusterServiceVersion manifest, making a small mutation to it, then re-serializing it and adding it back into the ClusterServiceVersion. This leads to multiple mutations that were not intended. See the following sequence of diffs (none of which were intended) for reference:
@@ -356,287 +355,126 @@
- selector:
- matchLabels:
- name: my-operator
+ selector: {}
...
spec:
- affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/arch
- operator: In
- values:
- - s390x
- - amd64
+ affinity: {}
...
- name: WATCH_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.annotations['olm.targetNamespaces']
- name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
...
- imagePullPolicy: Always
- livenessProbe:
- failureThreshold: 4
- httpGet:
- path: /healthz
- port: 8081
- initialDelaySeconds: 15
- periodSeconds: 15
- successThreshold: 1
- timeoutSeconds: 3
- readinessProbe:
- failureThreshold: 3
- httpGet:
- path: /healthz
- port: 8081
- initialDelaySeconds: 15
- periodSeconds: 15
- successThreshold: 1
- timeoutSeconds: 3