forked from LaconicNetwork/kompose
Remove duplicate of configmap (#1206)
* also change the name of the generated cm
This commit is contained in:
parent
4cbe106351
commit
73ec0abab2
@ -581,6 +581,30 @@ func (k *Kubernetes) SortServicesFirst(objs *[]runtime.Object) {
|
||||
*objs = ret
|
||||
}
|
||||
|
||||
// RemoveDupObjects remove objects that are dups...eg. configmaps from env.
|
||||
// since we know for sure that the duplication can only happends on ConfigMap, so
|
||||
// this code will looks like this for now.
|
||||
func (k *Kubernetes) RemoveDupObjects(objs *[]runtime.Object) {
|
||||
var result []runtime.Object
|
||||
exist := map[string]bool{}
|
||||
for _, obj := range *objs {
|
||||
if us, ok := obj.(*api.ConfigMap); ok {
|
||||
k := us.GroupVersionKind().String() + us.GetNamespace() + us.GetName()
|
||||
if exist[k] {
|
||||
log.Debugf("Remove duplicate configmap: %s", us.GetName())
|
||||
continue
|
||||
} else {
|
||||
result = append(result, obj)
|
||||
exist[k] = true
|
||||
}
|
||||
} else {
|
||||
result = append(result, obj)
|
||||
}
|
||||
|
||||
}
|
||||
*objs = result
|
||||
}
|
||||
|
||||
// SortedKeys Ensure the kubernetes objects are in a consistent order
|
||||
func SortedKeys(komposeObject kobject.KomposeObject) []string {
|
||||
var sortedKeys []string
|
||||
|
||||
@ -250,7 +250,7 @@ func (k *Kubernetes) InitConfigMapForEnv(name string, service kobject.ServiceCon
|
||||
APIVersion: "v1",
|
||||
},
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Name: name + "-" + envName,
|
||||
Name: envName,
|
||||
Labels: transformer.ConfigLabels(name + "-" + envName),
|
||||
},
|
||||
Data: envs,
|
||||
@ -835,7 +835,7 @@ func (k *Kubernetes) ConfigEnvs(name string, service kobject.ServiceConfig, opt
|
||||
ValueFrom: &api.EnvVarSource{
|
||||
ConfigMapKeyRef: &api.ConfigMapKeySelector{
|
||||
LocalObjectReference: api.LocalObjectReference{
|
||||
Name: name + "-" + envName,
|
||||
Name: envName,
|
||||
},
|
||||
Key: k,
|
||||
}},
|
||||
@ -1097,6 +1097,7 @@ func (k *Kubernetes) Transform(komposeObject kobject.KomposeObject, opt kobject.
|
||||
|
||||
// sort all object so Services are first
|
||||
k.SortServicesFirst(&allobjects)
|
||||
k.RemoveDupObjects(&allobjects)
|
||||
|
||||
return allobjects, nil
|
||||
}
|
||||
|
||||
@ -427,6 +427,7 @@ func (o *OpenShift) Transform(komposeObject kobject.KomposeObject, opt kobject.C
|
||||
|
||||
// sort all object so Services are first
|
||||
o.SortServicesFirst(&allobjects)
|
||||
o.RemoveDupObjects(&allobjects)
|
||||
|
||||
return allobjects, nil
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@
|
||||
"name": "ALLOW_EMPTY_PASSWORD",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "redis-foo-env",
|
||||
"name": "foo-env",
|
||||
"key": "ALLOW_EMPTY_PASSWORD"
|
||||
}
|
||||
}
|
||||
@ -88,7 +88,7 @@
|
||||
"name": "BAR",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "redis-bar-env",
|
||||
"name": "bar-env",
|
||||
"key": "BAR"
|
||||
}
|
||||
}
|
||||
@ -97,7 +97,7 @@
|
||||
"name": "FOO",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "redis-bar-env",
|
||||
"name": "bar-env",
|
||||
"key": "FOO"
|
||||
}
|
||||
}
|
||||
@ -117,7 +117,7 @@
|
||||
"kind": "ConfigMap",
|
||||
"apiVersion": "v1",
|
||||
"metadata": {
|
||||
"name": "redis-foo-env",
|
||||
"name": "foo-env",
|
||||
"creationTimestamp": null,
|
||||
"labels": {
|
||||
"io.kompose.service": "redis-foo-env"
|
||||
@ -131,7 +131,7 @@
|
||||
"kind": "ConfigMap",
|
||||
"apiVersion": "v1",
|
||||
"metadata": {
|
||||
"name": "redis-bar-env",
|
||||
"name": "bar-env",
|
||||
"creationTimestamp": null,
|
||||
"labels": {
|
||||
"io.kompose.service": "redis-bar-env"
|
||||
|
||||
6
script/test/fixtures/env/docker-compose.yml
vendored
6
script/test/fixtures/env/docker-compose.yml
vendored
@ -10,4 +10,8 @@ services:
|
||||
- ./hadoop-hive-namenode.env
|
||||
ports:
|
||||
- "50070:50070"
|
||||
- "8020:8020"
|
||||
- "8020:8020"
|
||||
another-namenode:
|
||||
image: bde2020/hadoop-namenode:2.0.0-hadoop2.7.4-java8
|
||||
env_file:
|
||||
- ./hadoop-hive-namenode.env
|
||||
96
script/test/fixtures/env/output-k8s.json
vendored
96
script/test/fixtures/env/output-k8s.json
vendored
@ -38,6 +38,83 @@
|
||||
"loadBalancer": {}
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "Deployment",
|
||||
"apiVersion": "extensions/v1beta1",
|
||||
"metadata": {
|
||||
"name": "another-namenode",
|
||||
"creationTimestamp": null,
|
||||
"labels": {
|
||||
"io.kompose.service": "another-namenode"
|
||||
},
|
||||
"annotations": {
|
||||
"kompose.cmd": "%CMD%",
|
||||
"kompose.version": "%VERSION%"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"replicas": 1,
|
||||
"template": {
|
||||
"metadata": {
|
||||
"creationTimestamp": null,
|
||||
"labels": {
|
||||
"io.kompose.service": "another-namenode"
|
||||
},
|
||||
"annotations": {
|
||||
"kompose.cmd": "%CMD%",
|
||||
"kompose.version": "%VERSION%"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"containers": [
|
||||
{
|
||||
"name": "another-namenode",
|
||||
"image": "bde2020/hadoop-namenode:2.0.0-hadoop2.7.4-java8",
|
||||
"env": [
|
||||
{
|
||||
"name": "BAR",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "hadoop-hive-namenode-env",
|
||||
"key": "BAR"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "FOO",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "hadoop-hive-namenode-env",
|
||||
"key": "FOO"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"resources": {}
|
||||
}
|
||||
],
|
||||
"restartPolicy": "Always"
|
||||
}
|
||||
},
|
||||
"strategy": {}
|
||||
},
|
||||
"status": {}
|
||||
},
|
||||
{
|
||||
"kind": "ConfigMap",
|
||||
"apiVersion": "v1",
|
||||
"metadata": {
|
||||
"name": "hadoop-hive-namenode-env",
|
||||
"creationTimestamp": null,
|
||||
"labels": {
|
||||
"io.kompose.service": "another-namenode-hadoop-hive-namenode-env"
|
||||
}
|
||||
},
|
||||
"data": {
|
||||
"BAR": "FOO",
|
||||
"FOO": "BAR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "Deployment",
|
||||
"apiVersion": "extensions/v1beta1",
|
||||
@ -91,7 +168,7 @@
|
||||
"name": "BAR",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "namenode-hadoop-hive-namenode-env",
|
||||
"name": "hadoop-hive-namenode-env",
|
||||
"key": "BAR"
|
||||
}
|
||||
}
|
||||
@ -104,7 +181,7 @@
|
||||
"name": "FOO",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "namenode-hadoop-hive-namenode-env",
|
||||
"name": "hadoop-hive-namenode-env",
|
||||
"key": "FOO"
|
||||
}
|
||||
}
|
||||
@ -128,21 +205,6 @@
|
||||
},
|
||||
"status": {}
|
||||
},
|
||||
{
|
||||
"kind": "ConfigMap",
|
||||
"apiVersion": "v1",
|
||||
"metadata": {
|
||||
"name": "namenode-hadoop-hive-namenode-env",
|
||||
"creationTimestamp": null,
|
||||
"labels": {
|
||||
"io.kompose.service": "namenode-hadoop-hive-namenode-env"
|
||||
}
|
||||
},
|
||||
"data": {
|
||||
"BAR": "FOO",
|
||||
"FOO": "BAR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "PersistentVolumeClaim",
|
||||
"apiVersion": "v1",
|
||||
|
||||
118
script/test/fixtures/env/output-os.json
vendored
118
script/test/fixtures/env/output-os.json
vendored
@ -42,10 +42,10 @@
|
||||
"kind": "ConfigMap",
|
||||
"apiVersion": "v1",
|
||||
"metadata": {
|
||||
"name": "namenode-hadoop-hive-namenode-env",
|
||||
"name": "hadoop-hive-namenode-env",
|
||||
"creationTimestamp": null,
|
||||
"labels": {
|
||||
"io.kompose.service": "namenode-hadoop-hive-namenode-env"
|
||||
"io.kompose.service": "another-namenode-hadoop-hive-namenode-env"
|
||||
}
|
||||
},
|
||||
"data": {
|
||||
@ -53,6 +53,116 @@
|
||||
"FOO": "BAR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "DeploymentConfig",
|
||||
"apiVersion": "v1",
|
||||
"metadata": {
|
||||
"name": "another-namenode",
|
||||
"creationTimestamp": null,
|
||||
"labels": {
|
||||
"io.kompose.service": "another-namenode"
|
||||
},
|
||||
"annotations": {
|
||||
"kompose.cmd": "%CMD%",
|
||||
"kompose.version": "%VERSION%"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"strategy": {
|
||||
"resources": {}
|
||||
},
|
||||
"triggers": [
|
||||
{
|
||||
"type": "ConfigChange"
|
||||
},
|
||||
{
|
||||
"type": "ImageChange",
|
||||
"imageChangeParams": {
|
||||
"automatic": true,
|
||||
"containerNames": [
|
||||
"another-namenode"
|
||||
],
|
||||
"from": {
|
||||
"kind": "ImageStreamTag",
|
||||
"name": "another-namenode:2.0.0-hadoop2.7.4-java8"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"replicas": 1,
|
||||
"test": false,
|
||||
"selector": {
|
||||
"io.kompose.service": "another-namenode"
|
||||
},
|
||||
"template": {
|
||||
"metadata": {
|
||||
"creationTimestamp": null,
|
||||
"labels": {
|
||||
"io.kompose.service": "another-namenode"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"containers": [
|
||||
{
|
||||
"name": "another-namenode",
|
||||
"image": " ",
|
||||
"env": [
|
||||
{
|
||||
"name": "BAR",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "hadoop-hive-namenode-env",
|
||||
"key": "BAR"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "FOO",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "hadoop-hive-namenode-env",
|
||||
"key": "FOO"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"resources": {}
|
||||
}
|
||||
],
|
||||
"restartPolicy": "Always"
|
||||
}
|
||||
}
|
||||
},
|
||||
"status": {}
|
||||
},
|
||||
{
|
||||
"kind": "ImageStream",
|
||||
"apiVersion": "v1",
|
||||
"metadata": {
|
||||
"name": "another-namenode",
|
||||
"creationTimestamp": null,
|
||||
"labels": {
|
||||
"io.kompose.service": "another-namenode"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"tags": [
|
||||
{
|
||||
"name": "2.0.0-hadoop2.7.4-java8",
|
||||
"annotations": null,
|
||||
"from": {
|
||||
"kind": "DockerImage",
|
||||
"name": "bde2020/hadoop-namenode:2.0.0-hadoop2.7.4-java8"
|
||||
},
|
||||
"generation": null,
|
||||
"importPolicy": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"status": {
|
||||
"dockerImageRepository": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "DeploymentConfig",
|
||||
"apiVersion": "v1",
|
||||
@ -128,7 +238,7 @@
|
||||
"name": "BAR",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "namenode-hadoop-hive-namenode-env",
|
||||
"name": "hadoop-hive-namenode-env",
|
||||
"key": "BAR"
|
||||
}
|
||||
}
|
||||
@ -141,7 +251,7 @@
|
||||
"name": "FOO",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"name": "namenode-hadoop-hive-namenode-env",
|
||||
"name": "hadoop-hive-namenode-env",
|
||||
"key": "FOO"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user