Skip to content

Commit 86c0bab

Browse files
committed
update templates
Signed-off-by: namkyu1999 <[email protected]>
1 parent 723fb59 commit 86c0bab

File tree

8 files changed

+60
-40
lines changed

8 files changed

+60
-40
lines changed

contribute/developer-guide/templates/chaoslib_exec.tmpl

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package lib
22

33
import (
4+
"context"
45
"fmt"
56
"os"
67
"github.com/litmuschaos/litmus-go/pkg/cerrors"
@@ -32,7 +33,7 @@ func injectChaos(experimentsDetails *experimentTypes.ExperimentDetails, podName
3233
return nil
3334
}
3435

35-
func experimentExecution(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
36+
func experimentExecution(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
3637

3738
// Get the target pod details for the chaos execution
3839
// if the target pod is not defined it will derive the random target pod list using pod affected percentage
@@ -53,13 +54,13 @@ func experimentExecution(experimentsDetails *experimentTypes.ExperimentDetails,
5354
}
5455
log.Infof("Target pods list for chaos, %v", podNames)
5556

56-
return runChaos(experimentsDetails, targetPodList, clients, resultDetails, eventsDetails, chaosDetails)
57+
return runChaos(ctx, experimentsDetails, targetPodList, clients, resultDetails, eventsDetails, chaosDetails)
5758
}
5859

59-
func runChaos(experimentsDetails *experimentTypes.ExperimentDetails, targetPodList corev1.PodList, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
60+
func runChaos(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, targetPodList corev1.PodList, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
6061
// run the probes during chaos
6162
if len(resultDetails.ProbeDetails) != 0 {
62-
if err := probe.RunProbes(chaosDetails, clients, resultDetails, "DuringChaos", eventsDetails); err != nil {
63+
if err := probe.RunProbes(ctx, chaosDetails, clients, resultDetails, "DuringChaos", eventsDetails); err != nil {
6364
return err
6465
}
6566
}
@@ -120,15 +121,18 @@ func runChaos(experimentsDetails *experimentTypes.ExperimentDetails, targetPodLi
120121
}
121122

122123
//PrepareChaos contains the preparation steps before chaos injection
123-
func PrepareChaos(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
124+
func PrepareChaos(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
125+
// @TODO: setup tracing
126+
// ctx, span := otel.Tracer(telemetry.TracerName).Start(ctx, "InjectChaos")
127+
// defer span.End()
124128

125129
//Waiting for the ramp time before chaos injection
126130
if experimentsDetails.RampTime != 0 {
127131
log.Infof("[Ramp]: Waiting for the %vs ramp time before injecting chaos", experimentsDetails.RampTime)
128132
common.WaitForDuration(experimentsDetails.RampTime)
129133
}
130134
//Starting the CPU stress experiment
131-
if err := experimentExecution(experimentsDetails, clients, resultDetails, eventsDetails, chaosDetails);err != nil {
135+
if err := experimentExecution(ctx, experimentsDetails, clients, resultDetails, eventsDetails, chaosDetails);err != nil {
132136
return stacktrace.Propagate(err, "could not execute experiment")
133137
}
134138
//Waiting for the ramp time after chaos injection

contribute/developer-guide/templates/chaoslib_helper.tmpl

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2020
)
2121

22-
func experimentExecution(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
22+
func experimentExecution(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
2323

2424
// Get the target pod details for the chaos execution
2525
// if the target pod is not defined it will derive the random target pod list using pod affected percentage
@@ -54,10 +54,10 @@ func experimentExecution(experimentsDetails *experimentTypes.ExperimentDetails,
5454
}
5555
}
5656

57-
return runChaos(experimentsDetails, targetPodList, clients, resultDetails, eventsDetails, chaosDetails)
57+
return runChaos(ctx, experimentsDetails, targetPodList, clients, resultDetails, eventsDetails, chaosDetails)
5858
}
5959

60-
func runChaos(experimentsDetails *experimentTypes.ExperimentDetails, targetPodList corev1.PodList, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
60+
func runChaos(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, targetPodList corev1.PodList, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
6161
if experimentsDetails.EngineName != "" {
6262
msg := "Injecting " + experimentsDetails.ExperimentName + " chaos on target pod"
6363
types.SetEngineEventAttributes(eventsDetails, types.ChaosInject, msg, "Normal", chaosDetails)
@@ -66,7 +66,7 @@ func runChaos(experimentsDetails *experimentTypes.ExperimentDetails, targetPodLi
6666

6767
// run the probes during chaos
6868
if len(resultDetails.ProbeDetails) != 0 {
69-
if err := probe.RunProbes(chaosDetails, clients, resultDetails, "DuringChaos", eventsDetails); err != nil {
69+
if err := probe.RunProbes(ctx, chaosDetails, clients, resultDetails, "DuringChaos", eventsDetails); err != nil {
7070
return err
7171
}
7272
}
@@ -89,7 +89,7 @@ func runChaos(experimentsDetails *experimentTypes.ExperimentDetails, targetPodLi
8989
"Target Container": experimentsDetails.TargetContainer,
9090
})
9191

92-
if err := createHelperPod(experimentsDetails, clients, chaosDetails, pod.Name, pod.Spec.NodeName, runID); err != nil {
92+
if err := createHelperPod(ctx, experimentsDetails, clients, chaosDetails, pod.Name, pod.Spec.NodeName, runID); err != nil {
9393
return stacktrace.Propagate(err, "could not create helper pod")
9494
}
9595

@@ -124,15 +124,18 @@ func runChaos(experimentsDetails *experimentTypes.ExperimentDetails, targetPodLi
124124
}
125125

126126
//PrepareChaos contains the preparation steps before chaos injection
127-
func PrepareChaos(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
127+
func PrepareChaos(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
128+
// @TODO: setup tracing
129+
// ctx, span := otel.Tracer(telemetry.TracerName).Start(ctx, "name-your-chaos-fault")
130+
// defer span.End()
128131

129132
//Waiting for the ramp time before chaos injection
130133
if experimentsDetails.RampTime != 0 {
131134
log.Infof("[Ramp]: Waiting for the %vs ramp time before injecting chaos", experimentsDetails.RampTime)
132135
common.WaitForDuration(experimentsDetails.RampTime)
133136
}
134137
//Starting the CPU stress experiment
135-
if err := experimentExecution(experimentsDetails, clients, resultDetails, eventsDetails, chaosDetails);err != nil {
138+
if err := experimentExecution(ctx, experimentsDetails, clients, resultDetails, eventsDetails, chaosDetails);err != nil {
136139
return stacktrace.Propagate(err, "could not execute chaos")
137140
}
138141
//Waiting for the ramp time after chaos injection
@@ -144,7 +147,10 @@ func PrepareChaos(experimentsDetails *experimentTypes.ExperimentDetails, clients
144147
}
145148

146149
// createHelperPod derive the attributes for helper pod and create the helper pod
147-
func createHelperPod(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, chaosDetails *types.ChaosDetails, targets, nodeName, runID string) error {
150+
func createHelperPod(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, chaosDetails *types.ChaosDetails, targets, nodeName, runID string) error {
151+
// @TODO: setup tracing
152+
// ctx, span := otel.Tracer(telemetry.TracerName).Start(ctx, "CreateHelperPod")
153+
// defer span.End()
148154

149155
helperPod := &corev1.Pod{
150156
ObjectMeta: v1.ObjectMeta{

contribute/developer-guide/templates/chaoslib_non-k8s.tmpl

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package lib
22

33
import (
4+
"context"
45
"os"
56
"os/signal"
67
"strings"
@@ -22,7 +23,10 @@ var (
2223
)
2324

2425
//PrepareChaos contains the preparation and injection steps for the experiment
25-
func PrepareChaos(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
26+
func PrepareChaos(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
27+
// @TODO: setup tracing
28+
// ctx, span := otel.Tracer(telemetry.TracerName).Start(ctx, "InjectChaos")
29+
// defer span.End()
2630

2731
// inject channel is used to transmit signal notifications.
2832
inject = make(chan os.Signal, 1)
@@ -53,11 +57,11 @@ func PrepareChaos(experimentsDetails *experimentTypes.ExperimentDetails, clients
5357

5458
switch strings.ToLower(experimentsDetails.Sequence) {
5559
case "serial":
56-
if err = injectChaosInSerialMode(experimentsDetails, targetIDList, clients, resultDetails, eventsDetails, chaosDetails); err != nil {
60+
if err = injectChaosInSerialMode(ctx, experimentsDetails, targetIDList, clients, resultDetails, eventsDetails, chaosDetails); err != nil {
5761
return stacktrace.Propagate(err, "could not run chaos in serial mode")
5862
}
5963
case "parallel":
60-
if err = injectChaosInParallelMode(experimentsDetails, targetIDList, clients, resultDetails, eventsDetails, chaosDetails); err != nil {
64+
if err = injectChaosInParallelMode(ctx, experimentsDetails, targetIDList, clients, resultDetails, eventsDetails, chaosDetails); err != nil {
6165
return stacktrace.Propagate(err, "could not run chaos in parallel mode")
6266
}
6367
default:
@@ -73,7 +77,7 @@ func PrepareChaos(experimentsDetails *experimentTypes.ExperimentDetails, clients
7377
}
7478

7579
//injectChaosInSerialMode will inject the chaos on the target one after other
76-
func injectChaosInSerialMode(experimentsDetails *experimentTypes.ExperimentDetails, targetIDList []string, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
80+
func injectChaosInSerialMode(ctx context.Contxt, experimentsDetails *experimentTypes.ExperimentDetails, targetIDList []string, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
7781

7882
select {
7983
case <-inject:
@@ -111,7 +115,7 @@ func injectChaosInSerialMode(experimentsDetails *experimentTypes.ExperimentDetai
111115

112116
// The OnChaos probes execution will start in the first iteration and keep running for the entire chaos duration
113117
if len(resultDetails.ProbeDetails) != 0 && i == 0 {
114-
if err = probe.RunProbes(chaosDetails, clients, resultDetails, "DuringChaos", eventsDetails); err != nil {
118+
if err = probe.RunProbes(ctx, chaosDetails, clients, resultDetails, "DuringChaos", eventsDetails); err != nil {
115119
return err
116120
}
117121
}
@@ -136,7 +140,7 @@ func injectChaosInSerialMode(experimentsDetails *experimentTypes.ExperimentDetai
136140
}
137141

138142
// injectChaosInParallelMode will inject the chaos on the target all at once
139-
func injectChaosInParallelMode(experimentsDetails *experimentTypes.ExperimentDetails, targetIDList []string, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
143+
func injectChaosInParallelMode(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, targetIDList []string, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
140144

141145
select {
142146
case <-inject:
@@ -177,7 +181,7 @@ func injectChaosInParallelMode(experimentsDetails *experimentTypes.ExperimentDet
177181

178182
// run the probes during chaos
179183
if len(resultDetails.ProbeDetails) != 0 {
180-
if err := probe.RunProbes(chaosDetails, clients, resultDetails, "DuringChaos", eventsDetails); err != nil {
184+
if err := probe.RunProbes(ctx, chaosDetails, clients, resultDetails, "DuringChaos", eventsDetails); err != nil {
181185
return err
182186
}
183187
}

contribute/developer-guide/templates/experiment_aws.tmpl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package experiment
22

33
import (
4+
"context"
45
"os"
56

67
litmusLIB "github.com/litmuschaos/litmus-go/chaoslib/litmus/{{ .Name }}/lib"
@@ -19,7 +20,7 @@ import (
1920
)
2021

2122
// Experiment contains steps to inject chaos
22-
func Experiment(clients clients.ClientSets){
23+
func Experiment(ctx context.Context, clients clients.ClientSets){
2324

2425
experimentsDetails := experimentTypes.ExperimentDetails{}
2526
resultDetails := types.ResultDetails{}
@@ -90,7 +91,7 @@ func Experiment(clients clients.ClientSets){
9091
// run the probes in the pre-chaos check
9192
if len(resultDetails.ProbeDetails) != 0 {
9293

93-
if err := probe.RunProbes(&chaosDetails, clients, &resultDetails, "PreChaos", &eventsDetails);err != nil {
94+
if err := probe.RunProbes(ctx, &chaosDetails, clients, &resultDetails, "PreChaos", &eventsDetails);err != nil {
9495
log.Errorf("Probe Failed, err: %v", err)
9596
msg := "AUT: Running, Probes: Unsuccessful"
9697
types.SetEngineEventAttributes(&eventsDetails, types.PreChaosCheck, msg, "Warning", &chaosDetails)
@@ -111,7 +112,7 @@ func Experiment(clients clients.ClientSets){
111112
// @TODO: user INVOKE-CHAOSLIB
112113

113114
chaosDetails.Phase = types.ChaosInjectPhase
114-
if err := litmusLIB.PrepareChaos(&experimentsDetails, clients, &resultDetails, &eventsDetails, &chaosDetails); err != nil {
115+
if err := litmusLIB.PrepareChaos(ctx, &experimentsDetails, clients, &resultDetails, &eventsDetails, &chaosDetails); err != nil {
115116
log.Errorf("Chaos injection failed, err: %v", err)
116117
result.RecordAfterFailure(&chaosDetails, &resultDetails, err, clients, &eventsDetails)
117118
return
@@ -142,7 +143,7 @@ func Experiment(clients clients.ClientSets){
142143

143144
// run the probes in the post-chaos check
144145
if len(resultDetails.ProbeDetails) != 0 {
145-
if err := probe.RunProbes(&chaosDetails, clients, &resultDetails, "PostChaos", &eventsDetails);err != nil {
146+
if err := probe.RunProbes(ctx, &chaosDetails, clients, &resultDetails, "PostChaos", &eventsDetails);err != nil {
146147
log.Errorf("Probes Failed, err: %v", err)
147148
msg := "AUT: Running, Probes: Unsuccessful"
148149
types.SetEngineEventAttributes(&eventsDetails, types.PostChaosCheck, msg, "Warning", &chaosDetails)

contribute/developer-guide/templates/experiment_azure.tmpl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package experiment
22

33
import (
4+
"context"
45
"os"
56

67
"github.com/litmuschaos/chaos-operator/api/litmuschaos/v1alpha1"
@@ -20,7 +21,7 @@ import (
2021
)
2122

2223
// Experiment contains steps to inject chaos
23-
func Experiment(clients clients.ClientSets){
24+
func Experiment(ctx context.Context, clients clients.ClientSets){
2425

2526
experimentsDetails := experimentTypes.ExperimentDetails{}
2627
resultDetails := types.ResultDetails{}
@@ -99,7 +100,7 @@ func Experiment(clients clients.ClientSets){
99100
// run the probes in the pre-chaos check
100101
if len(resultDetails.ProbeDetails) != 0 {
101102

102-
if err := probe.RunProbes(&chaosDetails, clients, &resultDetails, "PreChaos", &eventsDetails);err != nil {
103+
if err := probe.RunProbes(ctx, &chaosDetails, clients, &resultDetails, "PreChaos", &eventsDetails);err != nil {
103104
log.Errorf("Probe Failed, err: %v", err)
104105
msg := "AUT: Running, Probes: Unsuccessful"
105106
types.SetEngineEventAttributes(&eventsDetails, types.PreChaosCheck, msg, "Warning", &chaosDetails)
@@ -120,7 +121,7 @@ func Experiment(clients clients.ClientSets){
120121
// @TODO: user INVOKE-CHAOSLIB
121122

122123
chaosDetails.Phase = types.ChaosInjectPhase
123-
if err := litmusLIB.PrepareChaos(&experimentsDetails, clients, &resultDetails, &eventsDetails, &chaosDetails); err != nil {
124+
if err := litmusLIB.PrepareChaos(ctx, &experimentsDetails, clients, &resultDetails, &eventsDetails, &chaosDetails); err != nil {
124125
log.Errorf("Chaos injection failed, err: %v", err)
125126
result.RecordAfterFailure(&chaosDetails, &resultDetails, err, clients, &eventsDetails)
126127
return
@@ -148,7 +149,7 @@ func Experiment(clients clients.ClientSets){
148149

149150
// run the probes in the post-chaos check
150151
if len(resultDetails.ProbeDetails) != 0 {
151-
if err := probe.RunProbes(&chaosDetails, clients, &resultDetails, "PostChaos", &eventsDetails);err != nil {
152+
if err := probe.RunProbes(ctx, &chaosDetails, clients, &resultDetails, "PostChaos", &eventsDetails);err != nil {
152153
log.Errorf("Probes Failed, err: %v", err)
153154
msg := "AUT: Running, Probes: Unsuccessful"
154155
types.SetEngineEventAttributes(&eventsDetails, types.PostChaosCheck, msg, "Warning", &chaosDetails)

contribute/developer-guide/templates/experiment_gcp.tmpl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package experiment
22

33
import (
4+
"context"
45
"os"
56

67
"github.com/litmuschaos/chaos-operator/api/litmuschaos/v1alpha1"
@@ -98,7 +99,7 @@ func Experiment(clients clients.ClientSets){
9899
// run the probes in the pre-chaos check
99100
if len(resultDetails.ProbeDetails) != 0 {
100101

101-
if err := probe.RunProbes(&chaosDetails, clients, &resultDetails, "PreChaos", &eventsDetails);err != nil {
102+
if err := probe.RunProbes(ctx, &chaosDetails, clients, &resultDetails, "PreChaos", &eventsDetails);err != nil {
102103
log.Errorf("Probe Failed, err: %v", err)
103104
msg := "AUT: Running, Probes: Unsuccessful"
104105
types.SetEngineEventAttributes(&eventsDetails, types.PreChaosCheck, msg, "Warning", &chaosDetails)
@@ -119,7 +120,7 @@ func Experiment(clients clients.ClientSets){
119120
// @TODO: user INVOKE-CHAOSLIB
120121

121122
chaosDetails.Phase = types.ChaosInjectPhase
122-
if err := litmusLIB.PrepareChaos(&experimentsDetails, clients, &resultDetails, &eventsDetails, &chaosDetails); err != nil {
123+
if err := litmusLIB.PrepareChaos(ctx, &experimentsDetails, clients, &resultDetails, &eventsDetails, &chaosDetails); err != nil {
123124
log.Errorf("Chaos injection failed, err: %v", err)
124125
failStep := "[chaos]: Failed inside the chaoslib, err: " + err.Error()
125126
result.RecordAfterFailure(&chaosDetails, &resultDetails, failStep, clients, &eventsDetails)
@@ -149,7 +150,7 @@ func Experiment(clients clients.ClientSets){
149150

150151
// run the probes in the post-chaos check
151152
if len(resultDetails.ProbeDetails) != 0 {
152-
if err := probe.RunProbes(&chaosDetails, clients, &resultDetails, "PostChaos", &eventsDetails);err != nil {
153+
if err := probe.RunProbes(ctx, &chaosDetails, clients, &resultDetails, "PostChaos", &eventsDetails);err != nil {
153154
log.Errorf("Probes Failed, err: %v", err)
154155
msg := "AUT: Running, Probes: Unsuccessful"
155156
types.SetEngineEventAttributes(&eventsDetails, types.PostChaosCheck, msg, "Warning", &chaosDetails)

0 commit comments

Comments
 (0)