diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 9ca55381a6..eca72ff3cd 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -32,6 +32,7 @@ kolla_enable_sanity_checks: "no"
 kolla_enable_sanity_keystone: "{{ kolla_enable_sanity_checks }}"
 kolla_enable_sanity_glance: "{{ kolla_enable_sanity_checks }}"
 kolla_enable_sanity_cinder: "{{ kolla_enable_sanity_checks }}"
+kolla_enable_sanity_swift: "{{ kolla_enable_sanity_checks }}"
 
 ####################
 # Database options
diff --git a/ansible/roles/swift/tasks/check.yml b/ansible/roles/swift/tasks/check.yml
new file mode 100644
index 0000000000..15e438c9dc
--- /dev/null
+++ b/ansible/roles/swift/tasks/check.yml
@@ -0,0 +1,19 @@
+---
+- name: Swift sanity checks
+  command: docker exec -t kolla_toolbox /usr/bin/ansible localhost
+    -m kolla_sanity
+    -a "service=swift
+        project=service
+        user=admin
+        password={{ swift_keystone_password }}
+        role=admin
+        region_name={{ openstack_region_name }}
+        auth={{ '{{ openstack_swift_auth }}' }}"
+    -e "{'openstack_swift_auth':{{ openstack_swift_auth }}}"
+  register: swift_sanity
+  changed_when: "{{ swift_sanity.stdout.find('localhost | SUCCESS => ') != -1 and (swift_sanity.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
+  until: swift_sanity.stdout.split()[2] == 'SUCCESS'
+  retries: 10
+  delay: 5
+  run_once: True
+  when: kolla_enable_sanity_swift | bool
\ No newline at end of file
diff --git a/ansible/roles/swift/tasks/deploy.yml b/ansible/roles/swift/tasks/deploy.yml
index 5b2e8a980b..0a9ab4fed3 100644
--- a/ansible/roles/swift/tasks/deploy.yml
+++ b/ansible/roles/swift/tasks/deploy.yml
@@ -16,3 +16,9 @@
         inventory_hostname in groups['swift-container-server'] or
         inventory_hostname in groups['swift-object-server'] or
         inventory_hostname in groups['swift-proxy-server']
+
+- include: check.yml
+  when: inventory_hostname in groups['swift-account-server'] or
+        inventory_hostname in groups['swift-container-server'] or
+        inventory_hostname in groups['swift-object-server'] or
+        inventory_hostname in groups['swift-proxy-server']
diff --git a/docker/kolla-toolbox/kolla_sanity.py b/docker/kolla-toolbox/kolla_sanity.py
index 1a0b4151a3..167663dec5 100644
--- a/docker/kolla-toolbox/kolla_sanity.py
+++ b/docker/kolla-toolbox/kolla_sanity.py
@@ -38,6 +38,10 @@ class SanityChecks(object):
     def cinder(cloud):
         [volume for volume in cloud.cinder_client.volumes.list()]
 
+    @staticmethod
+    def swift(cloud):
+        [container for container in cloud.swift_client.list()]
+
 
 def main():
     module = AnsibleModule(