我有以下代码:
secret, err = d.serviceClient.Secrets(namespace).Get(secret.Name, metav1.GetOptions{})
if err != nil {
// If not found, create a new secret
if _, err := d.serviceClient.Secrets(namespace).Create(secret); err != nil {
return errors.Wrap(err, "error creating user secrets")
}
}
以及生成 secret 的代码:
func generateDatabaseSecret(message types.Deployment) *apiv1.Secret {
data := map[string][]byte{
"TEST": []byte("test"),
}
object := metav1.ObjectMeta{Name: "test"}
secret := &v1.Secret{Data: data, ObjectMeta: object}
output, _ := json.Marshal(secret)
log.Println(string(output))
return secret
}
但是,当我对我的 Kubernetes 集群运行上述命令时,我收到以下错误:
error creating user secrets: Secret "" is invalid: metadata.name: Required value: name or generateName is required
即使 JSON 编码的 secret 如下:
{"metadata":{"name":"test","creationTimestamp":null},"data":{"TEST":"bG9jYWxsb3N0"}
我在这里错过了一些非常明显的东西吗?这没有任何意义
最佳答案
正如 David Maze 在评论中悲伤的那样,你调用了错误的方法 Create
而不是 generateDatabaseSecret
.
关于go - 使用 Golang 客户端在 Kubernetes 中创建 Secret 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62281630/