cluster/admitomatic: Regexp-based admission rules

Change-Id: Ic2b1d6a952dc194c0ee2fa1673ceb91c43799308
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1723
Reviewed-by: q3k <q3k@hackerspace.pl>
diff --git a/cluster/admitomatic/service.go b/cluster/admitomatic/service.go
index b5f7662..fc0a7d5 100644
--- a/cluster/admitomatic/service.go
+++ b/cluster/admitomatic/service.go
@@ -34,8 +34,14 @@
 		if ad.Dns == "" {
 			return nil, fmt.Errorf("config entry %d: dns must be set", i)
 		}
-		if err := s.ingress.allow(ad.Namespace, ad.Dns); err != nil {
-			return nil, fmt.Errorf("config entry %d: %v", i, err)
+		if ad.Regexp {
+			if err := s.ingress.allowRegexp(ad.Namespace, ad.Dns); err != nil {
+				return nil, fmt.Errorf("config entry (regexp) %d: %v", i, err)
+			}
+		} else {
+			if err := s.ingress.allow(ad.Namespace, ad.Dns); err != nil {
+				return nil, fmt.Errorf("config entry %d: %v", i, err)
+			}
 		}
 		glog.Infof("Ingress: allowing %s in %s", ad.Dns, ad.Namespace)
 	}