Kubernetes - 在一行中使用 cli 创建带有标签的秘密
Kubernetes - create secret with a label using cli in a single line
我可以像这样使用单行命令创建一个秘密:
kubectl -n myns create secret generic my-secret --from-literal=type=super --from-literal=url=example.com --from-file=samples=sample.txt
但创建时缺少标签。我想将其保留为单行命令。
我可以传入标签参数还是需要再次调用来修改创建的秘密?
这完全取决于您对“单行”的定义。这是一行:
$ kubectl -n myns create secret generic my-secret \
--from-literal=type=super \
--from-literal=url=example.com \
--from-file=samples=sample.txt -o json --dry-run=client |
jq '.metadata.labels |= {"foo":"bar"}' |
kubectl apply -f-
我们创建秘密,将其作为 JSON 发送到标准输出,使用 jq
修改 JSON,然后将结果通过管道传输到 kubectl apply -f-
.
前两个命令的输出是:
{
"kind": "Secret",
"apiVersion": "v1",
"metadata": {
"name": "my-secret",
"namespace": "myns",
"creationTimestamp": null,
"labels": {
"foo": "bar"
}
},
"data": {
"samples": "dGhpcyBpcyBhIHRlc3QK",
"type": "c3VwZXI=",
"url": "ZXhhbXBsZS5jb20="
}
}
kubectl create secret
命令中没有添加标签的选项。
您将需要 运行 第二个命令来添加标签:
kubectl label secret my-secret -n myns "foo=bar"
但从技术上讲,您可以在一行中完成,例如:
kubectl create secret generic my-secret ... && kubectl label secret my-secret "foo=bar"
或者像那样做,这对工作保障来说更好。
我可以像这样使用单行命令创建一个秘密:
kubectl -n myns create secret generic my-secret --from-literal=type=super --from-literal=url=example.com --from-file=samples=sample.txt
但创建时缺少标签。我想将其保留为单行命令。
我可以传入标签参数还是需要再次调用来修改创建的秘密?
这完全取决于您对“单行”的定义。这是一行:
$ kubectl -n myns create secret generic my-secret \
--from-literal=type=super \
--from-literal=url=example.com \
--from-file=samples=sample.txt -o json --dry-run=client |
jq '.metadata.labels |= {"foo":"bar"}' |
kubectl apply -f-
我们创建秘密,将其作为 JSON 发送到标准输出,使用 jq
修改 JSON,然后将结果通过管道传输到 kubectl apply -f-
.
前两个命令的输出是:
{
"kind": "Secret",
"apiVersion": "v1",
"metadata": {
"name": "my-secret",
"namespace": "myns",
"creationTimestamp": null,
"labels": {
"foo": "bar"
}
},
"data": {
"samples": "dGhpcyBpcyBhIHRlc3QK",
"type": "c3VwZXI=",
"url": "ZXhhbXBsZS5jb20="
}
}
kubectl create secret
命令中没有添加标签的选项。
您将需要 运行 第二个命令来添加标签:
kubectl label secret my-secret -n myns "foo=bar"
但从技术上讲,您可以在一行中完成,例如:
kubectl create secret generic my-secret ... && kubectl label secret my-secret "foo=bar"
或者像