 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- func CreateTarGzArchive(archive RemoteFileSpec, bundle []RemoteFileSpec, loader *RemoteFileLoader) error
- type Content
- type Provisioner
- func (p *Provisioner) CreateTransferredFile(loader *RemoteFileLoader) (*TransferredFile, error)
- func (p *Provisioner) EntrypointRemotePath() string
- func (p *Provisioner) GetTransferredFile() TransferredFile
- func (p *Provisioner) RemoteCommand() (string, error)
- func (p *Provisioner) Send(s3Client S3ObjectPutter) error
 
- type RemoteFile
- type RemoteFileLoader
- type RemoteFileSpec
- type S3ObjectPutter
- type Source
- type TarGzArchiver
- type TransferredFile
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateTarGzArchive ¶
func CreateTarGzArchive(archive RemoteFileSpec, bundle []RemoteFileSpec, loader *RemoteFileLoader) error
Types ¶
type Content ¶
type Content struct {
	// contains filtered or unexported fields
}
    func NewBinaryContent ¶
func NewStringContent ¶
func (Content) GzippedBase64Content ¶
func (Content) MarshalYAML ¶
func (*Content) UnmarshalYAML ¶
type Provisioner ¶
type Provisioner struct {
	// Name is the name of the provisioner
	Name string `yaml:"name"`
	// EntrypointLocalPath is an executable file that is executed on the node after the bundle is transferred.
	// EntrypointLocalPath can either be one of bundled files that are transferred, or an already existing file on the remote node.
	EntrypointLocalPath string `yaml:"entrypoint"`
	// Bundle is the bundle the provisioner uses to provision nodes
	Bundle []RemoteFileSpec `yaml:"bundle,inline"`
	S3DirURI      string
	LocalCacheDir string
}
    func NewTarballingProvisioner ¶
func NewTarballingProvisioner(name string, bundle []RemoteFileSpec, entrypointLocalFilePath, s3DirURI string, pkgCacheDir string) *Provisioner
func (*Provisioner) CreateTransferredFile ¶
func (p *Provisioner) CreateTransferredFile(loader *RemoteFileLoader) (*TransferredFile, error)
func (*Provisioner) EntrypointRemotePath ¶
func (p *Provisioner) EntrypointRemotePath() string
func (*Provisioner) GetTransferredFile ¶
func (p *Provisioner) GetTransferredFile() TransferredFile
func (*Provisioner) RemoteCommand ¶
func (p *Provisioner) RemoteCommand() (string, error)
func (*Provisioner) Send ¶
func (p *Provisioner) Send(s3Client S3ObjectPutter) error
type RemoteFile ¶
type RemoteFile struct {
	Path string `yaml:"path"`
	// Content is the content of this file
	// Either Content or Source can be specified
	Content Content `yaml:"content,omitempty"`
	// Permissions is the desired file mode of the file at `Path`, that looks like 0755
	//
	// kube-aws runs chmod on the file towards the desired file mode.
	//
	// This is optional. When omitted, kube-aws doesn't run chmod
	Permissions uint `yaml:"permissions"`
	// Type, when specified to binary, omits diff for this file
	Type string `yaml:"type"`
	// Encrypted should be set to true when the content is encrypted with AWS KMS
	Encrypted bool `yaml:"encrypted"`
}
    RemoteFile is an instantiation of RemoteFileSpec
func NewRemoteFile ¶
func NewRemoteFile(spec RemoteFileSpec) *RemoteFile
func NewRemoteFileAtPath ¶
func NewRemoteFileAtPath(path string, content []byte) *RemoteFile
func NewRemoteFileWithContent ¶
func NewRemoteFileWithContent(spec RemoteFileSpec, content []byte) *RemoteFile
func (RemoteFile) GzippedBase64Content ¶
func (c RemoteFile) GzippedBase64Content() string
func (RemoteFile) PermissionsString ¶
func (c RemoteFile) PermissionsString() string
func (RemoteFile) RenderContent ¶
func (c RemoteFile) RenderContent(ctx interface{}) (string, error)
func (RemoteFile) RenderGzippedBase64Content ¶
func (c RemoteFile) RenderGzippedBase64Content(ctx interface{}) (string, error)
type RemoteFileLoader ¶
type RemoteFileLoader struct {
}
    func (*RemoteFileLoader) Load ¶
func (loader *RemoteFileLoader) Load(f RemoteFileSpec) (*RemoteFile, error)
type RemoteFileSpec ¶
type RemoteFileSpec struct {
	Path string `yaml:"path"`
	// Content is the content of this file
	// Either Content or Source can be specified
	Content Content `yaml:"content,omitempty"`
	// Template is the template for the content of this file
	// that exists for backward-compatibility with CustomFile
	Template string `yaml:"template,omitempty"`
	// Permissions is the desired file mode of the file at `Path`, that looks like 0755
	//
	// kube-aws runs chmod on the file towards the desired file mode.
	//
	// This is optional. When omitted, kube-aws doesn't run chmod
	Permissions uint `yaml:"permissions"`
	// Source specifies how and from where the content of this file is loaded
	// Either Content or Source can be specified
	Source `yaml:"source"`
	// Type, when specified to binary, omits diff for this file
	Type string `yaml:"type"`
	// CachePath specifies where this file should be cached locally
	CachePath string
}
    RemoteFileSpec represents a file that is restored on remote nodes
func (RemoteFileSpec) BaseName ¶
func (f RemoteFileSpec) BaseName() string
func (RemoteFileSpec) FileMode ¶
func (f RemoteFileSpec) FileMode() *os.FileMode
func (RemoteFileSpec) IsBinary ¶
func (f RemoteFileSpec) IsBinary() bool
func (RemoteFileSpec) Load ¶
func (f RemoteFileSpec) Load(loader *RemoteFileLoader) (*RemoteFile, error)
type S3ObjectPutter ¶
type S3ObjectPutter interface {
	PutObject(input *s3.PutObjectInput) (*s3.PutObjectOutput, error)
}
    type Source ¶
type Source struct {
	// Path is from where kube-aws loads the content of this `RemoteFileSpec`.
	Path string `yaml:"path"`
	// URL, when specified, instruct kube-aws to download the resource into `Path`.
	URL string `yaml:"url"`
	// Cert is the name of the keypair from which load the x509 cert
	Cert string `yaml:"cert"`
	// Cert is the name of the keypair from which load the x509 key
	Key string `yaml:"key"`
}
    type TarGzArchiver ¶
type TarGzArchiver struct {
	File RemoteFileSpec `yaml:",inline"`
	// Bundle is a set of files necessary for node provisioning, that is composed of multiple source files
	Bundle []RemoteFileSpec `yaml:"files"`
}
    TarGzArchiver is a archived bundle. TarGzArchiver is created, transferred, and then extracted to the etcd, controller and worker nodes to provide necessary files for node provisioning.
func (TarGzArchiver) Name ¶
func (p TarGzArchiver) Name() string
type TransferredFile ¶
type TransferredFile struct {
	RemoteFileSpec
	// contains filtered or unexported fields
}
    func (TransferredFile) ReceiveCommand ¶
func (t TransferredFile) ReceiveCommand() string
func (TransferredFile) S3URI ¶
func (t TransferredFile) S3URI() string
func (TransferredFile) Send ¶
func (t TransferredFile) Send(client S3ObjectPutter) error
 Click to show internal directories. 
   Click to hide internal directories.