Comments (7)
Yes, IIUC @dpc 's use case wasn't directly related to merge patches, just a custom merge-like thing they were doing locally, so they didn't implement it to follow the Kubernetes strategy specifically. But also IIUC their use case would be unaffected if we did implement the strategy for Vec<T>
in accordance with Kubernetes. ie we can repurpose the trait rather than making a whole new one.
So it seems the generated impl incorporate the x-kubernetes-patch-merge-key
and x-kubernetes-patch-strategy
properties of the fields, and DeepMerge::merge_from
would need to take them as a parameter.
from k8s-openapi.
d3718bf ?
from k8s-openapi.
Oh wow, managed to miss that completely. Will have to investigate!
from k8s-openapi.
Hm, it looks like this doesn't implement strategic merges, right? So merging the following two documents:
apiVersion: v1
kind: Pod
spec:
containers:
- name: nginx
image: nginx
---
apiVersion: v1
kind: Pod
spec:
containers:
- name: nginx
args: ["-t"]
Would give you the following document:
apiVersion: v1
kind: Pod
spec:
containers:
- name: nginx
image: nginx
- name: nginx
args: ["-t"]
But containers
is actually an ordered map, so the correct behaviour would have been to merge the two container definitions with the same name, like so:
apiVersion: v1
kind: Pod
spec:
containers:
- name: nginx
image: nginx
args: ["-t"]
from k8s-openapi.
In fact, the documented concat behaviour doesn't match any of K8s' merge strategies (see x-kubernetes-map-type
and x-kubernetes-list-type
).
from k8s-openapi.
Either that or you could use the strategy to replace the DeepMerge::merge_from
call.
from k8s-openapi.
Thank you both for your work on this!
from k8s-openapi.
Related Issues (20)
- Documentation snippet about kubernetes detection is not working as expected HOT 4
- Improve Name and Namespace optionality HOT 7
- `apimachinery::pkg::api::resource::Quantity` compatibility with Go HOT 2
- i32 for port number HOT 5
- `MicroTime` can be `null` HOT 6
- Add `latest` and `earliest` version features that track highest and lowest supported version HOT 1
- Can't find `meta/v1/Duration` HOT 2
- `k8s_openapi::ListResponse` should be serializable HOT 2
- release with v1.27 HOT 3
- v1.28.0
- Looking for example on how to use k8s_openapi::api::core::v1::Event::create function HOT 1
- ServiceSpec not creating headless service when cluster_ip set to None HOT 4
- Size of generated code HOT 7
- Tracking issue for bringing back API operations-related code if there is demand HOT 6
- about k8s-openapi features upgrade question HOT 4
- Comparison of elements is too strict HOT 2
- int-or-string parameters are typed out with mismatched "type" property HOT 2
- Namespaces are not Serializing HOT 4
- Plans to Support Builder Pattern in Kube.rs? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from k8s-openapi.