我正在使用 helm cli v3.11.0 并尝试执行
helm list
。出于某种原因,我收到以下错误消息:
Error: list: failed to list: secrets is forbidden: User "developer" cannot list resource "secrets" in API group "" in the namespace
虽然我没有问任何秘密:)
有没有办法在不询问我没有权限的实例的情况下列出 helm 版本?
Helm 通常 将其状态存储在 Secret 对象中,因此已安装的历史记录和值存在于 Secrets 中。在正常设置下,运行
helm
命令的用户需要 RBAC 权限才能在目标命名空间中读取和写入 Secrets。这通常不是问题,因为 chart 会经常包含一个 Secret,而安装 chart 的行为必然会在集群中创建新资源。
helm list
可能只需要对 Secrets 的“获取”和“列出”权限,但您将需要一些权限。未经许可,您无法读取存储在集群中的状态。
链接的文档指出,可以将状态存储在其他地方,例如 ConfigMap 或 SQL 数据库。您仍然需要权限才能读取数据库中的 ConfigMap 或凭据。该文档还指出,Helm 状态包含 Helm 图表的全部输入——有足够的信息来
helm get values
——这可能包括密码和其他凭据等内容;因此,如果您故意没有权限读回 Secrets,您可能也不应该有权限读取 Helm 值,因此也没有权限读取 Helm 状态。