diff --git a/cdist/conf/type/__dog_vdi/explorer/list b/cdist/conf/type/__dog_vdi/explorer/list
new file mode 100755
index 00000000..856c86fc
--- /dev/null
+++ b/cdist/conf/type/__dog_vdi/explorer/list
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# 2014 Nico Schottelius (nico-cdist at schottelius.org)
+#
+# This file is part of cdist.
+#
+# cdist is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cdist is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cdist. If not, see .
+#
+
+name="$__object_id"
+
+dog vdi list -r "$name"
diff --git a/cdist/conf/type/__dog_vdi/gencode-remote b/cdist/conf/type/__dog_vdi/gencode-remote
new file mode 100644
index 00000000..6e4bb4d0
--- /dev/null
+++ b/cdist/conf/type/__dog_vdi/gencode-remote
@@ -0,0 +1,19 @@
+################################################################################
+# State: absent is handled by manifest - we need only to do stuff if image is
+# not existing and state != absent
+#
+state="$(cat "$__object/parameter/state")"
+[ "$state" = "absent" ] && exit 0
+
+exists="$(cat "$__object/explorer/exists")"
+[ "$exists" ] && exit 0
+
+################################################################################
+# Still there? Create image
+#
+
+format="$(cat "$__object/parameter/format")"
+size="$(cat "$__object/parameter/size")"
+diskimage="/$__object_id"
+
+echo qemu-img create -f \"$format\" \"$diskimage\" \"$size\"
diff --git a/cdist/conf/type/__dog_vdi/man.text b/cdist/conf/type/__dog_vdi/man.text
new file mode 100644
index 00000000..444ab15d
--- /dev/null
+++ b/cdist/conf/type/__dog_vdi/man.text
@@ -0,0 +1,50 @@
+cdist-type__dog_vdi(7)
+======================
+Nico Schottelius
+
+
+NAME
+----
+cdist-type__dog_vdi - Manage Sheepdog VM images
+
+
+DESCRIPTION
+-----------
+The dog program is used to create qemu images for
+qemu and (qemu-)kvm.
+
+
+REQUIRED PARAMETERS
+-------------------
+size::
+ Size of the image in dog vdi compatible units.
+
+
+OPTIONAL PARAMETERS
+-------------------
+state::
+ Either "present" or "absent", defaults to "present"
+
+
+EXAMPLES
+--------
+
+--------------------------------------------------------------------------------
+# Create a 50G size image
+__dog_vdi nico-privat.sky.ungleich.ch --size 50G
+
+# Remove image
+__dog_vdi nico-privat.sky.ungleich.ch --state absent
+--------------------------------------------------------------------------------
+
+
+SEE ALSO
+--------
+- cdist-type(7)
+- dog(8)
+
+
+COPYING
+-------
+Copyright \(C) 2014 Nico Schottelius. Free use of this software is
+granted under the terms of the GNU General Public License version 3 (GPLv3).
diff --git a/cdist/conf/type/__dog_vdi/parameter/default/format b/cdist/conf/type/__dog_vdi/parameter/default/format
new file mode 100644
index 00000000..e0a90ab9
--- /dev/null
+++ b/cdist/conf/type/__dog_vdi/parameter/default/format
@@ -0,0 +1 @@
+qcow2
diff --git a/cdist/conf/type/__dog_vdi/parameter/default/state b/cdist/conf/type/__dog_vdi/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__dog_vdi/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__dog_vdi/parameter/optional b/cdist/conf/type/__dog_vdi/parameter/optional
new file mode 100644
index 00000000..71b9a32b
--- /dev/null
+++ b/cdist/conf/type/__dog_vdi/parameter/optional
@@ -0,0 +1,2 @@
+format
+state
diff --git a/cdist/conf/type/__dog_vdi/parameter/required b/cdist/conf/type/__dog_vdi/parameter/required
new file mode 100644
index 00000000..2a613ba5
--- /dev/null
+++ b/cdist/conf/type/__dog_vdi/parameter/required
@@ -0,0 +1 @@
+size