From 1be744f2d44032a881a14458ead8ae4196cc4e71 Mon Sep 17 00:00:00 2001 From: sirkrypt0 <22522058+sirkrypt0@users.noreply.github.com> Date: Thu, 27 May 2021 10:08:27 +0200 Subject: [PATCH] Explicitly set task groups network when networkAccess is false Previously, updating an environment from with to without network access would leave the network resource in the task group as they were before. --- environment/job.go | 2 ++ environment/job_test.go | 3 +++ 2 files changed, 5 insertions(+) diff --git a/environment/job.go b/environment/job.go index c45659f..1850b4c 100644 --- a/environment/job.go +++ b/environment/job.go @@ -125,6 +125,8 @@ func configureNetwork(taskGroup *nomadApi.TaskGroup, networkAccess bool, exposed // Somehow, we can't set the network mode to none in the NetworkResource on task group level. // See https://github.com/hashicorp/nomad/issues/10540 task.Config["network_mode"] = "none" + // Explicitly set Networks to signal Nomad to remove the possibly existing networkResource + taskGroup.Networks = []*nomadApi.NetworkResource{} } } diff --git a/environment/job_test.go b/environment/job_test.go index 35f2a67..ab01ad7 100644 --- a/environment/job_test.go +++ b/environment/job_test.go @@ -64,6 +64,7 @@ func createTestJob() (*nomadApi.Job, *nomadApi.Job) { taskGroupName := fmt.Sprintf(nomad.TaskGroupNameFormat, *job.ID) taskGroup.Name = &taskGroupName taskGroup.Tasks = []*nomadApi.Task{task} + taskGroup.Networks = []*nomadApi.NetworkResource{} job.TaskGroups = []*nomadApi.TaskGroup{taskGroup} return job, base } @@ -209,6 +210,7 @@ func TestConfigureTaskWhenNoTaskExists(t *testing.T) { expectedImage := "python:latest" expectedTask.Config = map[string]interface{}{"image": expectedImage, "network_mode": "none"} expectedTaskGroup.Tasks = []*nomadApi.Task{expectedTask} + expectedTaskGroup.Networks = []*nomadApi.NetworkResource{} configureTask(taskGroup, expectedTask.Name, uint(*expectedResources.CPU), uint(*expectedResources.MemoryMB), @@ -232,6 +234,7 @@ func TestConfigureTaskWhenTaskExists(t *testing.T) { expectedTask.Config["image"] = expectedImage expectedTask.Config["network_mode"] = "none" expectedTaskGroup.Tasks = []*nomadApi.Task{&expectedTask} + expectedTaskGroup.Networks = []*nomadApi.NetworkResource{} configureTask(taskGroup, expectedTask.Name, uint(*expectedResources.CPU), uint(*expectedResources.MemoryMB),