diff --git a/vars/buildCalicoContainers.groovy b/vars/buildCalicoContainers.groovy
deleted file mode 100644
index 1613120..0000000
--- a/vars/buildCalicoContainers.groovy
+++ /dev/null
@@ -1,93 +0,0 @@
-def call(body) {
-  // evaluate the body block, and collect configuration into the object
-  def config = [:]
-  body.resolveStrategy = Closure.DELEGATE_FIRST
-  body.delegate = config
-  body()
-
-
-  def dockerRepo = config.dockerRepo
-  def projectNamespace = "mirantis/projectcalico"
-  def artifactoryUrl = config.artifactoryURL
-
-  if (! dockerRepo ) {
-      error('dockerRepo parameter have to be set.')
-  }
-
-  if (! artifactoryUrl ) {
-      error('artifactoryUrl parameter have to be set.')
-  }
-
-  def git = new com.mirantis.mcp.Git()
-  def common = new com.mirantis.mcp.Common()
-  def imgTag = config.imageTag ?: git.getGitDescribe(true) + "-" + common.getDatetime()
-
-  def nodeImage = config.nodeImage ?: "${dockerRepo}/${projectNamespace}/calico/node"
-  def nodeName = "${nodeImage}:${imgTag}"
-
-  def ctlImage = config.ctlImage ?: "${dockerRepo}/${projectNamespace}/calico/ctl"
-  def ctlName = "${ctlImage}:${imgTag}"
-
-   // calico/build goes from libcalico
-  def buildImage = config.buildImage ?: "${dockerRepo}/${projectNamespace}/calico/build:latest"
-  // calico/felix goes from felix
-  def felixImage = config.felixImage ?: "${dockerRepo}/${projectNamespace}/calico/felix:latest"
-
-  def confdBuildId = config.confdBuildId ?: "${artifactoryUrl}/${projectNamespace}/confd/latest".toURL().text.trim()
-  def confdUrl = config.confdUrl ?: "${artifactoryUrl}/${projectNamespace}/confd/confd-${confdBuildId}"
-
-  def birdBuildId = config.birdBuildId ?: "${artifactoryUrl}/${projectNamespace}/bird/latest".toURL().text.trim()
-  def birdUrl = config.birdUrl ?: "${artifactoryUrl}/${projectNamespace}/bird/bird-${birdBuildId}"
-  def bird6Url = config.bird6Url ?: "${artifactoryUrl}/${projectNamespace}/bird/bird6-${birdBuildId}"
-  def birdclUrl = config.birdclUrl ?: "${artifactoryUrl}/${projectNamespace}/bird/birdcl-${birdBuildId}"
-
-  // add LABELs to dockerfiles
-  def docker = new com.mirantis.mcp.Docker()
-  docker.setDockerfileLabels("./calicoctl/Dockerfile.calicoctl",
-                            ["docker.imgTag=${imgTag}",
-                             "calico.buildImage=${buildImage}",
-                             "calico.birdclUrl=${birdclUrl}"])
-
-  docker.setDockerfileLabels("./calico_node/Dockerfile",
-                            ["docker.imgTag=${imgTag}",
-                             "calico.buildImage=${buildImage}",
-                             "calico.felixImage=${felixImage}",
-                             "calico.confdUrl=${confdUrl}",
-                             "calico.birdUrl=${birdUrl}",
-                             "calico.bird6Url=${bird6Url}",
-                             "calico.birdclUrl=${birdclUrl}"])
-
-  // Start build section
-  stage ('Build calico/ctl image'){
-    sh """
-      make calico/ctl \
-        CTL_CONTAINER_NAME=${ctlName} \
-        PYTHON_BUILD_CONTAINER_NAME=${buildImage} \
-        BIRDCL_URL=${birdclUrl}
-    """
-  }
-
-
-  stage('Build calico/node'){
-    sh """
-      make calico/node \
-        NODE_CONTAINER_NAME=${nodeName} \
-        PYTHON_BUILD_CONTAINER_NAME=${buildImage} \
-        FELIX_CONTAINER_NAME=${felixImage} \
-        CONFD_URL=${confdUrl} \
-        BIRD_URL=${birdUrl} \
-        BIRD6_URL=${bird6Url} \
-        BIRDCL_URL=${birdclUrl}
-    """
-  }
-
-
-  return [
-    CTL_CONTAINER_NAME:"${ctlName}",
-    NODE_CONTAINER_NAME:"${nodeName}",
-    CALICO_NODE_IMAGE_REPO:"${nodeImage}",
-    CALICOCTL_IMAGE_REPO:"${ctlImage}",
-    CALICO_VERSION: "${imgTag}"
-  ]
-
-}
diff --git a/vars/buildCalicoContainers.txt b/vars/buildCalicoContainers.txt
deleted file mode 100644
index ce54270..0000000
--- a/vars/buildCalicoContainers.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-// Usage example
-// List of parameters with the default values
-  def dockerRepo = config.dockerRepo ?: "mcp-k8s-ci.docker.mirantis.net"
-  def artifactoryUrl = config.artifactoryURL ?: "https://artifactory.mcp.mirantis.net/artifactory/projectcalico"
-  def nodeImage = config.nodeImage ?: "calico/node"
-  def nodeImageTag = config.nodeImageTag ?: "v1.0.0-beta"
-  def ctlImage = config.ctlImage ?: "calico/ctl"
-  def ctlImageTag = config.ctlImageTag ?: "v1.0.0-beta"
-  def buildImage = config.buildImage ?: "${artifactoryURL}/mcp/libcalico/lastbuild".toURL().text.trim()
-  def felixImage = config.felixImage ?: "${artifactoryURL}/mcp/felix/lastbuild".toURL().text.trim()
-  def confdBuildId = config.confdBuildId ?: "${artifactoryURL}/mcp/confd/lastbuild".toURL().text.trim()
-  def confdUrl = config.confdUrl ?: "${artifactoryURL}/mcp/confd/confd-${confdBuildId}"
-  def birdBuildId = config.birdBuildId ?: "${artifactoryURL}/mcp/calico-bird/lastbuild".toURL().text.trim()
-  def birdUrl = config.birdUrl ?: "${artifactoryURL}/mcp/calico-bird/bird-${birdBuildId}"
-  def bird6Url = config.bird6Url ?: "${artifactoryURL}/mcp/calico-bird/bird6-${birdBuildId}"
-  def birdclUrl = config.birdclUrl ?: "${artifactoryURL}/mcp/calico-bird/birdcl-${birdBuildId}"
-  def build = "${config.containersBuildId}-${gitCommit}"
-
-// *** Examples 1:
-// we still use old schema and want to publish to GERRIT_CHANGE_NUMBER
-def buildId = ${GERRIT_CHANGE_NUMBER}
-// we want to store in artifacts from gate then
-def buildId = "mcp"
-node {
-    buildCalicoContainers {
-      dockerRepo = "mcp-k8s-ci.docker.mirantis.net"
-      artifactoryURL = "https://artifactory.mcp.mirantis.net/artifactory/sandbox"
-      containersBuildId = buildId
-    }
-}
diff --git a/vars/gerritPatchsetCheckout.groovy b/vars/gerritPatchsetCheckout.groovy
deleted file mode 100644
index a3fd1f5..0000000
--- a/vars/gerritPatchsetCheckout.groovy
+++ /dev/null
@@ -1,39 +0,0 @@
-def call(body) {
-  // evaluate the body block, and collect configuration into the object
-  def config = [:]
-  body.resolveStrategy = Closure.DELEGATE_FIRST
-  body.delegate = config
-  body()
-
-
-  def merge = config.withMerge ?: false
-  def wipe = config.withWipeOut ?: false
-
-  // default parameters
-  def scmExtensions = [
-    [$class: 'CleanCheckout'],
-    [$class: 'BuildChooserSetting', buildChooser: [$class: 'GerritTriggerBuildChooser']]
-  ]
-  // if we need to "merge" code from patchset to GERRIT_BRANCH branch
-  if (merge) {
-    scmExtensions.add([$class: 'LocalBranch', localBranch: "${GERRIT_BRANCH}"])
-  }
-  // we need wipe workspace before checkout
-  if (wipe) {
-    scmExtensions.add([$class: 'WipeWorkspace'])
-  }
-
-  checkout(
-    scm: [
-      $class: 'GitSCM',
-      branches: [[name: "${GERRIT_BRANCH}"]],
-      extensions: scmExtensions,
-      userRemoteConfigs: [[
-        credentialsId: "${config.credentialsId}",
-        name: 'gerrit',
-        url: "ssh://${GERRIT_NAME}@${GERRIT_HOST}:${GERRIT_PORT}/${GERRIT_PROJECT}.git",
-        refspec: "${GERRIT_REFSPEC}"
-      ]]
-    ]
-  )
-}
diff --git a/vars/gerritPatchsetCheckout.txt b/vars/gerritPatchsetCheckout.txt
deleted file mode 100644
index 2372bf6..0000000
--- a/vars/gerritPatchsetCheckout.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-// Usage example
-node {
-  gerritPatchsetCheckout{
-    credentialsId = "credentials-id-string"
-  }
-}
-
-// Usage example with merging to checkouted branch
-node {
-  gerritPatchsetCheckout{
-    credentialsId = "credentials-id-string"
-    withMerge = true
-  }
-}
-
-// wipe our repository and force clone
-node {
-  gerritPatchsetCheckout{
-    credentialsId = "credentials-id-string"
-    withWipeOut = true
-  }
-}
diff --git a/vars/gitSSHCheckout.groovy b/vars/gitSSHCheckout.groovy
deleted file mode 100644
index cf6e0e4..0000000
--- a/vars/gitSSHCheckout.groovy
+++ /dev/null
@@ -1,40 +0,0 @@
-def call(body) {
-  // evaluate the body block, and collect configuration into the object
-  def config = [:]
-  body.resolveStrategy = Closure.DELEGATE_FIRST
-  body.delegate = config
-  body()
-
-  def merge = config.withMerge ?: false
-  def wipe = config.withWipeOut ?: false
-  def targetDir = config.targetDir ?: "./"
-  def port = config.port ?: "29418"
-
-  // default parameters
-  def scmExtensions = [
-    [$class: 'CleanCheckout'],
-    [$class: 'RelativeTargetDirectory', relativeTargetDir: "${targetDir}"]
-  ]
-
-  // https://issues.jenkins-ci.org/browse/JENKINS-6856
-  if (merge) {
-    scmExtensions.add([$class: 'LocalBranch', localBranch: "${config.branch}"])
-  }
-  // we need wipe workspace before checkout
-  if (wipe) {
-    scmExtensions.add([$class: 'WipeWorkspace'])
-  }
-
-  checkout(
-    scm: [
-      $class: 'GitSCM',
-      branches: [[name: "${config.branch}"]],
-      extensions: scmExtensions,
-      userRemoteConfigs: [[
-        credentialsId: "${config.credentialsId}",
-        name: 'origin',
-        url: "ssh://${config.credentialsId}@${config.host}:${port}/${config.project}.git"
-      ]]
-    ]
-  )
-}
diff --git a/vars/gitSSHCheckout.txt b/vars/gitSSHCheckout.txt
deleted file mode 100644
index b01939e..0000000
--- a/vars/gitSSHCheckout.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-// Default parameters
-
-  targetDir = "./"
-  port = "29418"
-
-// Usage example
-node {
-  gitSSHCheckout {
-    credentialsId = "mcp-ci-gerrit"
-    branch = "mcp-0.1"
-    host = "ci.mcp-ci.local"
-    project = "projectcalico/calico-containers"
-  }
-}
-
-// or
-
-node {
-  gitSSHCheckout {
-    credentialsId = "mcp-ci-gerrit"
-    branch = "mcp-0.1"
-    host = "ci.mcp-ci.local"
-    project = "projectcalico/calico-containers"
-    targetDir = "some_directory"
-  }
-}
-
-// by default if you checkout even to branch you will be in detached mode
-// but some tools (e.g. pip) requires "merged" code
-// https://issues.jenkins-ci.org/browse/JENKINS-6856
-// so you need to use withMerge = true
-
-node {
-  gitSSHCheckout {
-    credentialsId = "mcp-ci-gerrit"
-    branch = "mcp"
-    host = "ci.mcp-ci.local"
-    project = "projectcalico/calico-containers"
-    targetDir = "some_directory"
-    withMerge = true
-  }
-}
-
-Please see example below:
-1. withMerge = false (default)
-  $ git status
-  HEAD detached at 25fd9c2
-  nothing to commit, working directory clean
-  $ git branch -av
-  * (HEAD detached at 25fd9c2)       25fd9c2 Fix .gitreview
-    remotes/origin/HEAD              7e2b36e Merge pull request #160 from tomdee/tiny-build-image-size-tweaks
-    remotes/origin/develop           013614f Merge pull request #144 from djosborne/comment-etcd-pin
-    remotes/origin/feature/utreports 3c52c2a disable usage reports while running unit tests
-    remotes/origin/go                350e251 Merge pull request #128 from caseydavenport/ipam-code-review
-    remotes/origin/master            7e2b36e Merge pull request #160 from tomdee/tiny-build-image-size-tweaks
-    remotes/origin/mcp               25fd9c2 Fix .gitreview
-
-
-2. withMerge = true
-  $ git status
-  On branch mcp
-  nothing to commit, working directory clean
-  $ git branch -av
-  * mcp                              25fd9c2 Fix .gitreview
-    remotes/origin/HEAD              7e2b36e Merge pull request #160 from tomdee/tiny-build-image-size-tweaks
-    remotes/origin/develop           013614f Merge pull request #144 from djosborne/comment-etcd-pin
-    remotes/origin/feature/utreports 3c52c2a disable usage reports while running unit tests
-    remotes/origin/go                350e251 Merge pull request #128 from caseydavenport/ipam-code-review
-    remotes/origin/master            7e2b36e Merge pull request #160 from tomdee/tiny-build-image-size-tweaks
-    remotes/origin/mcp               25fd9c2 Fix .gitreview
diff --git a/vars/runTox.groovy b/vars/runTox.groovy
deleted file mode 100644
index 8b3f97c..0000000
--- a/vars/runTox.groovy
+++ /dev/null
@@ -1,8 +0,0 @@
-def call(String env=null) {
-  // Run tox with or without specified environment
-  if (env==null) {
-    sh "tox -v"
-  } else {
-    sh "tox -v -e ${env}"
-  }
-}
