autoscaler

package module
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: May 2, 2023 License: MIT Imports: 3 Imported by: 0

README

Autoscaler

Autoscaler is a driver for GitLab Runner's Custom Executor that implements an autoscaling algorithm.

The project is very young and still under a heavy development.

Release channels

Binary

The driver is released in the form of a binary and is available from our S3 bucket.

For the latest beta version, based on the current state of main branch, visit https://gitlab-runner-custom-autoscaler-downloads.s3.amazonaws.com/main/index.html.

For specific, tagged versions, please replace the main in the URL with a specific tag. For example, to download version v0.1.0, go to https://gitlab-runner-custom-autoscaler-downloads.s3.amazonaws.com/v0.1.0/index.html.

All stable and RC releases, together with links to the specific S3 bucket, will be listed on the Releases page.

Docker

A docker image based off of the main gitlab-runner Alpine image and containing the autoscaler binary at /usr/local/bin/autoscaler is made available in the registry.gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/autoscaler docker registry.

Latest builds from main are available with the main tag, and for a specific release, use the vX.X.X tag. The latest tag represents the latest tagged release. Builds from merge requests are tagged with mr-IID.

# Get the latest build
docker pull registry.gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/autoscaler:latest

Roadmap

First iteration
  1. Implement initial implementation for creating/deleting a VM and provisioning some method of script execution. We will start with GCP, Windows and execution via WinRM, but the architecture should allow extensions in the future.

  2. Split the mechanism to three independent steps: a) create VM, b) execute arbitrary script on a VM, c) delete the VM.

  3. Implement CLI interface and integration with Custom Executor

  4. First, little performance improvements (API usage).

Next iterations (TODO)
  1. Provision Docker Engine and return Docker credentials in the output (a future replacement for Docker Machine executor).

  2. Implement a daemon that would manage machines and create them in advance, like Docker Machine executor of GitLab Runner does now.

  3. Support other popular cloud providers: AWS, DigitalOcean, Azure.

Documentation

Documentation is found in docs/README.md.

License

MIT

Author

GitLab, 2019

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	NAME     = "autoscaler"
	VERSION  = "dev"
	REVISION = "HEAD"
	BRANCH   = "HEAD"
	BUILT    = "now"

	AuthorName  = "GitLab Inc."
	AuthorEmail = "[email protected]"
)

Functions

This section is empty.

Types

type VersionInfo

type VersionInfo struct {
	Name         string
	Version      string
	Revision     string
	Branch       string
	GOVersion    string
	BuiltAt      string
	OS           string
	Architecture string
}

func Version

func Version() *VersionInfo

func (*VersionInfo) Extended

func (v *VersionInfo) Extended() string

func (*VersionInfo) ShortLine

func (v *VersionInfo) ShortLine() string

func (*VersionInfo) UserAgent

func (v *VersionInfo) UserAgent() string

Jump to

Keyboard shortcuts

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