情况(已解决)
我正在尝试创建一个证书使用cert-manager对ovh在kubernetes.
<标题>证书创建的挑战显示以下错误:
Error presenting challenge: secrets "ovh-credentials" is forbidden: User "system:serviceaccount:default:cert-manager-webhook-ovh-1658181107" cannot get resource "secrets" in API group "" in the namespace "default"
<标题>我检查了ovh-credentials
存在在default namespace
:
$ kubectl get secret -n default
NAME TYPE DATA AGE
ovh-credentials Opaque 1 22m
这是我现在的证书:
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: altarise-registry-cert # name of the certificate
labels:
app.kubernetes.io/name: altarise-registry-cert # name of the certificate
app.kubernetes.io/tier: backend
app.kubernetes.io/managed-by: Ops
spec:
dnsNames:
- registry.altarise.net # name of the domain you want to validate the certificate
issuerRef:
name: ovh-altarise # name of the issuer you created before
kind: Issuer
secretName: altarise-registry-cert
<标题>的决议我发现我把错误的serviceAccount名称放在我的RoleAccount中,可以访问秘密。
标题>标题>标题>将您的解决方案作为答案发布,以提高社区成员的可见度。
错误信息指向默认命名空间的ServiceAccount cert-manager-webhook-ovh。在这种类型的场景中可能有两种可能性,即:
- 一个原因可能是您正在授予不同命名空间的ServiceAccount权限。但是在您的用例中,指定的名称空间已经被正确地提到。
- 另一个可能是角色中提到的服务帐户,而向cert-manager-webhook-ovh服务帐户授予获取秘密的权限可能被错误地提到。因此,请检查Role中提到的Service Account是否正确。
您可以参考Github链接获取更多关于授予权限以获取cert-manager-webhook-ovh服务帐户的秘密的信息。