add regex which replaces invalid chars in service offering
diff --git a/metadata.go b/metadata.go
index f2deccc..5854a4c 100644
--- a/metadata.go
+++ b/metadata.go
@@ -23,6 +23,7 @@
 	"io/ioutil"
 	"net"
 	"net/http"
+	"regexp"
 
 	"github.com/d2g/dhcp4"
 	"k8s.io/api/core/v1"
@@ -47,6 +48,8 @@
 	metadataTypeZone         metadataType = "availability-zone"
 )
 
+var labelInvalidCharsRegex *regexp.Regexp = regexp.MustCompile(`([^A-Za-z0-9][^-A-Za-z0-9_.]*)?[^A-Za-z0-9]`)
+
 // NodeAddresses returns the addresses of the specified instance.
 func (m *metadata) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.NodeAddress, error) {
 	externalIP, err := m.get(metadataTypeExternalIP)
@@ -97,7 +100,11 @@
 
 // InstanceType returns the type of the specified instance.
 func (m *metadata) InstanceType(ctx context.Context, name types.NodeName) (string, error) {
-	instanceType, err := m.get(metadataTypeInstanceType)
+	instanceTypeCS, err := m.get(metadataTypeInstanceType)
+
+	// Replace everything that doesn't match the metadata.labels regex
+	instanceType := labelInvalidCharsRegex.ReplaceAllString(instanceTypeCS, ``)
+
 	if err != nil {
 		return "", fmt.Errorf("could not get instance type: %v", err)
 	}