diff --git a/opendev/global-templates-opendev-push-upstream.yaml b/opendev/global-templates-opendev-push-upstream.yaml
new file mode 100644
index 0000000..385fdd4
--- /dev/null
+++ b/opendev/global-templates-opendev-push-upstream.yaml
@@ -0,0 +1,41 @@
+- job-template:
+    name: 'opendev-{project-name}-{stream}-push-upstream'
+
+    node: infra-build01-ubuntu1804
+
+    disabled: false
+
+    concurrent: true
+
+    properties:
+      - logrotate
+
+    parameters:
+      - project-parameters:
+          project: 'opendev/{project}'
+          branch: '{branch}'
+      - nordix-gerrit-parameters
+
+    scm:
+      - git-scm-gerrit:
+          ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
+          branch: '{branch}'
+          refspec: $GERRIT_REFSPEC
+
+    triggers:
+      - nordix-gerrit-push-upstream:
+          project: 'opendev/{project}'
+          branch: '{branch}'
+          files: '**'
+
+    wrappers:
+      - build-timeout:
+          timeout: 10
+
+    builders:
+      - shell:
+          !include-raw-escape: ./push-upstream-jobs.sh
+
+    publishers:
+      - notify-slack:
+          slack-channel: '#infra'
diff --git a/opendev/global-templates-opendev-rebase.yaml b/opendev/global-templates-opendev-rebase.yaml
new file mode 100644
index 0000000..c376ed4
--- /dev/null
+++ b/opendev/global-templates-opendev-rebase.yaml
@@ -0,0 +1,46 @@
+- job-template:
+    name: 'opendev-{project-name}-{stream}-rebase'
+
+    node: infra-build01-ubuntu1804
+
+    disabled: false
+
+    concurrent: false
+
+    properties:
+      - logrotate
+
+    parameters:
+      - project-parameters:
+          project: '{project}'
+          branch: '{branch}'
+      - opendev-gerrit-parameters
+      - string:
+          name: NORDIX_REMOTE
+          default: 'ssh://infra@gerrit.nordix.org:29418/opendev/{project}.git'
+          description: The remote to add for Nordix.
+
+    scm:
+      - git-scm:
+          ssh-credentials-id: nordixinfra-lfn-gerrit-ssh
+          branch: '{branch}'
+          refspec: ''
+
+    triggers:
+      - opendev-gerrit-trigger-change-merged:
+          project: '{project}'
+          branch: '{branch}'
+          files: '**'
+      - timed: "@midnight"
+
+    wrappers:
+      - build-timeout:
+          timeout: 10
+
+    builders:
+      - shell:
+          !include-raw-escape: ../global/rebase-jobs.sh
+
+    publishers:
+      - notify-slack:
+          slack-channel: '#infra'
diff --git a/opendev/openstack-neutron/openstack-neutron-push-upstream-jobs.yml b/opendev/openstack-neutron/openstack-neutron-push-upstream-jobs.yml
new file mode 100644
index 0000000..d206b1b
--- /dev/null
+++ b/opendev/openstack-neutron/openstack-neutron-push-upstream-jobs.yml
@@ -0,0 +1,29 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+#
+- project:
+    name: openstack-neutron-push-upstream
+    project: openstack/neutron
+    project-name: openstack-neutron
+    stream:
+      - master:
+          branch: '{stream}'
+
+    jobs:
+      - 'opendev-{project-name}-{stream}-push-upstream'
diff --git a/opendev/openstack-neutron/openstack-neutron-rebase-jobs.yml b/opendev/openstack-neutron/openstack-neutron-rebase-jobs.yml
new file mode 100644
index 0000000..a3d650e
--- /dev/null
+++ b/opendev/openstack-neutron/openstack-neutron-rebase-jobs.yml
@@ -0,0 +1,29 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+#
+- project:
+    name: openstack-neutron-rebase
+    project: openstack/neutron
+    project-name: openstack-neutron
+    stream:
+      - master:
+          branch: '{stream}'
+
+    jobs:
+      - 'opendev-{project-name}-{stream}-rebase'
diff --git a/opendev/openstack-nova/openstack-nova-push-upstream-jobs.yml b/opendev/openstack-nova/openstack-nova-push-upstream-jobs.yml
new file mode 100644
index 0000000..59b9bbe
--- /dev/null
+++ b/opendev/openstack-nova/openstack-nova-push-upstream-jobs.yml
@@ -0,0 +1,29 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+#
+- project:
+    name: openstack-nova-push-upstream
+    project: openstack/nova
+    project-name: openstack-nova
+    stream:
+      - master:
+          branch: '{stream}'
+
+    jobs:
+      - 'opendev-{project-name}-{stream}-push-upstream'
diff --git a/opendev/openstack-nova/openstack-nova-rebase-jobs.yml b/opendev/openstack-nova/openstack-nova-rebase-jobs.yml
new file mode 100644
index 0000000..6515943
--- /dev/null
+++ b/opendev/openstack-nova/openstack-nova-rebase-jobs.yml
@@ -0,0 +1,29 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+#
+- project:
+    name: openstack-nova-rebase
+    project: openstack/nova
+    project-name: openstack-nova
+    stream:
+      - master:
+          branch: '{stream}'
+
+    jobs:
+      - 'opendev-{project-name}-{stream}-rebase'
diff --git a/opendev/push-upstream-jobs.sh b/opendev/push-upstream-jobs.sh
new file mode 100755
index 0000000..148b2b0
--- /dev/null
+++ b/opendev/push-upstream-jobs.sh
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+#
+# This script will take the changes that are pushed to Nordix Gerrit and push upstream to OpenDev
+# Pre-requisites for script to run successfully:
+# - Author name in Nordix Gerrit have to be the same as OpenDev username
+#   i.e. need to run "git config --global user.name <OpenDev username>"
+# - infra public key on build server needs to be added to your users SSH Public Keys in OpenDev Gerrit
+#
+set -o nounset
+set -o pipefail
+
+cd $WORKSPACE
+echo "Retrieving information from commit to push towards OpenDev"
+project=$(git config --local remote.origin.url | awk -F "29418/opendev/" '{print $2}')
+message=$(git show -s --pretty=%B | grep -vi 'Signed-off-by')
+username=$(git show -s --pretty=%an)
+
+pattern=" "
+if [[ "$username" =~ $pattern ]]
+then
+    echo "Incorrect username, use OpenDev username as git user.name when pushing to Nordix"
+    exit 1
+fi
+
+echo "Setting user name and email"
+git config user.email $(git show -s --pretty=%ae)
+git config user.name $username
+
+echo "Checking out branch on master with new changes"
+git reset HEAD~1 --soft
+git checkout -b delivery_branch origin/$BRANCH
+
+git config --get remote.upstream.url
+retVal=$?
+
+if [[ $retVal -eq 0 ]]
+then
+  git remote rm upstream
+  git remote add upstream "ssh://$username@review.opendev.org:29418/$project.git"
+else
+  git remote add upstream "ssh://$username@review.opendev.org:29418/$project.git"
+fi
+
+echo "Committing changes and pushing upstream"
+git commit -as -m "$message"
+git push upstream HEAD:refs/for/$BRANCH
+
+retVal1=$?
+if [[ $retVal1 -eq 0 ]]
+then
+  echo "Push upstream to OpenDev succeeded"
+else
+  echo "Push upstream to OpenDev failed"
+  exit 2
+fi
+
+git checkout $BRANCH
+git branch -D delivery_branch
