Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
057fc5b84a |
2
Makefile
2
Makefile
|
@ -97,4 +97,4 @@ trivy-check:
|
|||
@echo "---> Running Trivy Check"
|
||||
@echo "------------------------"
|
||||
@./trivy --exit-code 0 --severity HIGH --no-progress $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(DOCKER_IMAGE):$(DOCKER_TAG)
|
||||
@./trivy --exit-code 0 --severity CRITICAL --no-progress $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(DOCKER_IMAGE):$(DOCKER_TAG)
|
||||
@./trivy --exit-code 0 --severity CRITICAL --no-progress $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(DOCKER_IMAGE):$(DOCKER_TAG)
|
||||
|
|
|
@ -24,7 +24,7 @@ RUN apk --update add \
|
|||
# Packaging stage
|
||||
# Image source: https://github.com/litmuschaos/test-tools/blob/master/custom/hardened-alpine/experiment/Dockerfile
|
||||
# The base image is non-root (have litmus user) with default litmus directory.
|
||||
FROM litmuschaos/experiment-alpine
|
||||
FROM litmuschaos/experiment-alpine:2.9.0
|
||||
|
||||
LABEL maintainer="LitmusChaos"
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ func PrepareContainerKill(experimentsDetails *experimentTypes.ExperimentDetails,
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,7 +83,7 @@ func PrepareDiskFill(experimentsDetails *experimentTypes.ExperimentDetails, clie
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ func PrepareDockerServiceKill(experimentsDetails *experimentTypes.ExperimentDeta
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ func PrepareKubeletKill(experimentsDetails *experimentTypes.ExperimentDetails, c
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -108,7 +108,7 @@ func PrepareAndInjectChaos(experimentsDetails *experimentTypes.ExperimentDetails
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ func PrepareNodeCPUHog(experimentsDetails *experimentTypes.ExperimentDetails, cl
|
|||
})
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ func PrepareNodeIOStress(experimentsDetails *experimentTypes.ExperimentDetails,
|
|||
})
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ func PrepareNodeMemoryHog(experimentsDetails *experimentTypes.ExperimentDetails,
|
|||
})
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ func PrepareNodeRestart(experimentsDetails *experimentTypes.ExperimentDetails, c
|
|||
types.SetEngineEventAttributes(eventsDetails, types.ChaosInject, msg, "Normal", chaosDetails)
|
||||
events.GenerateEvents(eventsDetails, clients, chaosDetails, "ChaosEngine")
|
||||
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ func PrepareAndInjectChaos(experimentsDetails *experimentTypes.ExperimentDetails
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -100,7 +100,7 @@ func PrepareAndInjectStressChaos(experimentsDetails *experimentTypes.ExperimentD
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ func PrepareContainerKill(experimentsDetails *experimentTypes.ExperimentDetails,
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ func PreparePodCPUHog(experimentsDetails *experimentTypes.ExperimentDetails, cli
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ func PreparePodMemoryHog(experimentsDetails *experimentTypes.ExperimentDetails,
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -79,7 +79,7 @@ func PrepareAndInjectChaos(experimentsDetails *experimentTypes.ExperimentDetails
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ func PreparePodIOStress(experimentsDetails *experimentTypes.ExperimentDetails, c
|
|||
}
|
||||
|
||||
if experimentsDetails.EngineName != "" {
|
||||
if err := common.SetHelperData(chaosDetails, clients); err != nil {
|
||||
if err := common.SetHelperData(chaosDetails, experimentsDetails.SetHelperData, clients); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
2
go.mod
2
go.mod
|
@ -18,6 +18,7 @@ require (
|
|||
k8s.io/api v0.17.3
|
||||
k8s.io/apimachinery v0.17.3
|
||||
k8s.io/client-go v12.0.0+incompatible
|
||||
k8s.io/klog v1.0.0
|
||||
k8s.io/kubernetes v1.18.19
|
||||
)
|
||||
|
||||
|
@ -75,7 +76,6 @@ require (
|
|||
google.golang.org/grpc v1.38.0 // indirect
|
||||
google.golang.org/protobuf v1.26.0 // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
k8s.io/klog v1.0.0 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6 // indirect
|
||||
k8s.io/utils v0.0.0-20200414100711-2df71ebbae66 // indirect
|
||||
sigs.k8s.io/controller-runtime v0.4.0 // indirect
|
||||
|
|
|
@ -38,4 +38,5 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails) {
|
|||
experimentDetails.Signal = types.Getenv("SIGNAL", "SIGKILL")
|
||||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
experimentDetails.NodeLabel = types.Getenv("NODE_LABEL", "")
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
}
|
||||
|
|
|
@ -35,4 +35,5 @@ type ExperimentDetails struct {
|
|||
Signal string
|
||||
NodeLabel string
|
||||
IsTargetContainerProvided bool
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -38,5 +38,5 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails) {
|
|||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
experimentDetails.DataBlockSize, _ = strconv.Atoi(types.Getenv("DATA_BLOCK_SIZE", "256"))
|
||||
experimentDetails.NodeLabel = types.Getenv("NODE_LABEL", "")
|
||||
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
}
|
||||
|
|
|
@ -36,4 +36,5 @@ type ExperimentDetails struct {
|
|||
DataBlockSize int
|
||||
NodeLabel string
|
||||
IsTargetContainerProvided bool
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -32,4 +32,5 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails) {
|
|||
experimentDetails.TargetContainer = types.Getenv("TARGET_CONTAINER", "")
|
||||
experimentDetails.NodeLabel = types.Getenv("NODE_LABEL", "")
|
||||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
}
|
||||
|
|
|
@ -28,4 +28,5 @@ type ExperimentDetails struct {
|
|||
LIBImage string
|
||||
LIBImagePullPolicy string
|
||||
TargetContainer string
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -32,4 +32,5 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails) {
|
|||
experimentDetails.TargetContainer = types.Getenv("TARGET_CONTAINER", "")
|
||||
experimentDetails.NodeLabel = types.Getenv("NODE_LABEL", "")
|
||||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
}
|
||||
|
|
|
@ -28,4 +28,5 @@ type ExperimentDetails struct {
|
|||
LIBImage string
|
||||
LIBImagePullPolicy string
|
||||
TargetContainer string
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails, expName string
|
|||
experimentDetails.SocketPath = types.Getenv("SOCKET_PATH", "/var/run/docker.sock")
|
||||
experimentDetails.Sequence = types.Getenv("SEQUENCE", "parallel")
|
||||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
|
||||
switch expName {
|
||||
case "pod-network-loss":
|
||||
|
|
|
@ -43,4 +43,5 @@ type ExperimentDetails struct {
|
|||
NetworkChaosType string
|
||||
NodeLabel string
|
||||
IsTargetContainerProvided bool
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -35,4 +35,5 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails) {
|
|||
experimentDetails.TargetContainer = types.Getenv("TARGET_CONTAINER", "")
|
||||
experimentDetails.NodeLabel = types.Getenv("NODE_LABEL", "")
|
||||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
}
|
||||
|
|
|
@ -32,4 +32,5 @@ type ExperimentDetails struct {
|
|||
Sequence string
|
||||
TargetContainer string
|
||||
NodeLabel string
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -38,4 +38,5 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails) {
|
|||
experimentDetails.TargetContainer = types.Getenv("TARGET_CONTAINER", "")
|
||||
experimentDetails.NodeLabel = types.Getenv("NODE_LABEL", "")
|
||||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
}
|
||||
|
|
|
@ -35,4 +35,5 @@ type ExperimentDetails struct {
|
|||
Sequence string
|
||||
TargetContainer string
|
||||
NodeLabel string
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -36,4 +36,5 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails) {
|
|||
experimentDetails.TargetContainer = types.Getenv("TARGET_CONTAINER", "")
|
||||
experimentDetails.NodeLabel = types.Getenv("NODE_LABEL", "")
|
||||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
}
|
||||
|
|
|
@ -33,4 +33,5 @@ type ExperimentDetails struct {
|
|||
Sequence string
|
||||
TargetContainer string
|
||||
NodeLabel string
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -34,4 +34,5 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails) {
|
|||
experimentDetails.TargetContainer = types.Getenv("TARGET_CONTAINER", "")
|
||||
experimentDetails.NodeLabel = types.Getenv("NODE_LABEL", "")
|
||||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
}
|
||||
|
|
|
@ -31,4 +31,5 @@ type ExperimentDetails struct {
|
|||
TargetNodeIP string
|
||||
TargetContainer string
|
||||
NodeLabel string
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -30,4 +30,5 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails) {
|
|||
experimentDetails.Timeout, _ = strconv.Atoi(types.Getenv("STATUS_CHECK_TIMEOUT", "180"))
|
||||
experimentDetails.TargetContainer = types.Getenv("TARGET_CONTAINER", "")
|
||||
experimentDetails.NodeLabel = types.Getenv("NODE_LABEL", "")
|
||||
|
||||
}
|
||||
|
|
|
@ -26,4 +26,5 @@ type ExperimentDetails struct {
|
|||
LIBImagePullPolicy string
|
||||
TargetContainer string
|
||||
NodeLabel string
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails, expType DNSCha
|
|||
experimentDetails.SocketPath = types.Getenv("SOCKET_PATH", "/var/run/docker.sock")
|
||||
experimentDetails.ChaosServiceAccount = types.Getenv("CHAOS_SERVICE_ACCOUNT", "")
|
||||
experimentDetails.Sequence = types.Getenv("SEQUENCE", "parallel")
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
switch expType {
|
||||
case Error:
|
||||
|
|
|
@ -36,4 +36,5 @@ type ExperimentDetails struct {
|
|||
SocketPath string
|
||||
TerminationGracePeriodSeconds int
|
||||
IsTargetContainerProvided bool
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -33,4 +33,5 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails) {
|
|||
experimentDetails.PodSelector = types.Getenv("POD_SELECTOR", "")
|
||||
experimentDetails.NamespaceSelector = types.Getenv("NAMESPACE_SELECTOR", "")
|
||||
experimentDetails.PORTS = types.Getenv("PORTS", "")
|
||||
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@ func GetENV(experimentDetails *experimentTypes.ExperimentDetails, expName string
|
|||
experimentDetails.TerminationGracePeriodSeconds, _ = strconv.Atoi(types.Getenv("TERMINATION_GRACE_PERIOD_SECONDS", ""))
|
||||
experimentDetails.StressImage = types.Getenv("STRESS_IMAGE", "alexeiled/stress-ng:latest-ubuntu")
|
||||
experimentDetails.NodeLabel = types.Getenv("NODE_LABEL", "")
|
||||
experimentDetails.SetHelperData = types.Getenv("SET_HELPER_DATA", "true")
|
||||
|
||||
switch expName {
|
||||
case "pod-cpu-hog":
|
||||
|
|
|
@ -42,4 +42,5 @@ type ExperimentDetails struct {
|
|||
StressType string
|
||||
IsTargetContainerProvided bool
|
||||
NodeLabel string
|
||||
SetHelperData string
|
||||
}
|
||||
|
|
|
@ -82,16 +82,12 @@ func getChaosPodResourceRequirements(podName, containerName, namespace string, c
|
|||
|
||||
// SetHelperData derive the data from experiment pod and sets into experimentDetails struct
|
||||
// which can be used to create helper pod
|
||||
func SetHelperData(chaosDetails *types.ChaosDetails, clients clients.ClientSets) error {
|
||||
pod, err := clients.KubeClient.CoreV1().Pods(chaosDetails.ChaosNamespace).Get(chaosDetails.ChaosPodName, v1.GetOptions{})
|
||||
func SetHelperData(chaosDetails *types.ChaosDetails, setHelperData string, clients clients.ClientSets) error {
|
||||
var pod *core_v1.Pod
|
||||
pod, err = clients.KubeClient.CoreV1().Pods(chaosDetails.ChaosNamespace).Get(chaosDetails.ChaosPodName, v1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// Get Chaos Pod Annotation
|
||||
chaosDetails.Annotations = pod.Annotations
|
||||
|
||||
// Get ImagePullSecrets
|
||||
chaosDetails.ImagePullSecrets = pod.Spec.ImagePullSecrets
|
||||
|
||||
// Get Labels
|
||||
labels := pod.ObjectMeta.Labels
|
||||
|
@ -99,12 +95,25 @@ func SetHelperData(chaosDetails *types.ChaosDetails, clients clients.ClientSets)
|
|||
delete(labels, "job-name")
|
||||
chaosDetails.Labels = labels
|
||||
|
||||
// Get Resource Requirements
|
||||
chaosDetails.Resources, err = getChaosPodResourceRequirements(chaosDetails.ChaosPodName, chaosDetails.ExperimentName, chaosDetails.ChaosNamespace, clients)
|
||||
if err != nil {
|
||||
return errors.Errorf("unable to get resource requirements, err: %v", err)
|
||||
switch setHelperData {
|
||||
case "false":
|
||||
return nil
|
||||
|
||||
default:
|
||||
|
||||
// Get Chaos Pod Annotation
|
||||
chaosDetails.Annotations = pod.Annotations
|
||||
|
||||
// Get ImagePullSecrets
|
||||
chaosDetails.ImagePullSecrets = pod.Spec.ImagePullSecrets
|
||||
|
||||
// Get Resource Requirements
|
||||
chaosDetails.Resources, err = getChaosPodResourceRequirements(chaosDetails.ChaosPodName, chaosDetails.ExperimentName, chaosDetails.ChaosNamespace, clients)
|
||||
if err != nil {
|
||||
return errors.Errorf("unable to get resource requirements, err: %v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetHelperLabels return the labels of the helper pod
|
||||
|
|
Loading…
Reference in New Issue