Comments (6)
This issue is currently awaiting triage.
SIG CLI takes a lead on issue triage for this repo, but any Kubernetes member can accept issues by applying the triage/accepted
label.
The triage/accepted
label can be added by org members by writing /triage accepted
in a comment.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
from kustomize.
Potentially related to: #5124
from kustomize.
from kustomize.
This problem kinda sucks because the original YAML will have quotes that are not preserved between the conversion of kustomize template->JSON->YAML, and if we desire to keep them, there's no way to indicate to kustomize that they shouldn't be removed. Suppose we start with this YAML kustomize template:
apiVersion: v1
kind: ConfigMap
data:
test1: "${TEMPLATE_VAR1}"
test2: "{TEMPLATE_VAR2}"
test3: "true"
test4: "test4"
metadata:
name: config
When executing kustomize build
, it'll read the kustomization.yaml file and render the manifest. I've narrowed the path down to the JSONToYAML()
function used by the build
command here:
kustomize/api/resource/resource.go
Line 371 in 33caee5
This function is supposed to take a JSON byte array and turns it into valid YAML:
JSON:
{"apiVersion":"v1","data":{"test1":"${TEMPLATE_VAR1}","test2":"{TEMPLATE_VAR2}","test3":"true","test4":"test4"},"kind":"ConfigMap","metadata":{"name":"config"}}
FINAL RESULT
apiVersion: v1
data:
test1: ${TEMPLATE_VAR1}
test2: '{TEMPLATE_VAR2}'
test3: "true"
test4: test4
kind: ConfigMap
metadata:
name: config
My assumption is that any string that isnβt already a valid JSON type (such as a sub structure with {}
or a boolean true
) gets its quotes stripped (You can test the code out in this playground link: https://go.dev/play/p/rFUUlFjPk5f):
from kustomize.
This may be related to #5432
/assign
from kustomize.
Our investigation suggests that the YAML parser is doing the right thing, but the fact that quotes are removed when we explicitly need them, and there appears to be no way to force them to be kept, is very problematic in our use case.
from kustomize.
Related Issues (20)
- Changing .kind breaks nameReference transformer (at least) HOT 2
- Large Binary Size Increase due to Dependencies on Go's Dynamic Plugin Loader HOT 1
- Semver parsing does not terminate CRLF making it returns v0.0.0 when parsing HOT 4
- Labels support for Transformer Configurations HOT 8
- Container section gets overrriden when patching CronJob (batch/v1) HOT 1
- Replacements in components does not behave as expected HOT 9
- Add verbose and/or debug logging to kustomize command HOT 1
- git retrieval failures (such as a timeout) are not reported in certain scenarios HOT 2
- Bases deprecated - multiple resources in kustomization.yaml causes previous to be overwritten HOT 4
- Document the `fields` option for the `labels` built-in transformer HOT 4
- patches cause an error with $patch:delete in files with multiple patches HOT 1
- Documentation site not indexed by search engines HOT 2
- Buil fails when using components and strategic merge patch and null node HOT 2
- kustomize install from binaries with curl no longer working HOT 1
- Allow Helm Chart Overlay Merges HOT 1
- When using ConfigMapGenerator merge as a resource. says "cannot merge or replace" HOT 3
- Installing through install_kustomize.sh is not working from v5.0.1 HOT 2
- Standardized behavior for `kustomize edit` HOT 1
- Define labels selector with crds HOT 1
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 kustomize.