in shardingsphere-operator/pkg/controllers/chaos_controller.go [313:343]
func (r *ChaosReconciler) reconcilePodChaos(ctx context.Context, chaos *v1alpha1.Chaos, namespacedName types.NamespacedName) error {
switch chaos.Spec.EmbedChaos.PodChaos.Action {
case v1alpha1.PodFailure:
fallthrough
case v1alpha1.ContainerKill:
fallthrough
case v1alpha1.PodKill:
pc, err := r.getPodChaosByNamespacedName(ctx, namespacedName)
if err != nil {
return err
}
if pc != nil {
return r.updatePodChaos(ctx, chaos, pc)
}
return r.createPodChaos(ctx, chaos)
case v1alpha1.CPUStress:
fallthrough
case v1alpha1.MemoryStress:
sc, err := r.getStressChaosByNamespacedName(ctx, namespacedName)
if err != nil {
return err
}
if sc != nil {
return r.updateStressChaos(ctx, chaos, sc)
}
return r.createStressChaos(ctx, chaos)
}
return nil
}