kubernetes - YAML 中的块标量样式折叠多行在 k8s 中通过 kubectl 不起作用
问题描述
我kubectl apply
为这个文件运行:
apiVersion: v1
kind: ConfigMap
metadata:
name: test
namespace: test
data:
folded: >-
{
"field1": 1,
"test2": "test"
}
literal: |-
{
"field1": 1,
"test2": "test"
}
single-quoted:
'{
"field1": 1,
"test2": "test"
}'
运行后我得到了这个结果kubectl describe
:
Data
====
folded:
----
{
"field1": 1,
"test2": "test"
}
literal:
----
{
"field1": 1,
"test2": "test"
}
single-quoted:
----
{ "field1": 1, "test2": "test" }
根据文档,如果我做对了,我期望folded
与 相同single-quoted
,即在一行中,但这不会发生。难道我做错了什么?
解决方案
这实际上是设计使然,并且由于 json 中有额外的空格:
如果您在折叠样式的非第一行的开头插入额外的空格,它们将被保留,并带有一个额外的换行符。(流样式不会发生这种情况。)YAML 1.2.2 规范的第 6.5 节:
此外,折叠不适用于包含前导空白的文本行周围的换行符。请注意,这样一个缩进更多的行可能只包含这样的前导空格。
这将按我的预期工作:
apiVersion: v1
kind: ConfigMap
metadata:
name: test
namespace: test
data:
folded: >-
{
"field1": 1,
"test2": "test"
}
推荐阅读
- php - 使用 jQuery $.post 方法设置的 php 变量
- mobile - ThemeForest 中的一些移动模板所使用的 Epsilon 框架是什么?
- php - 将数据插入数据库时出错
- c# - 自动映射器 N 到 N
- svn - Subversion 的 Active Directory 身份验证 - 不起作用
- sql - LEAST / GREATEST 列的源标签
- java - 在常量池中获取无效的字节标签:19
- shell - Shell 命令在 Jenkins 管道中不起作用
- python-sphinx - 脚注作为与 reStructuredText 和 Sphinx 的上标链接
- nginx - Datadog 与 NGiNX 的集成