diff --git a/xos/synchronizer/steps/sync_vpgwutenant.py b/xos/synchronizer/steps/sync_vpgwutenant.py
new file mode 100644
index 0000000..b22438c
--- /dev/null
+++ b/xos/synchronizer/steps/sync_vpgwutenant.py
@@ -0,0 +1,44 @@
+import os
+import sys
+from django.db.models import Q, F
+from synchronizers.new_base.SyncInstanceUsingAnsible import SyncInstanceUsingAnsible
+from synchronizers.new_base.modelaccessor import *
+
+parentdir = os.path.join(os.path.dirname(__file__), "..")
+sys.path.insert(0, parentdir)
+
+class SyncVPGWUTenant(SyncInstanceUsingAnsible):
+
+    provides = [VPGWUTenant]
+
+    observes = VPGWUTenant
+
+    requested_interval = 0
+
+    template_name = "vpgwutenant_playbook.yaml"
+
+    service_key_name = "/opt/xos/configurations/mcord/mcord_private_key"
+
+    def __init__(self, *args, **kwargs):
+        super(SyncVPGWUTenant, self).__init__(*args, **kwargs)
+
+    def fetch_pending(self, deleted):
+
+        if (not deleted):
+            objs = VPGWUTenant.get_tenant_objects().filter(
+                Q(enacted__lt=F('updated')) | Q(enacted=None), Q(lazy_blocked=False))
+        else:
+
+            objs = VPGWUTenant.get_deleted_tenant_objects()
+
+        return objs
+
+    def get_extra_attributes(self, o):
+        fields = {}
+        fields['display_message'] = o.display_message
+        fields['s5s8_pgw_tag'] = o.s5s8_pgw_tag
+        fields['image_name'] = o.image_name
+        return fields
+
+    def delete_record(self, port):
+        pass
