interfaces

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSConfig

type AWSConfig struct {
	Region string `json:"region"`
}

This section holds common config for AWS

type AWSSchedulerConfig

type AWSSchedulerConfig struct {
	// Some cloud providers require a region to be set.
	Region string `json:"region"`
	// The role assumed to register and activate schedules.
	ScheduleRole string `json:"scheduleRole"`
	// The name of the queue for which scheduled events should enqueue.
	TargetName string `json:"targetName"`
	// Optional: The application-wide prefix to be applied for schedule names.
	ScheduleNamePrefix string `json:"scheduleNamePrefix"`
}

func (*AWSSchedulerConfig) GetRegion

func (a *AWSSchedulerConfig) GetRegion() string

func (*AWSSchedulerConfig) GetScheduleNamePrefix

func (a *AWSSchedulerConfig) GetScheduleNamePrefix() string

func (*AWSSchedulerConfig) GetScheduleRole

func (a *AWSSchedulerConfig) GetScheduleRole() string

func (*AWSSchedulerConfig) GetTargetName

func (a *AWSSchedulerConfig) GetTargetName() string

type AWSWorkflowExecutorConfig

type AWSWorkflowExecutorConfig struct {
	// Some cloud providers require a region to be set.
	Region string `json:"region"`
	// The name of the queue onto which scheduled events will enqueue.
	ScheduleQueueName string `json:"scheduleQueueName"`
	// The account id (according to whichever cloud provider scheme is used) that has permission to read from the above
	// queue.
	AccountID string `json:"accountId"`
}

func (*AWSWorkflowExecutorConfig) GetAccountID

func (a *AWSWorkflowExecutorConfig) GetAccountID() string

func (*AWSWorkflowExecutorConfig) GetRegion

func (a *AWSWorkflowExecutorConfig) GetRegion() string

func (*AWSWorkflowExecutorConfig) GetScheduleScheduleQueueName

func (a *AWSWorkflowExecutorConfig) GetScheduleScheduleQueueName() string

type AdminRateLimit

type AdminRateLimit struct {
	Tps   rate.Limit `json:"tps"`
	Burst int        `json:"burst"`
}

func (*AdminRateLimit) GetBurst

func (f *AdminRateLimit) GetBurst() int

func (*AdminRateLimit) GetTps

func (f *AdminRateLimit) GetTps() rate.Limit

type ApplicationConfig

type ApplicationConfig struct {
	// The RoleName key inserted as an annotation (https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/)
	// in Kozmo Workflow CRDs created in the CreateExecution flow. The corresponding role value is defined in the
	// launch plan that is used to create the execution.
	RoleNameKey string `json:"roleNameKey"`
	// Top-level name applied to all metrics emitted by the application.
	MetricsScope string `json:"metricsScope"`
	// Metrics labels applied to prometheus metrics emitted by the service
	MetricKeys []string `json:"metricsKeys"`
	// Determines which port the profiling server used for admin monitoring and application debugging uses.
	ProfilerPort int `json:"profilerPort"`
	// This defines the nested path on the configured external storage provider where workflow closures are remotely
	// offloaded.
	MetadataStoragePrefix []string `json:"metadataStoragePrefix"`
	// Event version to be used for Kozmo workflows
	EventVersion int `json:"eventVersion"`
	// Specifies the shared buffer size which is used to queue asynchronous event writes.
	AsyncEventsBufferSize int `json:"asyncEventsBufferSize"`
	// Controls the maximum number of task nodes that can be run in parallel for the entire workflow.
	// This is useful to achieve fairness. Note: MapTasks are regarded as one unit,
	// and parallelism/concurrency of MapTasks is independent from this.
	MaxParallelism int32 `json:"maxParallelism"`
	// Labels to apply to the execution resource.
	Labels map[string]string `json:"labels,omitempty"`
	// Annotations to apply to the execution resource.
	Annotations map[string]string `json:"annotations,omitempty"`
	// Interruptible indicates whether all tasks should be run as interruptible by default (unless specified otherwise via the execution/workflow/task definition)
	Interruptible bool `json:"interruptible"`
	// OverwriteCache indicates all workflows and tasks should skip all their cached results and re-compute their outputs,
	// overwriting any already stored data.
	// Note that setting this setting to `true` effectively disabled all caching in Kozmo as all executions launched
	// will have their OverwriteCache setting enabled.
	OverwriteCache bool `json:"overwriteCache"`

	// Optional: security context override to apply this execution.
	// iam_role references the fully qualified name of Identity & Access Management role to impersonate.
	AssumableIamRole string `json:"assumableIamRole"`
	// k8s_service_account references a kubernetes service account to impersonate.
	K8SServiceAccount string `json:"k8sServiceAccount"`

	// Prefix for where offloaded data from user workflows will be written
	OutputLocationPrefix string `json:"outputLocationPrefix"`

	// Enabling will use Storage (s3/gcs/etc) to offload static parts of CRDs.
	UseOffloadedWorkflowClosure bool `json:"useOffloadedWorkflowClosure"`

	// Environment variables to be set for the execution.
	Envs map[string]string `json:"envs,omitempty"`

	FeatureGates FeatureGates `json:"featureGates" pflag:",Enable experimental features."`
}

