kube: add .volume field on PVCs and ConfigMaps

Change-Id: I93eec44bd6df4ecb0044a4797faa9bf6fd26802d
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1811
Reviewed-by: q3k <q3k@hackerspace.pl>
diff --git a/kube/kube.libsonnet b/kube/kube.libsonnet
index ac96451..001cfdb 100644
--- a/kube/kube.libsonnet
+++ b/kube/kube.libsonnet
@@ -32,11 +32,19 @@
         },
     },
 
-    // Remove deprecated `volume.beta.kubernetes.io/storage-class` annotation
     PersistentVolumeClaim(name): kube.PersistentVolumeClaim(name) {
+        // Convenience for creating a volume from a PVC
+        volume:: kube.PersistentVolumeClaimVolume(self),
+
+        // Remove deprecated `volume.beta.kubernetes.io/storage-class` annotation
         metadata+: { annotations: {} },
     },
 
+    ConfigMap(name): kube.ConfigMap(name) {
+        // Convenience for creating a volume from a ConfigMap
+        volume:: kube.ConfigMapVolume(self),
+    },
+
     // Add `target` field
     Service(name): kube.Service(name) {
         // Deployment, Pod, DaemonSet, etc. that this Service is targeting.
diff --git a/kube/postgres.libsonnet b/kube/postgres.libsonnet
index d5ffad4..40f43dc 100644
--- a/kube/postgres.libsonnet
+++ b/kube/postgres.libsonnet
@@ -78,7 +78,7 @@
             template+: {
                 spec+: {
                     volumes_: {
-                        data: kube.PersistentVolumeClaimVolume(postgres.volumeClaim),
+                        data: postgres.volumeClaim.volume,
                     },
                     containers_: {
                         postgres: kube.Container(postgres.makeName("postgres")) {
diff --git a/kube/postgres_v.libsonnet b/kube/postgres_v.libsonnet
index ec7a7b8..695422c 100644
--- a/kube/postgres_v.libsonnet
+++ b/kube/postgres_v.libsonnet
@@ -57,7 +57,7 @@
             template+: {
                 spec+: {
                     volumes_: {
-                        data: kube.PersistentVolumeClaimVolume(postgres.volumeClaim),
+                        data: postgres.volumeClaim.volume,
                     },
                     containers_: {
                         postgres: kube.Container(postgres.makeName("postgres")) {
diff --git a/kube/redis.libsonnet b/kube/redis.libsonnet
index 1464e7a..5d84f66 100644
--- a/kube/redis.libsonnet
+++ b/kube/redis.libsonnet
@@ -54,7 +54,7 @@
             template+: {
                 spec+: {
                     volumes_: {
-                        data: kube.PersistentVolumeClaimVolume(redis.volumeClaim),
+                        data: redis.volumeClaim.volume,
                     },
                     containers_: {
                         redis: kube.Container(redis.makeName("redis")) {