【发布时间】:2022-01-12 12:34:51
【问题描述】:
我有下面的sn-p
func fakeGetInclusterConfig() (*corev1.ConfigMap, error) {
configMap := &corev1.ConfigMap{
Data: map[string]map[string]string{"cluster-config.json":{
"cluster_id":"xxx",
"cluster_name":"yyy",
"cluster_type":"zzz",
"cluster_pay_tier":"paid",
},
},
}
return configMap, nil
}
但是Data 部分有一些问题。我无法正确声明类型。我尝试了所有我知道的选项,但显然不是正确的选项。请在这里有人帮忙
主要代码期望
configmap, err := cm.GetConfigMap(handler.k8sclient, Configmap, ConfigmapNS)
clusterConfigJSON := configmap.Data["cluster-config.json"]
clusterConfigJSON = strings.Replace(clusterConfigJSON, "\n", "", -1)
clusterConfigJSON = strings.Replace(clusterConfigJSON, " ", "", -1)
var clusterConfigInfo clusterInfo
err = json.Unmarshal([]byte(clusterConfigJSON), &clusterConfigInfo)
if err != nil {
所以我想要一个 cluster-config.json 键的 json 结构。我正在尝试为测试用例创建虚拟数据。
【问题讨论】:
-
什么是
corev1.ConfigMap? -
ConfigMap.Data是一个“简单的”map[string]string,而不是地图的地图。这样做:&corev1.ConfigMap{Data: map[string]string{"cluster_id":"xxx"}} -
但是我必须有一个json来解析细节。我已经添加了更多有问题的细节。
-
配置映射中的值只是字符串;将
Data视为map[string]string以外的任何内容是不正确的。如果需要将结构化数据转储为值,则需要对其进行 JSON 编码。