Documentation ¶
Index ¶
Constants ¶
const DefaultFlowName = "DEFAULT"
DefaultFlowName is the name of default flow (main dependency graph)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseResource ¶
type BaseResource interface { Key() string // Ensure that Status() supports nil as meta Status(meta map[string]string) (ResourceStatus, error) Create() error Delete() error Meta(string) interface{} }
BaseResource is an interface for AppController supported resources
type DependencyGraph ¶
type DependencyGraph interface { GetStatus() (DeploymentStatus, DeploymentReport) Deploy(<-chan struct{}) Options() DependencyGraphOptions }
DependencyGraph represents operations on dependency graph
type DependencyGraphOptions ¶
type DependencyGraphOptions struct { FlowName string Args map[string]string ExportedOnly bool AllowUndeclaredArgs bool ReplicaCount int FixedNumberOfReplicas bool MinReplicaCount int MaxReplicaCount int AllowDeleteExternalResources bool FlowInstanceName string Silent bool }
DependencyGraphOptions contains all the input required to build a dependency graph
type DependencyReport ¶
type DependencyReport struct { Dependency string Blocks bool Percentage int Needed int Message string }
DependencyReport is a report of a single dependency of a node in graph
type DeploymentReport ¶
DeploymentReport is an interface to get string representation of current deployment progress
type DeploymentStatus ¶
type DeploymentStatus int
DeploymentStatus describes possible status of whole deployment process
const ( Empty DeploymentStatus = iota Prepared Running Finished TimedOut )
Possible values for DeploymentStatus
func (DeploymentStatus) String ¶
func (s DeploymentStatus) String() string
type GraphContext ¶
type GraphContext interface { Scheduler() Scheduler GetArg(string) string Graph() DependencyGraph Dependency() *client.Dependency }
GraphContext represents context of dependency graph. Resource factories get implementation of this interface so that they can get graph, they created in, its options, arguments and call Scheduler API
type Resource ¶
type Resource interface { BaseResource GetDependencyReport(map[string]string) DependencyReport }
Resource is an interface for a base resource that implements getting dependency reports
type ResourceStatus ¶
type ResourceStatus string
ResourceStatus is an enum of k8s resource statuses
const ( ResourceReady ResourceStatus = "ready" ResourceNotReady ResourceStatus = "not ready" ResourceError ResourceStatus = "error" )
Possible ResourceStatus values
type ResourceTemplate ¶
type ResourceTemplate interface { Kind() string ShortName(client.ResourceDefinition) string New(client.ResourceDefinition, client.Interface, GraphContext) Resource NewExisting(string, client.Interface, GraphContext) Resource }
ResourceTemplate is an interface for AppController supported resource templates
type ScheduledResourceStatus ¶
type ScheduledResourceStatus int
ScheduledResourceStatus describes possible status of a single resource
const ( Init ScheduledResourceStatus = iota Creating Ready Error )
Possible values for ScheduledResourceStatus
type Scheduler ¶
type Scheduler interface { BuildDependencyGraph(options DependencyGraphOptions) (DependencyGraph, error) Serialize(options DependencyGraphOptions) map[string]string CreateDeployment(options DependencyGraphOptions) (string, error) }
Scheduler interface is an API to build dependency graphs and manage their settings