ApplicationConfig is the base configuration to start admin

func (*ApplicationConfig) GetAnnotations

func (a *ApplicationConfig) GetAnnotations() *admin.Annotations

func (*ApplicationConfig) GetAsWorkflowExecutionConfig

func (a *ApplicationConfig) GetAsWorkflowExecutionConfig() admin.WorkflowExecutionConfig

GetAsWorkflowExecutionConfig returns the WorkflowExecutionConfig as extracted from this object

func (*ApplicationConfig) GetAsyncEventsBufferSize

func (a *ApplicationConfig) GetAsyncEventsBufferSize() int

func (*ApplicationConfig) GetEnvs

func (a *ApplicationConfig) GetEnvs() *admin.Envs

func (*ApplicationConfig) GetEventVersion

func (a *ApplicationConfig) GetEventVersion() int

func (*ApplicationConfig) GetInterruptible

func (a *ApplicationConfig) GetInterruptible() *wrappers.BoolValue

func (*ApplicationConfig) GetLabels

func (a *ApplicationConfig) GetLabels() *admin.Labels

func (*ApplicationConfig) GetMaxParallelism

func (a *ApplicationConfig) GetMaxParallelism() int32

func (*ApplicationConfig) GetMetadataStoragePrefix

func (a *ApplicationConfig) GetMetadataStoragePrefix() []string

func (*ApplicationConfig) GetMetricsScope

func (a *ApplicationConfig) GetMetricsScope() string

func (*ApplicationConfig) GetOverwriteCache

func (a *ApplicationConfig) GetOverwriteCache() bool

func (*ApplicationConfig) GetProfilerPort

func (a *ApplicationConfig) GetProfilerPort() int

func (*ApplicationConfig) GetRawOutputDataConfig

func (a *ApplicationConfig) GetRawOutputDataConfig() *admin.RawOutputDataConfig

func (*ApplicationConfig) GetRoleNameKey

func (a *ApplicationConfig) GetRoleNameKey() string

func (*ApplicationConfig) GetSecurityContext

func (a *ApplicationConfig) GetSecurityContext() *core.SecurityContext

type ApplicationConfiguration

type ApplicationConfiguration interface {
	GetDbConfig() *database.DbConfig
	GetTopLevelConfig() *ApplicationConfig
	GetSchedulerConfig() *SchedulerConfig
	GetRemoteDataConfig() *RemoteDataConfig
	GetNotificationsConfig() *NotificationsConfig
	GetDomainsConfig() *DomainsConfig
	GetExternalEventsConfig() *ExternalEventsConfig
	GetCloudEventsConfig() *CloudEventsConfig
}

Defines the interface to return top-level config structs necessary to start up a kozmoadmin application.

type Auth

type Auth struct {
	Type      string `json:"type"`
	TokenPath string `json:"tokenPath"`
	CertPath  string `json:"certPath"`
}

func (Auth) GetCA

func (auth Auth) GetCA() ([]byte, error)

func (Auth) GetToken

func (auth Auth) GetToken() (string, error)

type CloudEventVersion

type CloudEventVersion uint8
const (
	// This is the initial version of the cloud events
	CloudEventVersionv1 CloudEventVersion = iota

	// Version 2 of the cloud events add a lot more information into the event
	CloudEventVersionv2
)

func CloudEventVersionString

func CloudEventVersionString(s string) (CloudEventVersion, error)

