diff --git a/src/com/mirantis/mk/Common.groovy b/src/com/mirantis/mk/Common.groovy
index dc817a0..c03549f 100644
--- a/src/com/mirantis/mk/Common.groovy
+++ b/src/com/mirantis/mk/Common.groovy
@@ -1,6 +1,11 @@
 package com.mirantis.mk
+
 import static groovy.json.JsonOutput.prettyPrint
 import static groovy.json.JsonOutput.toJson
+
+@Grab(group='org.yaml', module='snakeyaml', version='1.17')
+import org.yaml.snakeyaml.Yaml
+import org.yaml.snakeyaml.DumperOptions
 import com.cloudbees.groovy.cps.NonCPS
 import groovy.json.JsonSlurperClassic
 /**
@@ -53,6 +58,30 @@
 }
 
 /**
+ * Convert YAML document to Map object
+ * @param data YAML string
+ */
+@NonCPS
+def loadYAML(String data) {
+  def yaml = new Yaml()
+  return yaml.load(data)
+}
+
+
+/**
+ * Convert Map object to YAML string
+ * @param map Map object
+ */
+@NonCPS
+def dumpYAML(Map map) {
+  def dumperOptions = new DumperOptions()
+  dumperOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK)
+  def yaml = new Yaml(dumperOptions)
+  return yaml.dump(map)
+}
+
+
+/**
  * Get credentials from store
  *
  * @param id    Credentials name
