fix: setup all port maps correctly on service

This commit is contained in:
Jose Diaz-Gonzalez
2024-01-18 01:02:49 -05:00
parent 2911218816
commit 1e11ec3911
2 changed files with 16 additions and 11 deletions

View File

@@ -62,7 +62,6 @@ type IngressRoute struct {
Entrypoints []IngressRouteEntrypoint
Hostnames []string
Namespace string
Port int32
PortMap PortMap
ProcessType string
ServiceName string
@@ -77,7 +76,7 @@ type Secret struct {
type Service struct {
AppName string
Namespace string
Port int32
PortMaps []PortMap
}
type PrintInput struct {
@@ -129,7 +128,6 @@ func createIngressRoutesFiles(input CreateIngressRoutesInput) error {
AppName: input.AppName,
Hostnames: domains,
Namespace: input.Namespace,
Port: input.Deployment.Spec.Template.Spec.Containers[0].Ports[0].ContainerPort,
PortMap: portMap,
ProcessType: "web",
ServiceName: input.Service.Name,
@@ -424,15 +422,22 @@ func templateKubernetesService(input Service) corev1.Service {
"dokku.com/app-process-type": fmt.Sprintf("%s-%s", input.AppName, "web"),
"dokku.com/process-type": "web",
},
Ports: []corev1.ServicePort{
{
Name: "web",
Port: input.Port,
TargetPort: intstr.FromInt32(input.Port),
},
},
},
}
for _, portMap := range input.PortMaps {
protocol := "TCP"
if portMap.Scheme == "udp" {
protocol = "UDP"
}
service.Spec.Ports = append(service.Spec.Ports, corev1.ServicePort{
Name: fmt.Sprintf("%s-%d-%d", portMap.Scheme, portMap.HostPort, portMap.ContainerPort),
Port: portMap.HostPort,
TargetPort: intstr.FromString(fmt.Sprintf("%s-%d-%d", portMap.Scheme, portMap.HostPort, portMap.ContainerPort)),
Protocol: corev1.Protocol(protocol),
})
}
return service
}

View File

@@ -289,7 +289,7 @@ data:
service := templateKubernetesService(Service{
AppName: appName,
Namespace: namespace,
Port: deployment.Spec.Template.Spec.Containers[0].Ports[0].ContainerPort,
PortMaps: portMaps,
})
err := printResource(PrintInput{