provision

package
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2016 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrDetectionFailed  = errors.New("OS type not recognized")
	ErrSSHCommandFailed = errors.New("SSH command failure")
	ErrNotImplemented   = errors.New("Runtime not implemented")
)
View Source
var (
	ErrUnknownYumOsRelease = errors.New("unknown OS for Yum repository")
)

Functions

func CheckSystemD added in v1.2.0

func CheckSystemD(p Provisioner) (bool, error)

func ConfigureAuth

func ConfigureAuth(p Provisioner) error

func GenerateCertificates added in v0.5.0

func GenerateCertificates(p Provisioner, k8sOptions kubernetes.KubernetesOptions, authOptions auth.AuthOptions) error

func GenerateKubeletConfig added in v0.5.0

func GenerateKubeletConfig(name string, targetDir string) (string, error)

func GeneratePolicyFile added in v1.1.2

func GeneratePolicyFile(name string) (string, error)

func Generatek8sManifest added in v0.5.0

func Generatek8sManifest(name string, targetDir string, version string) (string, error)

func Register

func Register(name string, p *RegisteredProvisioner)

Types

type ArchProvisioner added in v0.5.0

type ArchProvisioner struct {
	GenericProvisioner
}

func (*ArchProvisioner) CompatibleWithHost added in v0.5.0

func (provisioner *ArchProvisioner) CompatibleWithHost() bool

func (*ArchProvisioner) GenerateDockerOptions added in v0.5.0

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

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(k8sOptions kubernetes.KubernetesOptions, swarmOptions swarm.SwarmOptions, authOptions auth.AuthOptions, engineOptions engine.EngineOptions) error

func (*ArchProvisioner) Service added in v0.5.0

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

type Boot2DockerProvisioner

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

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) Generatek8sOptions

func (provisioner *Boot2DockerProvisioner) Generatek8sOptions() (*k8sOptions, error)

CAB: Investigate how much additional work would be needed to integrate options here

func (*Boot2DockerProvisioner) GetAuthOptions

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

func (*Boot2DockerProvisioner) GetDockerOptionsDir

func (provisioner *Boot2DockerProvisioner) GetDockerOptionsDir() string

func (*Boot2DockerProvisioner) GetDriver

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

func (*Boot2DockerProvisioner) GetKubernetesOptions added in v0.5.0

func (provisioner *Boot2DockerProvisioner) GetKubernetesOptions() kubernetes.KubernetesOptions

func (*Boot2DockerProvisioner) GetOsReleaseInfo added in v0.5.0

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

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(k8sOptions kubernetes.KubernetesOptions, swarmOptions swarm.SwarmOptions, authOptions auth.AuthOptions, engineOptions engine.EngineOptions) 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)

type CentosProvisioner

type CentosProvisioner struct {
	RedHatProvisioner
}

type CoreOSProvisioner added in v0.5.0

type CoreOSProvisioner struct {
	GenericProvisioner
}

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(k8sOptions kubernetes.KubernetesOptions, swarmOptions swarm.SwarmOptions, authOptions auth.AuthOptions, engineOptions engine.EngineOptions) error

func (*CoreOSProvisioner) Service added in v0.5.0

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

func (*CoreOSProvisioner) SetHostname added in v0.5.0

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

type DebianProvisioner

type DebianProvisioner struct {
	GenericProvisioner
}

func (*DebianProvisioner) GenerateDockerOptions

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

func (*DebianProvisioner) Package

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

func (*DebianProvisioner) Provision

func (provisioner *DebianProvisioner) Provision(k8sOptions kubernetes.KubernetesOptions, swarmOptions swarm.SwarmOptions, authOptions auth.AuthOptions, engineOptions engine.EngineOptions) error

func (*DebianProvisioner) Service

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

type DockerOptions

type DockerOptions struct {
	EngineOptions     string
	EngineOptionsPath string
}

type EngineConfigContext

