diff --git a/SOURCES/bz1913936-1-gcp-vpc-move-add-project-parameter.patch b/SOURCES/bz1913936-1-gcp-vpc-move-add-project-parameter.patch
new file mode 100644
index 0000000..16cfb10
--- /dev/null
+++ b/SOURCES/bz1913936-1-gcp-vpc-move-add-project-parameter.patch
@@ -0,0 +1,86 @@
+From 560683500b3f9d5d8e183a569daea27422ae5268 Mon Sep 17 00:00:00 2001
+From: Reid Wahl <nrwahl@protonmail.com>
+Date: Thu, 7 Jan 2021 12:25:04 -0800
+Subject: [PATCH] gcp-vpc-move-route, gcp-vpc-move-vip: Parameterize project ID
+
+Resolves: RHBZ#1913932
+Resolves: RHBZ#1913936
+
+Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
+---
+ heartbeat/gcp-vpc-move-route.in | 13 ++++++++++++-
+ heartbeat/gcp-vpc-move-vip.in   | 16 ++++++++++++++--
+ 2 files changed, 26 insertions(+), 3 deletions(-)
+
+diff --git a/heartbeat/gcp-vpc-move-route.in b/heartbeat/gcp-vpc-move-route.in
+index d8e8ea8dd..179eba15a 100644
+--- a/heartbeat/gcp-vpc-move-route.in
++++ b/heartbeat/gcp-vpc-move-route.in
+@@ -106,6 +106,16 @@ Name of the VPC network
+ <content type="string" default="default" />
+ </parameter>
+ 
++<parameter name="project">
++<longdesc lang="en">
++Project ID of the instance. It can be useful to set this attribute if
++the instance is in a shared service project. Otherwise, the agent should
++be able to determine the project ID automatically.
++</longdesc>
++<shortdesc lang="en">Project ID</shortdesc>
++<content type="string" default="default" />
++</parameter>
++
+ <parameter name="interface">
+ <longdesc lang="en">
+ Name of the network interface
+@@ -215,7 +225,8 @@ def validate(ctx):
+   try:
+     ctx.instance = get_metadata('instance/name')
+     ctx.zone = get_metadata('instance/zone').split('/')[-1]
+-    ctx.project = get_metadata('project/project-id')
++    ctx.project = os.environ.get(
++        'OCF_RESKEY_project', get_metadata('project/project-id'))
+   except Exception as e:
+     logger.error(
+         'Instance information not found. Is this a GCE instance ?: %s', str(e))
+diff --git a/heartbeat/gcp-vpc-move-vip.in b/heartbeat/gcp-vpc-move-vip.in
+index 01d91a59d..e792f71d5 100755
+--- a/heartbeat/gcp-vpc-move-vip.in
++++ b/heartbeat/gcp-vpc-move-vip.in
+@@ -75,6 +75,16 @@ METADATA = \
+       <shortdesc lang="en">Host list</shortdesc>
+       <content type="string" default="" />
+     </parameter>
++    <parameter name="project" unique="0" required="0">
++      <longdesc lang="en">
++        Project ID of the instance. It can be useful to set this
++        attribute if the instance is in a shared service project.
++        Otherwise, the agent should be able to determine the project ID
++        automatically.
++      </longdesc>
++      <shortdesc lang="en">Project ID</shortdesc>
++      <content type="string" default="default" />
++    </parameter>
+     <parameter name="stackdriver_logging" unique="0" required="0">
+       <longdesc lang="en">If enabled (set to true), IP failover logs will be posted to stackdriver logging</longdesc>
+       <shortdesc lang="en">Stackdriver-logging support</shortdesc>
+@@ -267,7 +277,8 @@ def get_instances_list(project, exclude):
+ def gcp_alias_start(alias):
+   my_aliases = get_localhost_aliases()
+   my_zone = get_metadata('instance/zone').split('/')[-1]
+-  project = get_metadata('project/project-id')
++  project = os.environ.get(
++        'OCF_RESKEY_project', get_metadata('project/project-id'))
+ 
+   if alias in my_aliases:
+     # TODO: Do we need to check alias_range_name?
+@@ -315,7 +326,8 @@ def gcp_alias_start(alias):
+ def gcp_alias_stop(alias):
+   my_aliases = get_localhost_aliases()
+   my_zone = get_metadata('instance/zone').split('/')[-1]
+-  project = get_metadata('project/project-id')
++  project = os.environ.get(
++        'OCF_RESKEY_project', get_metadata('project/project-id'))
+ 
+   if alias in my_aliases:
+     logger.info('Removing %s from %s' % (alias, THIS_VM))
diff --git a/SOURCES/bz1913936-2-gcp-vpc-move-route-fixes.patch b/SOURCES/bz1913936-2-gcp-vpc-move-route-fixes.patch
new file mode 100644
index 0000000..a94f0ee
--- /dev/null
+++ b/SOURCES/bz1913936-2-gcp-vpc-move-route-fixes.patch
@@ -0,0 +1,106 @@
+From 523c4cee64b3b8ee9f603a940d83a6628531078d Mon Sep 17 00:00:00 2001
+From: Oyvind Albrigtsen <oalbrigt@redhat.com>
+Date: Tue, 19 Jan 2021 10:56:47 +0100
+Subject: [PATCH 1/2] gcp-vpc-move-route: fix stop-action when route stopped,
+ and fix check_conflicting_routes()
+
+---
+ heartbeat/gcp-vpc-move-route.in | 23 +++++++++++++++++------
+ 1 file changed, 17 insertions(+), 6 deletions(-)
+
+diff --git a/heartbeat/gcp-vpc-move-route.in b/heartbeat/gcp-vpc-move-route.in
+index 179eba15a..9fe985832 100644
+--- a/heartbeat/gcp-vpc-move-route.in
++++ b/heartbeat/gcp-vpc-move-route.in
+@@ -252,8 +252,19 @@ def validate(ctx):
+ def check_conflicting_routes(ctx):
+   fl = '(destRange = "%s*") AND (network = "%s") AND (name != "%s")' % (
+       ctx.ip, ctx.vpc_network_url, ctx.route_name)
+-  request = ctx.conn.routes().list(project=ctx.project, filter=fl)
+-  response = request.execute()
++  try:
++    request = ctx.conn.routes().list(project=ctx.project, filter=fl)
++    response = request.execute()
++  except googleapiclient.errors.HttpError as e:
++    if e.resp.status == 404:
++      logger.error('VPC network not found')
++      if 'stop' in sys.argv[1]:
++        sys.exit(OCF_SUCCESS)
++      else:
++        sys.exit(OCF_ERR_CONFIGURED)
++    else:
++      raise
++
+   route_list = response.get('items', None)
+   if route_list:
+     logger.error(
+@@ -353,16 +364,16 @@ def route_monitor(ctx):
+   logger.info('GCP route monitor: checking route table')
+ 
+   # Ensure that there is no route that we are not aware of that is also handling our IP
+-  check_conflicting_routes
++  check_conflicting_routes(ctx)
+ 
+   try:
+     request = ctx.conn.routes().get(project=ctx.project, route=ctx.route_name)
+     response = request.execute()
+   except googleapiclient.errors.HttpError as e:
+-    if 'Insufficient Permission' in e.content:
+-      return OCF_ERR_PERM
+-    elif e.resp.status == 404:
++    if e.resp.status == 404:
+       return OCF_NOT_RUNNING
++    elif 'Insufficient Permission' in e.content:
++      return OCF_ERR_PERM
+     else:
+       raise
+ 
+
+From 50dbfc3230e87b8d29163c235e6866d15fd6fc1b Mon Sep 17 00:00:00 2001
+From: Oyvind Albrigtsen <oalbrigt@redhat.com>
+Date: Tue, 19 Jan 2021 11:50:22 +0100
+Subject: [PATCH 2/2] gcp-vpc-move-vip: correctly return error when no
+ instances are returned
+
+---
+ heartbeat/gcp-vpc-move-vip.in | 20 +++++++++++++++-----
+ 1 file changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/heartbeat/gcp-vpc-move-vip.in b/heartbeat/gcp-vpc-move-vip.in
+index e792f71d5..bbbd87b7a 100755
+--- a/heartbeat/gcp-vpc-move-vip.in
++++ b/heartbeat/gcp-vpc-move-vip.in
+@@ -263,8 +263,14 @@ def get_instances_list(project, exclude):
+   hostlist = []
+   request = CONN.instances().aggregatedList(project=project)
+   while request is not None:
+-    response = request.execute()
+-    zones = response.get('items', {})
++    try:
++      response = request.execute()
++      zones = response.get('items', {})
++    except googleapiclient.errors.HttpError as e:
++      if e.resp.status == 404:
++        logger.debug('get_instances_list(): no instances found')
++        return ''
++
+     for zone in zones.values():
+       for inst in zone.get('instances', []):
+         if inst['name'] != exclude:
+@@ -303,9 +309,13 @@ def gcp_alias_start(alias):
+       break
+ 
+   # Add alias IP range to localhost
+-  add_alias(
+-      project, my_zone, THIS_VM, alias,
+-      os.environ.get('OCF_RESKEY_alias_range_name'))
++  try:
++    add_alias(
++        project, my_zone, THIS_VM, alias,
++        os.environ.get('OCF_RESKEY_alias_range_name'))
++  except googleapiclient.errors.HttpError as e:
++    if e.resp.status == 404:
++      sys.exit(OCF_ERR_CONFIGURED)
+ 
+   # Verify that the IP range has been added
+   my_aliases = get_localhost_aliases()
diff --git a/SOURCES/bz1913936-3-gcp-vpc-move-route-make-vpc_network-optional.patch b/SOURCES/bz1913936-3-gcp-vpc-move-route-make-vpc_network-optional.patch
new file mode 100644
index 0000000..5def90a
--- /dev/null
+++ b/SOURCES/bz1913936-3-gcp-vpc-move-route-make-vpc_network-optional.patch
@@ -0,0 +1,22 @@
+From 4812c67894063f8125a3915d32da168931f088c6 Mon Sep 17 00:00:00 2001
+From: Oyvind Albrigtsen <oalbrigt@redhat.com>
+Date: Thu, 25 Feb 2021 16:49:55 +0100
+Subject: [PATCH] gcp-vpc-move-route: make "vpc_network" optional
+
+---
+ heartbeat/gcp-vpc-move-route.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/heartbeat/gcp-vpc-move-route.in b/heartbeat/gcp-vpc-move-route.in
+index 9fe985832..fd2d2ec59 100644
+--- a/heartbeat/gcp-vpc-move-route.in
++++ b/heartbeat/gcp-vpc-move-route.in
+@@ -98,7 +98,7 @@ subnet ranges
+ <content type="string" />
+ </parameter>
+ 
+-<parameter name="vpc_network" required="1">
++<parameter name="vpc_network" required="0">
+ <longdesc lang="en">
+ Name of the VPC network
+ </longdesc>
diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec
index 9d70c0e..9547272 100644
--- a/SPECS/resource-agents.spec
+++ b/SPECS/resource-agents.spec
@@ -99,7 +99,7 @@
 Name:		resource-agents
 Summary:	Open Source HA Reusable Cluster Resource Scripts
 Version:	4.1.1
-Release:	61%{?dist}.5
+Release:	61%{?dist}.8
 License:	GPLv2+ and LGPLv2+ and ASL 2.0
 URL:		https://github.com/ClusterLabs/resource-agents
 %if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel}
