v1

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: May 24, 2020 License: Apache-2.0 Imports: 47 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TypeWorkflowTemplate         string = "workflow_template"
	TypeWorkflowTemplateVersion  string = "workflow_template_version"
	TypeWorkflowExecution        string = "workflow_execution"
	TypeCronWorkflow             string = "cron_workflow"
	TypeWorkspaceTemplate        string = "workspace_template"
	TypeWorkspaceTemplateVersion string = "workspace_template_version"
	TypeWorkspace                string = "workspace"
)

Variables

This section is empty.

Functions

func CronWorkflowsToIds

func CronWorkflowsToIds(resources []*CronWorkflow) (ids []uint64)

func FilePathToExtension

func FilePathToExtension(path string) string

func FilePathToName

func FilePathToName(path string) string

func FilePathToParentPath

func FilePathToParentPath(path string) string

Given a path, returns the parent path, asssuming a '/' delimitor Result does not have a trailing slash. -> a/b/c/d would return a/b/c -> a/b/c/d/ would return a/b/c If path is empty string, it is returned. If path is '/' (root) it is returned as is. If there is no '/', '/' is returned.

func LabelsToMapping

func LabelsToMapping(labels ...*Label) map[string]string

func TypeToTableName

func TypeToTableName(value string) string

func UnmarshalWorkflows

func UnmarshalWorkflows(wfBytes []byte, strict bool) (wfs []wfv1.Workflow, err error)

func WorkflowTemplateVersionsToIds

func WorkflowTemplateVersionsToIds(resources []*WorkflowTemplateVersion) (ids []uint64)

func WorkflowTemplatesToIds

func WorkflowTemplatesToIds(workflowTemplates []*WorkflowTemplate) (ids []uint64)

func WorkflowTemplatesToVersionIds

func WorkflowTemplatesToVersionIds(workflowTemplates []*WorkflowTemplate) (ids []uint64)

func WorkspaceTemplatesToVersionIds added in v0.8.0

func WorkspaceTemplatesToVersionIds(resources []*WorkspaceTemplate) (ids []uint64)

Types

type Arguments

type Arguments struct {
	Parameters []Parameter `json:"parameters" protobuf:"bytes,1,opt,name=parameters"`
}

type ArtifactRepositoryConfig added in v0.8.0

type ArtifactRepositoryConfig struct {
	S3 *ArtifactRepositoryS3Config
}

type ArtifactRepositoryS3Config

type ArtifactRepositoryS3Config struct {
	KeyFormat       string
	Bucket          string
	Endpoint        string
	Insecure        bool
	Region          string
	AccessKeySecret corev1.SecretKeySelector
	SecretKeySecret corev1.SecretKeySelector
	AccessKey       string
	Secretkey       string
}

type Client

type Client struct {
	kubernetes.Interface

	*DB
	// contains filtered or unexported fields
}

func NewClient

func NewClient(config *Config, db *sqlx.DB) (client *Client, err error)

func (*Client) AddLabels

func (c *Client) AddLabels(namespace, resource, uid string, keyValues map[string]string) error

func (*Client) AddSecretKeyValue

func (c *Client) AddSecretKeyValue(namespace string, secret *Secret) (inserted bool, err error)

func (*Client) ArchiveCronWorkflow added in v0.8.0

func (c *Client) ArchiveCronWorkflow(namespace, uid string) (err error)

func (*Client) ArchiveWorkflowExecution added in v0.8.0

func (c *Client) ArchiveWorkflowExecution(namespace, uid string) error

func (*Client) ArchiveWorkflowTemplate

func (c *Client) ArchiveWorkflowTemplate(namespace, uid string) (archived bool, err error)

func (*Client) ArchiveWorkspaceTemplate added in v0.8.0

func (c *Client) ArchiveWorkspaceTemplate(namespace string, uid string) (archived bool, err error)

ArchiveWorkspaceTemplate archives and deletes resources associated with the workspace template. If there is an already archived workspace template, it is left intact, only the un-archived one is considered.

