Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Determine if all built-in collections should omit empty #5262

Closed
shawkins opened this issue Jun 16, 2023 · 0 comments · Fixed by #5320
Closed

Determine if all built-in collections should omit empty #5262

shawkins opened this issue Jun 16, 2023 · 0 comments · Fixed by #5320
Milestone

Comments

@shawkins
Copy link
Contributor

shawkins commented Jun 16, 2023

Some collections are not marked as omitempty in their go classes: https://github.com/openshift/api/blob/master/apps/v1/types.go#L63

The java generator will not mark those fields for JsonInclude non_empty.

However our builders are opinionated about treating an empty and null collections the same (in some places), and users will end up with empty collections in their serialized forms without realizing it. This is problematic for merge patches which treat the presense of an empty collection as a full replacement for the existing.

Originally posted by @shawkins in #5222 (comment)

We have two options to evaluate:

  1. Just to be consistent make all collections default to non-empty (can be done in either the generator or the jsonschema2pojo logic). This will of course open users up to Patch with empty collections #4606

  2. Try to modify the builder logic to differentaite between empty and null based upon the JsonInclude annotation - this seems like a tall order, and probably not viable.

shawkins added a commit to shawkins/kubernetes-client that referenced this issue Jul 9, 2023
shawkins added a commit to shawkins/kubernetes-client that referenced this issue Jul 9, 2023
shawkins added a commit to shawkins/kubernetes-client that referenced this issue Jul 9, 2023
shawkins added a commit to shawkins/kubernetes-client that referenced this issue Jul 10, 2023
shawkins added a commit to shawkins/kubernetes-client that referenced this issue Jul 10, 2023
manusa pushed a commit to shawkins/kubernetes-client that referenced this issue Jul 14, 2023
manusa pushed a commit to shawkins/kubernetes-client that referenced this issue Jul 15, 2023
@manusa manusa added this to the 6.8.0 milestone Jul 15, 2023
dongjoon-hyun pushed a commit to apache/spark that referenced this issue Jul 26, 2023
### What changes were proposed in this pull request?
The pr aims to upgrade kubernetes-client from 6.7.2 to 6.8.0.

### Why are the changes needed?
- The newest version brings some bug fixed & improvment, eg:
Fix fabric8io/kubernetes-client#5221: Empty kube config file causes NPE
Fix fabric8io/kubernetes-client#5281: Ensure the KubernetesCrudDispatcher's backing map is accessed w/lock
Fix fabric8io/kubernetes-client#5298: Prevent requests needing authentication from causing a 403 response
Fix fabric8io/kubernetes-client#5233: Generalized SchemaSwap to allow for cycle expansion
Fix fabric8io/kubernetes-client#5262: all built-in collections will omit empty in their serialized form.

- The full release notes:
https://github.com/fabric8io/kubernetes-client/releases/

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Pass GA.

Closes #42142 from panbingkun/SPARK-44537.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
ragnarok56 pushed a commit to ragnarok56/spark that referenced this issue Mar 2, 2024
### What changes were proposed in this pull request?
The pr aims to upgrade kubernetes-client from 6.7.2 to 6.8.0.

### Why are the changes needed?
- The newest version brings some bug fixed & improvment, eg:
Fix fabric8io/kubernetes-client#5221: Empty kube config file causes NPE
Fix fabric8io/kubernetes-client#5281: Ensure the KubernetesCrudDispatcher's backing map is accessed w/lock
Fix fabric8io/kubernetes-client#5298: Prevent requests needing authentication from causing a 403 response
Fix fabric8io/kubernetes-client#5233: Generalized SchemaSwap to allow for cycle expansion
Fix fabric8io/kubernetes-client#5262: all built-in collections will omit empty in their serialized form.

- The full release notes:
https://github.com/fabric8io/kubernetes-client/releases/

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Pass GA.

Closes apache#42142 from panbingkun/SPARK-44537.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
prabhjyotsingh pushed a commit to acceldata-io/spark3 that referenced this issue Feb 7, 2025
The pr aims to upgrade kubernetes-client from 6.7.2 to 6.8.0.

