diff --git a/ansible/module_utils/kolla_container_worker.py b/ansible/module_utils/kolla_container_worker.py
index 7fdf541758f87131f6a28ee6fdbde7b1ec8b890d..bc0f3b47153b211ae617a5034a39ec30fca33742 100644
--- a/ansible/module_utils/kolla_container_worker.py
+++ b/ansible/module_utils/kolla_container_worker.py
@@ -565,3 +565,14 @@ class ContainerWorker(ABC):
     @abstractmethod
     def ensure_image(self):
         pass
+
+    def _inject_env_var(self, environment_info):
+        newenv = {
+            'KOLLA_SERVICE_NAME': self.params.get('name').replace('_', '-')
+        }
+        environment_info.update(newenv)
+        return environment_info
+
+    def _format_env_vars(self):
+        env = self._inject_env_var(self.params.get('environment'))
+        return {k: "" if env[k] is None else env[k] for k in env}
diff --git a/ansible/module_utils/kolla_docker_worker.py b/ansible/module_utils/kolla_docker_worker.py
index 2daf13eab93ec348ebe0e64b037dd9ed043522fe..cd8fdbb572938abe8c7a38254c769b12b0a26f42 100644
--- a/ansible/module_utils/kolla_docker_worker.py
+++ b/ansible/module_utils/kolla_docker_worker.py
@@ -310,17 +310,6 @@ class DockerWorker(ContainerWorker):
 
         return host_config
 
-    def _inject_env_var(self, environment_info):
-        newenv = {
-            'KOLLA_SERVICE_NAME': self.params.get('name').replace('_', '-')
-        }
-        environment_info.update(newenv)
-        return environment_info
-
-    def _format_env_vars(self):
-        env = self._inject_env_var(self.params.get('environment'))
-        return {k: "" if env[k] is None else env[k] for k in env}
-
     def build_container_options(self):
         volumes, binds = self.generate_volumes()
 
diff --git a/ansible/module_utils/kolla_podman_worker.py b/ansible/module_utils/kolla_podman_worker.py
index 757f5f461ac5e5acf427bc75cb2334c55016bf47..f0073cef6959d6eae0ade2e790c1ebb1be332909 100644
--- a/ansible/module_utils/kolla_podman_worker.py
+++ b/ansible/module_utils/kolla_podman_worker.py
@@ -94,11 +94,9 @@ class PodmanWorker(ContainerWorker):
         args['mounts'] = mounts
         args['volumes'] = filtered_volumes
 
-        # in case value is not string it has to be converted
-        environment = self.params.get('environment')
-        if environment:
-            for key, value in environment.items():
-                environment[key] = str(value)
+        env = self._format_env_vars()
+        args['environment'] = {k: str(v) for k, v in env.items()}
+        self.params.pop('environment', None)
 
         healthcheck = self.params.get('healthcheck')
         if healthcheck:
diff --git a/releasenotes/notes/bug-2078940-45db7a8cc224d586.yaml b/releasenotes/notes/bug-2078940-45db7a8cc224d586.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..01697145aa8e9caf8c06ccc88af3be844c681aed
--- /dev/null
+++ b/releasenotes/notes/bug-2078940-45db7a8cc224d586.yaml
@@ -0,0 +1,7 @@
+---
+fixes:
+  - |
+    Fixes issue in PodmanWorker where it didn't set KOLLA_SERVICE_NAME
+    environment variable when creating new container.
+    Additionally, two methods were moved from DockerWorker
+    to ContainerWorker as they are applicable to both engines.