diff --git a/installers/install_osm.sh b/installers/install_osm.sh
index a70b05e..03559a7 100755
--- a/installers/install_osm.sh
+++ b/installers/install_osm.sh
@@ -12,11 +12,9 @@
 #   See the License for the specific language governing permissions and
 #   limitations under the License.
 #
-REPOSITORY_BASE=https://osm-download.etsi.org/repository/osm/debian
-RELEASE=ReleaseEIGHTEEN
-REPOSITORY=stable
+
+DEVOPS_GERRIT_REFSPEC="master"
 DOCKER_TAG="testing-daily"
-DEVOPS_PATH=/usr/share/osm-devops
 
 function usage(){
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
@@ -25,10 +23,7 @@
     echo -e "  OPTIONS"
     echo -e "     -h / --help:    print this help"
     echo -e "     -y:             do not prompt for confirmation, assumes yes"
-    echo -e "     -r <repo>:      use specified repository name for osm packages"
-    echo -e "     -R <release>:   use specified release for osm binaries (deb packages, ...)"
-    echo -e "     -u <repo base>: use specified repository url for osm packages"
-    echo -e "     -k <repo key>:  use specified repository public key url"
+    echo -e "     -S <gerrit refspec>: use a specific devops gerrit refspec (branch, tag, commit), default is master"
     echo -e "     -a <apt proxy url>: use this apt proxy url when downloading apt packages (air-gapped installation)"
     echo -e "     -c <kubernetes engine>: use a specific kubernetes engine (options: kubeadm, k3s), default is kubeadm"
     echo -e "     -t <docker tag> specify osm docker tag (default is latest)"
@@ -49,43 +44,6 @@
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
-add_repo() {
-  REPO_CHECK="^$1"
-  grep "${REPO_CHECK/\[arch=amd64\]/\\[arch=amd64\\]}" /etc/apt/sources.list > /dev/null 2>&1
-  if [ $? -ne 0 ]
-  then
-    need_packages_lw="software-properties-common apt-transport-https"
-    echo -e "Checking required packages to add ETSI OSM debian repo: $need_packages_lw"
-    dpkg -l $need_packages_lw &>/dev/null \
-      || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \
-      || sudo apt-get -qy update \
-      || ! echo "failed to run apt-get update" \
-      || exit 1
-    dpkg -l $need_packages_lw &>/dev/null \
-      || ! echo -e "Installing $need_packages_lw requires root privileges." \
-      || sudo apt-get install -y $need_packages_lw \
-      || ! echo "failed to install $need_packages_lw" \
-      || exit 1
-    curl -s -o OSM-ETSI-Release-key.gpg "$REPOSITORY_BASE/$RELEASE/OSM%20ETSI%20Release%20Key.gpg"
-    sudo APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add OSM-ETSI-Release-key.gpg \
-      || ! echo -e "Could not add GPG key $REPOSITORY_BASE/$RELEASE/OSM%20ETSI%20Release%20Key.gpg" \
-      || exit 1
-    sudo DEBIAN_FRONTEND=noninteractive add-apt-repository -y "$1"
-    sudo DEBIAN_FRONTEND=noninteractive apt-get -y update
-    return 0
-  fi
-
-  return 1
-}
-
-clean_old_repo() {
-dpkg -s 'osm-devops' &> /dev/null
-if [ $? -eq 0 ]; then
-  # Clean the previous repos that might exist
-  sudo sed -i "/osm-download.etsi.org/d" /etc/apt/sources.list
-fi
-}
-
 function configure_apt_proxy() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
     OSM_APT_PROXY=$1
@@ -102,19 +60,10 @@
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
-while getopts ":a:c:e:r:k:u:R:D:s:t:U:d:p:m:T:M:G:O:-: hy" o; do
+while getopts ":a:c:e:S:D:s:t:U:d:p:m:T:M:G:O:-: hy" o; do
     case "${o}" in
-        D)
-            DEVOPS_PATH="${OPTARG}"
-            ;;
-        r)
-            REPOSITORY="${OPTARG}"
-            ;;
-        R)
-            RELEASE="${OPTARG}"
-            ;;
-        u)
-            REPOSITORY_BASE="${OPTARG}"
+        S)
+            DEVOPS_GERRIT_REFSPEC="${OPTARG}"
             ;;
         t)
             DOCKER_TAG="${OPTARG}"
@@ -138,8 +87,9 @@
     esac
 done
 
-clean_old_repo
-add_repo "deb [arch=amd64] $REPOSITORY_BASE/$RELEASE $REPOSITORY devops"
 sudo DEBIAN_FRONTEND=noninteractive apt-get -qy update
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install osm-devops
-$DEVOPS_PATH/installers/full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $DEVOPS_PATH -t $DOCKER_TAG "$@"
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install git
+DEVOPS_PATH=$(mktemp -d /tmp/osm-devops-XXXXXX)
+git clone https://osm.etsi.org/gerrit/osm/devops.git $DEVOPS_PATH
+git -C $DEVOPS_PATH checkout $DEVOPS_GERRIT_REFSPEC
+$DEVOPS_PATH/installers/full_install_osm.sh -t $DOCKER_TAG "$@"
