diff --git a/.changelog/12959.txt b/.changelog/12959.txt new file mode 100644 index 000000000000..71a7fedc4404 --- /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 144a4a1607e1..c3ab9393fea3 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.