Documentation
¶
Index ¶
Constants ¶
const ServiceID = "deployment"
ServiceID represents a deployment service id.
Variables ¶
This section is empty.
Functions ¶
func MatchVersion ¶
MatchVersion checks expected and actual version returns true if matches.
Types ¶
type Addition ¶
type Addition struct {
SuperUser bool
AutoSudo bool
Commands []string `description:"os command"`
Transfers []*copy.Rule `description:"asset transfer"`
}
Addition represents deployment additions.
func (*Addition) AsRunRequest ¶
func (a *Addition) AsRunRequest(target *location.Resource) *exec.RunRequest
AsRunRequest creates a exec run request.
type Dependency ¶
Dependency represents deployment dependency
type Deployment ¶
type Deployment struct {
Pre *Addition `description:"initialization deployment instruction"`
Transfer *copy.Rule `required:"true" description:"software deployment instruction"` //actual copy instruction
Run *exec.ExtractRequest `description:"post deployment commands, i.e. tar xvzf"` //post deployment command like tar xvzf
VersionCheck *exec.ExtractRequest `description:"version extraction command"` //command to check version
Post *Addition `description:"post deployment instruction"`
}
Deployment represents deployment instruction
func (*Deployment) Validate ¶
func (d *Deployment) Validate() error
Validate checks if request if valid
type LoadMetaRequest ¶
type LoadMetaRequest struct {
Source *location.Resource `required:"true" description:"deployment meta location"`
Variables map[string]string
}
LoadMetaRequest represents Meta register request.
type LoadMetaResponse ¶
type LoadMetaResponse struct {
Meta *Meta
}
LoadMetaResponse represents deployment response
type Meta ¶
type Meta struct {
Name string //app name
Versioning string `required:"true" description:x"versioning template for dynamic discovery i.e. Major.Minor.Release"` //versioning system, i.e. Major.Minor.Release
Targets []*TargetMeta `required:"true" description:"deployment instruction for various version and operating systems"`
BaseLocation string `description:"default base location"`
}
Meta represents description of deployment instructions for various operating system
func (*Meta) Match ¶
func (m *Meta) Match(operatingSystem *model.OperatingSystem, requestedVersion string) *TargetMeta
Match provides build instruction for matching os and version
type Request ¶
type Request struct {
Target *location.Resource `required:"true" description:"target host"` //target host
MetaURL string `description:"optional URL for meta deployment file, if left empty the meta URL is construct as meta/deployment/**AppName**"` //deployment URL for meta deployment instruction
AppName string `required:"true" description:"application name, as defined in meta deployment file"` //app name
Version string `description:"version of the app to deploy, if left empty the version is extracted from meta deployment file"` //version of the app to deploy
Variables map[string]string `description:"variables to expand in meta deployment file"`
Force bool `description:"force deployment even if app has been already installed"` //flag force deployment, by default if requested version matches the one from command version check. deployment is skipped.
BaseLocation string `description:" variable source: $deploy.baseLocation"`
}
ServiceRequest represent a deploy request
type TargetMeta ¶
type TargetMeta struct {
Version string //version of the software
MinReleaseVersion map[string]string `required:"true" description:"min release version, key is major.minor, value is release or update version"` //min release version, key is major.minor, value is release or update version
OsTarget *model.OsTarget `description:"operating system match"` //if specified matches current os
Deployment *Deployment `required:"true" description:"actual deployment instructions"` //actual deployment instruction
Dependencies []*Dependency `description:"app dependencies like sdk"` //app dependencies like sdk
}
TargetMeta represents specific instruction for given os deployment.