CloudEventVersionString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.

func CloudEventVersionValues

func CloudEventVersionValues() []CloudEventVersion

CloudEventVersionValues returns all values of the enum

func (CloudEventVersion) IsACloudEventVersion

func (i CloudEventVersion) IsACloudEventVersion() bool

IsACloudEventVersion returns "true" if the value is listed in the enum definition. "false" otherwise

func (CloudEventVersion) MarshalJSON

func (i CloudEventVersion) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface for CloudEventVersion

func (CloudEventVersion) MarshalYAML

func (i CloudEventVersion) MarshalYAML() (interface{}, error)

MarshalYAML implements a YAML Marshaler for CloudEventVersion

func (CloudEventVersion) String

func (i CloudEventVersion) String() string

func (*CloudEventVersion) UnmarshalJSON

func (i *CloudEventVersion) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface for CloudEventVersion

func (*CloudEventVersion) UnmarshalYAML

func (i *CloudEventVersion) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements a YAML Unmarshaler for CloudEventVersion

type CloudEventsConfig

type CloudEventsConfig struct {
	Enable bool `json:"enable"`
	// Defines the cloud provider that backs the scheduler. In the absence of a specification the no-op, 'local'
	// scheme is used.
	Type        string      `json:"type"`
	AWSConfig   AWSConfig   `json:"aws"`
	GCPConfig   GCPConfig   `json:"gcp"`
	KafkaConfig KafkaConfig `json:"kafka"`
	// Publish events to a pubsub tops
	EventsPublisherConfig EventsPublisherConfig `json:"eventsPublisher"`
	// Number of times to attempt recreating a notifications processor client should there be any disruptions.
	ReconnectAttempts int `json:"reconnectAttempts"`
	// Specifies the time interval to wait before attempting to reconnect the notifications processor client.
	ReconnectDelaySeconds int `json:"reconnectDelaySeconds"`
	// Transform the raw events into the fuller cloudevent events before publishing
	CloudEventVersion CloudEventVersion `json:"cloudEventVersion"`
}

type ClusterConfig

type ClusterConfig struct {
	Name             string                   `json:"name"`
	Endpoint         string                   `json:"endpoint"`
	Auth             Auth                     `json:"auth"`
	Enabled          bool                     `json:"enabled"`
	KubeClientConfig *config.KubeClientConfig `json:"kubeClientConfig,omitempty"`
}

Holds details about a cluster used for workflow execution.

type ClusterConfiguration

type ClusterConfiguration interface {
	// Returns clusters defined in runtime configuration files.
	GetClusterConfigs() []ClusterConfig

	// Returns label cluster map for routing
	GetLabelClusterMap() map[string][]ClusterEntity

	// Returns default execution label used as fallback if no execution cluster was explicitly defined.
	GetDefaultExecutionLabel() string
}

Provides values set in runtime configuration files. These files can be changed without requiring a full server restart.

type ClusterEntity

type ClusterEntity struct {
	ID     string  `json:"id"`
	Weight float32 `json:"weight"`
}

type ClusterPoolAssignment

type ClusterPoolAssignment struct {
	Pool string `json:"pool"`
}

type ClusterPoolAssignmentConfig

type ClusterPoolAssignmentConfig struct {
	ClusterPoolAssignments ClusterPoolAssignments `json:"clusterPoolAssignments"`
}

type ClusterPoolAssignmentConfiguration

type ClusterPoolAssignmentConfiguration interface {
	GetClusterPoolAssignments() ClusterPoolAssignments
}

type ClusterPoolAssignments

type ClusterPoolAssignments = map[DomainName]ClusterPoolAssignment

type ClusterResourceConfig

type ClusterResourceConfig struct {
	TemplatePath string `json:"templatePath"`
	// TemplateData maps template keys e.g. my_super_secret_password to a data source
	// which is then substituted in cluster resource templated config files wherever
	// {{ my_super_secret_password }} appears.
	TemplateData    TemplateData    `json:"templateData"`
	RefreshInterval config.Duration `json:"refreshInterval"`
	// Like TemplateData above, this also specifies template values as defaults to be substituted for specific domains
	// or for all domains.
	// For example:
	/*
		defaultData:
		  production:
		    foo:
		      value: "bar"
		    foofoo:
		      valueFrom:
		        env: SHELL
		  staging:
		    foo:
		      value: "baz"
	*/
	CustomData           map[DomainName]TemplateData `json:"customData"`
	StandaloneDeployment bool                        `` /* 154-byte string literal not displayed */
}

