From b4a0f48af2e43060185fdfa9b84fc6ac94c511f3 Mon Sep 17 00:00:00 2001 From: EDGsheryl Date: Thu, 27 Feb 2020 17:24:15 +0800 Subject: [PATCH 1/3] Figure TODO item: add a flag to disable Network Policy --- pkg/controllers/job/plugins/svc/svc.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/controllers/job/plugins/svc/svc.go b/pkg/controllers/job/plugins/svc/svc.go index 98b64f2e03..e54228394f 100644 --- a/pkg/controllers/job/plugins/svc/svc.go +++ b/pkg/controllers/job/plugins/svc/svc.go @@ -44,6 +44,7 @@ type servicePlugin struct { // flag parse args publishNotReadyAddresses bool + disableNetworkPolicy bool } // New creates service plugin @@ -63,6 +64,8 @@ func (sp *servicePlugin) addFlags() { flagSet := flag.NewFlagSet(sp.Name(), flag.ContinueOnError) flagSet.BoolVar(&sp.publishNotReadyAddresses, "publish-not-ready-addresses", sp.publishNotReadyAddresses, "set publishNotReadyAddresses of svc to true") + flagSet.BoolVar(&sp.disableNetworkPolicy, "disable-network-policy", sp.disableNetworkPolicy, + "set disableNetworkPolicy of svc to true") if err := flagSet.Parse(sp.pluginArguments); err != nil { klog.Errorf("plugin %s flagset parse failed, err: %v", sp.Name(), err) @@ -138,9 +141,10 @@ func (sp *servicePlugin) OnJobAdd(job *batch.Job) error { return err } - // TODO: maybe add a flag - if err := sp.createNetworkPolicyIfNotExist(job); err != nil { - return err + if !sp.disableNetworkPolicy { + if err := sp.createNetworkPolicyIfNotExist(job); err != nil { + return err + } } job.Status.ControlledResources["plugin-"+sp.Name()] = sp.Name() From b0872a2e8a9d3daaa960768e2779e2385f8f8281 Mon Sep 17 00:00:00 2001 From: EDGsheryl Date: Thu, 27 Feb 2020 18:39:54 +0800 Subject: [PATCH 2/3] add e2e test for this commit --- test/e2e/job_plugins.go | 43 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/test/e2e/job_plugins.go b/test/e2e/job_plugins.go index 850eaddfca..8cfd84fad0 100644 --- a/test/e2e/job_plugins.go +++ b/test/e2e/job_plugins.go @@ -33,7 +33,7 @@ import ( ) var _ = Describe("Job E2E Test: Test Job Plugins", func() { - It("SVC Plugin with Node Affinity", func() { + It("Test SVC Plugin with Node Affinity", func() { jobName := "job-with-svc-plugin" namespace := "test" taskName := "task" @@ -105,7 +105,7 @@ var _ = Describe("Job E2E Test: Test Job Plugins", func() { } }) - It("SSh Plugin with Pod Affinity", func() { + It("Test SSh Plugin with Pod Affinity", func() { jobName := "job-with-ssh-plugin" namespace := "test" taskName := "task" @@ -177,6 +177,45 @@ var _ = Describe("Job E2E Test: Test Job Plugins", func() { } }) + It("Test SVC Plugin with disableNetworkPolicy", func() { + jobName := "svc-with-disable-network-policy" + namespace := "test" + taskName := "task" + context := initTestContext(options{}) + defer cleanupTestContext(context) + + _, rep := computeNode(context, oneCPU) + Expect(rep).NotTo(Equal(0)) + + job := createJob(context, &jobSpec{ + namespace: namespace, + name: jobName, + plugins: map[string][]string{ + "ssh": {}, + "env": {}, + "svc": {"--disable-network-policy=true"}, + }, + tasks: []taskSpec{ + { + img: defaultNginxImage, + req: oneCPU, + min: 1, + rep: rep, + name: taskName, + }, + }, + }) + + err := waitJobReady(context, job) + Expect(err).NotTo(HaveOccurred()) + + // Check whether network policy is created with job name + networkPolicyName := fmt.Sprintf("%s", jobName) + _, err = context.kubeclient.NetworkingV1().NetworkPolicies(namespace).Get(networkPolicyName, v1.GetOptions{}) + // Error will occur because there is no policy should be created + Expect(err).To(HaveOccurred()) + }) + It("Check Functionality of all plugins", func() { jobName := "job-with-all-plugin" namespace := "test" From 6c4c98caaa742a86e5a82e2843ddd30d65475262 Mon Sep 17 00:00:00 2001 From: EDGsheryl Date: Thu, 27 Feb 2020 19:27:44 +0800 Subject: [PATCH 3/3] Remove useless params --- test/e2e/job_plugins.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/e2e/job_plugins.go b/test/e2e/job_plugins.go index 8cfd84fad0..f8354d6649 100644 --- a/test/e2e/job_plugins.go +++ b/test/e2e/job_plugins.go @@ -191,8 +191,6 @@ var _ = Describe("Job E2E Test: Test Job Plugins", func() { namespace: namespace, name: jobName, plugins: map[string][]string{ - "ssh": {}, - "env": {}, "svc": {"--disable-network-policy=true"}, }, tasks: []taskSpec{