如何解决Nextflow没有使用正确的服务帐户将工作流部署到kubernetes
我们正在尝试在非默认的k8s命名空间上使用nextflow,我们使用的命名空间为nextflownamespace
。我们已经创建了PVC,并确保默认服务帐户具有管理员角色绑定。我们收到一个错误,表明nextflow无法访问PVC:
"message": "persistentvolumeclaims \"my-nextflow-pvc\" is forbidden:
User \"system:serviceaccount:mynamespace:default\" cannot get resource
\"persistentvolumeclaims\" in API group \"\" in the namespace \"nextflownamespace\"",
在该错误中,我们看到system:serviceaccount:mynamespace:default
错误地指向我们的默认名称空间mynamespace
,而不是我们创建供下一个流程使用的nextflownamespace
。
我们尝试将debug.yaml = true
添加到nextflow.config
中,但是找不到提交给k8的YAML以验证错误。我们的配置文件如下所示:
profiles {
standard {
k8s {
executor = "k8s"
namespace = "nextflownamespace"
cpus = 1
memory = 1.GB
debug.yaml = true
}
aws{
endpoint = "https://s3.nautilus.optiputer.net"
}
}
我们确实验证了当我们将命名空间更改为另一个任意值时,错误消息使用了新的任意命名空间,但是服务帐户名继续错误地指向用户的默认命名空间。
我们尝试了我们可以想到的profiles.standard.k8s.serviceAccount = "system:serviceaccount:nextflownamespace:default"
的所有变体,但这些尝试并没有带来任何改变。
解决方法
我认为最好避免在Nextflow中使用嵌套的config profiles。我会从您的个人资料中删除“标准”图层,或者只是将“标准”设为单独的个人资料:
profiles {
standard {
process.executor = 'local'
}
k8s {
executor = "k8s"
namespace = "nextflownamespace"
cpus = 1
memory = 1.GB
debug.yaml = true
}
aws{
endpoint = "https://s3.nautilus.optiputer.net"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。