diff --git a/tests/add-luks-keys/Makefile b/tests/add-luks-keys/Makefile
new file mode 100644
index 0000000..17a923a
--- /dev/null
+++ b/tests/add-luks-keys/Makefile
@@ -0,0 +1,52 @@
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+#   Makefile of /dracut/add-luks-keys
+#   Description: Create and add a luks key to all luks devices to allow booting of a system without entering a passphrase
+#   Author: Jan Stodola <jstodola@redhat.com>
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+#   Copyright (c) 2016 Red Hat, Inc. All rights reserved.
+#   Red Hat Internal
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+export TEST=/dracut/add-luks-keys
+export TESTVERSION=1.0
+export DESCRIPTION="Create and add a luks key to all luks devices to allow booting of a system without entering a passphrase"
+
+BUILT_FILES=
+
+FILES=$(METADATA) runtest.sh Makefile PURPOSE
+
+.PHONY: all install download clean
+
+run: $(FILES) build
+	./runtest.sh
+
+build: $(BUILT_FILES)
+	test -x runtest.sh || chmod a+x runtest.sh
+
+clean:
+	rm -f *~ $(BUILT_FILES)
+
+
+include /usr/share/rhts/lib/rhts-make.include
+
+$(METADATA): Makefile
+	@echo "Owner:           Jan Stodola <jstodola@redhat.com>" > $(METADATA)
+	@echo "Name:            $(TEST)" >> $(METADATA)
+	@echo "TestVersion:     $(TESTVERSION)" >> $(METADATA)
+	@echo "Path:            $(TEST_DIR)" >> $(METADATA)
+	@echo "Description:     $(DESCRIPTION)" >> $(METADATA)
+	@echo "Type:            Install" >> $(METADATA)
+	@echo "TestTime:        10m" >> $(METADATA)
+	@echo "RunFor:          dracut" >> $(METADATA)
+	@echo "Requires:        dracut" >> $(METADATA)
+	@echo "Priority:        Normal" >> $(METADATA)
+	@echo "License:         Red Hat Internal" >> $(METADATA)
+	@echo "Confidential:    no" >> $(METADATA)
+	@echo "Destructive:     no" >> $(METADATA)
+	@echo "Releases:        -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
+
+	rhts-lint $(METADATA)
diff --git a/tests/add-luks-keys/PURPOSE b/tests/add-luks-keys/PURPOSE
new file mode 100644
index 0000000..a7c6063
--- /dev/null
+++ b/tests/add-luks-keys/PURPOSE
@@ -0,0 +1,3 @@
+PURPOSE of /dracut/add-luks-keys
+Description: Create and add a luks key to all luks devices to allow booting of a system without entering a passphrase. 
+Author: Jan Stodola <jstodola@redhat.com>
diff --git a/tests/add-luks-keys/runtest.sh b/tests/add-luks-keys/runtest.sh
new file mode 100644
index 0000000..7ef652b
--- /dev/null
+++ b/tests/add-luks-keys/runtest.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+#   runtest.sh of /dracut/add-luks-keys
+#   Description: Create and add a luks key to all luks devices to allow booting of a system without entering a passphrase
+#   Author: Jan Stodola <jstodola@redhat.com>
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+#   Copyright (c) 2016 Red Hat, Inc. All rights reserved.
+#   Red Hat Internal
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# Include Beaker environment
+. /usr/bin/rhts-environment.sh || exit 1
+. /usr/share/beakerlib/beakerlib.sh || exit 1
+
+PACKAGE="dracut"
+
+keyfile="/root/keyfile"
+kernel_file=`grubby --default-kernel`
+initrd_file=`grubby --info=$kernel_file | grep ^initrd= | sed 's/^initrd=//' | head -n1`
+kernel_version=`rpm -qf $kernel_file --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n'`
+
+rlJournalStart
+  rlPhaseStartTest "Add luks keys to initramfs"
+
+    if [ ! -e "$keyfile" ]; then
+      rlLog "Creating new key file: $keyfile"
+      rlRun "dd if=/dev/urandom bs=1 count=32 of=$keyfile" 
+      rlRun "chmod 0400 $keyfile"
+    else
+      rlLog "Using existing key file: $keyfile"
+    fi
+
+    rlAssertExists "/etc/crypttab"
+    rlFileSubmit "/etc/crypttab"
+    UUIDS=`cat /etc/crypttab | cut -d' ' -f2 | cut -d'=' -f2`
+    for UUID in $UUIDS; do
+      rlRun "echo 'redhat' | /sbin/cryptsetup luksAddKey /dev/disk/by-uuid/$UUID $keyfile" 
+    done;
+
+    # modify /etc/crypttab, set key file in the thirth column of the file
+    rlRun "awk -v \"KEY_FILE=$keyfile\" '{\$3=KEY_FILE; print \$0}' /etc/crypttab > crypttab_mod" 
+    rlRun "mv -Z crypttab_mod /etc/crypttab"
+    rlRun "chmod 0600 /etc/crypttab"
+
+    rlRun "dracut -f -I $keyfile $initrd_file $kernel_version" 
+
+    # zipl has to be executed on s390x
+    if [ -x /sbin/zipl ]; then
+      rlRun "/sbin/zipl"
+    fi
+
+  rlPhaseEnd
+rlJournalEnd
+
diff --git a/tests/tests.yml b/tests/tests.yml
new file mode 100644
index 0000000..60a098d
--- /dev/null
+++ b/tests/tests.yml
@@ -0,0 +1,11 @@
+---
+# This first play always runs on the local staging system
+- hosts: localhost
+  roles:
+  - role: standard-test-beakerlib
+    tags:
+    - classic
+    tests:
+    - add-luks-keys
+    required_packages:
+    - dracut              # Required for add-luks-keys