bosh

package
v0.46.0 Latest Latest
Warning

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

Go to latest
Published: May 8, 2024 License: Apache-2.0 Imports: 2 Imported by: 35

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BoolPointer added in v0.20.0

func BoolPointer(val bool) *bool

func ValidateMaxInFlight added in v0.20.0

func ValidateMaxInFlight(m MaxInFlightValue) error

Types

type Addon added in v0.20.0

type Addon struct {
	Name    string        `yaml:"name"`
	Jobs    []Job         `yaml:"jobs"`
	Include PlacementRule `yaml:"include,omitempty"`
	Exclude PlacementRule `yaml:"exclude,omitempty"`
}

type Alias added in v0.39.0

type Alias struct {
	Domain             string `yaml:"domain"`
	HealthFilter       string `yaml:"health_filter,omitempty"`
	InitialHealthCheck string `yaml:"initial_health_check,omitempty"`
	PlaceHolderType    string `yaml:"placeholder_type,omitempty"`
}

type BoshFeatures added in v0.20.0

type BoshFeatures struct {
	UseDNSAddresses      *bool                  `yaml:"use_dns_addresses,omitempty"`
	RandomizeAZPlacement *bool                  `yaml:"randomize_az_placement,omitempty"`
	UseShortDNSAddresses *bool                  `yaml:"use_short_dns_addresses,omitempty"`
	ExtraFeatures        map[string]interface{} `yaml:"extra_features,inline"`
}

type BoshManifest

type BoshManifest struct {
	Addons         []Addon         `yaml:"addons,omitempty" json:"addons"`
	Name           string          `yaml:"name" json:"name"`
	Releases       []Release       `yaml:"releases" json:"releases"`
	Stemcells      []Stemcell      `yaml:"stemcells" json:"stemcells"`
	InstanceGroups []InstanceGroup `yaml:"instance_groups" json:"instance_groups"`
	Update         *Update         `yaml:"update" json:"update"`
	// DEPRECATED: BOSH deprecated deployment level "properties". Use Job properties instead.
	Properties map[string]interface{} `yaml:"properties,omitempty" json:"properties,omitempty"`
	Variables  []Variable             `yaml:"variables,omitempty" json:"variables,omitempty"`
	Tags       map[string]interface{} `yaml:"tags,omitempty" json:"tags,omitempty"`
	Features   BoshFeatures           `yaml:"features,omitempty" json:"features,omitempty"`
}

type BoshVMs

type BoshVMs map[string][]string
type ConsumesLink struct {
	From       string `yaml:"from,omitempty"`
	Deployment string `yaml:"deployment,omitempty"`
	Network    string `yaml:"network,omitempty"`
}

type CustomProviderDefinition added in v0.23.0

type CustomProviderDefinition struct {
	Name       string   `yaml:"name"`
	Type       string   `yaml:"type"`
	Properties []string `yaml:"properties,omitempty"`
}

type InstanceGroup

type InstanceGroup struct {
	Name               string    `yaml:"name,omitempty"`
	Lifecycle          string    `yaml:"lifecycle,omitempty"`
	Instances          int       `yaml:"instances"`
	Jobs               []Job     `yaml:"jobs,omitempty"`
	VMType             string    `yaml:"vm_type"`
	VMExtensions       []string  `yaml:"vm_extensions,omitempty"`
	Stemcell           string    `yaml:"stemcell"`
	PersistentDiskType string    `yaml:"persistent_disk_type,omitempty"`
	AZs                []string  `yaml:"azs,omitempty"`
	Networks           []Network `yaml:"networks"`
	// DEPRECATED: BOSH deprecated instance_group level "properties". Use Job properties instead.
	Properties   map[string]interface{} `yaml:"properties,omitempty"`
	MigratedFrom []Migration            `yaml:"migrated_from,omitempty"`
	Env          map[string]interface{} `yaml:"env,omitempty"`
	Update       *Update                `yaml:"update,omitempty"`
}

type Job

type Job struct {
	Name                      string                     `yaml:"name"`
	Release                   string                     `yaml:"release"`
	Provides                  map[string]ProvidesLink    `yaml:"provides,omitempty"`
	Consumes                  map[string]interface{}     `yaml:"consumes,omitempty"`
	CustomProviderDefinitions []CustomProviderDefinition `yaml:"custom_provider_definitions,omitempty"`
	Properties                map[string]interface{}     `yaml:"properties,omitempty"`
}
func (j Job) AddConsumesLink(name, fromJob string) Job
func (j Job) AddCrossDeploymentConsumesLink(name, fromJob string, deployment string) Job

