Documentation
¶
Index ¶
- Constants
- func NetmaskToCIDR(netmask string, ipv6 bool) (string, error)
- type AgentEnv
- type AgentSettings
- type Blobstore
- type BoshEnv
- type CertKeyPair
- type DNSRecords
- type DefaultNetworkResolver
- type DiskAssociation
- type DiskAssociations
- type DiskSettings
- type Disks
- type Env
- type IPv6
- type ISCSISettings
- type JobDir
- type MBus
- type Network
- type NetworkType
- type Networks
- func (n Networks) DefaultIP() (ip string, found bool)
- func (n Networks) DefaultNetworkFor(category string) (Network, bool)
- func (n Networks) HasInterfaceAlias() bool
- func (n Networks) IPs() (ips []string)
- func (n Networks) IsPreconfigured() bool
- func (n Networks) NetworksForMac(mac string) []Network
- type PlatformSettingsGetter
- type Route
- type Routes
- type RunDir
- type Service
- type Settings
- func (s Settings) EphemeralDiskSettings() DiskSettings
- func (s Settings) GetBlobstore() Blobstore
- func (s Settings) GetMbusCerts() CertKeyPair
- func (s Settings) GetMbusURL() string
- func (s Settings) GetNtpServers() []string
- func (s Settings) PersistentDiskSettings(diskID string) (DiskSettings, bool)
- func (s Settings) PersistentDiskSettingsFromHint(diskID string, diskHint interface{}) DiskSettings
- func (s Settings) RawEphemeralDiskSettings() (devices []DiskSettings)
- func (s Settings) TmpFSEnabled() bool
- type Source
- type UpdateSettings
- type VM
Constants ¶
View Source
const ( RootUsername = "root" VCAPUsername = "vcap" AdminGroup = "admin" SudoersGroup = "bosh_sudoers" SshersGroup = "bosh_sshers" EphemeralUserPrefix = "bosh_" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AgentEnv ¶
type AgentEnv struct {
Settings AgentSettings `json:"settings"`
}
type AgentSettings ¶
type AgentSettings struct {
TmpFS bool `json:"tmpfs"`
}
type BoshEnv ¶
type BoshEnv struct {
Agent AgentEnv `json:"agent"`
Password string `json:"password"`
KeepRootPassword bool `json:"keep_root_password"`
RemoveDevTools bool `json:"remove_dev_tools"`
RemoveStaticLibraries bool `json:"remove_static_libraries"`
AuthorizedKeys []string `json:"authorized_keys"`
SwapSizeInMB *uint64 `json:"swap_size"`
Mbus MBus `json:"mbus"`
IPv6 IPv6 `json:"ipv6"`
JobDir JobDir `json:"job_dir"`
RunDir RunDir `json:"run_dir"`
Blobstores []Blobstore `json:"blobstores"`
NTP []string `json:"ntp"`
Parallel *int `json:"parallel"`
}
type CertKeyPair ¶
type DNSRecords ¶
type DefaultNetworkResolver ¶
type DefaultNetworkResolver interface {
// Ideally we would find a network based on a MAC address
// but current CPI implementations do not include it
GetDefaultNetwork(ipProtocol boship.IPProtocol) (Network, error)
}
type DiskAssociation ¶
type DiskAssociations ¶
type DiskAssociations []DiskAssociation
type DiskSettings ¶
type Disks ¶
type Disks struct {
// e.g "/dev/sda", "1"
System string `json:"system"`
// Older CPIs returned disk settings as string
// e.g "/dev/sdb", "2"
// Newer CPIs will populate it in a hash
// e.g {"path" => "/dev/sdc", "volume_id" => "3"}
// {"lun" => "0", "host_device_id" => "{host-device-id}"}
Ephemeral interface{} `json:"ephemeral"`
// Older CPIs returned disk settings as strings
// e.g {"disk-3845-43758-7243-38754" => "/dev/sdc"}
// {"disk-3845-43758-7243-38754" => "3"}
// Newer CPIs will populate it in a hash:
// e.g {"disk-3845-43758-7243-38754" => {"path" => "/dev/sdc"}}
// {"disk-3845-43758-7243-38754" => {"volume_id" => "3"}}
// {"disk-3845-43758-7243-38754" => {"lun" => "0", "host_device_id" => "{host-device-id}"}}
Persistent map[string]interface{} `json:"persistent"`
RawEphemeral []DiskSettings `json:"raw_ephemeral"`
}
type Env ¶
type Env struct {
Bosh BoshEnv `json:"bosh"`
PersistentDiskFS disk.FileSystemType `json:"persistent_disk_fs"`
PersistentDiskMountOptions []string `json:"persistent_disk_mount_options"`
PersistentDiskPartitioner string `json:"persistent_disk_partitioner"`
}
func (Env) GetAuthorizedKeys ¶
func (Env) GetKeepRootPassword ¶
func (Env) GetParallel ¶
func (Env) GetPassword ¶
func (Env) GetRemoveDevTools ¶
func (Env) GetRemoveStaticLibraries ¶
func (Env) GetSwapSizeInBytes ¶
type ISCSISettings ¶
type MBus ¶
type MBus struct {
Cert CertKeyPair `json:"cert"`
URLs []string `json:"urls"`
}
type Network ¶
type Network struct {
Type NetworkType `json:"type"`
IP string `json:"ip"`
Netmask string `json:"netmask"`
Gateway string `json:"gateway"`
Prefix string `json:"prefix"`
Resolved bool `json:"resolved"` // was resolved via DHCP
UseDHCP bool `json:"use_dhcp"`
Default []string `json:"default"`
DNS []string `json:"dns"`
Mac string `json:"mac"`
Preconfigured bool `json:"preconfigured"`
Routes Routes `json:"routes,omitempty"`
Alias string `json:"alias,omitempty"`
}
func (Network) IsDefaultFor ¶
type NetworkType ¶
type NetworkType string
const ( NetworkTypeDynamic NetworkType = "dynamic" NetworkTypeVIP NetworkType = "vip" )
type Networks ¶
func (Networks) DefaultNetworkFor ¶
func (Networks) HasInterfaceAlias ¶
func (Networks) IsPreconfigured ¶
func (Networks) NetworksForMac ¶ added in v2.760.0
type PlatformSettingsGetter ¶
type RunDir ¶
type RunDir struct {
// Passed to mount directly
TmpFSSize string `json:"tmpfs_size"`
}
type Service ¶
type Service interface {
LoadSettings() error
// GetSettings does not return error because without settings Agent cannot start.
GetSettings() Settings
GetPersistentDiskSettings(diskCID string) (DiskSettings, error)
GetAllPersistentDiskSettings() (map[string]DiskSettings, error)
SavePersistentDiskSettings(DiskSettings) error
RemovePersistentDiskSettings(string) error
PublicSSHKeyForUsername(string) (string, error)
InvalidateSettings() error
SaveUpdateSettings(updateSettings UpdateSettings) error
}
func NewService ¶
func NewService( fs boshsys.FileSystem, settingsSource Source, platform PlatformSettingsGetter, logger boshlog.Logger, ) Service
type Settings ¶
type Settings struct {
AgentID string `json:"agent_id"`
Blobstore Blobstore `json:"blobstore"`
Disks Disks `json:"disks"`
Env Env `json:"env"`
Networks Networks `json:"networks"`
NTP []string `json:"ntp"`
Mbus string `json:"mbus"`
VM VM `json:"vm"`
UpdateSettings UpdateSettings `json:"-"`
}
func (Settings) EphemeralDiskSettings ¶
func (s Settings) EphemeralDiskSettings() DiskSettings
func (Settings) GetBlobstore ¶
func (Settings) GetMbusCerts ¶
func (s Settings) GetMbusCerts() CertKeyPair
func (Settings) GetMbusURL ¶
func (Settings) GetNtpServers ¶
func (Settings) PersistentDiskSettings ¶
func (s Settings) PersistentDiskSettings(diskID string) (DiskSettings, bool)
func (Settings) PersistentDiskSettingsFromHint ¶
func (s Settings) PersistentDiskSettingsFromHint(diskID string, diskHint interface{}) DiskSettings
func (Settings) RawEphemeralDiskSettings ¶
func (s Settings) RawEphemeralDiskSettings() (devices []DiskSettings)
func (Settings) TmpFSEnabled ¶
type UpdateSettings ¶
type UpdateSettings struct {
Blobstores []Blobstore `json:"blobstores"`
DiskAssociations DiskAssociations `json:"disk_associations"`
Mbus MBus `json:"mbus"`
TrustedCerts string `json:"trusted_certs"`
}
func (*UpdateSettings) MergeSettings ¶
func (updateSettings *UpdateSettings) MergeSettings(newSettings UpdateSettings) bool
Click to show internal directories.
Click to hide internal directories.