type ClusterResourceConfiguration

type ClusterResourceConfiguration interface {
	GetTemplatePath() string
	GetTemplateData() map[string]DataSource
	GetRefreshInterval() time.Duration
	GetCustomTemplateData() map[DomainName]TemplateData
	IsStandaloneDeployment() bool
}

type Clusters

type Clusters struct {
	ClusterConfigs        []ClusterConfig            `json:"clusterConfigs"`
	LabelClusterMap       map[string][]ClusterEntity `json:"labelClusterMap"`
	DefaultExecutionLabel string                     `json:"defaultExecutionLabel"`
}

type Configuration

type Configuration interface {
	ApplicationConfiguration() ApplicationConfiguration
	QueueConfiguration() QueueConfiguration
	ClusterConfiguration() ClusterConfiguration
	TaskResourceConfiguration() TaskResourceConfiguration
	WhitelistConfiguration() WhitelistConfiguration
	RegistrationValidationConfiguration() RegistrationValidationConfiguration
	ClusterResourceConfiguration() ClusterResourceConfiguration
	NamespaceMappingConfiguration() NamespaceMappingConfiguration
	QualityOfServiceConfiguration() QualityOfServiceConfiguration
	ClusterPoolAssignmentConfiguration() ClusterPoolAssignmentConfiguration
}

Interface for getting parsed values from a configuration file

type DataSource

type DataSource struct {
	Value     string              `json:"value"`
	ValueFrom DataSourceValueFrom `json:"valueFrom"`
}

type DataSourceValueFrom

type DataSourceValueFrom struct {
	EnvVar   string `json:"env"`
	FilePath string `json:"filePath"`
}

type DbConfig

type DbConfig struct {
	DeprecatedHost         string `json:"host" pflag:",deprecated"`
	DeprecatedPort         int    `json:"port" pflag:",deprecated"`
	DeprecatedDbName       string `json:"dbname" pflag:",deprecated"`
	DeprecatedUser         string `json:"username" pflag:",deprecated"`
	DeprecatedPassword     string `json:"password" pflag:",deprecated"`
	DeprecatedPasswordPath string `json:"passwordPath" pflag:",deprecated"`
	DeprecatedExtraOptions string `json:"options" pflag:",deprecated"`
	DeprecatedDebug        bool   `json:"debug" pflag:",deprecated"`

	EnableForeignKeyConstraintWhenMigrating bool            `json:"enableForeignKeyConstraintWhenMigrating" pflag:",Whether to enable gorm foreign keys when migrating the db"`
	MaxIdleConnections                      int             `json:"maxIdleConnections" pflag:",maxIdleConnections sets the maximum number of connections in the idle connection pool."`
	MaxOpenConnections                      int             `json:"maxOpenConnections" pflag:",maxOpenConnections sets the maximum number of open connections to the database."`
	ConnMaxLifeTime                         config.Duration `json:"connMaxLifeTime" pflag:",sets the maximum amount of time a connection may be reused"`
	PostgresConfig                          *PostgresConfig `json:"postgres,omitempty"`
	SQLiteConfig                            *SQLiteConfig   `json:"sqlite,omitempty"`
}

DbConfig is used to for initiating the database connection with the store that holds registered entities (e.g. workflows, tasks, launch plans...)

type Domain

type Domain struct {
	// Unique identifier for a domain.
	ID string `json:"id"`
	// Human readable name for a domain.
	Name string `json:"name"`
}

Domains are always globally set in the application config, whereas individual projects can be individually registered.

type DomainName

type DomainName = string

type DomainsConfig

type DomainsConfig = []Domain

type EmailServerConfig

type EmailServerConfig struct {
	ServiceName string `json:"serviceName"`
	// Only one of these should be set.
	APIKeyEnvVar   string `json:"apiKeyEnvVar"`
	APIKeyFilePath string `json:"apiKeyFilePath"`
}

type EventSchedulerConfig

