controller

package
v0.9.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2019 License: Apache-2.0 Imports: 12 Imported by: 0

README

Workflow Controller

Documentation

Index

Constants

View Source
const (
	// DevModeEnvName determines whether workflow controller is in development mode.
	// In development mode, resource resolver containers, coordinator containers will
	// have image pull policy being 'Always', otherwise it's 'IfNotPresent'.
	DevModeEnvName = "DEVELOP_MODE"

	// ConfigFileKey is key of config file in ConfigMap
	ConfigFileKey = "workflow-controller.json"

	// CoordinatorImage is key of coordinator image in config file
	CoordinatorImage = "coordinator"
	// GCImage is key of the GC image in config file
	GCImage = "gc"
	// DindImage is key of the docker-in-docker image in config file
	DindImage = "dind"
	// ToolboxImage is key of the cyclone toolbox image in config file
	ToolboxImage = "toolbox"
)

Variables

This section is empty.

Functions

func ImagePullPolicy added in v0.9.3

func ImagePullPolicy() corev1.PullPolicy

ImagePullPolicy determines image pull policy based on environment variable DEVELOP_MODE This pull policy will be used in image resolver containers and coordinator containers.

func InitControlCluster added in v0.9.6

func InitControlCluster(client clientset.Interface) error

InitControlCluster initializes control cluster for workflow to run.

func InitLogger

func InitLogger(logging *LoggingConfig)

InitLogger inits logging

func LoadConfig

func LoadConfig(cm *corev1.ConfigMap) error

LoadConfig loads configuration from ConfigMap

Types

type DindSettings added in v0.9.6

type DindSettings struct {
	// InsecureRegistries is list of insecure registries, for docker registries with
	// self-signed certs, it's useful to bypass the cert check.
	InsecureRegistries []string `json:"insecure_registries"`
	// Bip specifies IP subnet used for docker0 bridge
	Bip string `json:"bip"`
}

DindSettings is settings for Docker in Docker.

type ExecutionContext added in v0.9.3

type ExecutionContext struct {
	// Namespace is namespace where to run workflow.
	Namespace string `json:"namespace"`
	// PVC is pvc used to run workflow. It's used to transfer artifacts in WorkflowRun, and
	// also to help share resources among stages within WorkflowRun. If no PVC is given here,
	// input resources won't be shared among stages, but need to be pulled every time it's needed.
	// And also if no PVC given, artifacts are not supported.
	PVC string `json:"pvc"`
	// ServiceAccount is the service account applied to the pod runed
	ServiceAccount string `json:"service_account"`
}

ExecutionContext defines default namespace and pvc used to run workflow.

type GCConfig

type GCConfig struct {
	// Enabled controllers whether GC is enabled, if set to false, no GC would happen.
	Enabled bool `json:"enabled"`
	// DelaySeconds defines the time after a WorkflowRun terminated to perform GC. When configured to 0.
	// it equals to gc immediately.
	DelaySeconds time.Duration `json:"delay_seconds"`
	// RetryCount defines how many times to retry when GC failed, 0 means no retry.
	RetryCount int `json:"retry"`
	// ResourceRequirements is default resource requirements for the gc Pod
	ResourceRequirements corev1.ResourceRequirements `json:"resource_quota"`
}

GCConfig configures GC

type LimitsConfig

type LimitsConfig struct {
	// Maximum WorkflowRuns to be kept for each Workflow
	MaxWorkflowRuns int `json:"max_workflowruns"`
}

LimitsConfig configures maximum WorkflowRun to keep for each Workflow

type LoggingConfig

type LoggingConfig struct {
	Level string `json:"level"`
}

LoggingConfig configures logging

type WorkflowControllerConfig added in v0.9.3

type WorkflowControllerConfig struct {
	// Images that used in controller, such as gc image.
	Images map[string]string `json:"images"`
	// Logging configuration, such as log level.
	Logging LoggingConfig `json:"logging"`
	// GC configuration
	GC GCConfig `json:"gc"`
	// Limits of each resources should be retained
	Limits LimitsConfig `json:"limits"`
	// ResourceRequirements is default resource requirements for containers in stage Pod
	ResourceRequirements corev1.ResourceRequirements `json:"default_resource_quota"`
	// ExecutionContext defines default namespace and pvc used to run workflow.
	ExecutionContext ExecutionContext `json:"execution_context"`
	// CycloneServerAddr is address of the Cyclone Server
	CycloneServerAddr string `json:"cyclone_server_addr"`
	// NotificationURL represents the config to send notifications after workflowruns finish.
	// It can be configured as Cyclone server notification URL to take advantage of its scenarized functions.
	NotificationURL string `json:"notification_url"`
	// DindSettings is settings for Docker in Docker
	DindSettings DindSettings `json:"dind"`
}

WorkflowControllerConfig configures Workflow Controller

Config is Workflow Controller config instance

Directories

Path Synopsis
pod

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL