From da4c87c99f086a45131aab66d3305d0036376278 Mon Sep 17 00:00:00 2001 From: Pablo Chacin Date: Thu, 24 Aug 2023 09:45:06 +0200 Subject: [PATCH] unify fault injection validations Signed-off-by: Pablo Chacin --- pkg/disruptors/pod.go | 4 ++++ pkg/disruptors/service.go | 15 +++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/pkg/disruptors/pod.go b/pkg/disruptors/pod.go index f33c472a..700ac410 100644 --- a/pkg/disruptors/pod.go +++ b/pkg/disruptors/pod.go @@ -150,6 +150,10 @@ func (d *podDisruptor) InjectGrpcFaults( return VisitCommands{}, fmt.Errorf("pod %q does not expose port %d", pod.Name, fault.Port) } + if utils.HasHostNetwork(pod) { + return VisitCommands{}, fmt.Errorf("pod %q cannot be safely injected as it has hostNetwork set to true", pod.Name) + } + targetAddress, err := utils.PodIP(pod) if err != nil { return VisitCommands{}, err diff --git a/pkg/disruptors/service.go b/pkg/disruptors/service.go index 43122204..f08d66e0 100644 --- a/pkg/disruptors/service.go +++ b/pkg/disruptors/service.go @@ -93,15 +93,14 @@ func (d *serviceDisruptor) InjectHTTPFaults( return VisitCommands{}, fmt.Errorf("pod %q cannot be safely injected as it has hostNetwork set to true", pod.Name) } - // copy fault to change target port for the pod - podFault := fault - podFault.Port = port - targetAddress, err := utils.PodIP(pod) if err != nil { return VisitCommands{}, err } + // copy fault to change target port for the pod + podFault := fault + podFault.Port = port visitCommands := VisitCommands{ Exec: buildHTTPFaultCmd(targetAddress, podFault, duration, options), Cleanup: buildCleanupCmd(), @@ -125,14 +124,18 @@ func (d *serviceDisruptor) InjectGrpcFaults( return VisitCommands{}, err } - podFault := fault - podFault.Port = port + if utils.HasHostNetwork(pod) { + return VisitCommands{}, fmt.Errorf("pod %q cannot be safely injected as it has hostNetwork set to true", pod.Name) + } targetAddress, err := utils.PodIP(pod) if err != nil { return VisitCommands{}, err } + // copy fault to change target port for the pod + podFault := fault + podFault.Port = port visitCommands := VisitCommands{ Exec: buildGrpcFaultCmd(targetAddress, podFault, duration, options), Cleanup: buildCleanupCmd(),