python - 使用 kubernetes python cli 列出命名空间中的证书
问题描述
如何使用kubernetes python cli列出所有证书并在特定命名空间中进行描述?
# list certificates
kubectl get certificates -n my-namespace
# describe a certificate
kubectl describe certificate my-certificate -n my-namespace
解决方案
Kubernetes 默认没有 kind certificate
,你必须先安装cert-manager 的 CustomResourceDefinition
。
考虑到上述情况意味着在 Kuberentes Python 客户端中,我们必须使用自定义对象 API,尤其是在您的情况下:函数list_namespaced_custom_object()
和get_namespaced_custom_object()
.
下面的代码有两个功能,一个是返回所有证书(相当于kubectl get certificates
命令),第二个是返回一个特定证书的信息(相当于kubectl describe certificate {certificate-name}
命令)。基于此示例代码:
from kubernetes import client, config
config.load_kube_config()
api = client.CustomObjectsApi()
# kubectl get certificates -n my-namespace
def list_certificates():
resources = api.list_namespaced_custom_object(
group = "cert-manager.io",
version = "v1",
namespace = "my-namespace",
plural = "certificates"
)
return resources
# kubectl describe certificate my-certificate -n my-namespace
def get_certificate():
resource = api.get_namespaced_custom_object(
group = "cert-manager.io",
version = "v1",
name = "my-certificate",
namespace = "my-namespace",
plural = "certificates"
)
return resource
请记住,这两个函数都返回Python 字典。
推荐阅读
- kotlin - 有没有办法让 NavigationView 占用更少的代码(Kotlin)
- nginx - nginx 代理服务器上的连接问题(可能是 socket.io 问题)
- java - 在 ANTLR4 词法分析器中,如何定义用例后面的负面外观
- azure - 在 JWT 令牌中包含 AAD 组名称
- javascript - 如何使用 jest 访问导出函数的对象以进行单元测试
- spring-boot - 是否可以在 Spring Boot 中设置没有注释的 http 路由?
- linux - 我想在我的 linux 服务器 (.sh) 中设置 cron 作业。但我有一个错误
- .net - 在c#中拆分字符串,但一个术语由“,”组成,所以我不希望它被拆分?我试过这个
- istio - 服务是否必须启用 sidecar 才能使 istio 速率限制起作用?
- c - 在 MTD 上超越 EOF