If there is no workspace template identified by the parameters, an error is returned with code NotFound.

No checks are otherwise made to see if this action is valid.

In particular, this action

* Marks Workspace Template database record as archived.

* Marks associated Workflow template as archived

* Marks associated Workflow executions as archived

* Deletes Workflow Executions in k8s

func (*Client) ArgoprojV1alpha1

func (c *Client) ArgoprojV1alpha1() argoprojv1alpha1.ArgoprojV1alpha1Interface

func (*Client) CloneWorkflowExecution

func (c *Client) CloneWorkflowExecution(namespace, uid string) (*WorkflowExecution, error)

func (*Client) CountCronWorkflows

func (c *Client) CountCronWorkflows(namespace, workflowTemplateUID string) (count int, err error)

func (*Client) CountWorkflowExecutions

func (c *Client) CountWorkflowExecutions(namespace, workflowTemplateUID, workflowTemplateVersion string) (count int, err error)

func (*Client) CountWorkflowTemplates

func (c *Client) CountWorkflowTemplates(namespace string) (count int, err error)

func (*Client) CountWorkspaceTemplates

func (c *Client) CountWorkspaceTemplates(namespace string) (count int, err error)

func (*Client) CountWorkspaces added in v0.8.0

func (c *Client) CountWorkspaces(namespace string) (count int, err error)

func (*Client) CreateCronWorkflow

func (c *Client) CreateCronWorkflow(namespace string, cronWorkflow *CronWorkflow) (*CronWorkflow, error)

func (*Client) CreateNamespace

func (c *Client) CreateNamespace(name string) (namespace *Namespace, err error)

func (*Client) CreateSecret

func (c *Client) CreateSecret(namespace string, secret *Secret) (err error)

func (*Client) CreateWorkflowExecution

func (c *Client) CreateWorkflowExecution(namespace string, workflow *WorkflowExecution) (*WorkflowExecution, error)

func (*Client) CreateWorkflowTemplate

func (c *Client) CreateWorkflowTemplate(namespace string, workflowTemplate *WorkflowTemplate) (*WorkflowTemplate, error)

func (*Client) CreateWorkflowTemplateVersion

func (c *Client) CreateWorkflowTemplateVersion(namespace string, workflowTemplate *WorkflowTemplate) (*WorkflowTemplate, error)

func (*Client) CreateWorkspace

func (c *Client) CreateWorkspace(namespace string, workspace *Workspace) (*Workspace, error)

CreateWorkspace creates a workspace by triggering the corresponding workflow

func (*Client) CreateWorkspaceTemplate

func (c *Client) CreateWorkspaceTemplate(namespace string, workspaceTemplate *WorkspaceTemplate) (*WorkspaceTemplate, error)

CreateWorkspaceTemplate creates a template for Workspaces

func (*Client) CronStartWorkflowExecutionStatisticInsert

func (c *Client) CronStartWorkflowExecutionStatisticInsert(namespace, uid string, workflowTemplateID int64) (err error)

func (*Client) DeleteCronWorkflowLabel

func (c *Client) DeleteCronWorkflowLabel(namespace, name string, keysToDelete ...string) (labels map[string]string, err error)

func (*Client) DeleteLabels

func (c *Client) DeleteLabels(namespace, resource, uid string, keyValues map[string]string) error

func (*Client) DeleteSecret

func (c *Client) DeleteSecret(namespace string, name string) (deleted bool, err error)

func (*Client) DeleteSecretKey

func (c *Client) DeleteSecretKey(namespace string, secret *Secret) (deleted bool, err error)

func (*Client) DeleteWorkflowExecutionLabel

func (c *Client) DeleteWorkflowExecutionLabel(namespace, uid string, keysToDelete ...string) (labels map[string]string, err error)

func (*Client) DeleteWorkflowTemplateLabel

func (c *Client) DeleteWorkflowTemplateLabel(namespace, uid string, keysToDelete ...string) (labels map[string]string, err error)

func (*Client) DeleteWorkspace

func (c *Client) DeleteWorkspace(namespace, uid string) (err error)

