您收到此错误的原因是您的 Secret 对象缺少正确的“类型”。
您可以在创建构建输入中看到一些示例
这是一个演示问题的示例(使用时),因为它只使用通用的不透明密钥。因此,构建机器不知道如何处理它(因此,没有处理程序)
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 ...