diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d38c149
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*.swp
+*~
diff --git a/chef/roles/os-compute-api.json b/chef/roles/os-compute-api.json
index 8d04ced..d261566 100644
--- a/chef/roles/os-compute-api.json
+++ b/chef/roles/os-compute-api.json
@@ -9,7 +9,6 @@
   "chef_type": "role",
   "run_list": [
     "role[os-base]",
-//    "role[os-compute-api-ec2]",
     "role[os-compute-api-os-compute]",
     "role[os-compute-api-metadata]",
     "recipe[openstack-compute::identity_registration]"
diff --git a/chef/roles/os-compute-worker.json b/chef/roles/os-compute-worker.json
index bb6aab6..294d85a 100644
--- a/chef/roles/os-compute-worker.json
+++ b/chef/roles/os-compute-worker.json
@@ -9,7 +9,8 @@
   "chef_type": "role",
   "run_list": [
     "role[os-base]",
-    "recipe[openstack-compute::compute]"
+    "recipe[openstack-compute::compute]",
+    "recipe[openssh::passwordless]"
   ],
   "env_run_lists": {
   }
diff --git a/chef/roles/os-controller.json b/chef/roles/os-controller.json
new file mode 100644
index 0000000..9c2d8f1
--- /dev/null
+++ b/chef/roles/os-controller.json
@@ -0,0 +1,19 @@
+{
+  "name": "os-controller",
+  "description": "Roll-up role for all of the OpenStack services on a controller.",
+  "json_class": "Chef::Role",
+  "default_attributes": {
+  },
+  "override_attributes": {
+  },
+  "chef_type": "role",
+  "run_list": [
+    "role[os-identity]",
+    "role[os-dashboard]",
+    "role[os-compute-controller]",
+    "role[os-network-server]",
+    "role[os-block-storage-controller]"
+  ],
+  "env_run_lists": {
+  }
+}
diff --git a/chef/roles/os-dashboard.json b/chef/roles/os-dashboard.json
index 70415e7..730314a 100644
--- a/chef/roles/os-dashboard.json
+++ b/chef/roles/os-dashboard.json
@@ -8,7 +8,6 @@
   },
   "chef_type": "role",
   "run_list": [
-    "recipe[memcached]",
     "role[os-base]",
     "recipe[openstack-dashboard::server]"
   ],
diff --git a/chef/roles/os-ha.json b/chef/roles/os-ha.json
new file mode 100644
index 0000000..74c03f6
--- /dev/null
+++ b/chef/roles/os-ha.json
@@ -0,0 +1,25 @@
+{
+  "name": "os-ha",
+  "description": "Software load banance for all of the OpenStack services.",
+  "json_class": "Chef::Role",
+  "default_attributes": {
+  },
+  "override_attributes": {
+    "collectd": {
+      "rhel": {
+        "plugins": {
+          "processes": {
+            "Process": ["haproxy", "keepalived"]
+          }
+        }
+      }
+    }
+  },
+  "chef_type": "role",
+  "run_list": [
+    "recipe[keepalived]",
+    "recipe[haproxy::tcp_lb]"
+  ],
+  "env_run_lists": {
+  }
+}
diff --git a/chef/roles/os-identity.json b/chef/roles/os-identity.json
index a494ded..0cac884 100644
--- a/chef/roles/os-identity.json
+++ b/chef/roles/os-identity.json
@@ -9,6 +9,7 @@
   "chef_type": "role",
   "run_list": [
     "role[os-base]",
+    "role[os-ops-caching]",
     "recipe[openstack-identity::server]",
     "recipe[openstack-identity::registration]"
   ],