func (*Client) FinishWorkflowExecutionStatisticViaExitHandler

func (c *Client) FinishWorkflowExecutionStatisticViaExitHandler(namespace, name string, workflowTemplateID int64, phase wfv1.NodePhase, startedAt time.Time) (err error)

func (*Client) GenerateWorkspaceTemplateWorkflowTemplate

func (c *Client) GenerateWorkspaceTemplateWorkflowTemplate(workspaceTemplate *WorkspaceTemplate) (workflowTemplate *WorkflowTemplate, err error)

CreateWorkspaceTemplateWorkflowTemplate generates and returns a workflowTemplate for a given workspaceTemplate manifest

func (*Client) GetArtifact

func (c *Client) GetArtifact(namespace, uid, key string) (data []byte, err error)

func (*Client) GetCronWorkflow

func (c *Client) GetCronWorkflow(namespace, uid string) (cronWorkflow *CronWorkflow, err error)

func (*Client) GetCronWorkflowLabels

func (c *Client) GetCronWorkflowLabels(namespace, name, prefix string) (labels map[string]string, err error)

prefix is the label prefix. e.g. prefix/my-label-key: my-label-value

func (*Client) GetCronWorkflowStatisticsForTemplates

func (c *Client) GetCronWorkflowStatisticsForTemplates(workflowTemplates ...*WorkflowTemplate) (err error)

func (*Client) GetDbLabels

func (c *Client) GetDbLabels(resource string, ids ...uint64) (labels []*Label, err error)

func (*Client) GetDbLabelsMapped

func (c *Client) GetDbLabelsMapped(resource string, ids ...uint64) (result map[uint64]map[string]string, err error)

TODO rename Db to be DB per go conventions Returns a map where the key is the id of the resource and the value is the labels as a map[string]string

func (*Client) GetK8sLabelResource

func (c *Client) GetK8sLabelResource(namespace, resource, uid string) (source interface{}, result *v1.ObjectMeta, err error)

func (*Client) GetNamespaceConfig

func (c *Client) GetNamespaceConfig(namespace string) (config *NamespaceConfig, err error)

func (*Client) GetS3Client

func (c *Client) GetS3Client(namespace string, config *ArtifactRepositoryS3Config) (s3Client *s3.Client, err error)

func (*Client) GetSecret

func (c *Client) GetSecret(namespace, name string) (secret *Secret, err error)

func (*Client) GetSystemConfig

func (c *Client) GetSystemConfig() (config map[string]string, err error)

func (*Client) GetWorkflowExecution

func (c *Client) GetWorkflowExecution(namespace, uid string) (workflow *WorkflowExecution, err error)

func (*Client) GetWorkflowExecutionLabels

func (c *Client) GetWorkflowExecutionLabels(namespace, uid, prefix string) (labels map[string]string, err error)

prefix is the label prefix. e.g. prefix/my-label-key: my-label-value

func (*Client) GetWorkflowExecutionLogs

func (c *Client) GetWorkflowExecutionLogs(namespace, uid, podName, containerName string) (<-chan *LogEntry, error)

func (*Client) GetWorkflowExecutionMetrics

func (c *Client) GetWorkflowExecutionMetrics(namespace, uid, podName string) (metrics []*Metric, err error)

func (*Client) GetWorkflowExecutionStatisticsForTemplates

func (c *Client) GetWorkflowExecutionStatisticsForTemplates(workflowTemplates ...*WorkflowTemplate) (err error)

func (*Client) GetWorkflowTemplate

func (c *Client) GetWorkflowTemplate(namespace, uid string, version int64) (workflowTemplate *WorkflowTemplate, err error)

If version is 0, it returns the latest.

func (*Client) GetWorkflowTemplateByName

func (c *Client) GetWorkflowTemplateByName(namespace, name string, version int64) (workflowTemplate *WorkflowTemplate, err error)

func (*Client) GetWorkflowTemplateDb

func (c *Client) GetWorkflowTemplateDb(namespace, name string) (workflowTemplate *WorkflowTemplate, err error)

