OpenShift“无法设置源密码”

时间:2019-04-23 02:25:30

标签: node.js openshift openshift-online

当我尝试构建项目时,控制台中唯一出现以下错误

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。与需要推/拉机密有关吗?

任何帮助将不胜感激

还想补充一点,在构建配置上使用关键的上下文内生成器不起作用,我得到一个提取源错误。但是进入“资源”并创建通用机密确实可以。对此的任何建议也将很好

1 个答案:

答案 0 :(得分:0)

您收到此错误的原因是您的 Secret 对象缺少正确的“类型”。

您在 Creating Build Inputs

中看到了一些示例

以下示例将演示该问题(使用时),因为它仅使用通用的 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 ...