Documentation ¶
Overview ¶
Package queue provides the ability for Vela to integrate with different supported Queue backends.
Usage:
import "github.com/go-vela/server/queue"
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Flags = []cli.Flag{ &cli.StringFlag{ EnvVars: []string{"VELA_QUEUE_DRIVER", "QUEUE_DRIVER"}, FilePath: "/vela/queue/driver", Name: "queue.driver", Usage: "driver to be used for the queue", }, &cli.StringFlag{ EnvVars: []string{"VELA_QUEUE_ADDR", "QUEUE_ADDR"}, FilePath: "/vela/queue/addr", Name: "queue.addr", Usage: "fully qualified url (<scheme>://<host>) for the queue", }, &cli.BoolFlag{ EnvVars: []string{"VELA_QUEUE_CLUSTER", "QUEUE_CLUSTER"}, FilePath: "/vela/queue/cluster", Name: "queue.cluster", Usage: "enables connecting to a queue cluster", }, &cli.StringSliceFlag{ EnvVars: []string{"VELA_QUEUE_ROUTES", "QUEUE_ROUTES"}, FilePath: "/vela/queue/routes", Name: "queue.routes", Usage: "list of routes (channels/topics) to publish builds", Value: cli.NewStringSlice(constants.DefaultRoute), }, &cli.DurationFlag{ EnvVars: []string{"VELA_QUEUE_POP_TIMEOUT", "QUEUE_POP_TIMEOUT"}, FilePath: "/vela/queue/pop_timeout", Name: "queue.pop.timeout", Usage: "timeout for requests that pop items off the queue", Value: 60 * time.Second, }, &cli.StringFlag{ EnvVars: []string{"VELA_QUEUE_PRIVATE_KEY", "QUEUE_PRIVATE_KEY"}, FilePath: "/vela/signing.key", Name: "queue.private-key", Usage: "set value of base64 encoded queue signing private key", }, &cli.StringFlag{ EnvVars: []string{"VELA_QUEUE_PUBLIC_KEY", "QUEUE_PUBLIC_KEY"}, FilePath: "/vela/signing.pub", Name: "queue.public-key", Usage: "set value of base64 encoded queue signing public key", }, }
Flags represents all supported command line interface (CLI) flags for the queue.
Functions ¶
func WithContext ¶ added in v0.11.0
WithContext inserts the queue Service into the context.Context.
func WithGinContext ¶ added in v0.11.0
WithGinContext inserts the queue Service into the gin.Context.
Types ¶
type Service ¶
type Service interface { // Driver defines a function that outputs // the configured queue driver. Driver() string // Length defines a function that outputs // the length of a queue channel Length(context.Context) (int64, error) // Pop defines a function that grabs an // item off the queue. Pop(context.Context, []string) (*models.Item, error) // Push defines a function that publishes an // item to the specified route in the queue. Push(context.Context, string, []byte) error // Ping defines a function that checks the // connection to the queue. Ping(context.Context) error // Route defines a function that decides which // channel a build gets placed within the queue. Route(*pipeline.Worker) (string, error) // GetSettings defines a function that returns // queue settings. GetSettings() settings.Queue // SetSettings defines a function that takes api settings // and updates the compiler Engine. SetSettings(*settings.Platform) }
Service represents the interface for Vela integrating with the different supported Queue backends.
func FromCLIContext ¶ added in v0.24.0
FromCLIContext helper function to setup the queue from the CLI arguments.
func FromContext ¶
FromContext retrieves the queue Service from the context.Context.
func FromGinContext ¶ added in v0.11.0
FromGinContext retrieves the queue Service from the gin.Context.
type Setup ¶ added in v0.11.0
type Setup struct { // specifies the driver to use for the queue client Driver string // specifies the address to use for the queue client Address string // enables the queue client to integrate with a queue cluster Cluster bool // specifies a list of routes (channels/topics) for managing builds for the queue client Routes []string // specifies the timeout for pop requests for the queue client Timeout time.Duration // private key in base64 used for signing items pushed to the queue PrivateKey string // public key in base64 used for opening items popped from the queue PublicKey string }
Setup represents the configuration necessary for creating a Vela service capable of integrating with a configured queue environment.
func (*Setup) Kafka ¶ added in v0.11.0
Kafka creates and returns a Vela service capable of integrating with a Kafka queue.