From bf82cb3fca43acae07f1997597eff788ace758ac Mon Sep 17 00:00:00 2001 From: smuu <18609909+smuu@users.noreply.github.com> Date: Fri, 6 Dec 2024 11:18:08 +0100 Subject: [PATCH] feat: add ports also to the container (#588) * feat: add ports also to the container Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> * feat: also exposing ports in sidecars Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --------- Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- pkg/instance/execution.go | 4 ++++ pkg/k8s/pod.go | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/pkg/instance/execution.go b/pkg/instance/execution.go index f105834..534bb5f 100644 --- a/pkg/instance/execution.go +++ b/pkg/instance/execution.go @@ -384,6 +384,8 @@ func (e *execution) prepareReplicaSetConfig() k8s.ReplicaSetConfig { StartupProbe: e.instance.monitoring.startupProbe, Files: e.instance.storage.files, SecurityContext: e.instance.security.prepareSecurityContext(), + TCPPorts: e.instance.network.portsTCP, + UDPPorts: e.instance.network.portsUDP, } sidecarConfigs := make([]k8s.ContainerConfig, 0) @@ -403,6 +405,8 @@ func (e *execution) prepareReplicaSetConfig() k8s.ReplicaSetConfig { StartupProbe: sidecar.Instance().monitoring.startupProbe, Files: sidecar.Instance().storage.files, SecurityContext: sidecar.Instance().security.prepareSecurityContext(), + TCPPorts: sidecar.Instance().network.portsTCP, + UDPPorts: sidecar.Instance().network.portsUDP, }) } diff --git a/pkg/k8s/pod.go b/pkg/k8s/pod.go index 0127d5d..397110c 100644 --- a/pkg/k8s/pod.go +++ b/pkg/k8s/pod.go @@ -51,6 +51,8 @@ type ContainerConfig struct { StartupProbe *v1.Probe // Startup probe for the container Files []*File // Files to add to the Pod SecurityContext *v1.SecurityContext // Security context for the container + TCPPorts []int // TCP ports to expose on the Pod + UDPPorts []int // UDP ports to expose on the Pod } type PodConfig struct { @@ -521,6 +523,25 @@ func buildResources(memoryRequest, memoryLimit, cpuRequest resource.Quantity) v1 } } +func buildPodPorts(tcpPorts, udpPorts []int) []v1.ContainerPort { + ports := make([]v1.ContainerPort, 0, len(tcpPorts)+len(udpPorts)) + for _, port := range tcpPorts { + ports = append(ports, v1.ContainerPort{ + Name: fmt.Sprintf("tcp-%d", port), + Protocol: v1.ProtocolTCP, + ContainerPort: int32(port), + }) + } + for _, port := range udpPorts { + ports = append(ports, v1.ContainerPort{ + Name: fmt.Sprintf("udp-%d", port), + Protocol: v1.ProtocolUDP, + ContainerPort: int32(port), + }) + } + return ports +} + // prepareContainer creates a v1.Container from a given ContainerConfig. func prepareContainer(config ContainerConfig) v1.Container { return v1.Container{ @@ -532,6 +553,7 @@ func prepareContainer(config ContainerConfig) v1.Container { Env: buildEnv(config.Env), VolumeMounts: buildContainerVolumes(config.Name, config.Volumes, config.Files), Resources: buildResources(config.MemoryRequest, config.MemoryLimit, config.CPURequest), + Ports: buildPodPorts(config.TCPPorts, config.UDPPorts), LivenessProbe: config.LivenessProbe, ReadinessProbe: config.ReadinessProbe, StartupProbe: config.StartupProbe,