From d91ee9cef0d2d46f1b48ab26c406f1260c655eb5 Mon Sep 17 00:00:00 2001 From: David Dollar Date: Wed, 4 Dec 2019 17:33:16 -0500 Subject: [PATCH] k8s: better calculation of service-specific environment (#36) --- provider/k8s/release.go | 21 ++++++++++++++++----- provider/k8s/template/app/service.yml.tmpl | 2 +- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/provider/k8s/release.go b/provider/k8s/release.go index c8ef4a3..55e3659 100644 --- a/provider/k8s/release.go +++ b/provider/k8s/release.go @@ -415,17 +415,29 @@ func (p *Provider) releaseTemplateServices(a *structs.App, e structs.Environment replicas := common.CoalesceInt(sc[s.Name], s.Scale.Count.Min) - svcenv := e + env := map[string]string{} - if _, ok := svcenv["PORT"]; !ok { + for k, v := range sysenv { + env[k] = v + } + + for k, v := range s.EnvironmentDefaults() { + env[k] = v + } + + for k, v := range e { + env[k] = v + } + + if _, ok := env["PORT"]; !ok { if s.Port.Port > 0 { - svcenv["PORT"] = strconv.Itoa(s.Port.Port) + env["PORT"] = strconv.Itoa(s.Port.Port) } } params := map[string]interface{}{ "App": a, - "Env": svcenv, + "Environment": env, "MaxSurge": max, "MaxUnavailable": 100 - min, "Namespace": p.AppNamespace(a.Name), @@ -434,7 +446,6 @@ func (p *Provider) releaseTemplateServices(a *structs.App, e structs.Environment "Release": r, "Replicas": replicas, "Service": s, - "SystemEnv": sysenv, } if ip, err := p.Engine.Resolver(); err == nil { diff --git a/provider/k8s/template/app/service.yml.tmpl b/provider/k8s/template/app/service.yml.tmpl index fe9c015..ca16744 100644 --- a/provider/k8s/template/app/service.yml.tmpl +++ b/provider/k8s/template/app/service.yml.tmpl @@ -8,7 +8,7 @@ metadata: service: {{.Service.Name}} type: Opaque data: - {{ range env .SystemEnv .Service.EnvironmentDefaults .Env }} + {{ range env .Environment }} {{.Key}}: {{ safe (base64 .Value) }} {{ end }} ---