diff --git a/assisted_deployment.sh b/assisted_deployment.sh
index 8ee4b221a..9a518ef88 100755
--- a/assisted_deployment.sh
+++ b/assisted_deployment.sh
@@ -22,76 +22,9 @@ ASSISTED_OPERATOR_INDEX="${ASSISTED_OPERATOR_INDEX:-quay.io/ocpmetal/assisted-se
 ASSETS_DIR="${OCP_DIR}/saved-assets/assisted-installer-manifests"
 
 
-function generate_local_storage() {
-  mkdir -p "${ASSETS_DIR}"
-
-  cat >"${ASSETS_DIR}/01-local-storage-operator.yaml" <<EOF
-apiVersion: operators.coreos.com/v1alpha2
-kind: OperatorGroup
-metadata:
-  name: local-operator-group
-  namespace: openshift-local-storage
-spec:
-  targetNamespaces:
-    - openshift-local-storage
----
-apiVersion: operators.coreos.com/v1alpha1
-kind: Subscription
-metadata:
-  name: local-storage-operator
-  namespace: openshift-local-storage
-spec:
-  installPlanApproval: Automatic
-  name: local-storage-operator
-  source: redhat-operators
-  sourceNamespace: openshift-marketplace
-EOF
-
-  cat >"${ASSETS_DIR}/02-local-volume.yaml" <<EOCR
-apiVersion: local.storage.openshift.io/v1
-kind: LocalVolume
-metadata:
-  name: assisted-service
-  namespace: openshift-local-storage
-spec:
-  logLevel: Normal
-  managementState: Managed
-  storageClassDevices:
-$(fill_local_storage)
-      storageClassName: assisted-service
-      volumeMode: Filesystem
-EOCR
-}
-
-
-function fill_local_storage() {
-  if [ ! -z "${VM_EXTRADISKS_LIST}" ]; then
-cat <<EOF
-    - devicePaths:
-EOF
-  fi
-
-  for disk in ${VM_EXTRADISKS_LIST}; do
-cat <<EOF
-        - /dev/$disk
-EOF
-  done
-}
-
-
 function deploy_local_storage() {
-  oc adm new-project openshift-local-storage || true
-
-  oc annotate project openshift-local-storage openshift.io/node-selector=''
-
-  generate_local_storage
-
-  echo "Creating local storage operator group and subscription..."
-  oc apply -f "${ASSETS_DIR}/01-local-storage-operator.yaml"
-  wait_for_crd "localvolumes.local.storage.openshift.io"
-
-  echo "Creating local volume and storage class..."
-  oc apply -f "${ASSETS_DIR}/02-local-volume.yaml"
+  export STORAGE_CLASS_NAME="assisted-service"
+  ${SCRIPTDIR}/enable_local_storage.sh
 }
 
 
diff --git a/common.sh b/common.sh
index ed9f9c298..af8844215 100644
--- a/common.sh
+++ b/common.sh
@@ -247,7 +247,7 @@ export NUM_WORKERS=${NUM_WORKERS:-"2"}
 export NUM_EXTRA_WORKERS=${NUM_EXTRA_WORKERS:-"0"}
 export EXTRA_WORKERS_ONLINE_STATUS=${EXTRA_WORKERS_ONLINE_STATUS:-"true"}
 export VM_EXTRADISKS=${VM_EXTRADISKS:-"false"}
-export VM_EXTRADISKS_LIST=${VM_EXTRADISKS_LIST:-"vdb"}
+export VM_EXTRADISKS_LIST=${VM_EXTRADISKS_LIST:-"vda"}
 export VM_EXTRADISKS_SIZE=${VM_EXTRADISKS_SIZE:-"8G"}
 export MASTER_HOSTNAME_FORMAT=${MASTER_HOSTNAME_FORMAT:-"master-%d"}
 export WORKER_HOSTNAME_FORMAT=${WORKER_HOSTNAME_FORMAT:-"worker-%d"}
