diff --git a/update-salt-environment.groovy b/update-salt-environment.groovy
new file mode 100644
index 0000000..0b570fc
--- /dev/null
+++ b/update-salt-environment.groovy
@@ -0,0 +1,54 @@
+/**
+ *
+ * Update Salt environment pipeline
+ *
+ * Expected parameters:
+ *   SALT_MASTER_URL            Salt API server location
+ *   SALT_MASTER_CREDENTIALS    Credentials to the Salt API
+ *   UPDATE_FORMULAS            Boolean switch for enforcing updating formulas
+ */
+
+// Load shared libs
+def salt = new com.mirantis.mk.Salt()
+def common = new com.mirantis.mk.Common()
+def python = new com.mirantis.mk.Python()
+def venvPepper = "venvPepper"
+
+node() {
+    try {
+        python.setupPepperVirtualenv(venvPepper, SALT_MASTER_URL, SALT_MASTER_CREDENTIALS)
+
+        stage("Update formulas"){
+            if(UPDATE_FORMULAS.toBoolean()){
+                common.infoMsg("Updating salt formulas")
+                salt.cmdRun(
+                    venvPepper,
+                    "I@salt:master",
+                    'apt-get update && apt-get install -y salt-formula-*'
+                )
+                common.infoMsg("Running salt sync-all")
+                salt.runSaltProcessStep(venvPepper, 'jma*', 'saltutil.sync_all', [], null, true)
+            }
+        }
+        stage("Update Reclass") {
+            common.infoMsg("Updating reclass model")
+            salt.cmdRun(
+                venvPepper,
+                "I@salt:master",
+                'cd /srv/salt/reclass && git pull -r && git submodule update',
+                false
+            )
+
+            salt.enforceState(
+                venvPepper,
+                "I@salt:master",
+                'reclass',
+                true
+            )
+        }
+    } catch (Throwable e) {
+        // If there was an error or exception thrown, the build failed
+        currentBuild.result = "FAILURE"
+        throw e
+    }
+}
\ No newline at end of file