type EngineConfigContext struct {
	DockerPort       int
	AuthOptions      auth.AuthOptions
	EngineOptions    engine.EngineOptions
	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 FedoraProvisioner

type FedoraProvisioner struct {
	RedHatProvisioner
}

type GenericProvisioner

type GenericProvisioner struct {
	OsReleaseId            string
	DockerOptionsDir       string
	DaemonOptionsFile      string
	KubernetesManifestFile string
	KubernetesKubeletPath  string
	Packages               []string
	OsReleaseInfo          *OsRelease
	Driver                 drivers.Driver
	AuthOptions            auth.AuthOptions
	EngineOptions          engine.EngineOptions
	SwarmOptions           swarm.SwarmOptions
	KubernetesOptions      kubernetes.KubernetesOptions
}

func (*GenericProvisioner) CompatibleWithHost

func (provisioner *GenericProvisioner) CompatibleWithHost() bool

func (*GenericProvisioner) GenerateDockerOptions

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

func (*GenericProvisioner) Generatek8sOptions

func (provisioner *GenericProvisioner) Generatek8sOptions() (*k8sOptions, error)

func (*GenericProvisioner) GetAuthOptions

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

func (*GenericProvisioner) GetDockerOptionsDir

func (provisioner *GenericProvisioner) GetDockerOptionsDir() string

func (*GenericProvisioner) GetDriver

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

func (*GenericProvisioner) GetKubernetesOptions added in v0.5.0

func (provisioner *GenericProvisioner) GetKubernetesOptions() kubernetes.KubernetesOptions

func (*GenericProvisioner) GetOsReleaseInfo added in v0.5.0

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

func (*GenericProvisioner) Hostname

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

func (*GenericProvisioner) SSHCommand

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

func (*GenericProvisioner) SetHostname

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

func (*GenericProvisioner) SetOsReleaseInfo

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

type OsRelease

type OsRelease struct {
	AnsiColor    string `osr:"ANSI_COLOR"`
	Name         string `osr:"NAME"`
	Version      string `osr:"VERSION"`
	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"`
}

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.5.0

type PackageListInfo struct {
	OsRelease        string
	OsReleaseVersion string
}

type Provisioner

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

	// Create Kubernetes Manifest file (return struct of content and path)
	Generatek8sOptions() (*k8sOptions, error)

	// Retrieve the Kubernetes configuration settings
	GetKubernetesOptions() kubernetes.KubernetesOptions

	// 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.AuthOptions

	// 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(k8sOptions kubernetes.KubernetesOptions, swarmOptions swarm.SwarmOptions, authOptions auth.AuthOptions, engineOptions engine.EngineOptions) 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

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

	// 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)
}

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

func NewCentosProvisioner(d drivers.Driver) Provisioner

func NewCoreOSProvisioner added in v0.5.0

func NewCoreOSProvisioner(d drivers.Driver) Provisioner

func NewDebianProvisioner

func NewDebianProvisioner(d drivers.Driver) Provisioner

func NewFedoraProvisioner

func NewFedoraProvisioner(d drivers.Driver) Provisioner

func NewOpenSUSEProvisioner added in v0.5.0

func NewOpenSUSEProvisioner(d drivers.Driver) Provisioner

func NewRancherProvisioner

func NewRancherProvisioner(d drivers.Driver) Provisioner

func NewRedHatProvisioner

func NewRedHatProvisioner(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

type RancherProvisioner

type RancherProvisioner struct {
	GenericProvisioner
}

func (*RancherProvisioner) Package

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

func (*RancherProvisioner) Provision

func (provisioner *RancherProvisioner) Provision(k8sOptions kubernetes.KubernetesOptions, swarmOptions swarm.SwarmOptions, authOptions auth.AuthOptions, engineOptions engine.EngineOptions) error

func (*RancherProvisioner) Service

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

func (*RancherProvisioner) SetHostname

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

type RedHatProvisioner

type RedHatProvisioner struct {
	GenericProvisioner
}

func (*RedHatProvisioner) ConfigurePackageList added in v0.5.0

func (provisioner *RedHatProvisioner) ConfigurePackageList() error

func (*RedHatProvisioner) GenerateDockerOptions

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

func (*RedHatProvisioner) Package

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

func (*RedHatProvisioner) Provision

func (provisioner *RedHatProvisioner) Provision(k8sOptions kubernetes.KubernetesOptions, swarmOptions swarm.SwarmOptions, authOptions auth.AuthOptions, engineOptions engine.EngineOptions) error

func (*RedHatProvisioner) SSHCommand

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

func (*RedHatProvisioner) Service

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

func (*RedHatProvisioner) SetHostname

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

type RegisteredProvisioner

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

Detection

type SUSEProvisioner added in v0.5.0

type SUSEProvisioner struct {
	GenericProvisioner
}

func (*SUSEProvisioner) GenerateDockerOptions added in v0.5.0

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

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(k8sOptions kubernetes.KubernetesOptions, swarmOptions swarm.SwarmOptions, authOptions auth.AuthOptions, engineOptions engine.EngineOptions) error

func (*SUSEProvisioner) Service added in v0.5.0

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

type SwarmCommandContext

type SwarmCommandContext struct {
	ContainerName string
	DockerDir     string
	DockerPort    int
	Ip            string
	Port          string
	AuthOptions   auth.AuthOptions
	SwarmOptions  swarm.SwarmOptions
	SwarmImage    string
}

type UbuntuProvisioner

type UbuntuProvisioner struct {
	GenericProvisioner
}

func (*UbuntuProvisioner) Package

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

func (*UbuntuProvisioner) Provision

func (provisioner *UbuntuProvisioner) Provision(k8sOptions kubernetes.KubernetesOptions, swarmOptions swarm.SwarmOptions, authOptions auth.AuthOptions, engineOptions engine.EngineOptions) error

func (*UbuntuProvisioner) Service

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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