From 451ecf358c54b0dfc861ed7250499ffa46d49493 Mon Sep 17 00:00:00 2001 From: Jorge Marey <6938602+jorgemarey@users.noreply.github.com> Date: Thu, 22 Sep 2022 20:18:18 +0200 Subject: [PATCH] connect: add nomad env to envoy bootstrap (#12959) * Add nomad env to envoy bootstrap * Add changelog file --- .changelog/12959.txt | 3 +++ .../taskrunner/envoy_bootstrap_hook.go | 15 +++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 .changelog/12959.txt diff --git a/.changelog/12959.txt b/.changelog/12959.txt new file mode 100644 index 000000000..71a7fedc4 --- /dev/null +++ b/.changelog/12959.txt @@ -0,0 +1,3 @@ +```release-note:improvement +connect: add nomad environment variables to envoy bootstrap +``` diff --git a/client/allocrunner/taskrunner/envoy_bootstrap_hook.go b/client/allocrunner/taskrunner/envoy_bootstrap_hook.go index 3cc9e4fd4..0445d3a2e 100644 --- a/client/allocrunner/taskrunner/envoy_bootstrap_hook.go +++ b/client/allocrunner/taskrunner/envoy_bootstrap_hook.go @@ -292,6 +292,8 @@ func (h *envoyBootstrapHook) Prestart(ctx context.Context, req *ifs.TaskPrestart // Create environment bootstrapEnv := bootstrap.env(os.Environ()) + // append nomad environment variables to the bootstrap environment + bootstrapEnv = append(bootstrapEnv, h.groupEnv()...) // Write env to file for debugging envFile, err := os.Create(bootstrapEnvPath) @@ -377,6 +379,19 @@ func (h *envoyBootstrapHook) Prestart(ctx context.Context, req *ifs.TaskPrestart return nil } +func (h *envoyBootstrapHook) groupEnv() []string { + return []string{ + fmt.Sprintf("%s=%s", taskenv.AllocID, h.alloc.ID), + fmt.Sprintf("%s=%s", taskenv.ShortAllocID, h.alloc.ID[:8]), + fmt.Sprintf("%s=%s", taskenv.AllocName, h.alloc.Name), + fmt.Sprintf("%s=%s", taskenv.GroupName, h.alloc.TaskGroup), + fmt.Sprintf("%s=%s", taskenv.JobName, h.alloc.Job.Name), + fmt.Sprintf("%s=%s", taskenv.JobID, h.alloc.Job.ID), + fmt.Sprintf("%s=%s", taskenv.Namespace, h.alloc.Namespace), + fmt.Sprintf("%s=%s", taskenv.Region, h.alloc.Job.Region), + } +} + // buildEnvoyAdminBind determines a unique port for use by the envoy admin listener. // // This listener will be bound to 127.0.0.2.