provision

package
v0.15.0-rancher25 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2019 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LastReleaseBeforeCEVersioning = "1.13.1"
)

Variables

View Source
var (
	ErrDetectionFailed = errors.New("OS type not recognized")
)
View Source
var (
	ErrUnknownYumOsRelease = errors.New("unknown OS for Yum repository")
)

Functions

func ConfigureAuth

func ConfigureAuth(p Provisioner) error

func DockerClientVersion added in v0.9.0

func DockerClientVersion(ssh SSHCommander) (string, error)

DockerClientVersion returns the version of the Docker client on the host that ssh is connected to, e.g. "1.12.1".

func Register

func Register(name string, p *RegisteredProvisioner)

func SetDetector added in v0.6.0

func SetDetector(newDetector Detector)

func WaitForDocker added in v0.6.0

func WaitForDocker(p Provisioner, dockerPort int) error

Types

type ArchProvisioner added in v0.5.0

type ArchProvisioner struct {
	SystemdProvisioner
}

func (*ArchProvisioner) CompatibleWithHost added in v0.5.0

func (provisioner *ArchProvisioner) CompatibleWithHost() bool

func (*ArchProvisioner) Package added in v0.5.0

func (provisioner *ArchProvisioner) Package(name string, action pkgaction.PackageAction) error

func (*ArchProvisioner) Provision added in v0.5.0

