diff --git a/registry/consul/service.go b/registry/consul/service.go index 18bd4c38d..9ce8a1fa9 100644 --- a/registry/consul/service.go +++ b/registry/consul/service.go @@ -94,16 +94,24 @@ func serviceConfig(client *api.Client, name string, passing map[string]bool, tag continue } - // get all tags which do not have the tag prefix + // get all tags which do not have the tag prefix or the raw tag prefix + const rawPrefix = "fabio " var svctags []string for _, tag := range svc.ServiceTags { - if !strings.HasPrefix(tag, tagPrefix) { + if !strings.HasPrefix(tag, tagPrefix) && !strings.HasPrefix(tag, rawPrefix) { svctags = append(svctags, tag) } } // generate route commands for _, tag := range svc.ServiceTags { + // add raw tags as is + if strings.HasPrefix(tag, rawPrefix) { + tag = strings.TrimSpace(tag[len(rawPrefix):]) + config = append(config, tag) + continue + } + if route, opts, ok := parseURLPrefixTag(tag, tagPrefix, env); ok { name, addr, port := svc.ServiceName, svc.ServiceAddress, svc.ServicePort