type EventSchedulerConfig struct {
	// Defines the cloud provider that backs the scheduler. In the absence of a specification the no-op, 'local'
	// scheme is used.
	Scheme string `json:"scheme"`

	// Deprecated : Some cloud providers require a region to be set.
	Region string `json:"region"`
	// Deprecated : The role assumed to register and activate schedules.
	ScheduleRole string `json:"scheduleRole"`
	// Deprecated : The name of the queue for which scheduled events should enqueue.
	TargetName string `json:"targetName"`
	// Deprecated : Optional: The application-wide prefix to be applied for schedule names.
	ScheduleNamePrefix   string                `json:"scheduleNamePrefix"`
	AWSSchedulerConfig   *AWSSchedulerConfig   `json:"aws"`
	KozmoSchedulerConfig *KozmoSchedulerConfig `json:"local"`
}

This section holds configuration for the event scheduler used to schedule workflow executions.

func (*EventSchedulerConfig) GetAWSSchedulerConfig

func (e *EventSchedulerConfig) GetAWSSchedulerConfig() *AWSSchedulerConfig

func (*EventSchedulerConfig) GetKozmoSchedulerConfig

func (e *EventSchedulerConfig) GetKozmoSchedulerConfig() *KozmoSchedulerConfig

func (*EventSchedulerConfig) GetRegion

func (e *EventSchedulerConfig) GetRegion() string

func (*EventSchedulerConfig) GetScheduleNamePrefix

func (e *EventSchedulerConfig) GetScheduleNamePrefix() string

func (*EventSchedulerConfig) GetScheduleRole

func (e *EventSchedulerConfig) GetScheduleRole() string

func (*EventSchedulerConfig) GetScheme

func (e *EventSchedulerConfig) GetScheme() string

func (*EventSchedulerConfig) GetTargetName

func (e *EventSchedulerConfig) GetTargetName() string

type EventsPublisherConfig

type EventsPublisherConfig struct {
	// The topic which events should be published, e.g. node, task, workflow
	TopicName string `json:"topicName"`
	// Event types: task, node, workflow executions
	EventTypes []string `json:"eventTypes"`
}

This section handles configuration for the workflow notifications pipeline.

type ExecutionQueue

type ExecutionQueue struct {
	Dynamic    string
	Attributes []string
}

Holds details about a queue used for task execution. Matching attributes determine which workflows' tasks will run where.

func (ExecutionQueue) GetAttributes

func (q ExecutionQueue) GetAttributes() []string

type ExecutionQueues

type ExecutionQueues []ExecutionQueue

type ExternalEventsConfig

type ExternalEventsConfig struct {
	Enable bool `json:"enable"`
	// Defines the cloud provider that backs the scheduler. In the absence of a specification the no-op, 'local'
	// scheme is used.
	Type      string    `json:"type"`
	AWSConfig AWSConfig `json:"aws"`
	GCPConfig GCPConfig `json:"gcp"`
	// Publish events to a pubsub tops
	EventsPublisherConfig EventsPublisherConfig `json:"eventsPublisher"`
	// Number of times to attempt recreating a notifications processor client should there be any disruptions.
	ReconnectAttempts int `json:"reconnectAttempts"`
	// Specifies the time interval to wait before attempting to reconnect the notifications processor client.
	ReconnectDelaySeconds int `json:"reconnectDelaySeconds"`
}

type FeatureGates

type FeatureGates struct {
	EnableArtifacts bool `json:"enableArtifacts" pflag:",Enable artifacts feature."`
}

type GCPConfig

type GCPConfig struct {
	ProjectID string `json:"projectId"`
}

This section holds common config for GCP

type InlineEventDataPolicy

type InlineEventDataPolicy int
const (
	// InlineEventDataPolicyOffload specifies that inline execution event data (e.g. outputs) should be offloaded to the
	// configured cloud blob store.
	InlineEventDataPolicyOffload InlineEventDataPolicy = iota
	// InlineEventDataPolicyStoreInline specifies that inline execution event data should be saved inline with execution
	// database entries.
	InlineEventDataPolicyStoreInline
)

func InlineEventDataPolicyString

func InlineEventDataPolicyString(s string) (InlineEventDataPolicy, error)

InlineEventDataPolicyString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.

func InlineEventDataPolicyValues

func InlineEventDataPolicyValues() []InlineEventDataPolicy

InlineEventDataPolicyValues returns all values of the enum

