打印 Kubernetes 中当前上下文的命名空间
Print the namespace of the current context in Kubernetes
我想在 Kubernetes 中打印当前上下文的命名空间。
oc config view -o json
returns 以下输出(为了便于阅读而缩短)
{
"kind": "Config",
"apiVersion": "v1",
"contexts": [
{
"name": "pp2-review/master-ocp-internal-company-com:443/Philippe",
"context": {
"cluster": "master-ocp-internal-company-com:443",
"user": "Philippe",
"namespace": "pp2-review"
}
},
{
"name": "pp2-master/master-ocp-internal-company-com:443/Philippe",
"context": {
"cluster": "master-ocp-internal-company-com:443",
"user": "Philippe",
"namespace": "review"
}
}
],
"current-context": "pp2-review/master-ocp-internal-company-com:443/Philippe"
}
我愿意returnpp2-review
。当前上下文的命名空间。
oc config view -o "jsonpath={$.current-context}"
returns pp2-review/master-ocp-internal-company-com:443/Philippe
.
oc config view -o "jsonpath={.contexts[?(@.name==\"pp2-review/master-ocp-internal-company-com:443/Philippe\")].context.namespace}"
returns pp2-review
.
将它们组合成 oc config view -o "jsonpath={$.contexts[?(@.name==$.current-context)]}"
return没什么。
除了执行第一个命令并将其 return 值放在第二个命令之外,还有其他方法吗?
简单的bash命令替换应该可以完成工作:
oc config view -o "jsonpath={.contexts[?(@.name==\"$(oc config view -o "jsonpath={$.current-context}")\")].context.namespace}"
因为 JSON 路径似乎不起作用。我搜索并找到了使用 Go 模板的解决方案:
> oc config view -o go-template='{{$currentContext := index . "current-context"}}{{- range .contexts -}}{{- if eq .name $currentContext -}}{{ .context.namespace}}{{- end -}}{{- end -}}'
review
这应该有效:
kubectl config view --minify | grep namespace:
此命令将显示您当前的上下文和命名空间。 --minify
标志意味着只有关于当前上下文的详细信息将是 return:
kubectl config view --minify
我想在 Kubernetes 中打印当前上下文的命名空间。
oc config view -o json
returns 以下输出(为了便于阅读而缩短)
{
"kind": "Config",
"apiVersion": "v1",
"contexts": [
{
"name": "pp2-review/master-ocp-internal-company-com:443/Philippe",
"context": {
"cluster": "master-ocp-internal-company-com:443",
"user": "Philippe",
"namespace": "pp2-review"
}
},
{
"name": "pp2-master/master-ocp-internal-company-com:443/Philippe",
"context": {
"cluster": "master-ocp-internal-company-com:443",
"user": "Philippe",
"namespace": "review"
}
}
],
"current-context": "pp2-review/master-ocp-internal-company-com:443/Philippe"
}
我愿意returnpp2-review
。当前上下文的命名空间。
oc config view -o "jsonpath={$.current-context}"
returns pp2-review/master-ocp-internal-company-com:443/Philippe
.
oc config view -o "jsonpath={.contexts[?(@.name==\"pp2-review/master-ocp-internal-company-com:443/Philippe\")].context.namespace}"
returns pp2-review
.
将它们组合成 oc config view -o "jsonpath={$.contexts[?(@.name==$.current-context)]}"
return没什么。
除了执行第一个命令并将其 return 值放在第二个命令之外,还有其他方法吗?
简单的bash命令替换应该可以完成工作:
oc config view -o "jsonpath={.contexts[?(@.name==\"$(oc config view -o "jsonpath={$.current-context}")\")].context.namespace}"
因为 JSON 路径似乎不起作用。我搜索并找到了使用 Go 模板的解决方案:
> oc config view -o go-template='{{$currentContext := index . "current-context"}}{{- range .contexts -}}{{- if eq .name $currentContext -}}{{ .context.namespace}}{{- end -}}{{- end -}}'
review
这应该有效:
kubectl config view --minify | grep namespace:
此命令将显示您当前的上下文和命名空间。 --minify
标志意味着只有关于当前上下文的详细信息将是 return:
kubectl config view --minify