@@ -247,6 +247,9 @@ Patch121:	bz1862121-azure-events-2-import-urlerror-encode-postdata.patch
 Patch122:	bz1862121-azure-events-3-decode-improvement.patch
 Patch123:	bz1850779-azure-lb-fix-redirect-issue.patch
 Patch124:	bz1905737-aws-add-imdsv2-support.patch
+Patch125:	bz1913936-1-gcp-vpc-move-add-project-parameter.patch
+Patch126:	bz1913936-2-gcp-vpc-move-route-fixes.patch
+Patch127:	bz1913936-3-gcp-vpc-move-route-make-vpc_network-optional.patch
 
 # bundle patches
 Patch1000:	bz1568588-7-gcp-bundled.patch
@@ -441,7 +444,7 @@ SAP instances to be managed in a cluster environment.
 License:	GPLv2+
 Summary:	SAP HANA Scale-Out cluster resource agents
 Version:	0.164.0
-Release:	6%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}.5
+Release:	6%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}.8
 %if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel}
 Group:		System Environment/Base
 %else
@@ -461,7 +464,7 @@ environment.
 License:	GPLv2+
 Summary:	SAP cluster connector script
 Version:	3.0.1
-Release:	37%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}.5
+Release:	37%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}.8
 %if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel}
 Group:		System Environment/Base
 %else
@@ -610,6 +613,9 @@ exit 1
 %patch122 -p1
 %patch123 -p1
 %patch124 -p1
+%patch125 -p1
+%patch126 -p1
+%patch127 -p1
 
 # add SAPHana agents to Makefile.am
 mv %{saphana_prefix}-%{saphana_version}/ra/SAPHana* heartbeat
@@ -1270,6 +1276,12 @@ ccs_update_schema > /dev/null 2>&1 ||:
 %endif
 
 %changelog
+* Mon Mar  1 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.1.1-61.8
+- gcp-vpc-move-route, gcp-vpc-move-vip: add project parameter and
+  make vpc_network parameter optional
+
+  Resolves: rhbz#1913936
+
 * Mon Jan  4 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.1.1-61.5
 - AWS agents: add support for IMDSv2