Documentation ¶
Index ¶
- Constants
- Variables
- func ConvertContainerOutputToResponse(output string, err error, defaultResponse *spec.Response) *spec.Response
- func GetAllDockerFlagNames() map[string]spec.Empty
- func GetAllExecutors() map[string]spec.Executor
- func GetClientByRuntime(expModel *spec.ExpModel) (container.Container, error)
- func GetContainer(ctx context.Context, client container.Container, uid string, ...) (container.ContainerInfo, *spec.Response)
- func GetContainerSelfFlags() []spec.ExpFlagSpec
- func GetExecInContainerFlags() []spec.ExpFlagSpec
- func GetExecSidecarFlags() []spec.ExpFlagSpec
- func GetExecutorKey(target, action string) string
- func GetNSExecFlags() []spec.ExpFlagSpec
- func NewContainerCommandSpec() spec.ExpModelCommandSpec
- func NewRemoveActionCommand() spec.ExpActionCommandSpec
- type BaseClientExecutor
- type Client
- type CommonExecutor
- func (r *CommonExecutor) DeployChaosBlade(ctx context.Context, containerId string, srcFile, extractDirName string, ...) error
- func (r *CommonExecutor) Exec(uid string, ctx context.Context, expModel *spec.ExpModel) *spec.Response
- func (r *CommonExecutor) Name() string
- func (r *CommonExecutor) SetChannel(channel spec.Channel)
- type ContainerCommandModelSpec
- type DockerExpModelSpec
- type NetworkExecutor
- func (r *NetworkExecutor) DeployChaosBlade(ctx context.Context, containerId string, srcFile, extractDirName string, ...) error
- func (r *NetworkExecutor) Exec(uid string, ctx context.Context, expModel *spec.ExpModel) *spec.Response
- func (r *NetworkExecutor) Name() string
- func (r *NetworkExecutor) SetChannel(channel spec.Channel)
- type RemoveActionCommand
- type ResourceExpModelSpec
- type RunCmdInContainerExecutor
- type RunCmdInContainerExecutorByCP
- func (r *RunCmdInContainerExecutorByCP) DeployChaosBlade(ctx context.Context, containerId string, srcFile, extractDirName string, ...) error
- func (r *RunCmdInContainerExecutorByCP) Exec(uid string, ctx context.Context, expModel *spec.ExpModel) *spec.Response
- func (r *RunCmdInContainerExecutorByCP) Name() string
- func (r *RunCmdInContainerExecutorByCP) SetChannel(channel spec.Channel)
- type RunInSidecarContainerExecutor
Constants ¶
View Source
const BladeBin = "/opt/chaosblade/blade"
BladeBin is the blade path in the chaosblade-tool image
View Source
const CategorySystemContainer = "system_container"
View Source
const DstChaosBladeDir = "/opt"
View Source
const (
ForceFlag = "force"
)
Variables ¶
View Source
var ChaosBladeOverrideFlag = &spec.ExpFlag{ Name: "chaosblade-override", Desc: "Override the exists chaosblade tool in the target container or not, default value is false", NoArgs: true, }
View Source
var ChaosBladeReleaseFlag = &spec.ExpFlag{
Name: "chaosblade-release",
Desc: "The pull path of the chaosblade tar package, for example, --chaosblade-release /opt/chaosblade-0.4.0.tar.gz",
}
View Source
var CommonFunc = func(uid string, ctx context.Context, model *spec.ExpModel) string { matchers := spec.ConvertExpMatchersToString(model, func() map[string]spec.Empty { return GetAllDockerFlagNames() }) if _, ok := spec.IsDestroy(ctx); ok { return fmt.Sprintf("%s destroy %s %s %s", BladeBin, model.Target, model.ActionName, matchers) } return fmt.Sprintf("%s create %s %s %s --uid %s", BladeBin, model.Target, model.ActionName, matchers, uid) }
commonFunc is the command created function
View Source
var ContainerIdFlag = &spec.ExpFlag{ Name: "container-id", Desc: "Container id, when used with container-name, container-id is preferred", NoArgs: false, Required: false, RequiredWhenDestroyed: false, }
View Source
var ContainerLabelSelectorFlag = &spec.ExpFlag{ Name: "container-label-selector", Desc: "Container label selector, when used with container-id or container-name, container-id or container-name is preferred", NoArgs: false, Required: false, RequiredWhenDestroyed: false, }
View Source
var ContainerNameFlag = &spec.ExpFlag{ Name: "container-name", Desc: "Container name, when used with container-id, container-id is preferred", NoArgs: false, Required: false, RequiredWhenDestroyed: false, }
View Source
var ContainerNamespace = &spec.ExpFlag{ Name: "container-namespace", Desc: "container namespace, If container-runtime is containerd it will be used, default value is k8s.io", NoArgs: false, Required: false, }
View Source
var ContainerRuntime = &spec.ExpFlag{ Name: "container-runtime", Desc: "container runtime, support cri and containerd, default value is docker", NoArgs: false, Required: false, }
View Source
var EndpointFlag = &spec.ExpFlag{ Name: "cri-endpoint", Desc: "Cri container socket endpoint", NoArgs: false, Required: false, }
View Source
var ImageRepoFlag = &spec.ExpFlag{ Name: "image-repo", Desc: "Image repository of the chaosblade-tool", NoArgs: false, Required: false, }
View Source
var ImageVersionFlag = &spec.ExpFlag{ Name: "image-version", Desc: "Image version of the chaosblade-tool", NoArgs: false, Required: false, }
View Source
var JvmSpecFileForYaml = ""
Functions ¶
func GetAllDockerFlagNames ¶
func GetAllExecutors ¶
func GetClientByRuntime ¶
func GetContainer ¶
func GetContainer(ctx context.Context, client container.Container, uid string, containerId, containerName string, containerLabelSelector map[string]string) (container.ContainerInfo, *spec.Response)
GetContainer return container by container flag, such as container id or container name.
func GetContainerSelfFlags ¶
func GetContainerSelfFlags() []spec.ExpFlagSpec
func GetExecInContainerFlags ¶
func GetExecInContainerFlags() []spec.ExpFlagSpec
func GetExecSidecarFlags ¶
func GetExecSidecarFlags() []spec.ExpFlagSpec
func GetExecutorKey ¶
func GetNSExecFlags ¶
func GetNSExecFlags() []spec.ExpFlagSpec
func NewContainerCommandSpec ¶
func NewContainerCommandSpec() spec.ExpModelCommandSpec
func NewRemoveActionCommand ¶
func NewRemoveActionCommand() spec.ExpActionCommandSpec
Types ¶
type BaseClientExecutor ¶
type BaseClientExecutor struct { Client container.Container CommandFunc func(uid string, ctx context.Context, model *spec.ExpModel) string }
BaseClientExecutor
type CommonExecutor ¶
type CommonExecutor struct {
BaseClientExecutor
}
CommonExecutor is an executor implementation which used copy chaosblade tool to the target container and executed
func NewCommonExecutor ¶
func NewCommonExecutor() *CommonExecutor
func (*CommonExecutor) DeployChaosBlade ¶
func (*CommonExecutor) Name ¶
func (r *CommonExecutor) Name() string
func (*CommonExecutor) SetChannel ¶
func (r *CommonExecutor) SetChannel(channel spec.Channel)
type ContainerCommandModelSpec ¶
type ContainerCommandModelSpec struct {
spec.BaseExpModelCommandSpec
}
func (*ContainerCommandModelSpec) LongDesc ¶
func (cms *ContainerCommandModelSpec) LongDesc() string
func (*ContainerCommandModelSpec) Name ¶
func (cms *ContainerCommandModelSpec) Name() string
func (*ContainerCommandModelSpec) ShortDesc ¶
func (cms *ContainerCommandModelSpec) ShortDesc() string
type DockerExpModelSpec ¶
type DockerExpModelSpec struct { ScopeName string ExpModelSpecs map[string]spec.ExpModelCommandSpec }
func NewCriExpModelSpec ¶
func NewCriExpModelSpec() *DockerExpModelSpec
func NewDockerExpModelSpec ¶
func NewDockerExpModelSpec() *DockerExpModelSpec
func (*DockerExpModelSpec) ExpModels ¶
func (b *DockerExpModelSpec) ExpModels() map[string]spec.ExpModelCommandSpec
func (*DockerExpModelSpec) GetExpActionModelSpec ¶
func (b *DockerExpModelSpec) GetExpActionModelSpec(target, actionName string) spec.ExpActionCommandSpec
func (*DockerExpModelSpec) Scope ¶
func (b *DockerExpModelSpec) Scope() string
type NetworkExecutor ¶
type NetworkExecutor struct {
BaseClientExecutor
}
NetworkExecutor is an executor implementation which used copy chaosblade tool to the target container and executed
func NewNetworkExecutor ¶
func NewNetworkExecutor() *NetworkExecutor
func (*NetworkExecutor) DeployChaosBlade ¶
func (*NetworkExecutor) Name ¶
func (r *NetworkExecutor) Name() string
func (*NetworkExecutor) SetChannel ¶
func (r *NetworkExecutor) SetChannel(channel spec.Channel)
type RemoveActionCommand ¶
type RemoveActionCommand struct {
spec.BaseExpActionCommandSpec
}
func (*RemoveActionCommand) Aliases ¶
func (*RemoveActionCommand) Aliases() []string
func (*RemoveActionCommand) LongDesc ¶
func (r *RemoveActionCommand) LongDesc() string
func (*RemoveActionCommand) Name ¶
func (*RemoveActionCommand) Name() string
func (*RemoveActionCommand) ShortDesc ¶
func (*RemoveActionCommand) ShortDesc() string
type ResourceExpModelSpec ¶
type ResourceExpModelSpec interface { // Scope Scope() string // ExpModels returns the map of the experiment name and the model ExpModels() map[string]spec.ExpModelCommandSpec // GetExpActionModelSpec returns the action spec GetExpActionModelSpec(target, action string) spec.ExpActionCommandSpec }
type RunCmdInContainerExecutor ¶
type RunCmdInContainerExecutor interface { spec.Executor DeployChaosBlade(ctx context.Context, containerId string, srcFile, extractDirName string, override bool) error }
RunCmdInContainerExecutor is an executor interface which executes command in the target container directly
func NewRunCmdInContainerExecutorByCP ¶
func NewRunCmdInContainerExecutorByCP() RunCmdInContainerExecutor
type RunCmdInContainerExecutorByCP ¶
type RunCmdInContainerExecutorByCP struct {
BaseClientExecutor
}
RunCmdInContainerExecutorByCP is an executor implementation which used copy chaosblade tool to the target container and executed
func (*RunCmdInContainerExecutorByCP) DeployChaosBlade ¶
func (*RunCmdInContainerExecutorByCP) Name ¶
func (r *RunCmdInContainerExecutorByCP) Name() string
func (*RunCmdInContainerExecutorByCP) SetChannel ¶
func (r *RunCmdInContainerExecutorByCP) SetChannel(channel spec.Channel)
type RunInSidecarContainerExecutor ¶
type RunInSidecarContainerExecutor struct { BaseClientExecutor // contains filtered or unexported fields }
func NewNetWorkSidecarExecutor ¶
func NewNetWorkSidecarExecutor() *RunInSidecarContainerExecutor
func (*RunInSidecarContainerExecutor) Name ¶
func (*RunInSidecarContainerExecutor) Name() string
func (*RunInSidecarContainerExecutor) SetChannel ¶
func (*RunInSidecarContainerExecutor) SetChannel(channel spec.Channel)
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
* Copyright 1999-2020 Alibaba Group Holding Ltd.
|
* Copyright 1999-2020 Alibaba Group Holding Ltd. |
containerd
* Copyright 1999-2020 Alibaba Group Holding Ltd.
|
* Copyright 1999-2020 Alibaba Group Holding Ltd. |
cri-o
* Copyright 1999-2020 Alibaba Group Holding Ltd.
|
* Copyright 1999-2020 Alibaba Group Holding Ltd. |
docker
* Copyright 1999-2020 Alibaba Group Holding Ltd.
|
* Copyright 1999-2020 Alibaba Group Holding Ltd. |
Click to show internal directories.
Click to hide internal directories.