当我尝试构建项目时,控制台中唯一出现以下错误
error: cannot setup source secret: no auth handler was found for secrets in /var/run/secrets/openshift.io/source
事件“构建已开始”之后。老实说,我不知道这个错误是什么意思,也找不到任何东西。我怀疑这可能与以下情况有关:
a。它没有使用我的package.json,并且遇到了库问题
b。该程序通常会创建内部文件,但无法创建这些文件(据我所知,我已经尝试添加一个卷)尝试在此之前运行console.log,但该文件无法正常工作,因此我无法认为就是这样。
c。与需要推/拉机密有关吗?
任何帮助将不胜感激
还想补充一点,在构建配置上使用关键的上下文内生成器不起作用,我得到一个提取源错误。但是进入“资源”并创建通用机密确实可以。对此的任何建议也将很好
答案 0 :(得分:0)
您收到此错误的原因是您的 Secret 对象缺少正确的“类型”。
中看到了一些示例以下示例将演示该问题(使用时),因为它仅使用通用的 Opaque 密钥。因此,构建机器不知道如何处理它(因此,没有处理程序)
oc create secret generic git-build `
--from-file=ssh-privatekey=openshift_shiny_cameron_laptop
正确的方法(如果使用 oc create
)是指定 --type
。正是这种类型决定了 'ssh-privatekey' 是密钥中的必需密钥。
oc create secret generic git-build `
--type=kubernetes.io/ssh-auth `
--from-file=ssh-privatekey=openshift_shiny_cameron_laptop
如果你想要 YAML,它看起来像这样:
apiVersion: v1
kind: Secret
metadata:
name: git-build
namespace: MY_NAMESPACE
data:
ssh-privatekey: ...
ssh-publickey: ... note that this isn't actually used
type: kubernetes.io/ssh-auth
有关 kubernetes.io/ssh-auth 以外类似值的更多信息,请参阅 Types of Secrets
请注意,您也可以使用它来指定 '.gitconfig' 键...但如果您想指定 known_hosts 键,则需要使用 ConfigMap
这是一个例子:
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
name: EXAMPLE
spec:
lookupPolicy:
local: false
---
kind: BuildConfig
apiVersion: build.openshift.io/v1
metadata:
name: EXAMPLE
spec:
source:
git:
uri: ssh://git.EXAMPLE/project/example.git
configMaps:
- configMap:
name: git-ssh-config
destination_dir: .ssh
strategy:
dockerStrategy: {}
output:
to:
kind: ImageStreamTag
name: "EXAMPLE:latest"
---
apiVersion: v1
kind: ConfigMap
metadata:
name: git-ssh-config
namespace: shiny
data:
known_hosts: |
git.EXAMPLE ssh-rsa ...