diff --git a/.terraform.lock.hcl b/.terraform.lock.hcl
index 06588c9b4667f1ec797bf29ab724b418f542bb21..8ec4f246bdb105db733d04679f0a40e339dee765 100644
--- a/.terraform.lock.hcl
+++ b/.terraform.lock.hcl
@@ -22,6 +22,7 @@ provider "registry.terraform.io/terraform-provider-openstack/openstack" {
   version     = "1.35.0"
   constraints = "~> 1.35.0"
   hashes = [
+    "h1:dl0m5Ud6Caqx/FLDPHOWV1XbG2L7NntGZVOoLYAnOZI=",
     "h1:k1SCosvSICWAgRkswl83KtCycN7iP9asejWDDEQEtuk=",
     "zh:04cf8800c83289a28619ac9925bc03e0ccd624f0ed68284f8bd473cf48f05ef0",
     "zh:15fc2e1ea6f87d11e15aad075f3bfb7013eb63f31637f1ee317c94686c9650ec",
diff --git a/README.md b/README.md
index 0a78b120b707dea60cc9f2c012031df15e02fdd3..dadeb8958f5951d0c448ab4112dec6de9f3e74b6 100644
--- a/README.md
+++ b/README.md
@@ -40,9 +40,8 @@
 | `base_image_visibility` | string       | no       | `null`               | Visibility of image. Must be one of "public", "private", "community", or "shared" |
 | `osd_node_count`        | number       | no       | 3                    | Amount of OSD node(s) to provision                                                |
 | `public_network_dns`    | list(string) | yes      |                      | DNS to use for hosts                                                              |
-| `sles_reg_code`         | string       | yes      |                      | SUSE Enterprise registration code                                                 |
-| `sles_reg_email`        | string       | yes      |                      | email for use with SUSE registration                                              |
-| `sles_ses_reg`          | string       | yes      |                      | code to register for the storage package in SUSE                                  |
+| `sles_rmt_host`         | string       | yes      |                      | Host of a SUSE RMT server                                                         |
+| `sles_rmt_fingerprint`  | string       | yes      |                      | Fingerprint for SUSE RMT certificate                                              |
 | `osd_disk_sizes`        | list(number) | no       | \[8, 8\]             | Amount/size of disks to add, in GB                                                |
 | `app_instance_count`    | number       | no       | 0                    | Additional instances to add for testing rgw, rbd, etc                             |
 
diff --git a/compute.tf b/compute.tf
index d7428bc8d0aef1d881f68257c10bc406795d7859..924e038b4859b8dfe96b3e303db9d2b44b8bd31a 100644
--- a/compute.tf
+++ b/compute.tf
@@ -29,9 +29,8 @@ resource "openstack_compute_instance_v2" "admin" {
 
   user_data = templatefile("${path.module}/templates/cloud-init-admin.yml",
     {
-      sles_reg_code  = var.sles_reg_code
-      sles_reg_email = var.sles_reg_email
-      sles_ses_reg   = var.sles_ses_reg
+      sles_rmt_host        = var.sles_rmt_host
+      sles_rmt_fingerprint = var.sles_rmt_fingerprint
       b64_json = base64encode(templatefile("${path.module}/templates/cluster.json", {
         mon_bootstrap_ip = openstack_compute_instance_v2.mon[0].network[0].fixed_ip_v4
         additional_hosts = openstack_compute_instance_v2.app.*.name
@@ -80,9 +79,8 @@ resource "openstack_compute_instance_v2" "osd" {
 
   user_data = templatefile("${path.module}/templates/cloud-init.yml",
     {
-      sles_reg_code  = var.sles_reg_code
-      sles_reg_email = var.sles_reg_email
-      sles_ses_reg   = var.sles_ses_reg
+      sles_rmt_host        = var.sles_rmt_host
+      sles_rmt_fingerprint = var.sles_rmt_fingerprint
   })
 
   block_device {
@@ -132,9 +130,8 @@ resource "openstack_compute_instance_v2" "mon" {
 
   user_data = templatefile("${path.module}/templates/cloud-init.yml",
     {
-      sles_reg_code  = var.sles_reg_code
-      sles_reg_email = var.sles_reg_email
-      sles_ses_reg   = var.sles_ses_reg
+      sles_rmt_host        = var.sles_rmt_host
+      sles_rmt_fingerprint = var.sles_rmt_fingerprint
   })
 
   block_device {
@@ -172,9 +169,8 @@ resource "openstack_compute_instance_v2" "app" {
 
   user_data = templatefile("${path.module}/templates/cloud-init.yml",
     {
-      sles_reg_code  = var.sles_reg_code
-      sles_reg_email = var.sles_reg_email
-      sles_ses_reg   = var.sles_ses_reg
+      sles_rmt_host        = var.sles_rmt_host
+      sles_rmt_fingerprint = var.sles_rmt_fingerprint
   })
 
   block_device {
diff --git a/templates/cloud-init-admin.yml b/templates/cloud-init-admin.yml
index 936dfb4624d147ac8a6dd5ef1b5ca4684cad6749..c54491b9517cfb315f18f13904abbb4404431bdf 100644
--- a/templates/cloud-init-admin.yml
+++ b/templates/cloud-init-admin.yml
@@ -8,11 +8,13 @@ write_files:
     owner: sles:users
 
 runcmd:
-  - sudo SUSEConnect -r ${sles_reg_code} -e ${sles_reg_email}
-  - sudo SUSEConnect -p ses/7/x86_64 -r ${sles_ses_reg}
+  - curl ${sles_rmt_host}tools/rmt-client-setup --output /tmp/rmt-client-setup
+  - sudo sh /tmp/rmt-client-setup --fingerprint ${sles_rmt_fingerprint} --yes ${sles_rmt_host}
+  - sudo SUSEConnect -p ses/7/x86_64
   - sudo zypper in -y salt-minion salt-master
   - sudo sed -i 's/^#\(log_level_logfile:\).*/\1 info/' /etc/salt/minion
   - sudo sed -i 's/^#\(master:\).*/\1 admin.openstack.internal/' /etc/salt/minion
   - sudo systemctl enable salt-minion && sudo systemctl start salt-minion && sudo systemctl enable salt-master && sudo systemctl start salt-master
   - sudo zypper in -y ceph-salt
   - sudo systemctl restart salt-master.service
+  - sudo chown -R sles:users /home/sles/ # needed because the creation of cluster.json changes parent folder ownership to root:root
diff --git a/templates/cloud-init.yml b/templates/cloud-init.yml
index 790cce954b922a56524d8f59ab3d6fb790af6f79..9bef1d70f67b43b198d7c5871769cb3a1e3a8fa5 100644
--- a/templates/cloud-init.yml
+++ b/templates/cloud-init.yml
@@ -1,8 +1,9 @@
 #cloud-config
 
 runcmd:
-  - sudo SUSEConnect -r ${sles_reg_code} -e ${sles_reg_email}
-  - sudo SUSEConnect -p ses/7/x86_64 -r ${sles_ses_reg}
+  - curl ${sles_rmt_host}tools/rmt-client-setup --output /tmp/rmt-client-setup
+  - sudo sh /tmp/rmt-client-setup --fingerprint ${sles_rmt_fingerprint} --yes ${sles_rmt_host}
+  - sudo SUSEConnect -p ses/7/x86_64
   - sudo zypper in -y salt-minion
   - sudo sed -i 's/^#\(log_level_logfile:\).*/\1 info/' /etc/salt/minion
   - sudo sed -i 's/^#\(master:\).*/\1 admin.openstack.internal/' /etc/salt/minion
diff --git a/terraform.tfvars.example b/terraform.tfvars.example
index acf5ace2170ca8e5deb7a3d53d463fb44e584a26..10f22384553ff915308c05141952b553d6123320 100644
--- a/terraform.tfvars.example
+++ b/terraform.tfvars.example
@@ -35,6 +35,5 @@ public_network_dns = ["8.8.8.8", "1.1.1.1"]
 ##
 
 # suse registration details
-sles_reg_code    = "suse registration code"
-sles_reg_email   = "suse registration email"
-sles_ses_reg     = "suse storage extension registration code"
+sles_rmt_host    = "http://rmt.host.here.with.trailing.slash/"
+sles_rmt_fingerprint   = "AA:BB:CC:DD:EE:FF:GG:HH:II:JJ:KK:LL:MM:NN:OO:PP"
diff --git a/variables.tf b/variables.tf
index 9e5f74fe44604440fbf4a9eb5a84b357affc1502..657d3ff5c37ae3d48fd665b7b500256d596de69d 100644
--- a/variables.tf
+++ b/variables.tf
@@ -55,19 +55,14 @@ variable "public_network_dns" {
   description = "dns to use for hosts"
 }
 
-variable "sles_reg_code" {
+variable "sles_rmt_host" {
   type        = string
-  description = "Code to register instance with SUSE connect"
+  description = "host for rmt server"
 }
 
-variable "sles_reg_email" {
+variable "sles_rmt_fingerprint" {
   type        = string
-  description = "Email to use for SUSE registration"
-}
-
-variable "sles_ses_reg" {
-  type        = string
-  description = "code to register for the storage package in SUSE"
+  description = "fingerprint for rmt server"
 }
 
 variable "osd_disk_sizes" {