func (Job) AddCustomProviderDefinition added in v0.23.0

func (j Job) AddCustomProviderDefinition(name, providerType string, properties []string) Job
func (j Job) AddNullifiedConsumesLink(name string) Job

func (Job) AddProvidesLinkWithAliases added in v0.39.0

func (j Job) AddProvidesLinkWithAliases(name string, aliases []Alias) Job
func (j Job) AddSharedProvidesLink(name string) Job

type MaxInFlightValue added in v0.20.0

type MaxInFlightValue interface{}

MaxInFlightValue holds a value of one of these types:

int, for YAML numbers
string, for YAML string literals representing a percentage

type Migration added in v0.17.0

type Migration struct {
	Name string `yaml:"name"`
}

type Network

type Network struct {
	Name      string   `yaml:"name"`
	StaticIPs []string `yaml:"static_ips,omitempty"`
	Default   []string `yaml:"default,omitempty"`
}

type PlacementRule added in v0.28.0

type PlacementRule struct {
	Stemcell       []PlacementRuleStemcell `yaml:"stemcell,omitempty"`
	Deployments    []string                `yaml:"deployments,omitempty"`
	Jobs           []Job                   `yaml:"jobs,omitempty"`
	InstanceGroups []string                `yaml:"instance_groups,omitempty"`
	Networks       []string                `yaml:"networks,omitempty"`
	Teams          []string                `yaml:"teams,omitempty"`
}

type PlacementRuleStemcell added in v0.28.0

type PlacementRuleStemcell struct {
	OS string `yaml:"os"`
}
type ProvidesLink struct {
	As      string  `yaml:"as,omitempty"`
	Shared  bool    `yaml:"shared,omitempty"`
	Aliases []Alias `yaml:"aliases,omitempty"`
}

type Release

type Release struct {
	Name    string `yaml:"name"`
	Version string `yaml:"version"`
}

type Stemcell

type Stemcell struct {
	Alias   string `yaml:"alias"`
	OS      string `yaml:"os"`
	Version string `yaml:"version"`
}

type Update

type Update struct {
	Canaries        int              `yaml:"canaries"`
	CanaryWatchTime string           `yaml:"canary_watch_time"`
	UpdateWatchTime string           `yaml:"update_watch_time"`
	MaxInFlight     MaxInFlightValue `yaml:"max_in_flight"`
	Serial          *bool            `yaml:"serial,omitempty"`
	VmStrategy      string           `yaml:"vm_strategy,omitempty"`
	// See bosh.SerialUpdate and bosh.ParallelUpdate
	InitialDeployAZUpdateStrategy UpdateStrategy `yaml:"initial_deploy_az_update_strategy,omitempty"`
}

func (*Update) MarshalYAML added in v0.20.0

func (u *Update) MarshalYAML() (interface{}, error)

func (*Update) UnmarshalYAML added in v0.20.0

func (u *Update) UnmarshalYAML(unmarshal func(interface{}) error) error

type UpdateStrategy added in v0.34.1

type UpdateStrategy string
const (
	SerialUpdate   UpdateStrategy = "serial"
	ParallelUpdate UpdateStrategy = "parallel"
)

type Variable added in v0.16.1

type Variable struct {
	Name       string                 `yaml:"name"`
	Type       string                 `yaml:"type"`
	UpdateMode string                 `yaml:"update_mode,omitempty"`
	Options    map[string]interface{} `yaml:"options,omitempty"`

	// Variables of type `certificate` can optionally be configured with a
	// `consumes` block, so generated certificates can be created with automatic
	// BOSH DNS records in their Common Name and/or Subject Alternative Names.
	//
	// Should be used in conjunction to the `custom_provider_definitions` block in
	// a Job.
	//
	// Requires BOSH v267+
	Consumes *VariableConsumes `yaml:"consumes,omitempty"`
}

Variable represents a variable in the `variables` block of a BOSH manifest

type VariableConsumes added in v0.23.0

type VariableConsumes struct {
	AlternativeName VariableConsumesLink `yaml:"alternative_name,omitempty"`
	CommonName      VariableConsumesLink `yaml:"common_name,omitempty"`
}
type VariableConsumesLink struct {
	From       string                 `yaml:"from"`
	Properties map[string]interface{} `yaml:"properties,omitempty"`
}

Jump to

Keyboard shortcuts

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