func (*Client) GetWorkflowTemplateLabels

func (c *Client) GetWorkflowTemplateLabels(namespace, name, prefix string, version int64) (labels map[string]string, err error)

prefix is the label prefix. e.g. prefix/my-label-key: my-label-value if version is 0, latest is used.

func (*Client) GetWorkflowTemplateVersionDb

func (c *Client) GetWorkflowTemplateVersionDb(namespace, name, version string) (workflowTemplateVersion *WorkflowTemplateVersion, err error)

"latest" will get you the latest version

func (*Client) GetWorkspace

func (c *Client) GetWorkspace(namespace, uid string) (workspace *Workspace, err error)

func (*Client) GetWorkspaceTemplate

func (c *Client) GetWorkspaceTemplate(namespace, uid string, version int64) (workspaceTemplate *WorkspaceTemplate, err error)

GetWorkspaceTemplate return a workspaceTemplate and its corresponding workflowTemplate if version is 0, the latest version is returned.

func (*Client) InsertLabels added in v0.8.0

func (c *Client) InsertLabels(resource string, resourceID uint64, keyValues map[string]string) (sql.Result, error)

Inserts the labels for the resource. If no labels are provided, does nothing and returns nil, nil.

func (*Client) InsertLabelsBuilder

func (c *Client) InsertLabelsBuilder(resource string, resourceID uint64, keyValues map[string]string) sq.InsertBuilder

func (*Client) ListCronWorkflows

func (c *Client) ListCronWorkflows(namespace, workflowTemplateUID string, pagination *pagination.PaginationRequest) (cronWorkflows []*CronWorkflow, err error)

func (*Client) ListFiles

func (c *Client) ListFiles(namespace, key string) (files []*File, err error)

func (*Client) ListLabels

func (c *Client) ListLabels(resource string, uid string) (labels []*Label, err error)

func (*Client) ListNamespaces

func (c *Client) ListNamespaces() (namespaces []*Namespace, err error)

func (*Client) ListOnepanelEnabledNamespaces

func (c *Client) ListOnepanelEnabledNamespaces() (namespaces []*Namespace, err error)

func (*Client) ListSecrets

func (c *Client) ListSecrets(namespace string) (secrets []*Secret, err error)

func (*Client) ListWorkflowExecutions

func (c *Client) ListWorkflowExecutions(namespace, workflowTemplateUID, workflowTemplateVersion string, paginator *pagination.PaginationRequest) (workflows []*WorkflowExecution, err error)

func (*Client) ListWorkflowTemplateVersions

func (c *Client) ListWorkflowTemplateVersions(namespace, uid string) (workflowTemplateVersions []*WorkflowTemplate, err error)

func (*Client) ListWorkflowTemplates

func (c *Client) ListWorkflowTemplates(namespace string, paginator *pagination.PaginationRequest) (workflowTemplateVersions []*WorkflowTemplate, err error)

func (*Client) ListWorkspaceTemplateVersions

func (c *Client) ListWorkspaceTemplateVersions(namespace, uid string) (workspaceTemplates []*WorkspaceTemplate, err error)

func (*Client) ListWorkspaceTemplates

func (c *Client) ListWorkspaceTemplates(namespace string, paginator *pagination.PaginationRequest) (workspaceTemplates []*WorkspaceTemplate, err error)

func (*Client) ListWorkspaces

func (c *Client) ListWorkspaces(namespace string, paginator *pagination.PaginationRequest) (workspaces []*Workspace, err error)

func (*Client) PauseWorkspace

func (c *Client) PauseWorkspace(namespace, uid string) (err error)

func (*Client) ReplaceLabels

func (c *Client) ReplaceLabels(namespace, resource, uid string, keyValues map[string]string) error

func (*Client) ReplaceLabelsUsingKnownID added in v0.8.0

func (c *Client) ReplaceLabelsUsingKnownID(namespace, resource string, resourceID uint64, uid string, keyValues map[string]string) error

func (*Client) ResubmitWorkflowExecution

