diff --git a/openstack-ood/README.md b/openstack-ood/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d9287a3ae8ba8e4456edcf1ef7607a9366c5f8c7
--- /dev/null
+++ b/openstack-ood/README.md
@@ -0,0 +1 @@
+This contains packer hcl files for creating images. For documentation on packer, see [here](https://www.packer.io/docs); for information about the openstack-specific builder, see [here](https://www.packer.io/plugins/builders/openstack)
diff --git a/openstack-ood/nodeimage.pkr.hcl b/openstack-ood/nodeimage.pkr.hcl
new file mode 100644
index 0000000000000000000000000000000000000000..269f8219195169207725ea956b0db22f9264a68d
--- /dev/null
+++ b/openstack-ood/nodeimage.pkr.hcl
@@ -0,0 +1,39 @@
+locals {
+    local_image_name = "${var.image_name}${var.image_date_suffix ? formatdate("YYYYMMDDHHmm", timestamp()): ""}"
+}
+
+source "openstack" "image" {
+  skip_create_image = var.skip_create_image
+  image_name        = local.local_image_name
+  source_image_name = var.source_image
+  image_members     = var.image_membership
+  image_auto_accept_members = var.auto_accept_members
+  image_tags        = var.image_tags
+  flavor            = var.flavor
+  instance_name     = var.build_instance_name
+
+  floating_ip_network = var.floating_ip_network
+  networks = var.networks
+  security_groups = var.security_groups
+
+  ssh_username = var.ssh_username
+}
+
+build {
+  sources = ["source.openstack.image"]
+
+  provisioner "ansible" {
+    playbook_file = "./ansible/node.yml"
+    roles_path = "./ansible/roles"
+    extra_arguments = [
+      "--extra-vars", "root_ssh_key='${var.root_ssh_key}'"
+    ]
+  }
+  provisioner "ansible" {
+    use_proxy =  false
+    ansible_env_vars = ["ANSIBLE_HOST_KEY_CHECKING=False"]
+    playbook_file = "../ood-packer.yaml"
+    roles_path = "./ansible/roles"
+    inventory_file = "../hosts"
+  }
+}
diff --git a/openstack-ood/variables.pkr.hcl b/openstack-ood/variables.pkr.hcl
new file mode 100644
index 0000000000000000000000000000000000000000..5082805e08faa68325e6cd7b5ec18bb89467c623
--- /dev/null
+++ b/openstack-ood/variables.pkr.hcl
@@ -0,0 +1,78 @@
+variable "root_ssh_key" {
+  type = string
+  description = "The root key to use for ssh"
+}
+
+variable "image_name" {
+  type        = string
+  default     = "cluster-image"
+  description = "Name of the image in openstack"
+}
+
+variable "image_date_suffix" {
+  type        = bool
+  default     = false
+  description = "Append a date to the image name (in YYYYMMDDHHMMSS format)"
+}
+
+variable "image_tags" {
+  type        = list(string)
+  default     = []
+  description = "List of tags to be associated to the resulting image"
+}
+
+variable "image_membership" {
+  type        = list(string)
+  default     = []
+  description = "Projects/tenants to share the image in openstack with"
+}
+
+variable "auto_accept_members" {
+  type        = bool
+  default     = false
+  description = "A boolean value for auto accepting image in the projects/tenants defined in image_membership."
+}
+
+variable "skip_create_image" {
+  type = bool
+  default = false
+  description = "A boolean value for skipping image creation at the end of the build"
+}
+
+variable "source_image" {
+  type        = string
+  description = "The name of the source image to use"
+}
+
+variable "flavor" {
+  type        = string
+  description = "The name of the flavor to use"
+}
+
+variable "floating_ip_network" {
+  type = string
+  description = "floating ip network to use with (temporary) ip assignmnet to a vm"
+}
+
+variable "networks" {
+  type = list(string)
+  description = "List of network UUIDs to assign to the network"
+}
+
+variable "security_groups" {
+  type = list(string)
+  default = []
+  description = "A list of security groups to add - you should make sure ssh access is open to the machine"
+}
+
+variable "build_instance_name" {
+  type = string
+  default = "ood"
+  description = "A name of build instance used for image build"
+}
+
+variable "ssh_username" {
+  type = string
+  default = "centos"
+  description = "The default username to use for SSH"
+}