From 4189cfe52c302c018e7d0e8846ddd19c4d8c2d35 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Wed, 16 Sep 2020 21:13:23 +0100 Subject: [PATCH] Expose ports for core services Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- docker-compose.yaml | 6 ++++++ pkg/{contants.go => constants.go} | 0 pkg/supervisor.go | 23 +++++++++++++++++++++++ pkg/testdata/docker-compose.yaml | 6 ++++++ 4 files changed, 35 insertions(+) rename pkg/{contants.go => constants.go} (100%) diff --git a/docker-compose.yaml b/docker-compose.yaml index 5b1c656..9a6deef 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -26,6 +26,8 @@ services: - "8222" - "--store=memory" - "--cluster_id=faas-cluster" + ports: + - "127.0.0.1:8222:8222" prometheus: image: docker.io/prom/prometheus:v2.14.0 @@ -35,6 +37,8 @@ services: target: /etc/prometheus/prometheus.yml cap_add: - CAP_NET_RAW + ports: + - "127.0.0.1:9090:9090" gateway: image: "docker.io/openfaas/gateway:0.18.17${ARCH_SUFFIX}" @@ -65,6 +69,8 @@ services: - basic-auth-plugin - nats - prometheus + ports: + - "8080:8080" queue-worker: image: docker.io/openfaas/queue-worker:0.11.2 diff --git a/pkg/contants.go b/pkg/constants.go similarity index 100% rename from pkg/contants.go rename to pkg/constants.go diff --git a/pkg/supervisor.go b/pkg/supervisor.go index 7608680..5a3971c 100644 --- a/pkg/supervisor.go +++ b/pkg/supervisor.go @@ -41,6 +41,13 @@ type Service struct { Caps []string Args []string DependsOn []string + Ports []ServicePort +} + +type ServicePort struct { + TargetPort uint32 + Port uint32 + HostIP string } type Mount struct { @@ -288,6 +295,8 @@ func ParseCompose(config *compose.Config) ([]Service, error) { }) } + fmt.Printf("Service: %s - %v\n", s.Name, s.Ports) + services[idx] = Service{ Name: s.Name, Image: s.Image, @@ -297,12 +306,26 @@ func ParseCompose(config *compose.Config) ([]Service, error) { Env: env, Mounts: mounts, DependsOn: s.DependsOn, + Ports: convertPorts(s.Ports), } } return services, nil } +func convertPorts(ports []compose.ServicePortConfig) []ServicePort { + servicePorts := []ServicePort{} + for _, p := range ports { + servicePorts = append(servicePorts, ServicePort{ + Port: p.Published, + TargetPort: p.Target, + HostIP: p.HostIP, + }) + } + + return servicePorts +} + // LoadComposeFile is a helper method for loading a docker-compose file func LoadComposeFile(wd string, file string) (*compose.Config, error) { return LoadComposeFileWithArch(wd, file, env.GetClientArch) diff --git a/pkg/testdata/docker-compose.yaml b/pkg/testdata/docker-compose.yaml index 5b1c656..9a6deef 100644 --- a/pkg/testdata/docker-compose.yaml +++ b/pkg/testdata/docker-compose.yaml @@ -26,6 +26,8 @@ services: - "8222" - "--store=memory" - "--cluster_id=faas-cluster" + ports: + - "127.0.0.1:8222:8222" prometheus: image: docker.io/prom/prometheus:v2.14.0 @@ -35,6 +37,8 @@ services: target: /etc/prometheus/prometheus.yml cap_add: - CAP_NET_RAW + ports: + - "127.0.0.1:9090:9090" gateway: image: "docker.io/openfaas/gateway:0.18.17${ARCH_SUFFIX}" @@ -65,6 +69,8 @@ services: - basic-auth-plugin - nats - prometheus + ports: + - "8080:8080" queue-worker: image: docker.io/openfaas/queue-worker:0.11.2