func (InlineEventDataPolicy) IsAInlineEventDataPolicy

func (i InlineEventDataPolicy) IsAInlineEventDataPolicy() bool

IsAInlineEventDataPolicy returns "true" if the value is listed in the enum definition. "false" otherwise

func (InlineEventDataPolicy) String

func (i InlineEventDataPolicy) String() string

type KafkaConfig

type KafkaConfig struct {
	// The version of Kafka, e.g. 2.1.0, 0.8.2.0
	Version string `json:"version"`
	// kafka broker addresses
	Brokers []string `json:"brokers"`
}

type KozmoSchedulerConfig

type KozmoSchedulerConfig struct {
}

KozmoSchedulerConfig is the config for native or default kozmo scheduler

type KozmoWorkflowExecutorConfig

type KozmoWorkflowExecutorConfig struct {
	// This allows to control the number of TPS that hit admin using the scheduler.
	// eg : 100 TPS will send at the max 100 schedule requests to admin per sec.
	// Burst specifies burst traffic count
	AdminRateLimit *AdminRateLimit `json:"adminRateLimit"`
	// Defaults to using user local timezone where the scheduler is deployed.
	UseUTCTz bool `json:"useUTCTz"`
}

KozmoWorkflowExecutorConfig specifies the workflow executor configuration for the native kozmo scheduler

func (*KozmoWorkflowExecutorConfig) GetAdminRateLimit

func (f *KozmoWorkflowExecutorConfig) GetAdminRateLimit() *AdminRateLimit

func (*KozmoWorkflowExecutorConfig) GetUseUTCTz

func (f *KozmoWorkflowExecutorConfig) GetUseUTCTz() bool

type NamespaceMappingConfig

type NamespaceMappingConfig struct {
	Mapping      string       `json:"mapping"` // Deprecated
	Template     string       `json:"template"`
	TemplateData TemplateData `json:"templateData"`
}

type NamespaceMappingConfiguration

type NamespaceMappingConfiguration interface {
	GetNamespaceTemplate() string
}

type NotificationsConfig

type NotificationsConfig struct {
	// Defines the cloud provider that backs the scheduler. In the absence of a specification the no-op, 'local'
	// scheme is used.
	Type string `json:"type"`
	//  Deprecated: Please use AWSConfig instead.
	Region                       string                       `json:"region"`
	AWSConfig                    AWSConfig                    `json:"aws"`
	GCPConfig                    GCPConfig                    `json:"gcp"`
	NotificationsPublisherConfig NotificationsPublisherConfig `json:"publisher"`
	NotificationsProcessorConfig NotificationsProcessorConfig `json:"processor"`
	NotificationsEmailerConfig   NotificationsEmailerConfig   `json:"emailer"`
	// Number of times to attempt recreating a notifications processor client should there be any disruptions.
	ReconnectAttempts int `json:"reconnectAttempts"`
	// Specifies the time interval to wait before attempting to reconnect the notifications processor client.
	ReconnectDelaySeconds int `json:"reconnectDelaySeconds"`
}

Configuration specific to notifications handling

type NotificationsEmailerConfig

type NotificationsEmailerConfig struct {
	// For use with external email services (mailchimp/sendgrid)
	EmailerConfig EmailServerConfig `json:"emailServerConfig"`
	// The optionally templatized subject used in notification emails.
	Subject string `json:"subject"`
	// The optionally templatized sender used in notification emails.
	Sender string `json:"sender"`
	// The optionally templatized body the sender used in notification emails.
	Body string `json:"body"`
}

This section handles the configuration of notifications emails.

type NotificationsProcessorConfig

type NotificationsProcessorConfig struct {
	// The name of the queue onto which workflow notifications will enqueue.
	QueueName string `json:"queueName"`
	// The account id (according to whichever cloud provider scheme is used) that has permission to read from the above
	// queue.
	AccountID string `json:"accountId"`
}

This section handles configuration for processing workflow events.

type NotificationsPublisherConfig

type NotificationsPublisherConfig struct {
	// The topic which notifications use, e.g. AWS SNS topics.
	TopicName string `json:"topicName"`
}

This section handles configuration for the workflow notifications pipeline.

type PostgresConfig

type PostgresConfig struct {
	Host   string `json:"host" pflag:",The host name of the database server"`
	Port   int    `json:"port" pflag:",The port name of the database server"`
	DbName string `json:"dbname" pflag:",The database name"`
	User   string `json:"username" pflag:",The database user who is connecting to the server."`
	// Either Password or PasswordPath must be set.
	Password     string `json:"password" pflag:",The database password."`
	PasswordPath string `json:"passwordPath" pflag:",Points to the file containing the database password."`
	ExtraOptions string `` /* 135-byte string literal not displayed */
	Debug        bool   `json:"debug" pflag:" Whether or not to start the database connection with debug mode enabled."`
}

PostgresConfig includes specific config options for opening a connection to a postgres database.

type QualityOfServiceConfig

type QualityOfServiceConfig struct {
	TierExecutionValues map[TierName]QualityOfServiceSpec `json:"tierExecutionValues"`
	DefaultTiers        map[DomainName]TierName           `json:"defaultTiers"`
}

type QualityOfServiceConfiguration

type QualityOfServiceConfiguration interface {
	GetTierExecutionValues() map[core.QualityOfService_Tier]core.QualityOfServiceSpec
	GetDefaultTiers() map[DomainName]core.QualityOfService_Tier
}

type QualityOfServiceSpec

type QualityOfServiceSpec struct {
	QueueingBudget config.Duration `json:"queueingBudget"`
}

type QueueConfig

type QueueConfig struct {
	ExecutionQueues ExecutionQueues `json:"executionQueues"`
	WorkflowConfigs WorkflowConfigs `json:"workflowConfigs"`
}

type QueueConfiguration

type QueueConfiguration interface {
	// Returns executions queues defined in runtime configuration files.
	GetExecutionQueues() []ExecutionQueue
	// Returns workflow configurations defined in runtime configuration files.
	GetWorkflowConfigs() []WorkflowConfig
}

Provides values set in runtime configuration files. These files can be changed without requiring a full server restart.

type RegistrationValidationConfig

type RegistrationValidationConfig struct {
	MaxWorkflowNodes     int    `json:"maxWorkflowNodes"`
	MaxLabelEntries      int    `json:"maxLabelEntries"`
	MaxAnnotationEntries int    `json:"maxAnnotationEntries"`
	WorkflowSizeLimit    string `json:"workflowSizeLimit"`
}

type RegistrationValidationConfiguration

type RegistrationValidationConfiguration interface {
	GetWorkflowNodeLimit() int
	GetMaxLabelEntries() int
	GetMaxAnnotationEntries() int
	GetWorkflowSizeLimit() string
}

Provides validation limits used at entity registration

type RemoteDataConfig

type RemoteDataConfig struct {
	// Defines the cloud provider that backs the scheduler. In the absence of a specification the no-op, 'local'
	// scheme is used.
	Scheme string `json:"scheme"`
	// Some cloud providers require a region to be set.
	Region    string    `json:"region"`
	SignedURL SignedURL `json:"signedUrls"`
	// Specifies the max size in bytes for which execution data such as inputs and outputs will be populated in line.
	MaxSizeInBytes int64 `json:"maxSizeInBytes"`
	// Specifies how inline execution event data should be saved in the backend
	InlineEventDataPolicy InlineEventDataPolicy `json:"inlineEventDataPolicy" pflag:",Specifies how inline execution event data should be saved in the backend"`
}

This configuration handles all requests to get and write remote data such as execution inputs & outputs.

type SQLiteConfig

type SQLiteConfig struct {
	File string `` /* 167-byte string literal not displayed */
}

SQLiteConfig can be used to configure

type SchedulerConfig

type SchedulerConfig struct {
	// Determines which port the profiling server used for scheduler monitoring and application debugging uses.
	ProfilerPort           config.Port            `json:"profilerPort"`
	EventSchedulerConfig   EventSchedulerConfig   `json:"eventScheduler"`
	WorkflowExecutorConfig WorkflowExecutorConfig `json:"workflowExecutor"`
	// Specifies the number of times to attempt recreating a workflow executor client should there be any disruptions.
	ReconnectAttempts int `json:"reconnectAttempts"`
	// Specifies the time interval to wait before attempting to reconnect the workflow executor client.
	ReconnectDelaySeconds int `json:"reconnectDelaySeconds"`
}

This configuration is the base configuration for all scheduler-related set-up.

func (*SchedulerConfig) GetEventSchedulerConfig

func (s *SchedulerConfig) GetEventSchedulerConfig() EventSchedulerConfig

func (*SchedulerConfig) GetReconnectAttempts

func (s *SchedulerConfig) GetReconnectAttempts() int

func (*SchedulerConfig) GetReconnectDelaySeconds

func (s *SchedulerConfig) GetReconnectDelaySeconds() int

func (*SchedulerConfig) GetWorkflowExecutorConfig

func (s *SchedulerConfig) GetWorkflowExecutorConfig() WorkflowExecutorConfig

type SignedURL

type SignedURL struct {
	// Whether signed urls should even be returned with GetExecutionData, GetNodeExecutionData and GetTaskExecutionData
	// response objects.
	Enabled bool `` /* 154-byte string literal not displayed */
	// The amount of time for which a signed URL is valid.
	DurationMinutes int `json:"durationMinutes"`
	// The principal that signs the URL. This is only applicable to GCS URL.
	SigningPrincipal string `json:"signingPrincipal"`
}

Configuration specific to setting up signed urls.

type TaskResourceConfiguration

type TaskResourceConfiguration interface {
	GetDefaults() TaskResourceSet
	GetLimits() TaskResourceSet
}

Provides default values for task resource limits and defaults.

type TaskResourceSet

type TaskResourceSet struct {
	CPU              resource.Quantity `json:"cpu"`
	GPU              resource.Quantity `json:"gpu"`
	Memory           resource.Quantity `json:"memory"`
	EphemeralStorage resource.Quantity `json:"ephemeralStorage"`
}

type TaskTypeWhitelist

type TaskTypeWhitelist = map[string][]WhitelistScope

Defines specific task types whitelisted for support.

type TemplateData

type TemplateData = map[string]DataSource

type TierName

type TierName = string

type WhitelistConfiguration

type WhitelistConfiguration interface {
	// Returns whitelisted task types defined in runtime configuration files.
	GetTaskTypeWhitelist() TaskTypeWhitelist
}

type WhitelistScope

type WhitelistScope struct {
	Project string `json:"project"`
	Domain  string `json:"domain"`
}

type WorkflowConfig

type WorkflowConfig struct {
	Domain string   `json:"domain"`
	Tags   []string `json:"tags"`
}

Defines the specific resource attributes (tags) a workflow requires to run.

type WorkflowConfigs

type WorkflowConfigs []WorkflowConfig

type WorkflowExecutorConfig

type WorkflowExecutorConfig struct {
	// Defines the cloud provider that backs the scheduler. In the absence of a specification the no-op, 'local'
	// scheme is used.
	Scheme string `json:"scheme"`
	// Deprecated : Some cloud providers require a region to be set.
	Region string `json:"region"`
	// Deprecated : The name of the queue onto which scheduled events will enqueue.
	ScheduleQueueName string `json:"scheduleQueueName"`
	// Deprecated : The account id (according to whichever cloud provider scheme is used) that has permission to read from the above
	// queue.
	AccountID                   string                       `json:"accountId"`
	AWSWorkflowExecutorConfig   *AWSWorkflowExecutorConfig   `json:"aws"`
	KozmoWorkflowExecutorConfig *KozmoWorkflowExecutorConfig `json:"local"`
}

This section holds configuration for the executor that processes workflow scheduled events fired.

func (*WorkflowExecutorConfig) GetAWSWorkflowExecutorConfig

func (w *WorkflowExecutorConfig) GetAWSWorkflowExecutorConfig() *AWSWorkflowExecutorConfig

func (*WorkflowExecutorConfig) GetAccountID

func (w *WorkflowExecutorConfig) GetAccountID() string

func (*WorkflowExecutorConfig) GetKozmoWorkflowExecutorConfig

func (w *WorkflowExecutorConfig) GetKozmoWorkflowExecutorConfig() *KozmoWorkflowExecutorConfig

func (*WorkflowExecutorConfig) GetRegion

func (w *WorkflowExecutorConfig) GetRegion() string

func (*WorkflowExecutorConfig) GetScheduleScheduleQueueName

func (w *WorkflowExecutorConfig) GetScheduleScheduleQueueName() string

func (*WorkflowExecutorConfig) GetScheme

func (w *WorkflowExecutorConfig) GetScheme() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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