func (c *Client) ResubmitWorkflowExecution(namespace, uid string) (workflow *WorkflowExecution, err error)

func (*Client) ResumeWorkflowExecution

func (c *Client) ResumeWorkflowExecution(namespace, uid string) (workflow *WorkflowExecution, err error)

func (*Client) ResumeWorkspace added in v0.8.0

func (c *Client) ResumeWorkspace(namespace, uid string) (err error)

func (*Client) RetryWorkflowExecution

func (c *Client) RetryWorkflowExecution(namespace, uid string) (workflow *WorkflowExecution, err error)

func (*Client) SecretExists

func (c *Client) SecretExists(namespace string, name string) (exists bool, err error)

func (*Client) SetCronWorkflowLabels

func (c *Client) SetCronWorkflowLabels(namespace, name, prefix string, keyValues map[string]string, deleteOld bool) (workflowLabels map[string]string, err error)

prefix is the label prefix. we delete all labels with that prefix and set the new ones e.g. prefix/my-label-key: my-label-value

func (*Client) SetWorkflowExecutionLabels

func (c *Client) SetWorkflowExecutionLabels(namespace, uid, prefix string, keyValues map[string]string, deleteOld bool) (workflowLabels map[string]string, err error)

prefix is the label prefix. we delete all labels with that prefix and set the new ones e.g. prefix/my-label-key: my-label-value

func (*Client) SetWorkflowTemplateLabels

func (c *Client) SetWorkflowTemplateLabels(namespace, uid, prefix string, keyValues map[string]string, deleteOld bool) (workflowLabels map[string]string, err error)

prefix is the label prefix. we delete all labels with that prefix and set the new ones e.g. prefix/my-label-key: my-label-value

func (*Client) SuspendWorkflowExecution

func (c *Client) SuspendWorkflowExecution(namespace, uid string) (err error)

func (*Client) TerminateCronWorkflow

func (c *Client) TerminateCronWorkflow(namespace, uid string) (err error)

func (*Client) TerminateWorkflowExecution

func (c *Client) TerminateWorkflowExecution(namespace, uid string) (err error)

func (*Client) UpdateCronWorkflow

func (c *Client) UpdateCronWorkflow(namespace string, uid string, cronWorkflow *CronWorkflow) (*CronWorkflow, error)

func (*Client) UpdateK8sLabelResource

func (c *Client) UpdateK8sLabelResource(namespace, resource string, obj interface{}) error

func (*Client) UpdateSecretKeyValue

func (c *Client) UpdateSecretKeyValue(namespace string, secret *Secret) (updated bool, err error)

func (*Client) UpdateWorkflowExecutionStatus added in v0.8.0

func (c *Client) UpdateWorkflowExecutionStatus(namespace, uid string, status *WorkflowExecutionStatus) (err error)

UpdateWorkflowExecutionPhase updates workflow execution phases and times. `modified_at` time is always updated when this method is called.

func (*Client) UpdateWorkspace added in v0.8.0

func (c *Client) UpdateWorkspace(namespace, uid string, parameters []Parameter) (err error)

func (*Client) UpdateWorkspaceStatus

func (c *Client) UpdateWorkspaceStatus(namespace, uid string, status *WorkspaceStatus) (err error)

UpdateWorkspaceStatus updates workspace status and times based on phase

func (*Client) UpdateWorkspaceTemplate

func (c *Client) UpdateWorkspaceTemplate(namespace string, workspaceTemplate *WorkspaceTemplate) (*WorkspaceTemplate, error)

UpdateWorkspaceTemplate adds a new workspace template version

func (*Client) ValidateWorkflowExecution

func (c *Client) ValidateWorkflowExecution(namespace string, manifest []byte) (err error)

func (*Client) WatchWorkflowExecution

func (c *Client) WatchWorkflowExecution(namespace, uid string) (<-chan *WorkflowExecution, error)

func (*Client) WorkspaceTemplateHasRunningWorkspaces added in v0.8.0

func (c *Client) WorkspaceTemplateHasRunningWorkspaces(namespace string, uid string) (bool, error)

