diff --git a/plugins/wasm-go/pkg/wrapper/cluster_wrapper.go b/plugins/wasm-go/pkg/wrapper/cluster_wrapper.go index 239ab60f5..cb7f55e9d 100644 --- a/plugins/wasm-go/pkg/wrapper/cluster_wrapper.go +++ b/plugins/wasm-go/pkg/wrapper/cluster_wrapper.go @@ -131,3 +131,23 @@ func (c DnsCluster) ClusterName() string { func (c DnsCluster) HostName() string { return c.Domain } + +type ConsulCluster struct { + ServiceName string + Datacenter string + Port int64 + Host string +} + +func (c ConsulCluster) ClusterName() string { + tail := "consul" + return fmt.Sprintf("outbound|%d||%s.%s.%s", + c.Port, c.ServiceName, c.Datacenter, tail) +} + +func (c ConsulCluster) HostName() string { + if c.Host != "" { + return c.Host + } + return c.ServiceName +}