config

package
Version: v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ConfigFileKey is key of config file in ConfigMap
	ConfigFileKey = "cyclone-server.json"

	// EnvWebhookURLPrefix is the key of Environment variable to define webhook callback url prefix
	EnvWebhookURLPrefix = "WEBHOOK_URL_PREFIX"

	// EnvRecordWebURLTemplate is the key of Environment variable to define template of record url which used in
	// PR status 'Details' to associate PR with WorkflowRun website.
	EnvRecordWebURLTemplate = "RECORD_WEB_URL_TEMPLATE"
)

Variables

This section is empty.

Functions

func GetRecordWebURLTemplate added in v1.0.0

func GetRecordWebURLTemplate() string

GetRecordWebURLTemplate returns record web URL template. It tries to get the url from "RECORD_WEB_URL_TEMPLATE" environment variable, if the value is empty, then get it from configmap.

func LoadConfig added in v0.9.3

func LoadConfig(cm *core_v1.ConfigMap) error

LoadConfig loads configuration from ConfigMap

Types

type ArtifactConfig added in v1.1.0

type ArtifactConfig struct {
	// RetentionSeconds describes the retention time for artifacts, cyclone will delete artifacts exceeded retention
	// time periodically.
	RetentionSeconds time.Duration `json:"retention_seconds"`

	// RetentionDiskProtectionThreshold is a threshold in percentage format, if disk available space is less than this
	// value, artifacts can not be stored.
	RetentionDiskProtectionThreshold float64 `json:"retention_disk_protection_threshold"`
}

ArtifactConfig configures artifacts which are managed by cyclone server

type CacheCleaner added in v1.1.0

type CacheCleaner struct {
	// Image is image for the acceleration caches cleaner, for example 'alpine:3.7'
	Image string `json:"image"`
	// ResourceRequirements specifies resource requirements of the acceleration caches cleaner.
	ResourceRequirements map[core_v1.ResourceName]string `json:"resource_requirements"`
}

CacheCleaner configures acceleration caches cleaner.

type ClientSetConfig added in v0.9.8

type ClientSetConfig struct {
	// QPS indicates the maximum QPS to the master from this client.
	// If it's zero, the created RESTClient will use DefaultQPS: 5
	QPS float32 `json:"qps"`

	// Maximum burst for throttle.
	// If it's zero, the created RESTClient will use DefaultBurst: 10.
	Burst int `json:"burst"`
}

ClientSetConfig defines rate limit config for a Kubernetes client

type CycloneServerConfig added in v0.9.3

type CycloneServerConfig struct {
	// Logging configuration, such as log level.
	Logging LoggingConfig `json:"logging"`

	// CycloneServerHost represents the host for cyclone server to serve on
	CycloneServerHost string `json:"cyclone_server_host"`
	// CycloneServerPort represents the port for cyclone server to serve on
	CycloneServerPort uint16 `json:"cyclone_server_port"`

	// DefaultPVCConfig represents the config of pvc for default tenant
	DefaultPVCConfig PVCConfig `json:"default_pvc_config"`

	// WorkerNamespaceQuota describes the resource quota of the namespace which will be used to run workflows,
	// eg map[core_v1.ResourceName]string{"cpu": "2", "memory": "4Gi"}
	WorkerNamespaceQuota map[core_v1.ResourceName]string `json:"worker_namespace_quota"`

	// WebhookURLTemplate represents the template of webhook url.
	WebhookURLTemplate string `json:"webhook_url_template"`

	// StorageUsageWatcher configures PVC storage usage watchers.
	StorageUsageWatcher StorageUsageWatcher `json:"storage_usage_watcher"`

	// CacheCleaner configures acceleration caches cleaner.
	CacheCleaner CacheCleaner `json:"cache_cleaner"`

	// CreateBuiltinTemplates configures whether to create builtin stage templates while cyclone server start up.
	CreateBuiltinTemplates bool `json:"create_builtin_templates"`

	// InitDefaultTenant configures whether to create cyclone default tenant while cyclone server start up.
	InitDefaultTenant bool `json:"init_default_tenant"`

	// OpenControlCluster indicates whether to open control cluster for workflow execution when tenant created
	OpenControlCluster bool `json:"open_control_cluster"`

	// Images that used in cyclone, such as GC image.
	Images map[string]string `json:"images"`

	// Notifications represents the config to send notifications after workflowruns finish.
	Notifications []NotificationEndpoint `json:"notifications"`

	// RecordWebURLTemplate represents the URL template to generate web URLs for workflowruns.
	RecordWebURLTemplate string `json:"record_web_url_template"`

	// ClientSet holds the common attributes that can be passed to a Kubernetes client on cyclone server handlers
	// initialization.
	ClientSet ClientSetConfig `json:"client_set"`

	// Artifact config for artifacts which are managed by cyclone server
	Artifact ArtifactConfig `json:"artifact"`
}

CycloneServerConfig configures Cyclone Server

var Config CycloneServerConfig

Config is Workflow Controller config instance

type LoggingConfig added in v0.9.3

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

LoggingConfig configures logging

type NotificationEndpoint added in v0.9.6

type NotificationEndpoint struct {
	// Name represents the name of notification endpoint.
	Name string `json:"name"`

	// URL represents the URL to send the notification.
	URL string `json:"url"`
}

NotificationEndpoint represents the config of notification endpoint. Server will send notifications about finished workflowruns if notification endpoints are configured.

type PVCConfig added in v0.9.3

type PVCConfig struct {
	// StorageClass represents the strorageclass used to create pvc
	StorageClass string `json:"storage_class"`

	// Size represents the capacity of the pvc, unit supports 'Gi' or 'Mi'
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
	Size string `json:"size"`
}

PVCConfig contains the PVC information

type StorageUsageWatcher added in v0.9.3

type StorageUsageWatcher struct {
	// Image is image for the storage usage watcher, for example 'busybox:1.30.0'
	Image string `json:"image"`
	// ReportURL is url where to report the usage
	ReportURL string `json:"report_url"`
	// IntervalSeconds is intervals to report storage usage
	IntervalSeconds string `json:"interval_seconds"`
	// ResourceRequirements specifies resource requirements of the watcher container.
	ResourceRequirements map[core_v1.ResourceName]string `json:"resource_requirements"`
}

StorageUsageWatcher configures PVC storage usage watchers.

Source Files

Jump to

Keyboard shortcuts

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