diff --git a/terraform/modules/rke1/network.tf b/terraform/modules/rke1/network.tf
index 0a23a7e663475c93ddfd972fad5e6c7f86b8a948..10d41755a0f91f2ec3964afa5fb64e76461d5740 100644
--- a/terraform/modules/rke1/network.tf
+++ b/terraform/modules/rke1/network.tf
@@ -40,7 +40,7 @@ resource "openstack_networking_router_interface_v2" "kube_gateway" {
 
 resource "openstack_networking_port_v2" "controlplane_ip" {
   count              = var.controlplane_count
-  name               = format("%s-controlplane-%d", var.cluster_name, count.index + 1)
+  name               = local.controlplane[count.index]
   network_id         = openstack_networking_network_v2.cluster_net.id
   security_group_ids = [openstack_networking_secgroup_v2.cluster_security_group.id]
   depends_on         = [openstack_networking_router_interface_v2.kube_gateway]
@@ -55,7 +55,7 @@ resource "openstack_networking_port_v2" "controlplane_ip" {
 
 resource "openstack_networking_port_v2" "controlplane_ip_public" {
   count              = var.controlplane_count
-  name               = format("%s-controlplane-%d", var.cluster_name, count.index + 1)
+  name               = local.controlplane[count.index]
   network_id         = data.openstack_networking_network_v2.ext_net.id
   security_group_ids = [openstack_networking_secgroup_v2.cluster_security_group.id]
 }
@@ -85,7 +85,7 @@ resource "openstack_networking_floatingip_v2" "floating_ip" {
 # well.
 resource "openstack_networking_port_v2" "worker_ip" {
   count              = var.worker_count
-  name               = format("%s-worker-%02d", var.cluster_name, count.index + 1)
+  name               = local.worker[count.index]
   network_id         = openstack_networking_network_v2.cluster_net.id
   security_group_ids = [openstack_networking_secgroup_v2.cluster_security_group.id]
   depends_on         = [openstack_networking_router_interface_v2.kube_gateway]
diff --git a/terraform/modules/rke1/nodes.tf b/terraform/modules/rke1/nodes.tf
index c7337a296a94e5fe32aeb56cc398ce3dee6d366b..08b77254eead91faf54a0a6004098c7cdc99d7bb 100644
--- a/terraform/modules/rke1/nodes.tf
+++ b/terraform/modules/rke1/nodes.tf
@@ -1,9 +1,14 @@
+locals {
+  controlplane = [for l in range(var.controlplane_count): var.old_hostnames ? format("%s-controlplane-%d", var.cluster_name, l) : format("%s-controlplane-%d", var.cluster_name, l + 1)]
+  worker       = [for l in range(var.worker_count): var.old_hostnames ? format("%s-worker-%d", var.cluster_name, l) : format("%s-worker-%02d", var.cluster_name, l + 1)]
+}
+
 # ----------------------------------------------------------------------
 # control-plane nodes
 # ----------------------------------------------------------------------
 resource "openstack_compute_instance_v2" "controlplane" {
   count        = var.controlplane_count
-  name         = format("%s-controlplane-%d", var.cluster_name, count.index + 1)
+  name         = local.controlplane[count.index]
   image_name   = var.os
   flavor_name  = var.controlplane_flavor
   key_pair     = openstack_compute_keypair_v2.key.name
@@ -26,7 +31,7 @@ resource "openstack_compute_instance_v2" "controlplane" {
     private_key  = openstack_compute_keypair_v2.key.private_key
     project_name = data.openstack_identity_auth_scope_v3.scope.project_name
     cluster_name = var.cluster_name
-    node_name    = "${var.cluster_name}-controlplane-${count.index}"
+    node_name    = local.controlplane[count.index]
     node_command = rancher2_cluster.kube.cluster_registration_token.0.node_command
     node_options = "--address eth1 --internal-address eth0 --controlplane --etcd"
   }))
@@ -61,7 +66,7 @@ resource "openstack_compute_instance_v2" "controlplane" {
 # ----------------------------------------------------------------------
 resource "openstack_compute_instance_v2" "worker" {
   count        = var.worker_count
-  name         = format("%s-worker-%02d", var.cluster_name, count.index + 1)
+  name         = local.worker[count.index]
   flavor_name  = var.worker_flavor
   key_pair     = local.key
   config_drive = false
@@ -78,7 +83,7 @@ resource "openstack_compute_instance_v2" "worker" {
     private_key  = openstack_compute_keypair_v2.key.private_key
     project_name = data.openstack_identity_auth_scope_v3.scope.project_name
     cluster_name = var.cluster_name
-    node_name    = format("%s-worker-%02d", var.cluster_name, count.index + 1)
+    node_name    = local.worker[count.index]
     node_command = rancher2_cluster.kube.cluster_registration_token.0.node_command
     node_options = "--worker"
   }))
diff --git a/terraform/modules/rke1/variables.tf b/terraform/modules/rke1/variables.tf
index 3c580740d07c731f1257c1cf86042a0c5cd3b956..82491a9e1eb2b0d8fa6ba4745348c5a46e183472 100644
--- a/terraform/modules/rke1/variables.tf
+++ b/terraform/modules/rke1/variables.tf
@@ -130,6 +130,12 @@ variable "openstack_ssh_key" {
 # OPENSTACK NODES
 # ----------------------------------------------------------------------
 
+variable "old_hostnames" {
+  type        = bool
+  description = "should old hostname be used (base 0)"
+  default     = false
+}
+
 variable "os" {
   type        = string
   description = "Base image to use for the OS"