controller

package
v0.242.1 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2024 License: Apache-2.0 Imports: 59 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Start

func Start(ctx context.Context, config Config, runnerScaling scaling.RunnerScaling) error

Start the Controller. Blocks until the context is cancelled.

Types

type AdminService added in v0.240.0

type AdminService struct {
	// contains filtered or unexported fields
}

func NewAdminService added in v0.240.0

func NewAdminService(cm *cf.Manager[cf.Configuration], sm *cf.Manager[cf.Secrets]) *AdminService

func (*AdminService) ConfigGet added in v0.240.0

ConfigGet returns the configuration value for a given ref string.

func (*AdminService) ConfigList added in v0.240.0

ConfigList returns the list of configuration values, optionally filtered by module.

func (*AdminService) ConfigSet added in v0.240.0

ConfigSet sets the configuration at the given ref to the provided value.

func (*AdminService) ConfigUnset added in v0.240.0

ConfigUnset unsets the config value at the given ref.

func (*AdminService) Ping added in v0.240.0

func (*AdminService) SecretGet added in v0.240.0

SecretGet returns the secret value for a given ref string.

func (*AdminService) SecretSet added in v0.240.0

SecretSet sets the secret at the given ref to the provided value.

func (*AdminService) SecretUnset added in v0.240.0

SecretUnset unsets the secret value at the given ref.

func (*AdminService) SecretsList added in v0.240.0

SecretsList returns the list of secrets, optionally filtered by module.

type Call

type Call struct {
	// contains filtered or unexported fields
}

type CommonConfig added in v0.162.0

type CommonConfig struct {
	AllowOrigins   []*url.URL    `help:"Allow CORS requests to ingress endpoints from these origins." env:"FTL_CONTROLLER_ALLOW_ORIGIN"`
	NoConsole      bool          `help:"Disable the console."`
	IdleRunners    int           `help:"Number of idle runners to keep around (not supported in production)." default:"3"`
	WaitFor        []string      `help:"Wait for these modules to be deployed before becoming ready." placeholder:"MODULE"`
	CronJobTimeout time.Duration `help:"Timeout for cron jobs." default:"5m"`
}

CommonConfig between the production controller and development server.

type Config

type Config struct {
	Bind                         *url.URL            `help:"Socket to bind to." default:"http://localhost:8892" env:"FTL_CONTROLLER_BIND"`
	IngressBind                  *url.URL            `help:"Socket to bind to for ingress." default:"http://localhost:8891" env:"FTL_CONTROLLER_INGRESS_BIND"`
	Key                          model.ControllerKey `help:"Controller key (auto)."`
	DSN                          string              `` /* 127-byte string literal not displayed */
	Advertise                    *url.URL            `` /* 146-byte string literal not displayed */
	ConsoleURL                   *url.URL            `help:"The public URL of the console (for CORS)." env:"FTL_CONTROLLER_CONSOLE_URL"`
	ContentTime                  time.Time           `help:"Time to use for console resource timestamps." default:"${timestamp=1970-01-01T00:00:00Z}"`
	RunnerTimeout                time.Duration       `help:"Runner heartbeat timeout." default:"10s"`
	ControllerTimeout            time.Duration       `help:"Controller heartbeat timeout." default:"10s"`
	DeploymentReservationTimeout time.Duration       `help:"Deployment reservation timeout." default:"120s"`
	ArtefactChunkSize            int                 `help:"Size of each chunk streamed to the client." default:"1048576"`
	CommonConfig
}

func (*Config) SetDefaults added in v0.19.0

func (c *Config) SetDefaults()

type ConsoleService

type ConsoleService struct {
	// contains filtered or unexported fields
}

func NewConsoleService

func NewConsoleService(dal *dal.DAL) *ConsoleService

func (*ConsoleService) GetEvents added in v0.11.0

func (*ConsoleService) StreamEvents added in v0.11.0

type ControllerListListener added in v0.170.0

type ControllerListListener interface {
	UpdatedControllerList(ctx context.Context, controllers []dal.Controller)
}

ControllerListListener is regularly notified of the current list of controllers This is often used to update a hash ring to distribute work.

type Service

type Service struct {
	// contains filtered or unexported fields
}

func New

func New(ctx context.Context, db *dal.DAL, config Config, runnerScaling scaling.RunnerScaling) (*Service, error)

func (*Service) AcquireLease added in v0.199.0

AcquireLease acquires a lease on behalf of a module.

This is a bidirectional stream where each request from the client must be responded to with an empty response.

func (*Service) Call

func (*Service) GetModuleContext added in v0.182.0

GetModuleContext retrieves config, secrets and DSNs for a module.

func (*Service) Ping

func (*Service) ProcessList added in v0.14.0

func (*Service) PublishEvent added in v0.239.0

func (*Service) SendFSMEvent added in v0.226.0

func (*Service) ServeHTTP

func (s *Service) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*Service) UpdateDeploy

Directories

Path Synopsis
Package dal provides a data abstraction layer for the Controller
Package dal provides a data abstraction layer for the Controller
Package scheduledtask implements a task scheduler.
Package scheduledtask implements a task scheduler.
sql

Jump to

Keyboard shortcuts

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