From f2ac6061af0792116ea5e25d2dfc4de541d25880 Mon Sep 17 00:00:00 2001 From: AhmedGrati Date: Sun, 23 Jul 2023 20:03:47 +0100 Subject: [PATCH] fix: update loading 'env_file' of docker_compose Signed-off-by: AhmedGrati --- pkg/transformer/kubernetes/k8sutils.go | 11 +- pkg/transformer/kubernetes/kubernetes.go | 5 +- script/test/cmd/tests_new.sh | 2 + script/test/fixtures/env/output-k8s.json | 246 ----------------- script/test/fixtures/env/output-os.json | 326 ----------------------- 5 files changed, 6 insertions(+), 584 deletions(-) delete mode 100644 script/test/fixtures/env/output-k8s.json delete mode 100644 script/test/fixtures/env/output-os.json diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index 90d12fed1f..fa400ffe7c 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -824,16 +824,9 @@ func DurationStrToSecondsInt(s string) (*int64, error) { } // GetEnvsFromFile get env vars from env_file -func GetEnvsFromFile(file string, opt kobject.ConvertOptions) (map[string]string, error) { - // Get the correct file context / directory - composeDir, err := transformer.GetComposeFileDir(opt.InputFiles) - if err != nil { - return nil, errors.Wrap(err, "Unable to load file context") - } - fileLocation := path.Join(composeDir, file) +func GetEnvsFromFile(file string) (map[string]string, error) { - // Load environment variables from file - envLoad, err := godotenv.Read(fileLocation) + envLoad, err := godotenv.Read(file) if err != nil { return nil, errors.Wrap(err, "Unable to read env_file") } diff --git a/pkg/transformer/kubernetes/kubernetes.go b/pkg/transformer/kubernetes/kubernetes.go index b46d6f358f..bc26bb155b 100644 --- a/pkg/transformer/kubernetes/kubernetes.go +++ b/pkg/transformer/kubernetes/kubernetes.go @@ -220,7 +220,7 @@ func (k *Kubernetes) InitSvc(name string, service kobject.ServiceConfig) *api.Se // InitConfigMapForEnv initializes a ConfigMap object func (k *Kubernetes) InitConfigMapForEnv(name string, opt kobject.ConvertOptions, envFile string) *api.ConfigMap { - envs, err := GetEnvsFromFile(envFile, opt) + envs, err := GetEnvsFromFile(envFile) if err != nil { log.Fatalf("Unable to retrieve env file: %s", err) } @@ -1099,12 +1099,11 @@ func ConfigEnvs(service kobject.ServiceConfig, opt kobject.ConvertOptions) ([]ap if len(service.EnvFile) > 0 { // Load each env_file - for _, file := range service.EnvFile { envName := FormatEnvName(file) // Load environment variables from file - envLoad, err := GetEnvsFromFile(file, opt) + envLoad, err := GetEnvsFromFile(file) if err != nil { return envs, errors.Wrap(err, "Unable to read env_file") } diff --git a/script/test/cmd/tests_new.sh b/script/test/cmd/tests_new.sh index 5ce8f05512..f4acdb13a0 100755 --- a/script/test/cmd/tests_new.sh +++ b/script/test/cmd/tests_new.sh @@ -277,3 +277,5 @@ convert::expect_success "$os_cmd" "$os_output" k8s_cmd="kompose -f $KOMPOSE_ROOT/script/test/fixtures/custom-build-push/docker-compose.yaml convert --build-command 'docker build -t ahmedgrati/kompose-test ./script/test/fixtures/custom-build-push' --push-command 'docker push ahmedgrati/kompose-test' --stdout --with-kompose-annotation=false" k8s_output="$KOMPOSE_ROOT/script/test/fixtures/custom-build-push/output-k8s.yaml" convert::expect_success "$os_cmd" "$os_output" + +# Test env_file support diff --git a/script/test/fixtures/env/output-k8s.json b/script/test/fixtures/env/output-k8s.json deleted file mode 100644 index 3485db8d7b..0000000000 --- a/script/test/fixtures/env/output-k8s.json +++ /dev/null @@ -1,246 +0,0 @@ -{ - "kind": "List", - "apiVersion": "v1", - "metadata": {}, - "items": [ - { - "kind": "Service", - "apiVersion": "v1", - "metadata": { - "name": "namenode", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "namenode" - }, - "annotations": { - "kompose.cmd": "%CMD%", - "kompose.version": "%VERSION%" - } - }, - "spec": { - "ports": [ - { - "name": "50070", - "port": 50070, - "targetPort": 50070 - }, - { - "name": "8020", - "port": 8020, - "targetPort": 8020 - } - ], - "selector": { - "io.kompose.service": "namenode" - } - }, - "status": { - "loadBalancer": {} - } - }, - { - "apiVersion": "apps/v1", - "kind": "Deployment", - "metadata": { - "annotations": { - "kompose.cmd": "%CMD%", - "kompose.version": "%VERSION%" - }, - "creationTimestamp": null, - "labels": { - "io.kompose.service": "another-namenode" - }, - "name": "another-namenode" - }, - "spec": { - "replicas": 1, - "selector": { - "matchLabels": { - "io.kompose.service": "another-namenode" - } - }, - "strategy": {}, - "template": { - "metadata": { - "annotations": { - "kompose.cmd": "%CMD%", - "kompose.version": "%VERSION%" - }, - "creationTimestamp": null, - "labels": { - "io.kompose.service": "another-namenode" - } - }, - "spec": { - "containers": [ - { - "env": [ - { - "name": "BAR", - "valueFrom": { - "configMapKeyRef": { - "name": "hadoop-hive-namenode-env", - "key": "BAR" - } - } - }, - { - "name": "FOO", - "valueFrom": { - "configMapKeyRef": { - "name": "hadoop-hive-namenode-env", - "key": "FOO" - } - } - } - ], - "image": "bde2020/hadoop-namenode:2.0.0-hadoop2.7.4-java8", - "imagePullPolicy": "", - "name": "another-namenode", - "resources": {} - } - ], - "restartPolicy": "Always", - "serviceAccountName": "", - "volumes": null - } - } - }, - "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" - } - }, - { - "apiVersion": "apps/v1", - "kind": "Deployment", - "metadata": { - "annotations": { - "kompose.cmd": "%CMD%", - "kompose.version": "%VERSION%" - }, - "creationTimestamp": null, - "labels": { - "io.kompose.service": "namenode" - }, - "name": "namenode" - }, - "spec": { - "replicas": 1, - "selector": { - "matchLabels": { - "io.kompose.service": "namenode" - } - }, - "strategy": { - "type": "Recreate" - }, - "template": { - "metadata": { - "annotations": { - "kompose.cmd": "%CMD%", - "kompose.version": "%VERSION%" - }, - "creationTimestamp": null, - "labels": { - "io.kompose.service": "namenode" - } - }, - "spec": { - "containers": [ - { - "env": [ - { - "name": "BAR", - "valueFrom": { - "configMapKeyRef": { - "name": "hadoop-hive-namenode-env", - "key": "BAR" - } - } - }, - { - "name": "CLUSTER_NAME", - "value": "test" - }, - { - "name": "FOO", - "valueFrom": { - "configMapKeyRef": { - "name": "hadoop-hive-namenode-env", - "key": "FOO" - } - } - } - ], - "image": "bde2020/hadoop-namenode:2.0.0-hadoop2.7.4-java8", - "imagePullPolicy": "", - "name": "namenode", - "ports": [ - { - "containerPort": 50070 - }, - { - "containerPort": 8020 - } - ], - "resources": {}, - "volumeMounts": [ - { - "mountPath": "/hadoop/dfs/name", - "name": "namenode" - } - ] - } - ], - "restartPolicy": "Always", - "serviceAccountName": "", - "volumes": [ - { - "name": "namenode", - "persistentVolumeClaim": { - "claimName": "namenode" - } - } - ] - } - } - }, - "status": {} - }, - { - "kind": "PersistentVolumeClaim", - "apiVersion": "v1", - "metadata": { - "name": "namenode", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "namenode" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "100Mi" - } - } - }, - "status": {} - } - ] -} diff --git a/script/test/fixtures/env/output-os.json b/script/test/fixtures/env/output-os.json deleted file mode 100644 index f8a0e17690..0000000000 --- a/script/test/fixtures/env/output-os.json +++ /dev/null @@ -1,326 +0,0 @@ -{ - "kind": "List", - "apiVersion": "v1", - "metadata": {}, - "items": [ - { - "kind": "Service", - "apiVersion": "v1", - "metadata": { - "name": "namenode", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "namenode" - }, - "annotations": { - "kompose.cmd": "%CMD%", - "kompose.version": "%VERSION%" - } - }, - "spec": { - "ports": [ - { - "name": "50070", - "port": 50070, - "targetPort": 50070 - }, - { - "name": "8020", - "port": 8020, - "targetPort": 8020 - } - ], - "selector": { - "io.kompose.service": "namenode" - } - }, - "status": { - "loadBalancer": {} - } - }, - { - "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": "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", - "metadata": { - "name": "namenode", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "namenode" - }, - "annotations": { - "kompose.cmd": "%CMD%", - "kompose.version": "%VERSION%" - } - }, - "spec": { - "strategy": { - "type": "Recreate", - "resources": {} - }, - "triggers": [ - { - "type": "ConfigChange" - }, - { - "type": "ImageChange", - "imageChangeParams": { - "automatic": true, - "containerNames": [ - "namenode" - ], - "from": { - "kind": "ImageStreamTag", - "name": "namenode:2.0.0-hadoop2.7.4-java8" - } - } - } - ], - "replicas": 1, - "test": false, - "selector": { - "io.kompose.service": "namenode" - }, - "template": { - "metadata": { - "creationTimestamp": null, - "labels": { - "io.kompose.service": "namenode" - } - }, - "spec": { - "volumes": [ - { - "name": "namenode", - "persistentVolumeClaim": { - "claimName": "namenode" - } - } - ], - "containers": [ - { - "name": "namenode", - "image": " ", - "ports": [ - { - "containerPort": 50070 - }, - { - "containerPort": 8020 - } - ], - "env": [ - { - "name": "BAR", - "valueFrom": { - "configMapKeyRef": { - "name": "hadoop-hive-namenode-env", - "key": "BAR" - } - } - }, - { - "name": "CLUSTER_NAME", - "value": "test" - }, - { - "name": "FOO", - "valueFrom": { - "configMapKeyRef": { - "name": "hadoop-hive-namenode-env", - "key": "FOO" - } - } - } - ], - "resources": {}, - "volumeMounts": [ - { - "name": "namenode", - "mountPath": "/hadoop/dfs/name" - } - ] - } - ], - "restartPolicy": "Always" - } - } - }, - "status": {} - }, - { - "kind": "ImageStream", - "apiVersion": "v1", - "metadata": { - "name": "namenode", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "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": "PersistentVolumeClaim", - "apiVersion": "v1", - "metadata": { - "name": "namenode", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "namenode" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "100Mi" - } - } - }, - "status": {} - } - ] -}