...

Package podnetworkchaosmanager

import "github.com/chaos-mesh/chaos-mesh/controllers/chaosimpl/networkchaos/podnetworkchaosmanager"
Overview
Index

Overview ▾

Variables

var (
    // ErrPodNotFound means operate pod may be deleted(almostly)
    ErrPodNotFound = errors.New("pod not found")

    // ErrPodNotRunning means operate pod may be not working
    // and it's non-sense to make changes on it.
    ErrPodNotRunning = errors.New("pod not running")
)

type Append

Append adds an item to corresponding list in podnetworkchaos

type Append struct {
    Item interface{}
}

func (*Append) Apply

func (a *Append) Apply(chaos *v1alpha1.PodNetworkChaos) error

Apply runs this action

type Builder

type Builder struct {
    Log logr.Logger
    client.Client
    client.Reader
    // contains filtered or unexported fields
}

func NewBuilder

func NewBuilder(params Params) *Builder

func (*Builder) Build

func (b *Builder) Build(source string, key types.NamespacedName) *PodNetworkManager

func (*Builder) WithInit

func (b *Builder) WithInit(source string, key types.NamespacedName) *PodNetworkManager

type Clear

Clear removes all resources with the same source

type Clear struct {
    Source string
}

func (*Clear) Apply

func (s *Clear) Apply(chaos *v1alpha1.PodNetworkChaos) error

Apply runs this action

type CommitResponse

CommitResponse is a tuple (Key, Err)

type CommitResponse struct {
    Key types.NamespacedName
    Err error
}

type Params

type Params struct {
    fx.In

    Logger logr.Logger
    Client client.Client
    Reader client.Reader `name:"no-cache"`
    Scheme *runtime.Scheme
}

type PodNetworkManager

PodNetworkManager will save all the related podnetworkchaos

type PodNetworkManager struct {
    Source string

    Log logr.Logger
    client.Client
    client.Reader

    Key types.NamespacedName
    T   *PodNetworkTransaction
    // contains filtered or unexported fields
}

func (*PodNetworkManager) Commit

func (m *PodNetworkManager) Commit(ctx context.Context, owner *v1alpha1.NetworkChaos) (int64, error)

Commit will update all modifications to the cluster

func (*PodNetworkManager) CreateNewPodNetworkChaos

func (m *PodNetworkManager) CreateNewPodNetworkChaos(ctx context.Context) error

type PodNetworkTransaction

PodNetworkTransaction represents a modification on podnetwork

type PodNetworkTransaction struct {
    Steps []Step
}

func (*PodNetworkTransaction) Append

func (t *PodNetworkTransaction) Append(item interface{}) error

Append adds an item to corresponding list in podnetworkchaos

func (*PodNetworkTransaction) Apply

func (t *PodNetworkTransaction) Apply(chaos *v1alpha1.PodNetworkChaos) error

Apply runs every step on the chaos

func (*PodNetworkTransaction) Clear

func (t *PodNetworkTransaction) Clear(source string)

Clear will clear all related items in podnetworkchaos

type Step

Step represents a step of PodNetworkTransaction

type Step interface {
    // Apply will apply an action on podnetworkchaos
    Apply(chaos *v1alpha1.PodNetworkChaos) error
}