我可以使用單行命令創建一個秘密,如下所示:
kubectl -n myns create secret generic my-secret --from-literal=type=super --from-literal=url=example.com --from-file=samples=sample.txt
但是它在創建時缺少標簽。我想將其保留為單行命令。
我可以傳入標簽引數還是需要再次呼叫來修改創建的秘密?
uj5u.com熱心網友回復:
這完全取決于您對“單行”的定義。這是一行:
$ 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 發送到標準輸出,使用 修改 JSON jq,然后將結果通過管道傳輸到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="
}
}
uj5u.com熱心網友回復:
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"
或者按照@larsks 建議的那樣做,這對作業保障更好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/485729.html
標籤:Kubernetes
