mirror of https://github.com/helm/helm
helm template trims the release manifest with TrimSpace, losing intentional trailing newlines from its final document. Its hook, --show-only and file writers can instead add an extra newline. Keep the assembled output as []byte and write it directly, without trimming. For hooks, selected manifests and output files, remove at most one newline before the format string restores it. Each document stays newline-terminated without adding or dropping authored blank lines. Add golden-file coverage for stdout, --no-hooks, reordered --show-only and --output-dir. A fixture chart covers zero, one and two trailing newlines, including multiple regular and hook documents per file. Signed-off-by: 胡玮文 <huweiwen.hww@alibaba-inc.com>pull/32683/head
parent
bcc3acd9fe
commit
2ceaa23818
@ -0,0 +1,25 @@
|
||||
---
|
||||
# Source: trailing-newlines/templates/hooks.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-one-newline
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/hooks.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-two-newlines
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
|
||||
@ -0,0 +1,31 @@
|
||||
---
|
||||
# Source: trailing-newlines/templates/00-no-newline.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-no-newline
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/regular.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-one-newline
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/regular.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-two-newlines
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
|
||||
@ -0,0 +1,12 @@
|
||||
---
|
||||
# Source: trailing-newlines/templates/00-no-newline-hook.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-no-newline
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
@ -0,0 +1,10 @@
|
||||
---
|
||||
# Source: trailing-newlines/templates/00-no-newline.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-no-newline
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
@ -0,0 +1,21 @@
|
||||
---
|
||||
# Source: trailing-newlines/templates/regular.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-one-newline
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/regular.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-two-newlines
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
|
||||
@ -0,0 +1,68 @@
|
||||
---
|
||||
# Source: trailing-newlines/templates/hooks.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-one-newline
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/hooks.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-two-newlines
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
|
||||
---
|
||||
# Source: trailing-newlines/templates/00-no-newline-hook.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-no-newline
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/regular.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-one-newline
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/regular.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-two-newlines
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
|
||||
---
|
||||
# Source: trailing-newlines/templates/00-no-newline.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-no-newline
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
@ -0,0 +1,68 @@
|
||||
---
|
||||
# Source: trailing-newlines/templates/00-no-newline.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-no-newline
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/regular.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-one-newline
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/regular.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-two-newlines
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
|
||||
---
|
||||
# Source: trailing-newlines/templates/00-no-newline-hook.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-no-newline
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/hooks.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-one-newline
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
# Source: trailing-newlines/templates/hooks.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-two-newlines
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
apiVersion: v2
|
||||
name: trailing-newlines
|
||||
version: 0.1.0
|
||||
@ -0,0 +1 @@
|
||||
The `00-no-newline*.yaml` templates intentionally have no final newline. The other templates contain two documents ending in one and two newlines, respectively. Keep chomping (`|+`) makes these newlines part of the ConfigMap value.
|
||||
@ -0,0 +1,10 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-no-newline
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
@ -0,0 +1,8 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-no-newline
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
@ -0,0 +1,22 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-one-newline
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hook-two-newlines
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-one-newline
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: regular-two-newlines
|
||||
data:
|
||||
cfg: |+
|
||||
line1
|
||||
line2
|
||||
|
||||
Loading…
Reference in new issue