func (provisioner *ArchProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

func (*ArchProvisioner) String added in v0.5.2

func (provisioner *ArchProvisioner) String() string

type Boot2DockerProvisioner

type Boot2DockerProvisioner struct {
	OsReleaseInfo *OsRelease
	Driver        drivers.Driver
	AuthOptions   auth.Options
	EngineOptions engine.Options
	SwarmOptions  swarm.Options
}

func (*Boot2DockerProvisioner) AttemptIPContact added in v0.5.0

func (provisioner *Boot2DockerProvisioner) AttemptIPContact(dockerPort int)

func (*Boot2DockerProvisioner) CompatibleWithHost

func (provisioner *Boot2DockerProvisioner) CompatibleWithHost() bool

func (*Boot2DockerProvisioner) GenerateDockerOptions

func (provisioner *Boot2DockerProvisioner) GenerateDockerOptions(dockerPort int) (*DockerOptions, error)

func (*Boot2DockerProvisioner) GetAuthOptions added in v0.3.0

func (provisioner *Boot2DockerProvisioner) GetAuthOptions() auth.Options

func (*Boot2DockerProvisioner) GetDockerOptionsDir

func (provisioner *Boot2DockerProvisioner) GetDockerOptionsDir() string

func (*Boot2DockerProvisioner) GetDriver

func (provisioner *Boot2DockerProvisioner) GetDriver() drivers.Driver

func (*Boot2DockerProvisioner) GetOsReleaseInfo added in v0.4.0

func (provisioner *Boot2DockerProvisioner) GetOsReleaseInfo() (*OsRelease, error)

func (*Boot2DockerProvisioner) GetSwarmOptions added in v0.8.0

func (provisioner *Boot2DockerProvisioner) GetSwarmOptions() swarm.Options

func (*Boot2DockerProvisioner) Hostname

func (provisioner *Boot2DockerProvisioner) Hostname() (string, error)

func (*Boot2DockerProvisioner) Package

func (provisioner *Boot2DockerProvisioner) Package(name string, action pkgaction.PackageAction) error

func (*Boot2DockerProvisioner) Provision

func (provisioner *Boot2DockerProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

func (*Boot2DockerProvisioner) SSHCommand

func (provisioner *Boot2DockerProvisioner) SSHCommand(args string) (string, error)

func (*Boot2DockerProvisioner) Service

func (provisioner *Boot2DockerProvisioner) Service(name string, action serviceaction.ServiceAction) error

func (*Boot2DockerProvisioner) SetHostname

func (provisioner *Boot2DockerProvisioner) SetHostname(hostname string) error

func (*Boot2DockerProvisioner) SetOsReleaseInfo

func (provisioner *Boot2DockerProvisioner) SetOsReleaseInfo(info *OsRelease)

func (*Boot2DockerProvisioner) String added in v0.5.2

func (provisioner *Boot2DockerProvisioner) String() string

type CentosProvisioner added in v0.3.0

type CentosProvisioner struct {
	*RedHatProvisioner
}

func (*CentosProvisioner) String added in v0.5.2

func (provisioner *CentosProvisioner) String() string

type CoreOSProvisioner added in v0.5.0

type CoreOSProvisioner struct {
	SystemdProvisioner
}

func (*CoreOSProvisioner) GenerateDockerOptions added in v0.5.0

func (provisioner *CoreOSProvisioner) GenerateDockerOptions(dockerPort int) (*DockerOptions, error)

func (*CoreOSProvisioner) Package added in v0.5.0

func (provisioner *CoreOSProvisioner) Package(name string, action pkgaction.PackageAction) error

func (*CoreOSProvisioner) Provision added in v0.5.0

func (provisioner *CoreOSProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

func (*CoreOSProvisioner) SetHostname added in v0.5.0

func (provisioner *CoreOSProvisioner) SetHostname(hostname string) error

func (*CoreOSProvisioner) String added in v0.5.2

func (provisioner *CoreOSProvisioner) String() string

type DebianProvisioner added in v0.3.0

type DebianProvisioner struct {
	SystemdProvisioner
}

func (*DebianProvisioner) Package added in v0.3.0

func (provisioner *DebianProvisioner) Package(name string, action pkgaction.PackageAction) error

func (*DebianProvisioner) Provision added in v0.3.0

func (provisioner *DebianProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

func (*DebianProvisioner) String added in v0.5.2

func (provisioner *DebianProvisioner) String() string

type Detector added in v0.6.0

type Detector interface {
	DetectProvisioner(d drivers.Driver) (Provisioner, error)
}

type DockerOptions

type DockerOptions struct {
	EngineOptions     string
	EngineOptionsPath string
}

type EngineConfigContext added in v0.3.0

type EngineConfigContext struct {
	DockerPort       int
	AuthOptions      auth.Options
	EngineOptions    engine.Options
	DockerOptionsDir string
}

type ErrDaemonAvailable added in v0.5.0

type ErrDaemonAvailable struct {
	// contains filtered or unexported fields
}

func NewErrDaemonAvailable added in v0.5.0

func NewErrDaemonAvailable(err error) ErrDaemonAvailable

func (ErrDaemonAvailable) Error added in v0.5.0

func (e ErrDaemonAvailable) Error() string

type FakeDetector added in v0.6.0

type FakeDetector struct {
	Provisioner
}

func (*FakeDetector) DetectProvisioner added in v0.6.0

func (fd *FakeDetector) DetectProvisioner(d drivers.Driver) (Provisioner, error)

type FakeProvisioner added in v0.6.0

type FakeProvisioner struct{}

func (*FakeProvisioner) CompatibleWithHost added in v0.6.0

func (fp *FakeProvisioner) CompatibleWithHost() bool

func (*FakeProvisioner) GenerateDockerOptions added in v0.6.0

func (fp *FakeProvisioner) GenerateDockerOptions(dockerPort int) (*DockerOptions, error)

func (*FakeProvisioner) GetAuthOptions added in v0.6.0

func (fp *FakeProvisioner) GetAuthOptions() auth.Options

func (*FakeProvisioner) GetDockerOptionsDir added in v0.6.0

func (fp *FakeProvisioner) GetDockerOptionsDir() string

func (*FakeProvisioner) GetDriver added in v0.6.0

func (fp *FakeProvisioner) GetDriver() drivers.Driver

func (*FakeProvisioner) GetOsReleaseInfo added in v0.6.0

func (fp *FakeProvisioner) GetOsReleaseInfo() (*OsRelease, error)

func (*FakeProvisioner) GetSwarmOptions added in v0.8.0

func (fp *FakeProvisioner) GetSwarmOptions() swarm.Options

func (*FakeProvisioner) Hostname added in v0.6.0

func (fp *FakeProvisioner) Hostname() (string, error)

func (*FakeProvisioner) Package added in v0.6.0

func (fp *FakeProvisioner) Package(name string, action pkgaction.PackageAction) error

func (*FakeProvisioner) Provision added in v0.6.0

func (fp *FakeProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

func (*FakeProvisioner) SSHCommand added in v0.6.0

func (fp *FakeProvisioner) SSHCommand(args string) (string, error)

func (*FakeProvisioner) Service added in v0.6.0

func (fp *FakeProvisioner) Service(name string, action serviceaction.ServiceAction) error

func (*FakeProvisioner) SetHostname added in v0.6.0

func (fp *FakeProvisioner) SetHostname(hostname string) error

func (*FakeProvisioner) SetOsReleaseInfo added in v0.6.0

func (fp *FakeProvisioner) SetOsReleaseInfo(info *OsRelease)

func (*FakeProvisioner) String added in v0.6.0

func (fp *FakeProvisioner) String() string

type FedoraProvisioner added in v0.3.0

type FedoraProvisioner struct {
	*RedHatProvisioner
}

func (*FedoraProvisioner) String added in v0.5.2

func (provisioner *FedoraProvisioner) String() string

type GenericProvisioner added in v0.3.0

type GenericProvisioner struct {
	SSHCommander
	OsReleaseID       string
	DockerOptionsDir  string
	DaemonOptionsFile string
	Packages          []string
	OsReleaseInfo     *OsRelease
	Driver            drivers.Driver
	AuthOptions       auth.Options
	EngineOptions     engine.Options
	SwarmOptions      swarm.Options
}

func (*GenericProvisioner) CompatibleWithHost added in v0.3.0

func (provisioner *GenericProvisioner) CompatibleWithHost() bool

func (*GenericProvisioner) GenerateDockerOptions added in v0.3.0

func (provisioner *GenericProvisioner) GenerateDockerOptions(dockerPort int) (*DockerOptions, error)

func (*GenericProvisioner) GetAuthOptions added in v0.3.0

func (provisioner *GenericProvisioner) GetAuthOptions() auth.Options

func (*GenericProvisioner) GetDockerOptionsDir added in v0.3.0

func (provisioner *GenericProvisioner) GetDockerOptionsDir() string

func (*GenericProvisioner) GetDriver added in v0.3.0

func (provisioner *GenericProvisioner) GetDriver() drivers.Driver

func (*GenericProvisioner) GetOsReleaseInfo added in v0.4.0

func (provisioner *GenericProvisioner) GetOsReleaseInfo() (*OsRelease, error)

func (*GenericProvisioner) GetSwarmOptions added in v0.8.0

func (provisioner *GenericProvisioner) GetSwarmOptions() swarm.Options

func (*GenericProvisioner) Hostname added in v0.3.0

func (provisioner *GenericProvisioner) Hostname() (string, error)

func (*GenericProvisioner) SetHostname added in v0.3.0

func (provisioner *GenericProvisioner) SetHostname(hostname string) error

func (*GenericProvisioner) SetOsReleaseInfo added in v0.3.0

func (provisioner *GenericProvisioner) SetOsReleaseInfo(info *OsRelease)

type GenericSSHCommander added in v0.5.2

type GenericSSHCommander struct {
	Driver drivers.Driver
}

func (GenericSSHCommander) SSHCommand added in v0.5.2

func (sshCmder GenericSSHCommander) SSHCommand(args string) (string, error)

type NetstatProvisioner added in v0.7.0

type NetstatProvisioner struct {
	*FakeProvisioner
}

func (*NetstatProvisioner) SSHCommand added in v0.7.0

func (p *NetstatProvisioner) SSHCommand(args string) (string, error)

type OracleLinuxProvisioner added in v0.8.0

type OracleLinuxProvisioner struct {
	*RedHatProvisioner
}

func (*OracleLinuxProvisioner) String added in v0.8.0

func (provisioner *OracleLinuxProvisioner) String() string

type OsRelease

type OsRelease struct {
	AnsiColor    string `osr:"ANSI_COLOR"`
	Name         string `osr:"NAME"`
	Version      string `osr:"VERSION"`
	Variant      string `osr:"VARIANT"`
	VariantID    string `osr:"VARIANT_ID"`
	ID           string `osr:"ID"`
	IDLike       string `osr:"ID_LIKE"`
	PrettyName   string `osr:"PRETTY_NAME"`
	VersionID    string `osr:"VERSION_ID"`
	HomeURL      string `osr:"HOME_URL"`
	SupportURL   string `osr:"SUPPORT_URL"`
	BugReportURL string `osr:"BUG_REPORT_URL"`
}

OsRelease reflects values in /etc/os-release Values in this struct must always be string or the reflection will not work properly.

func NewOsRelease

func NewOsRelease(contents []byte) (*OsRelease, error)

func (*OsRelease) ParseOsRelease

func (osr *OsRelease) ParseOsRelease(osReleaseContents []byte) error

type PackageListInfo added in v0.4.0

type PackageListInfo struct {
	OsRelease        string
	OsReleaseVersion string
}

type Provisioner

type Provisioner interface {
	fmt.Stringer
	SSHCommander

	// Create the files for the daemon to consume configuration settings (return struct of content and path)
	GenerateDockerOptions(dockerPort int) (*DockerOptions, error)

	// Get the directory where the settings files for docker are to be found
	GetDockerOptionsDir() string

	// Return the auth options used to configure remote connection for the daemon.
	GetAuthOptions() auth.Options

	// Get the swarm options associated with this host.
	GetSwarmOptions() swarm.Options

	// Run a package action e.g. install
	Package(name string, action pkgaction.PackageAction) error

	// Get Hostname
	Hostname() (string, error)

	// Set hostname
	SetHostname(hostname string) error

	// Figure out if this is the right provisioner to use based on /etc/os-release info
	CompatibleWithHost() bool

	// Do the actual provisioning piece:
	//     1. Set the hostname on the instance.
	//     2. Install Docker if it is not present.
	//     3. Configure the daemon to accept connections over TLS.
	//     4. Copy the needed certificates to the server and local config dir.
	//     5. Configure / activate swarm if applicable.
	Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

	// Perform action on a named service e.g. stop
	Service(name string, action serviceaction.ServiceAction) error

	// Get the driver which is contained in the provisioner.
	GetDriver() drivers.Driver

	// Set the OS Release info depending on how it's represented
	// internally
	SetOsReleaseInfo(info *OsRelease)

	// Get the OS Release info for the current provisioner
	GetOsReleaseInfo() (*OsRelease, error)
}

Provisioner defines distribution specific actions

func DetectProvisioner

func DetectProvisioner(d drivers.Driver) (Provisioner, error)

func NewArchProvisioner added in v0.5.0

func NewArchProvisioner(d drivers.Driver) Provisioner

func NewBoot2DockerProvisioner

func NewBoot2DockerProvisioner(d drivers.Driver) Provisioner

func NewCentosProvisioner added in v0.3.0

func NewCentosProvisioner(d drivers.Driver) Provisioner

func NewCoreOSProvisioner added in v0.5.0

func NewCoreOSProvisioner(d drivers.Driver) Provisioner

func NewDebianProvisioner added in v0.3.0

func NewDebianProvisioner(d drivers.Driver) Provisioner

func NewFakeProvisioner added in v0.6.0

func NewFakeProvisioner(d drivers.Driver) Provisioner

func NewFedoraProvisioner added in v0.3.0

func NewFedoraProvisioner(d drivers.Driver) Provisioner

func NewNetstatProvisioner added in v0.7.0

func NewNetstatProvisioner() Provisioner

func NewOpenSUSEProvisioner added in v0.5.0

func NewOpenSUSEProvisioner(d drivers.Driver) Provisioner

func NewOracleLinuxProvisioner added in v0.8.0

func NewOracleLinuxProvisioner(d drivers.Driver) Provisioner

func NewRancherProvisioner added in v0.3.0

func NewRancherProvisioner(d drivers.Driver) Provisioner

func NewSLEDProvisioner added in v0.5.0

func NewSLEDProvisioner(d drivers.Driver) Provisioner

func NewSLESProvisioner added in v0.5.0

func NewSLESProvisioner(d drivers.Driver) Provisioner

func NewUbuntuProvisioner

func NewUbuntuProvisioner(d drivers.Driver) Provisioner

func NewUbuntuSystemdProvisioner added in v0.5.2

func NewUbuntuSystemdProvisioner(d drivers.Driver) Provisioner

type RancherProvisioner added in v0.3.0

type RancherProvisioner struct {
	GenericProvisioner
}

func (*RancherProvisioner) Package added in v0.3.0

func (provisioner *RancherProvisioner) Package(name string, action pkgaction.PackageAction) error

func (*RancherProvisioner) Provision added in v0.3.0

func (provisioner *RancherProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

func (*RancherProvisioner) Service added in v0.3.0

func (provisioner *RancherProvisioner) Service(name string, action serviceaction.ServiceAction) error

func (*RancherProvisioner) SetHostname added in v0.3.0

func (provisioner *RancherProvisioner) SetHostname(hostname string) error

func (*RancherProvisioner) String added in v0.5.2

func (provisioner *RancherProvisioner) String() string

type RedHatProvisioner added in v0.3.0

type RedHatProvisioner struct {
	SystemdProvisioner
}

func NewRedHatProvisioner added in v0.3.0

func NewRedHatProvisioner(osReleaseID string, d drivers.Driver) *RedHatProvisioner

func (*RedHatProvisioner) GenerateDockerOptions added in v0.3.0

func (provisioner *RedHatProvisioner) GenerateDockerOptions(dockerPort int) (*DockerOptions, error)

func (*RedHatProvisioner) Package added in v0.3.0

func (provisioner *RedHatProvisioner) Package(name string, action pkgaction.PackageAction) error

func (*RedHatProvisioner) Provision added in v0.3.0

func (provisioner *RedHatProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

func (*RedHatProvisioner) SetHostname added in v0.3.0

func (provisioner *RedHatProvisioner) SetHostname(hostname string) error

func (*RedHatProvisioner) String added in v0.5.2

func (provisioner *RedHatProvisioner) String() string

type RedHatSSHCommander added in v0.5.2

type RedHatSSHCommander struct {
	Driver drivers.Driver
}

func (RedHatSSHCommander) SSHCommand added in v0.5.2

func (sshCmder RedHatSSHCommander) SSHCommand(args string) (string, error)

type RegisteredProvisioner

type RegisteredProvisioner struct {
	New func(d drivers.Driver) Provisioner
}

RegisteredProvisioner creates a new provisioner

type SSHCommander added in v0.5.2

type SSHCommander interface {
	// Short-hand for accessing an SSH command from the driver.
	SSHCommand(args string) (string, error)
}

type SUSEProvisioner added in v0.5.0

type SUSEProvisioner struct {
	SystemdProvisioner
}

func (*SUSEProvisioner) CompatibleWithHost added in v0.9.0

func (provisioner *SUSEProvisioner) CompatibleWithHost() bool

func (*SUSEProvisioner) Package added in v0.5.0

func (provisioner *SUSEProvisioner) Package(name string, action pkgaction.PackageAction) error

func (*SUSEProvisioner) Provision added in v0.5.0

func (provisioner *SUSEProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

func (*SUSEProvisioner) String added in v0.5.2

func (provisioner *SUSEProvisioner) String() string

type StandardDetector added in v0.6.0

type StandardDetector struct{}

func (StandardDetector) DetectProvisioner added in v0.6.0

func (detector StandardDetector) DetectProvisioner(d drivers.Driver) (Provisioner, error)

type SystemdProvisioner added in v0.5.2

type SystemdProvisioner struct {
	GenericProvisioner
}

func NewSystemdProvisioner added in v0.5.2

func NewSystemdProvisioner(osReleaseID string, d drivers.Driver) SystemdProvisioner

func (*SystemdProvisioner) GenerateDockerOptions added in v0.5.2

func (p *SystemdProvisioner) GenerateDockerOptions(dockerPort int) (*DockerOptions, error)

func (*SystemdProvisioner) Service added in v0.5.2

func (p *SystemdProvisioner) Service(name string, action serviceaction.ServiceAction) error

func (*SystemdProvisioner) String added in v0.5.2

func (p *SystemdProvisioner) String() string

type UbuntuProvisioner

type UbuntuProvisioner struct {
	GenericProvisioner
}

func (*UbuntuProvisioner) CompatibleWithHost

func (provisioner *UbuntuProvisioner) CompatibleWithHost() bool

func (*UbuntuProvisioner) Package

func (provisioner *UbuntuProvisioner) Package(name string, action pkgaction.PackageAction) error

func (*UbuntuProvisioner) Provision

func (provisioner *UbuntuProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

func (*UbuntuProvisioner) Service

func (provisioner *UbuntuProvisioner) Service(name string, action serviceaction.ServiceAction) error

func (*UbuntuProvisioner) String added in v0.5.2

func (provisioner *UbuntuProvisioner) String() string

type UbuntuSystemdProvisioner added in v0.5.2

type UbuntuSystemdProvisioner struct {
	SystemdProvisioner
}

func (*UbuntuSystemdProvisioner) CompatibleWithHost added in v0.5.2

func (provisioner *UbuntuSystemdProvisioner) CompatibleWithHost() bool

func (*UbuntuSystemdProvisioner) Package added in v0.5.2

func (provisioner *UbuntuSystemdProvisioner) Package(name string, action pkgaction.PackageAction) error

func (*UbuntuSystemdProvisioner) Provision added in v0.5.2

func (provisioner *UbuntuSystemdProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error

func (*UbuntuSystemdProvisioner) String added in v0.5.2

func (provisioner *UbuntuSystemdProvisioner) String() string

Directories

Path Synopsis
Package provisiontest provides utilities for testing provisioners
Package provisiontest provides utilities for testing provisioners

Jump to

Keyboard shortcuts

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