- The newest version brings some bug fixed & improvment, eg:
Fix fabric8io/kubernetes-client#5221: Empty kube config file causes NPE
Fix fabric8io/kubernetes-client#5281: Ensure the KubernetesCrudDispatcher's backing map is accessed w/lock
Fix fabric8io/kubernetes-client#5298: Prevent requests needing authentication from causing a 403 response
Fix fabric8io/kubernetes-client#5233: Generalized SchemaSwap to allow for cycle expansion
Fix fabric8io/kubernetes-client#5262: all built-in collections will omit empty in their serialized form.

- The full release notes:
https://github.com/fabric8io/kubernetes-client/releases/

No.

Pass GA.

Closes apache#42142 from panbingkun/SPARK-44537.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 6b6216c)
prabhjyotsingh added a commit to acceldata-io/spark3 that referenced this issue Feb 7, 2025
…t in spark (#66)

* ODP-3237: Fix compile

* [SPARK-44537][BUILD] Upgrade kubernetes-client to 6.8.0

The pr aims to upgrade kubernetes-client from 6.7.2 to 6.8.0.

- The newest version brings some bug fixed & improvment, eg:
Fix fabric8io/kubernetes-client#5221: Empty kube config file causes NPE
Fix fabric8io/kubernetes-client#5281: Ensure the KubernetesCrudDispatcher's backing map is accessed w/lock
Fix fabric8io/kubernetes-client#5298: Prevent requests needing authentication from causing a 403 response
Fix fabric8io/kubernetes-client#5233: Generalized SchemaSwap to allow for cycle expansion
Fix fabric8io/kubernetes-client#5262: all built-in collections will omit empty in their serialized form.

- The full release notes:
https://github.com/fabric8io/kubernetes-client/releases/

No.

Pass GA.

Closes apache#42142 from panbingkun/SPARK-44537.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 6b6216c)

* [SPARK-44821][BUILD][K8S] Upgrade `kubernetes-client` to 6.8.1

### What changes were proposed in this pull request?

This PR aims to upgrade kubernetes-client to 6.8.1

### Why are the changes needed?

To bring two additional bug fixes.
- https://github.com/fabric8io/kubernetes-client/releases/tag/v6.8.1

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

Pass the CIs.

Closes apache#42505 from dongjoon-hyun/SPARK-44821.

Authored-by: Dongjoon Hyun <[email protected]>
Signed-off-by: Kent Yao <[email protected]>
(cherry picked from commit e25a654)

* [SPARK-45465][BUILD][K8S] Upgrade `kubernetes-client` to 6.9.0 for K8s 1.28

This PR aims to upgrade `kubernetes-client` to 6.9.0 for K8s 1.28.

`kubernetes-client` 6.9.0 includes new features and bug fixes on top of K8s 1.23 model.
- https://github.com/fabric8io/kubernetes-client/releases/tag/v6.9.0
- fabric8io/kubernetes-client#5401

No.

Pass the CIs.

No.

Closes apache#43284 from dongjoon-hyun/SPARK-45465.

Authored-by: Dongjoon Hyun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 89acebb)

* [SPARK-45728][BUILD][K8S] Upgrade `kubernetes-client` to 6.9.1

### What changes were proposed in this pull request?

This PR aims to upgrade `kubernetes-client` to 6.9.1.

### Why are the changes needed?

This will bring us the following bug fixes including the CRD generator fix.
- https://github.com/fabric8io/kubernetes-client/releases/tag/v6.9.1
  - Fix fabric8io/kubernetes-client#5501: (crd-generator) Fix fallback value of Default annotation in presence of multiple accessors

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

Pass the CIs.

### Was this patch authored or co-authored using generative AI tooling?

No.

Closes apache#43589 from dongjoon-hyun/SPARK-45728.

Authored-by: Dongjoon Hyun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 311602a)

* [SPARK-46662][K8S][BUILD] Upgrade `kubernetes-client` to 6.10.0

