首页 > 解决方案 > Openshift:无法使用文件添加秘密

问题描述

我无法使用以下命令从文件中添加秘密:

oc 创建 -f /tmp/config.json

输出:错误:无法解码“/tmp/config.json”:'{ 中缺少对象'Kind'

# cat /tmp/config.json 

    {
        "auths": {
            "my-repo-location" : {
                "auth": "ZTAxODE0W5V1yndNfoUdYWjRNtU="
            }
        }
    }

标签: openshiftopenshift-originopenshift-client-toolsopenshift-3openshift-enterprise

解决方案


正如@WillGordon 的评论所指出的,您可以使用oc create secret generic,如下例所示:

$ cat config.json 
    {
        "auths": {
            "my-repo-location" : {
                "auth": "ZTAxODE0W5V1yndNfoUdYWjRNtU="
            }
        }
    }


$ oc create secret generic config --from-file=./config.json
secret/config created

$ oc get secret config -o yaml
apiVersion: v1
data:
  config.json: ICAgIHsKICAgICAgICAiYXV0aHMiOiB7CiAgICAgICAgICAgICJteS1yZXBvLWxvY2F0aW9uIiA6IHsKICAgICAgICAgICAgICAgICJhdXRoIjogIlpUQXhPREUwVzVWMXluZE5mb1VkWVdqUk50VT0iCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cg==
kind: Secret
metadata:
  creationTimestamp: 2020-01-10T15:00:21Z
  name: config
  namespace: next
  resourceVersion: "46478941"
  selfLink: /api/v1/namespaces/next/secrets/config
  uid: ec4a4538-33b9-11ea-a9de-005056b7c210
type: Opaque
$

但是,如果创建用于访问 Docker 注册表的密钥,您可以使用该docker-registry选项,如下所示:

oc create secret docker-registry SECRET_NAME \
       --docker-server=DOCKER-IMAGE-REPOSITORY \
       --docker-username=username@email.com \
       --docker-password="password" \
       --docker-email=username@email.com

推荐阅读