WorkspaceTemplateHasRunningWorkspaces returns true if there are non-terminated (or terminating) workspaces that are based of this template. False otherwise.

type Config

type Config = rest.Config

func NewConfig

func NewConfig() (config *Config)

type ConfigMap

type ConfigMap struct {
	Name string
	Data map[string]string
}

type CronWorkflow

type CronWorkflow struct {
	ID                        uint64
	CreatedAt                 time.Time  `db:"created_at"`
	ModifiedAt                *time.Time `db:"modified_at"`
	UID                       string
	Name                      string
	GenerateName              string
	WorkflowExecution         *WorkflowExecution
	Labels                    map[string]string
	Version                   int64
	WorkflowTemplateVersionId uint64 `db:"workflow_template_version_id"`
	Manifest                  string
	Namespace                 string `db:"namespace"`
}

func (*CronWorkflow) AddToManifestSpec

func (cw *CronWorkflow) AddToManifestSpec(key, manifest string) error

func (*CronWorkflow) GetParametersFromWorkflowSpec

func (cw *CronWorkflow) GetParametersFromWorkflowSpec() ([]Parameter, error)

func (*CronWorkflow) GetParametersFromWorkflowSpecJson

func (cw *CronWorkflow) GetParametersFromWorkflowSpecJson() ([]byte, error)

type CronWorkflowStatisticReport

type CronWorkflowStatisticReport struct {
	WorkflowTemplateId uint64 `db:"workflow_template_id"`
	Total              int32
}

type DB

type DB = sqlx.DB

type File

type File struct {
	Path         string
	Name         string
	Size         int64
	Extension    string
	ContentType  string
	LastModified time.Time
	Directory    bool
}

type Label

type Label struct {
	ID         uint64
	CreatedAt  time.Time `db:"created_at"`
	Key        string
	Value      string
	Resource   string
	ResourceId uint64 `db:"resource_id"`
}

type ListOptions

type ListOptions = metav1.ListOptions

type LogEntry

type LogEntry struct {
	Timestamp time.Time
	Content   string
}

type Metric

type Metric struct {
	Name   string
	Value  float64
	Format string `json:"omitempty"`
}

type Namespace

type Namespace struct {
	Name   string
	Labels map[string]string
}

type NamespaceConfig added in v0.8.0

type NamespaceConfig struct {
	ArtifactRepository ArtifactRepositoryConfig
}

type Parameter

type Parameter struct {
	Name        string             `json:"name" protobuf:"bytes,1,opt,name=name"`
	Value       *string            `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"`
	Type        string             `json:"type,omitempty" protobuf:"bytes,3,opt,name=type"`
	DisplayName *string            `json:"displayName,omitempty" protobuf:"bytes,4,opt,name=displayName"`
	Hint        *string            `json:"hint,omitempty" protobuf:"bytes,5,opt,name=hint"`
	Options     []*ParameterOption `json:"options,omitempty" protobuf:"bytes,6,opt,name=options"`
	Required    bool               `json:"required,omitempty" protobuf:"bytes,7,opt,name=required"`
}

func ParameterFromMap

func ParameterFromMap(paramMap map[interface{}]interface{}) *Parameter

func ParseParametersFromManifest added in v0.8.0

func ParseParametersFromManifest(manifest []byte) ([]Parameter, error)

type ParameterOption

type ParameterOption struct {
	Name  string `json:"name" protobuf:"bytes,1,opt,name=name"`
	Value string `json:"value" protobuf:"bytes,2,opt,name=value"`
}

type PodGCStrategy

type PodGCStrategy = wfv1.PodGCStrategy

type Secret

type Secret struct {
	Name string
	Data map[string]string
}

type WorkflowExecution

type WorkflowExecution struct {
	ID               uint64
	CreatedAt        time.Time `db:"created_at"`
	UID              string
	Name             string
	GenerateName     string
	Parameters       []Parameter
	ParametersBytes  []byte `db:"parameters"` // to load from database
	Manifest         string
	Phase            wfv1.NodePhase
	StartedAt        *time.Time        `db:"started_at"`
	FinishedAt       *time.Time        `db:"finished_at"`
	WorkflowTemplate *WorkflowTemplate `db:"workflow_template"`
	Labels           map[string]string
}