Upgrade `kubernetes-client` from 6.9.1 to 6.10.0
[Release notes 6.10.0](https://github.com/fabric8io/kubernetes-client/releases/tag/v6.10.0)
[Release notes 6.9.2](https://github.com/fabric8io/kubernetes-client/releases/tag/v6.9.2)

[Updated okio to version 1.17.6 to avoid CVE-2023-3635](fabric8io/kubernetes-client#5587)
[Upgrade Kubernetes Model to Kubernetes v1.29.0](fabric8io/kubernetes-client#5686)

No.

Pass GA

No.

Closes apache#44672 from bjornjorgensen/kubclient6.10.

Authored-by: Bjørn Jørgensen <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit dcfd37c)

* [SPARK-47550][K8S][BUILD] Update `kubernetes-client` to 6.11.0

### What changes were proposed in this pull request?
Update `kubernetes-client` from 6.10.0 to 6.11.0

### Why are the changes needed?

[Release notes for 6.11.0](https://github.com/fabric8io/kubernetes-client/releases/tag/v6.11.0)

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Pass GA

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#45707 from bjornjorgensen/kub-client6.11.0.

Authored-by: Bjørn Jørgensen <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 7b9b3cb)

* [SPARK-47860][BUILD][K8S] Upgrade `kubernetes-client` to 6.12.0

### What changes were proposed in this pull request?

This PR aims to upgrade `kubernetes-client` to 6.12.0.

### Why are the changes needed?

To bring the latest bug fixes.
- https://github.com/fabric8io/kubernetes-client/releases/tag/v6.12.0

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

Pass the CIs.

### Was this patch authored or co-authored using generative AI tooling?

No.

Closes apache#46066 from dongjoon-hyun/SPARK-47860.

Authored-by: Dongjoon Hyun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit becbca6)

* [SPARK-47915][BUILD][K8S] Upgrade `kubernetes-client` to 6.12.1

### What changes were proposed in this pull request?
Upgrade `kubernetes-client` from 6.12.0 to 6.12.1

### Why are the changes needed?
[Release notes](https://github.com/fabric8io/kubernetes-client/releases/tag/v6.12.1)

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Pass GA

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#46137 from bjornjorgensen/kub-client6.12.1.

Authored-by: Bjørn Jørgensen <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 8aa8ad6)

* [SPARK-48514][BUILD][K8S] Upgrade `kubernetes-client` to 6.13.0

### What changes were proposed in this pull request?
Upgrade kubernetes-client from 6.12.1 to 6.13.0

### Why are the changes needed?
Upgrade Fabric8 Kubernetes Model to Kubernetes v1.30.0
[Release log 6.13.0](https://github.com/fabric8io/kubernetes-client/releases/tag/v6.13.0)

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Pass GA

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#46854 from bjornjorgensen/kubclient6.13.0.

Authored-by: Bjørn Jørgensen <[email protected]>
Signed-off-by: Kent Yao <[email protected]>
(cherry picked from commit 6475ddf)

* [SPARK-48801][BUILD][K8S] Upgrade `kubernetes-client` to 6.13.1

### What changes were proposed in this pull request?
The pr aims to upgrade `kubernetes-client` from `6.13.0` to `6.13.1`.

### Why are the changes needed?
- The full release notes: https://github.com/fabric8io/kubernetes-client/releases/tag/v6.13.1
- The newest version fixed some bug, eg:
  Fix fabric8io/kubernetes-client#6059: Swallow rejected execution from internal usage of the informer executor
  Fix fabric8io/kubernetes-client#6068: KubernetesMockServer provides incomplete Configuration while creating test Config for KubernetesClient
  Fix fabric8io/kubernetes-client#6085: model getters have same annotations as fields (breaks native)

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Pass GA.

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#47206 from panbingkun/SPARK-48801.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 5b00786)

* [SPARK-49196][BUILD] Upgrade `kubernetes-client` to 6.13.2

### What changes were proposed in this pull request?
The pr aims to upgrade `kubernetes-client` from `6.13.1` to `6.13.2`.

### Why are the changes needed?
- The full release notes: https://github.com/fabric8io/kubernetes-client/releases/tag/v6.13.2
- The newest version fixed some bug, eg:
  Fix fabric8io/kubernetes-client#6066: Added support for missing v1.APIVersions in KubernetesClient
  Fix fabric8io/kubernetes-client#6110: VolumeSource (and other file mode fields) in Octal are correctly interpreted
  Fix fabric8io/kubernetes-client#6137: ConfigBuilder.withAutoConfigure is not working

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Pass GA.

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#47703 from panbingkun/SPARK-49196.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit d09e1c5)

* [SPARK-45590][BUILD] Upgrade okio to 1.17.6 from 1.15.0

This PR aims to upgrade `okio` from 1.15.0 to 1.17.6.

Okio 1.15.0 is vulnerable due to CVE-2023-3635,  details: https://nvd.nist.gov/vuln/detail/CVE-2023-3635

Previous attempts to fix this security issue:

Update okio to version 1.17.6 apache#5587: fabric8io/kubernetes-client#5587
Followup to Update okio to version 1.17.6 apache#5935: fabric8io/kubernetes-client#5935

Unfortunately it is still using 1.15.0:

https://github.com/apache/spark/blob/v4.0.0-preview1/dev/deps/spark-deps-hadoop-3-hive-2.3#L227
https://github.com/apache/spark/blob/v3.5.2/dev/deps/spark-deps-hadoop-3-hive-2.3#L210

No.

Pass the CIs.

No.

Closes apache#47758 from roczei/SPARK-45590.

Authored-by: Gabor Roczei <[email protected]>
Signed-off-by: Kent Yao <[email protected]>
(cherry picked from commit c8cf394)

* [SPARK-49255][BUILD][K8S] Upgrade `kubernetes-client` to 6.13.3

### What changes were proposed in this pull request?

This PR aims to upgrade `kubernetes-client` to 6.13.3.

### Why are the changes needed?

Unfortunately, there is an important bug fix after we upgraded to 6.13.2. This PR aims to bring the fix.
- https://github.com/fabric8io/kubernetes-client/releases/tag/v6.13.3
  - fabric8io/kubernetes-client#6249
  - fabric8io/kubernetes-client@1a66228

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

Pass the CIs.

### Was this patch authored or co-authored using generative AI tooling?

No.

Closes apache#47782 from dongjoon-hyun/SPARK-49255.

Authored-by: Dongjoon Hyun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 7a670d7)

* [SPARK-49800][BUILD][K8S] Upgrade `kubernetes-client` to 6.13.4

### What changes were proposed in this pull request?
Upgrade `kubernetes-client` from 6.13.3 to 6.13.4

### Why are the changes needed?
New version that have 5 fixes
[Release log 6.13.4](https://github.com/fabric8io/kubernetes-client/releases/tag/v6.13.4)

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Pass GA

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#48268 from bjornjorgensen/k8sclient6.13.4.

Authored-by: Bjørn Jørgensen <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 54e62a1)

* [SPARK-50493][SPARK-37687][BUILD] Migrate kubernetes-client from `6.x` to `7.x`

The pr aims to migrate kubernetes-client from `6.x` to `7.x`, includes:
- upgrade `kubernetes-client` from `6.13.2` to `7.0.1`.
- switch default `HttpClient` implementation from `OkHttp` to `Vert.x`.

- The full release notes:
  https://github.com/fabric8io/kubernetes-client/releases/tag/v7.0.1
  https://github.com/fabric8io/kubernetes-client/releases/tag/v7.0.0
- [Vert.x as default HttpClient implementation](https://github.com/fabric8io/kubernetes-client/blob/v7.0.0/doc/MIGRATION-v7.md#vertx-as-default-httpclient-implementation-)

No.

Pass GA.

No.

Closes apache#49159 from panbingkun/k8s_client_7_vert_x.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit dccb129)

---------

Co-authored-by: panbingkun <[email protected]>
Co-authored-by: Dongjoon Hyun <[email protected]>
Co-authored-by: Dongjoon Hyun <[email protected]>
Co-authored-by: Bjørn Jørgensen <[email protected]>
Co-authored-by: panbingkun <[email protected]>
Co-authored-by: Gabor Roczei <[email protected]>
Co-authored-by: panbingkun <[email protected]>
prabhjyotsingh pushed a commit to acceldata-io/spark3 that referenced this issue Feb 7, 2025
The pr aims to upgrade kubernetes-client from 6.7.2 to 6.8.0.

- The newest version brings some bug fixed & improvment, eg:
Fix fabric8io/kubernetes-client#5221: Empty kube config file causes NPE
Fix fabric8io/kubernetes-client#5281: Ensure the KubernetesCrudDispatcher's backing map is accessed w/lock
Fix fabric8io/kubernetes-client#5298: Prevent requests needing authentication from causing a 403 response
Fix fabric8io/kubernetes-client#5233: Generalized SchemaSwap to allow for cycle expansion
Fix fabric8io/kubernetes-client#5262: all built-in collections will omit empty in their serialized form.

- The full release notes:
https://github.com/fabric8io/kubernetes-client/releases/

No.

Pass GA.

Closes apache#42142 from panbingkun/SPARK-44537.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 6b6216c)
prabhjyotsingh pushed a commit to acceldata-io/spark3 that referenced this issue Feb 7, 2025
The pr aims to upgrade kubernetes-client from 6.7.2 to 6.8.0.

- The newest version brings some bug fixed & improvment, eg:
Fix fabric8io/kubernetes-client#5221: Empty kube config file causes NPE
Fix fabric8io/kubernetes-client#5281: Ensure the KubernetesCrudDispatcher's backing map is accessed w/lock
Fix fabric8io/kubernetes-client#5298: Prevent requests needing authentication from causing a 403 response
Fix fabric8io/kubernetes-client#5233: Generalized SchemaSwap to allow for cycle expansion
Fix fabric8io/kubernetes-client#5262: all built-in collections will omit empty in their serialized form.

- The full release notes:
https://github.com/fabric8io/kubernetes-client/releases/

No.

Pass GA.

Closes apache#42142 from panbingkun/SPARK-44537.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 6b6216c)
prabhjyotsingh pushed a commit to acceldata-io/spark3 that referenced this issue Feb 7, 2025
The pr aims to upgrade kubernetes-client from 6.7.2 to 6.8.0.

- The newest version brings some bug fixed & improvment, eg:
Fix fabric8io/kubernetes-client#5221: Empty kube config file causes NPE
Fix fabric8io/kubernetes-client#5281: Ensure the KubernetesCrudDispatcher's backing map is accessed w/lock
Fix fabric8io/kubernetes-client#5298: Prevent requests needing authentication from causing a 403 response
Fix fabric8io/kubernetes-client#5233: Generalized SchemaSwap to allow for cycle expansion
Fix fabric8io/kubernetes-client#5262: all built-in collections will omit empty in their serialized form.

- The full release notes:
https://github.com/fabric8io/kubernetes-client/releases/

No.

Pass GA.

Closes apache#42142 from panbingkun/SPARK-44537.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 6b6216c)
prabhjyotsingh pushed a commit to acceldata-io/spark3 that referenced this issue Feb 7, 2025
The pr aims to upgrade kubernetes-client from 6.7.2 to 6.8.0.

- The newest version brings some bug fixed & improvment, eg:
Fix fabric8io/kubernetes-client#5221: Empty kube config file causes NPE
Fix fabric8io/kubernetes-client#5281: Ensure the KubernetesCrudDispatcher's backing map is accessed w/lock
Fix fabric8io/kubernetes-client#5298: Prevent requests needing authentication from causing a 403 response
Fix fabric8io/kubernetes-client#5233: Generalized SchemaSwap to allow for cycle expansion
Fix fabric8io/kubernetes-client#5262: all built-in collections will omit empty in their serialized form.

- The full release notes:
https://github.com/fabric8io/kubernetes-client/releases/

No.

Pass GA.

Closes apache#42142 from panbingkun/SPARK-44537.

Authored-by: panbingkun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 6b6216c)
(cherry picked from commit d59beef)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants