Documentation ¶
Index ¶
- type AWSConfig
- type AWSSchedulerConfig
- type AWSWorkflowExecutorConfig
- type AdminRateLimit
- type ApplicationConfig
- func (a *ApplicationConfig) GetAnnotations() *admin.Annotations
- func (a *ApplicationConfig) GetAsWorkflowExecutionConfig() admin.WorkflowExecutionConfig
- func (a *ApplicationConfig) GetAsyncEventsBufferSize() int
- func (a *ApplicationConfig) GetEnvs() *admin.Envs
- func (a *ApplicationConfig) GetEventVersion() int
- func (a *ApplicationConfig) GetInterruptible() *wrappers.BoolValue
- func (a *ApplicationConfig) GetLabels() *admin.Labels
- func (a *ApplicationConfig) GetMaxParallelism() int32
- func (a *ApplicationConfig) GetMetadataStoragePrefix() []string
- func (a *ApplicationConfig) GetMetricsScope() string
- func (a *ApplicationConfig) GetOverwriteCache() bool
- func (a *ApplicationConfig) GetProfilerPort() int
- func (a *ApplicationConfig) GetRawOutputDataConfig() *admin.RawOutputDataConfig
- func (a *ApplicationConfig) GetRoleNameKey() string
- func (a *ApplicationConfig) GetSecurityContext() *core.SecurityContext
- type ApplicationConfiguration
- type Auth
- type CloudEventVersion
- func (i CloudEventVersion) IsACloudEventVersion() bool
- func (i CloudEventVersion) MarshalJSON() ([]byte, error)
- func (i CloudEventVersion) MarshalYAML() (interface{}, error)
- func (i CloudEventVersion) String() string
- func (i *CloudEventVersion) UnmarshalJSON(data []byte) error
- func (i *CloudEventVersion) UnmarshalYAML(unmarshal func(interface{}) error) error
- type CloudEventsConfig
- type ClusterConfig
- type ClusterConfiguration
- type ClusterEntity
- type ClusterPoolAssignment
- type ClusterPoolAssignmentConfig
- type ClusterPoolAssignmentConfiguration
- type ClusterPoolAssignments
- type ClusterResourceConfig
- type ClusterResourceConfiguration
- type Clusters
- type Configuration
- type DataSource
- type DataSourceValueFrom
- type DbConfig
- type Domain
- type DomainName
- type DomainsConfig
- type EmailServerConfig
- type EventSchedulerConfig
- func (e *EventSchedulerConfig) GetAWSSchedulerConfig() *AWSSchedulerConfig
- func (e *EventSchedulerConfig) GetKozmoSchedulerConfig() *KozmoSchedulerConfig
- func (e *EventSchedulerConfig) GetRegion() string
- func (e *EventSchedulerConfig) GetScheduleNamePrefix() string
- func (e *EventSchedulerConfig) GetScheduleRole() string
- func (e *EventSchedulerConfig) GetScheme() string
- func (e *EventSchedulerConfig) GetTargetName() string
- type EventsPublisherConfig
- type ExecutionQueue
- type ExecutionQueues
- type ExternalEventsConfig
- type FeatureGates
- type GCPConfig
- type InlineEventDataPolicy
- type KafkaConfig
- type KozmoSchedulerConfig
- type KozmoWorkflowExecutorConfig
- type NamespaceMappingConfig
- type NamespaceMappingConfiguration
- type NotificationsConfig
- type NotificationsEmailerConfig
- type NotificationsProcessorConfig
- type NotificationsPublisherConfig
- type PostgresConfig
- type QualityOfServiceConfig
- type QualityOfServiceConfiguration
- type QualityOfServiceSpec
- type QueueConfig
- type QueueConfiguration
- type RegistrationValidationConfig
- type RegistrationValidationConfiguration
- type RemoteDataConfig
- type SQLiteConfig
- type SchedulerConfig
- type SignedURL
- type TaskResourceConfiguration
- type TaskResourceSet
- type TaskTypeWhitelist
- type TemplateData
- type TierName
- type WhitelistConfiguration
- type WhitelistScope
- type WorkflowConfig
- type WorkflowConfigs
- type WorkflowExecutorConfig
- func (w *WorkflowExecutorConfig) GetAWSWorkflowExecutorConfig() *AWSWorkflowExecutorConfig
- func (w *WorkflowExecutorConfig) GetAccountID() string
- func (w *WorkflowExecutorConfig) GetKozmoWorkflowExecutorConfig() *KozmoWorkflowExecutorConfig
- func (w *WorkflowExecutorConfig) GetRegion() string
- func (w *WorkflowExecutorConfig) GetScheduleScheduleQueueName() string
- func (w *WorkflowExecutorConfig) GetScheme() string
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 ¶
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 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 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 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 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 ¶
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 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 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 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 TaskTypeWhitelist ¶
type TaskTypeWhitelist = map[string][]WhitelistScope
Defines specific task types whitelisted for support.
type TemplateData ¶
type TemplateData = map[string]DataSource
type WhitelistConfiguration ¶
type WhitelistConfiguration interface { // Returns whitelisted task types defined in runtime configuration files. GetTaskTypeWhitelist() TaskTypeWhitelist }
type WhitelistScope ¶
type WorkflowConfig ¶
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
Source Files ¶
- application_configuration.go
- cloudeventversion_enumer.go
- cluster_configuration.go
- cluster_pools.go
- cluster_resource_configuration.go
- configuration.go
- inlineeventdatapolicy_enumer.go
- namespace_configuration.go
- quality_of_service_configuration.go
- queue_configuration.go
- registration_validation_provider.go
- task_resource_configuration.go
- whitelist.go