func (*WorkflowExecution) LoadParametersFromBytes

func (we *WorkflowExecution) LoadParametersFromBytes() ([]Parameter, error)

type WorkflowExecutionOptions

type WorkflowExecutionOptions struct {
	Name           string
	GenerateName   string
	Entrypoint     string
	Parameters     []Parameter
	ServiceAccount string
	Labels         *map[string]string
	ListOptions    *ListOptions
	PodGCStrategy  *PodGCStrategy
}

type WorkflowExecutionStatistic

type WorkflowExecutionStatistic struct {
	ID                 uint64
	WorkflowTemplateId uint64
	Name               string
	Namespace          string
	//Interface to support null values for timestamps, when scanning from db into structs
	CreatedAt  *time.Time `db:"created_at"`
	FinishedAt *time.Time `db:"finished_at"`
	FailedAt   *time.Time `db:"failed_at"`
}

type WorkflowExecutionStatisticReport

type WorkflowExecutionStatisticReport struct {
	WorkflowTemplateId uint64 `db:"workflow_template_id"`
	Total              int32
	LastExecuted       time.Time `db:"last_executed"`
	Running            int32
	Completed          int32
	Failed             int32
	Terminated         int32
}

type WorkflowExecutionStatus added in v0.8.0

type WorkflowExecutionStatus struct {
	Phase      wfv1.NodePhase `json:"phase"`
	StartedAt  *time.Time     `db:"started_at" json:"startedAt"`
	FinishedAt *time.Time     `db:"finished_at" json:"finishedAt"`
}

TODO: reference this in WorkflowExecution

type WorkflowTemplate

type WorkflowTemplate struct {
	ID                               uint64
	CreatedAt                        time.Time  `db:"created_at"`
	ModifiedAt                       *time.Time `db:"modified_at"`
	UID                              string
	Namespace                        string
	Name                             string
	Manifest                         string
	Version                          int64 // The latest version, unix timestamp
	Versions                         int64 `db:"versions"` // How many versions there are of this template total.
	IsLatest                         bool
	IsArchived                       bool `db:"is_archived"`
	IsSystem                         bool `db:"is_system"`
	ArgoWorkflowTemplate             *wfv1.WorkflowTemplate
	Labels                           map[string]string
	WorkflowExecutionStatisticReport *WorkflowExecutionStatisticReport
	CronWorkflowsStatisticsReport    *CronWorkflowStatisticReport
	// todo rename to have ID suffix
	WorkflowTemplateVersionId uint64  `db:"workflow_template_version_id"` // Reference to the associated workflow template version.
	Resource                  *string // utility in case we are specifying a workflow template for a specific resource
	ResourceUID               *string // see Resource field
}

func (*WorkflowTemplate) AddWorkflowTemplateParametersFromAnnotations

func (wt *WorkflowTemplate) AddWorkflowTemplateParametersFromAnnotations(spec mapping.Mapping)

func (*WorkflowTemplate) FormatManifest

func (wt *WorkflowTemplate) FormatManifest() (string, error)

func (*WorkflowTemplate) GetManifestBytes

func (wt *WorkflowTemplate) GetManifestBytes() []byte

func (*WorkflowTemplate) GetParametersKeyString

func (wt *WorkflowTemplate) GetParametersKeyString() (map[string]string, error)

func (*WorkflowTemplate) GetWorkflowManifestBytes

func (wt *WorkflowTemplate) GetWorkflowManifestBytes() ([]byte, error)

func (*WorkflowTemplate) UpdateManifestParameters

func (wt *WorkflowTemplate) UpdateManifestParameters(params []Parameter) error

func (*WorkflowTemplate) WrapSpec

func (wt *WorkflowTemplate) WrapSpec() ([]byte, error)

Take the manifest from the workflow template, which is just the "spec" contents and wrap it so we have

{
   metadata: {},
   spec: spec_data
}

