kubernetes-client / kubernetes-client/javascript

KubernetesObjectApi drops `x-kubernetes-preserve-unknown-fields` when given a plain YAML object

Đang mở
#2,962 1 bình luận 1 reaction 2 người được giao Được @brendandburns nhận Xem trên GitHub
Ngôn ngữ chính
TypeScript
Star
2.3k
Fork
568
Merge trung bình
17 giờ 57 phút
Pull request đã merge (30 ngày)
41

Mô tả

**Describe the bug**
`KubernetesObjectApi.create()` silently drops the CRD schema extension `x-kubernetes-preserve-unknown-fields` when given a plain JavaScript object parsed from YAML.

**Client Version**
`1.4.0`

**Server Version**
`1.34`

**To Reproduce**
```javascript
const yaml = require("js-yaml");
const k8s = require("@kubernetes/client-node");

async function main() {
const crd = yaml.load(`
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: foos.example.com
spec:
group: example.com
scope: Namespaced
names:
plural: foos
singular: foo
kind: Foo
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
podTemplate:
type: object
x-kubernetes-preserve-unknown-fields: true
`);
const kc = new k8s.KubeConfig();
kc.loadFromDefault();
kc.setCurrentContext("orbstack");
const client = k8s.KubernetesObjectApi.makeApiClient(kc);

const result = await client.create(crd);
console.log(result.body)
}

main().then(() => console.log("done"));
```
the API server response does not contain x-kubernetes-preserve-unknown-fields.

**Expected behavior**
The API server response should retain x-kubernetes-preserve-unknown-fields: true, since it is present in the YAML input.

**Example Code**
Code snippet for what you are doing

**Environment (please complete the following information):**

- OS: [macOS]
- Node.js version [26.5.0]

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.