diff --git a/doc/swift-guide.rst b/doc/swift-guide.rst
index b4a2aed6cf..613ec4bb93 100644
--- a/doc/swift-guide.rst
+++ b/doc/swift-guide.rst
@@ -9,20 +9,15 @@ Overview
 Kolla can deploy a full working Swift setup in either a **all-in-one** or
 **multinode** setup.
 
-Prerequisites
-=============
-Before running Swift we need to generate **rings**, which are binary compressed
-files that at a high level let the various Swift services know where data is in
-the cluster. We hope to automate this process in a future release.
-
 Disks with a partition table (recommended)
 ==========================================
 
-Swift also expects block devices to be available for storage. To prepare a disk
-for use as Swift storage device, a special partition name and filesystem label
-need to be added. So that Kolla can detect those disks and mount for services.
+Swift requires block devices to be available for storage. To prepare a disk
+for use as a Swift storage device, a special partition name and filesystem label
+need to be added.
 
-Follow the example below to add 3 disks for an **all-in-one** demo setup.
+The following should be done on each storage node, the example is shown
+for three disks:
 
 ::
 
@@ -67,65 +62,82 @@ Given hard disks with labels swd1, swd2, swd3, use the following settings in
 Rings
 =====
 
-Run following commands locally to generate Rings for **all-in-one** demo setup.
-The commands work with **disks with partition table** example listed above.
-Please modify accordingly if your setup is different.
+Before running Swift we need to generate **rings**, which are binary compressed
+files that at a high level let the various Swift services know where data is in
+the cluster. We hope to automate this process in a future release.
+
+The following example commands should be run from the ``operator`` node to
+generate rings for a demo setup.  The commands work with **disks with partition
+table** example listed above.  Please modify accordingly if your setup is
+different.
 
 ::
 
   export KOLLA_INTERNAL_ADDRESS=1.2.3.4
-  export KOLLA_BASE_DISTRO=centos
-  export KOLLA_INSTALL_TYPE=binary
+  export KOLLA_SWIFT_BASE_IMAGE="kolla/oraclelinux-source-swift-base:4.0.0"
+
+  mkdir -p /etc/kolla/config/swift
 
   # Object ring
   docker run \
+    --rm \
     -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
-    kolla/${KOLLA_BASE_DISTRO}-${KOLLA_INSTALL_TYPE}-swift-base \
-    swift-ring-builder /etc/kolla/config/swift/object.builder create 10 3 1
+    $KOLLA_SWIFT_BASE_IMAGE \
+    swift-ring-builder \
+      /etc/kolla/config/swift/object.builder create 10 3 1
 
   for i in {0..2}; do
     docker run \
+      --rm \
       -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
-      kolla/${KOLLA_BASE_DISTRO}-${KOLLA_INSTALL_TYPE}-swift-base swift-ring-builder \
-      /etc/kolla/config/swift/object.builder add r1z1-${KOLLA_INTERNAL_ADDRESS}:6000/d${i} 1;
+      $KOLLA_SWIFT_BASE_IMAGE \
+      swift-ring-builder \
+        /etc/kolla/config/swift/object.builder add r1z1-${KOLLA_INTERNAL_ADDRESS}:6000/d${i} 1;
   done
 
   # Account ring
   docker run \
+    --rm \
     -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
-    kolla/${KOLLA_BASE_DISTRO}-${KOLLA_INSTALL_TYPE}-swift-base \
-    swift-ring-builder /etc/kolla/config/swift/account.builder create 10 3 1
+    $KOLLA_SWIFT_BASE_IMAGE \
+    swift-ring-builder \
+      /etc/kolla/config/swift/account.builder create 10 3 1
 
   for i in {0..2}; do
     docker run \
+      --rm \
       -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
-      kolla/${KOLLA_BASE_DISTRO}-${KOLLA_INSTALL_TYPE}-swift-base swift-ring-builder \
-      /etc/kolla/config/swift/account.builder add r1z1-${KOLLA_INTERNAL_ADDRESS}:6001/d${i} 1;
+      $KOLLA_SWIFT_BASE_IMAGE \
+      swift-ring-builder \
+        /etc/kolla/config/swift/account.builder add r1z1-${KOLLA_INTERNAL_ADDRESS}:6001/d${i} 1;
   done
 
   # Container ring
   docker run \
+    --rm \
     -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
-    kolla/${KOLLA_BASE_DISTRO}-${KOLLA_INSTALL_TYPE}-swift-base \
-    swift-ring-builder /etc/kolla/config/swift/container.builder create 10 3 1
+    $KOLLA_SWIFT_BASE_IMAGE \
+    swift-ring-builder \
+      /etc/kolla/config/swift/container.builder create 10 3 1
 
   for i in {0..2}; do
     docker run \
+      --rm \
       -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
-      kolla/${KOLLA_BASE_DISTRO}-${KOLLA_INSTALL_TYPE}-swift-base swift-ring-builder \
-      /etc/kolla/config/swift/container.builder add r1z1-${KOLLA_INTERNAL_ADDRESS}:6002/d${i} 1;
+      $KOLLA_SWIFT_BASE_IMAGE \
+      swift-ring-builder \
+        etc/kolla/config/swift/container.builder add r1z1-${KOLLA_INTERNAL_ADDRESS}:6002/d${i} 1;
   done
 
   for ring in object account container; do
     docker run \
+      --rm \
       -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
-      kolla/${KOLLA_BASE_DISTRO}-${KOLLA_INSTALL_TYPE}-swift-base swift-ring-builder \
-      /etc/kolla/config/swift/${ring}.builder rebalance;
+      $KOLLA_SWIFT_BASE_IMAGE \
+      swift-ring-builder \
+        /etc/kolla/config/swift/${ring}.builder rebalance;
   done
 
-Similar commands can be used for **multinode**, you will just need to run the
-**add** step for each IP in the cluster.
-
 For more info, see
 https://docs.openstack.org/project-install-guide/object-storage/ocata/initial-rings.html
 
@@ -138,17 +150,11 @@ Enable Swift in ``/etc/kolla/globals.yml``:
     enable_swift : "yes"
 
 Once the rings are in place, deploying Swift is the same as any other Kolla
-Ansible service. Below is the minimal command to bring up Swift **all-in-one**,
-and it's dependencies:
+Ansible service:
 
 ::
 
-  ansible-playbook \
-    -i ansible/inventory/all-in-one \
-    -e @/etc/kolla/globals.yml \
-    -e @etc/kolla/passwords.yml \
-    ansible/site.yml \
-    --tags=rabbitmq,mariadb,keystone,swift
+  kolla-ansible deploy
 
 Validation
 ==========