如何解决在Kubernetes中打印当前上下文的名称空间
我想在Kubernetes中打印当前上下文的名称空间。
oc config view -o json
返回以下输出(出于可读性的考虑而缩短)
{
"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","namespace": "review"
}
}
],"current-context": "pp2-review/master-ocp-internal-company-com:443/Philippe"
}
我想返回pp2-review
。当前上下文的名称空间。
oc config view -o "jsonpath={\$.current-context}"
返回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}"
返回pp2-review
。
将它们组合成oc config view -o "jsonpath={\$.contexts[?(@.name==\$.current-context)]}"
不会返回任何结果。
除了执行第一个命令并将其返回值放入第二个命令之外,还有其他方法吗?
解决方法
简单的 bash命令替换即可完成这项工作:
oc config view -o "jsonpath={.contexts[?(@.name==\"$(oc config view -o "jsonpath={\$.current-context}")\")].context.namespace}"
,
因为JSON路径似乎不起作用。我搜索并找到了使用Go模板的解决方案:
metis
,
这应该有效:
kubectl config view --minify | grep namespace:
此命令将显示您当前的上下文和命名空间。 #include <regex>
std::string s = "SAT";
s = regex_replace(s,std::regex("S"),"TH");
std::cout << s << "\n"; // output: THAT
标志意味着只会返回有关当前上下文的详细信息:
--minify
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。