@@ -5,10 +5,9 @@ import (
5
5
"path/filepath"
6
6
"strings"
7
7
8
- v1 "github.com/devfile/api/pkg/apis/workspaces/v1alpha2"
8
+ v1 "github.com/devfile/api/v2/ pkg/apis/workspaces/v1alpha2"
9
9
"github.com/devfile/library/pkg/devfile/parser"
10
10
"github.com/devfile/library/pkg/devfile/parser/data/v2/common"
11
- "github.com/devfile/library/pkg/util"
12
11
buildv1 "github.com/openshift/api/build/v1"
13
12
routev1 "github.com/openshift/api/route/v1"
14
13
appsv1 "k8s.io/api/apps/v1"
@@ -34,14 +33,25 @@ func convertEnvs(vars []v1.EnvVar) []corev1.EnvVar {
34
33
// convertPorts converts endpoint variables from the devfile structure to kubernetes ContainerPort
35
34
func convertPorts (endpoints []v1.Endpoint ) []corev1.ContainerPort {
36
35
containerPorts := []corev1.ContainerPort {}
36
+ portMap := make (map [string ]bool )
37
37
for _ , endpoint := range endpoints {
38
- name := strings . TrimSpace ( util . GetDNS1123Name ( strings . ToLower ( endpoint . Name )))
39
- name = util . TruncateString ( name , 15 )
38
+ var portProtocol corev1. Protocol
39
+ portNumber := int32 ( endpoint . TargetPort )
40
40
41
- containerPorts = append (containerPorts , corev1.ContainerPort {
42
- Name : name ,
43
- ContainerPort : int32 (endpoint .TargetPort ),
44
- })
41
+ if endpoint .Protocol == v1 .UDPEndpointProtocol {
42
+ portProtocol = corev1 .ProtocolUDP
43
+ } else {
44
+ portProtocol = corev1 .ProtocolTCP
45
+ }
46
+ name := fmt .Sprintf ("%d-%s" , portNumber , strings .ToLower (string (portProtocol )))
47
+ if _ , exist := portMap [name ]; ! exist {
48
+ portMap [name ] = true
49
+ containerPorts = append (containerPorts , corev1.ContainerPort {
50
+ Name : name ,
51
+ ContainerPort : portNumber ,
52
+ Protocol : portProtocol ,
53
+ })
54
+ }
45
55
}
46
56
return containerPorts
47
57
}
0 commit comments