the above wrapping is what is returned.

type WorkflowTemplateVersion

type WorkflowTemplateVersion struct {
	ID               uint64
	UID              string
	Version          int64
	IsLatest         bool `db:"is_latest"`
	Manifest         string
	CreatedAt        time.Time         `db:"created_at"`
	WorkflowTemplate *WorkflowTemplate `db:"workflow_template"`
	Labels           map[string]string
}

type Workspace

type Workspace struct {
	ID                       uint64
	Namespace                string
	UID                      string `valid:"stringlength(3|30)~UID should be between 3 to 30 characters,dns,required"`
	Name                     string `valid:"stringlength(3|30)~Name should be between 3 to 30 characters,required"`
	Labels                   map[string]string
	Parameters               []Parameter
	ParametersBytes          []byte                   `db:"parameters"` // to load from database
	Status                   WorkspaceStatus          `db:"status"`
	CreatedAt                time.Time                `db:"created_at"`
	ModifiedAt               *time.Time               `db:"modified_at"`
	WorkspaceTemplate        *WorkspaceTemplate       `db:"workspace_template" valid:"-"`
	WorkspaceTemplateID      uint64                   `db:"workspace_template_id"`
	WorkspaceTemplateVersion uint64                   `db:"workspace_template_version"`
	URL                      string                   `db:"url"`                       // the path to the workspace, a url that you can access via http
	WorkflowTemplateVersion  *WorkflowTemplateVersion `db:"workflow_template_version"` // helper to store data from workflow template version
}

type WorkspacePhase

type WorkspacePhase string
const (
	WorkspaceLaunching   WorkspacePhase = "Launching"
	WorkspaceRunning     WorkspacePhase = "Running"
	WorkspaceUpdating    WorkspacePhase = "Updating"
	WorkspacePausing     WorkspacePhase = "Pausing"
	WorkspacePaused      WorkspacePhase = "Paused"
	WorkspaceTerminating WorkspacePhase = "Terminating"
	WorkspaceTerminated  WorkspacePhase = "Terminated"
)

Workspace phases

type WorkspaceSpec

type WorkspaceSpec struct {
	Arguments             *Arguments                 `json:"arguments" protobuf:"bytes,1,opt,name=arguments"`
	Containers            []corev1.Container         `json:"containers" protobuf:"bytes,3,opt,name=containers"`
	Ports                 []corev1.ServicePort       `json:"ports" protobuf:"bytes,4,opt,name=ports"`
	Routes                []*networking.HTTPRoute    `json:"routes" protobuf:"bytes,5,opt,name=routes"`
	PostExecutionWorkflow *wfv1.WorkflowTemplateSpec `json:"postExecutionWorkflow" protobuf:"bytes,6,opt,name=postExecutionWorkflow"`
}

type WorkspaceStatus

type WorkspaceStatus struct {
	Phase        WorkspacePhase `db:"phase"`
	StartedAt    *time.Time     `db:"started_at"`
	PausedAt     *time.Time     `db:"paused_at"`
	TerminatedAt *time.Time     `db:"terminated_at"`
	UpdatedAt    *time.Time     `db:"updated_at"`
}

type WorkspaceTemplate

type WorkspaceTemplate struct {
	ID                         uint64
	WorkspaceTemplateVersionID uint64 `db:"workspace_template_version_id"`
	UID                        string
	CreatedAt                  time.Time  `db:"created_at"`
	ModifiedAt                 *time.Time `db:"modified_at"`
	IsArchived                 bool       `db:"is_archived"`
	Name                       string     `valid:"stringlength(3|30)~Name should be between 3 to 30 characters,required"`
	Namespace                  string
	Version                    int64
	Manifest                   string
	IsLatest                   bool
	WorkflowTemplate           *WorkflowTemplate `db:"workflow_template"`
	Labels                     map[string]string
	WorkflowTemplateID         uint64 `db:"workflow_template_id"`
}

Directories

Path Synopsis
env
ptr
s3
uid

Jump to

Keyboard shortcuts

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