diff --git a/src/com/mirantis/mk/ReleaseWorkflow.groovy b/src/com/mirantis/mk/ReleaseWorkflow.groovy
index 51f6218..d2d0e7d 100644
--- a/src/com/mirantis/mk/ReleaseWorkflow.groovy
+++ b/src/com/mirantis/mk/ReleaseWorkflow.groovy
@@ -82,9 +82,10 @@
  *    - crTopic
  *    - crAuthorName
  *    - crAuthorEmail
+ * @param dirdepth level of creation dirs from key param
  */
 
-def updateReleaseMetadata(String key, String value, Map params) {
+def updateReleaseMetadata(String key, String value, Map params, Integer dirdepth = 0) {
     String gitCredentialsId     = params.get('metadataCredentialsId', 'mcp-ci-gerrit')
     String metadataRepoUrl      = params.get('metadataGitRepoUrl', "ssh://${gitCredentialsId}@gerrit.mcp.mirantis.net:29418/mcp/artifact-metadata")
     String metadataGerritBranch = params.get('metadataGitRepoBranch', 'master')
@@ -136,6 +137,23 @@
             ChangeId = ''
             git.createGitBranch(repoDir, crTopic)
         }
+
+        def keySize = key.split(':').size() - 1
+        if (dirdepth > 0 && dirdepth - 1 <= keySize) {
+            def dirPath = metadataDir + key.split(':')[0..dirdepth - 1].join('/')
+            if (!new File(dirPath).exists()) {
+                File newDirs = new File(dirPath)
+                newDirs.mkdirs()
+            }
+            if (dirdepth - 1 != keySize) {
+                def pathToDummyFile = dirPath + '/' + key.split(':')[dirdepth] + '.yml'
+                if (!new File(pathToDummyFile).exists()) {
+                    File dummyFile = new File(pathToDummyFile)
+                    dummyFile.write ''
+                }
+            }
+        }
+
         cmdText = "python '${repoDir}/utils/app.py' --path '${metadataDir}' update --key '${key}' --value '${value}'"
         python.runVirtualenvCommand(venvDir, cmdText)
         commitMessage =
