使用hvac从Kubernetes获取令牌登录Vault遇弃用警告,求新写法
解决HVAC Kubernetes认证弃用警告的代码重写
以下是适配新API的重写代码,替换原有的弃用方法:
import hvac from hvac.api.auth_methods.kubernetes import Kubernetes # 初始化Vault客户端 client = hvac.Client(url="https://vault.xxx.yyy.zzz.com/") # 读取Kubernetes ServiceAccount Token(使用with语句确保文件资源正确释放) with open('/var/run/secrets/kubernetes.io/serviceaccount/token', 'r') as f: jwt = f.read().strip() # 实例化Kubernetes认证组件并执行登录 k8s_auth = Kubernetes(client.adapter) k8s_auth.login( role="my-app", jwt=jwt )
关键修改点:
- 新增导入
Kubernetes认证类,这是HVAC 1.0.0版本官方推荐的认证方式 - 改用
with语句读取token文件,避免手动管理文件句柄导致的资源泄漏 - 明确使用关键字参数传递
role和jwt,提升代码可读性和可维护性 - 通过客户端的
adapter实例化Kubernetes认证对象,保持与原客户端的关联
内容的提问来源于stack exchange,提问作者Europa
相关产品推荐
相关产品推荐

