fix kyaml issue where dropping Style created issues

dropping the node style creates a compatibility issue where quotes around "on" are dropped
because yaml.v3 interprets it as a string.

other yaml parsers interpret on as a bool value, and parse it as a bool rather than string.

fix: retain the original style so it is kept as quoted.

- fmt: don't drop the styles
- merge2: keep the style when merging elements
- setting a field: if changing the value of a scalar field, retain its style by default
This commit is contained in:
Phillip Wittrock
2019-12-19 15:05:49 -08:00
parent 7e56c2c768
commit 98431f6a00
13 changed files with 147 additions and 85 deletions

View File

@@ -78,8 +78,8 @@ items:
name: test
app: nginx
annotations:
config.kubernetes.io/index: "0"
config.kubernetes.io/path: config/test_deployment.yaml
config.kubernetes.io/index: '0'
config.kubernetes.io/path: 'config/test_deployment.yaml'
spec:
replicas: 11
selector:
@@ -109,8 +109,8 @@ items:
name: test
app: nginx
annotations:
config.kubernetes.io/index: "0"
config.kubernetes.io/path: config/test_service.yaml
config.kubernetes.io/index: '0'
config.kubernetes.io/path: 'config/test_service.yaml'
spec:
selector:
name: test
@@ -133,8 +133,8 @@ items:
name: test
app: nginx
annotations:
config.kubernetes.io/index: "0"
config.kubernetes.io/path: config/test_deployment.yaml
config.kubernetes.io/index: '0'
config.kubernetes.io/path: 'config/test_deployment.yaml'
spec:
replicas: 11
selector:
@@ -161,8 +161,8 @@ items:
name: test
app: nginx
annotations:
config.kubernetes.io/index: "0"
config.kubernetes.io/path: config/test_service.yaml
config.kubernetes.io/index: '0'
config.kubernetes.io/path: 'config/test_service.yaml'
spec:
selector:
name: test
@@ -185,8 +185,8 @@ items:
name: test
app: nginx
annotations:
config.kubernetes.io/index: "0"
config.kubernetes.io/path: config/test_deployment.yaml
config.kubernetes.io/index: '0'
config.kubernetes.io/path: 'config/test_deployment.yaml'
spec:
replicas: 11
selector:
@@ -216,8 +216,8 @@ items:
name: test
app: nginx
annotations:
config.kubernetes.io/index: "0"
config.kubernetes.io/path: config/test_service.yaml
config.kubernetes.io/index: '0'
config.kubernetes.io/path: 'config/test_service.yaml'
spec:
selector:
name: test