diff --git a/enable_local_storage.sh b/enable_local_storage.sh
new file mode 100755
index 000000000..8ddafc9b8
--- /dev/null
+++ b/enable_local_storage.sh
@@ -0,0 +1,114 @@
+#!/usr/bin/env bash
+set -eux -o pipefail
+
+source logging.sh
+source common.sh
+source utils.sh
+
+ASSETS_DIR=${ASSETS_DIR:-"${OCP_DIR}/enable-local-storage"}
+STORAGE_CLASS_NAME=${STORAGE_CLASS_NAME:-local-storage}
+
+
+function generate_subscription() {
+  mkdir -p "${ASSETS_DIR}"
+
+  cat >"${ASSETS_DIR}/01-local-storage-operator.yaml" <<EOF
+apiVersion: operators.coreos.com/v1alpha2
+kind: OperatorGroup
+metadata:
+  name: local-operator-group
+  namespace: openshift-local-storage
+spec:
+  targetNamespaces:
+    - openshift-local-storage
+---
+apiVersion: operators.coreos.com/v1alpha1
+kind: Subscription
+metadata:
+  name: local-storage-operator
+  namespace: openshift-local-storage
+spec:
+  installPlanApproval: Automatic
+  name: local-storage-operator
+  source: redhat-operators
+  sourceNamespace: openshift-marketplace
+EOF
+}
+
+function generate_local_volume() {
+  mkdir -p "${ASSETS_DIR}"
+
+  cat >"${ASSETS_DIR}/02-local-volume.yaml" <<EOCR
+apiVersion: local.storage.openshift.io/v1
+kind: LocalVolume
+metadata:
+  name: ${STORAGE_CLASS_NAME}
+  namespace: openshift-local-storage
+spec:
+  logLevel: Normal
+  managementState: Managed
+  storageClassDevices:
+$(fill_local_storage)
+      storageClassName: ${STORAGE_CLASS_NAME}
+      volumeMode: Filesystem
+EOCR
+}
+
+
+function fill_local_storage() {
+  if [ ! -z "${VM_EXTRADISKS_LIST}" ]; then
+cat <<EOF
+    - devicePaths:
+EOF
+  fi
+
+  for disk in ${VM_EXTRADISKS_LIST}; do
+cat <<EOF
+        - /dev/$disk
+EOF
+  done
+}
+
+
+function deploy_local_storage() {
+  oc adm new-project openshift-local-storage || true
+
+  oc annotate --overwrite project openshift-local-storage openshift.io/node-selector=''
+
+if [[ "$OPENSHIFT_RELEASE_TYPE" == "ga" ]]; then
+  generate_subscription
+  echo "Creating local storage operator group and subscription..."
+  oc apply -f "${ASSETS_DIR}/01-local-storage-operator.yaml"
+else
+  oc project openshift-local-storage
+  LSO_PATH=${LOCAL_STORAGE_OPERATOR_PATH:-$GOPATH/src/github.com/openshift/local-storage-operator}
+  if [ ! -d $LSO_PATH ]; then
+      echo "Did not find $LSO_PATH" 1>&2
+      exit 1
+  fi
+  pushd ${LSO_PATH}
+  make build
+  # Run make deploy steps manually so we can override the default namespace
+  pushd config/manager
+  kustomize edit set image controller=controller:latest
+  popd
+  pushd config/default
+  kustomize edit set namespace openshift-local-storage
+  popd
+  kustomize build config/default | oc apply -f -
+  popd
+fi
+  wait_for_crd "localvolumes.local.storage.openshift.io"
+
+  generate_local_volume
+  echo "Creating local volume and storage class..."
+  oc apply -f "${ASSETS_DIR}/02-local-volume.yaml"
+}
+
+
+if [ "${VM_EXTRADISKS}" != "false" ]; then
+  deploy_local_storage
+else
+  echo "Cannot deploy local storage unless VM_EXTRADISKS is enabled"
+  exit 1
+fi
diff --git a/vm_setup_vars.yml b/vm_setup_vars.yml
index c0fb31fd9..fb676bd7f 100644
--- a/vm_setup_vars.yml
+++ b/vm_setup_vars.yml
@@ -10,7 +10,7 @@ ironic_prefix: "{{ ironic_prefix }}"
 num_masters: 3
 num_workers: 1
 num_extraworkers: 0
-extradisks_list: "{{ lookup('env', 'VM_EXTRADISKS_LIST').split(' ') | default(['vdb']) }}"
+extradisks_list: "{{ lookup('env', 'VM_EXTRADISKS_LIST').split(' ') | default(['vda']) }}"
 extradisks_size: "{{ lookup('env', 'VM_EXTRADISKS_SIZE') | default(['8G']) }}"
 flavors:
   master: