Documentation ¶
Index ¶
- Constants
- Variables
- func GetUidGid(username string) (uid, gid int)
- type BackoffNode
- type ClusterComponent
- type ClusterComponentData
- type ClusterConfig
- type Etcd
- type EtcdConfig
- type HTTPAdapterSet
- type Master
- type MasterConfig
- type Node
- type NodeConfig
- type OpenVPN
- type OpenVPNClient
- type OpenVPNConfig
- type SSHComponent
- type SSHConfig
- type SSHUsersFile
- type SystemUser
- type UserSpec
Constants ¶
const ( EtcdCaCrt = "ca.crt" EtcdCaKey = "ca.key" SnapshotFilenameBucket = "snapshot.db" )
const ( MasterSaKey = "sa.key" MasterSaPub = "sa.pub" MasterFProxyCrt = "front-proxy-ca.crt" MasterFProxyKey = "front-proxy-ca.key" MasterCaKey = "ca.key" MasterCaCrt = "ca.crt" )
const ( JoinFile string = "join.sh" BucketPath string = "join" LocalJoinFilePath string = "." DefaultJointTimeoutValue time.Duration = 30 )
const ( OpenVPNServerCert = "server.crt" OpenVPNServerKey = "server.key" OpenVPNCaCert = "ca.crt" OpenVPNCaKey = "ca.key" OpenVPNCRL = "ca.crl" OpenVPNTaKey = "ta.key" OpenVPNPath = "pki/vpn" )
const ( OpenVPNClientCert = "client.crt" OpenVPNClientKey = "client.key" OpenVPNClientCaCert = "ca.crt" OpenVPNClientCaKey = "ca.key" OpenVPNClientTaKey = "ta.key" OpenVPNClientPath = "pki/vpn-client" OpenVPNClientRevokedPath = "pki/vpn-client/revoked" )
const ( SSHUserSpecs = "ssh-users.yml" SSHBucketDir = "ssh" SSHAuthorizedKeysFileName = "authorized_keys" SSHAuthorizedKeysTempFileName = "authorized_keys_tmp" SSHSudoerDir = "/etc/sudoers.d" )
Variables ¶
var ( CertConfig = certutil.Config{ CommonName: "SIGHUP s.r.l. Server", Organization: []string{"SIGHUP s.r.l."}, AltNames: certutil.AltNames{DNSNames: []string{}, IPs: []net.IP{}}, Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, } )
Functions ¶
Types ¶
type BackoffNode ¶
type ClusterComponent ¶
type ClusterComponent interface { Backup() error Restore() error Configure(bool) error Init(string) error }
ClusterComponent interface represent the basic concept of the component: etcd, master, node
type ClusterComponentData ¶
type ClusterComponentData struct { *ClusterConfig *storage.Data }
type ClusterConfig ¶
type ClusterConfig struct { NodeName string `mapstructure:"nodeName"` Etcd EtcdConfig `mapstructure:"etcd"` Master MasterConfig `mapstructure:"master"` Node NodeConfig `mapstructure:"node"` OpenVPN OpenVPNConfig `mapstructure:"openvpn"` SSH SSHConfig `mapstructure:"sshkeys"` }
ClusterConfig represents the configuration for the whole cluster
type Etcd ¶
type Etcd struct {
ClusterComponentData
}
Etcd implements the ClusterComponent Interface
type EtcdConfig ¶
type EtcdConfig struct { DataDir string `mapstructure:"dataDir"` CertDir string `mapstructure:"certDir"` CaCertFilename string `mapstructure:"caCertFilename"` CaKeyFilename string `mapstructure:"caKeyFilename"` ClientCertFilename string `mapstructure:"clientCertFilename"` InitialClusterToken string `mapstructure:"initialClusterToken"` SnapshotFile string `mapstructure:"snapshotFile"` ClientKeyFilename string `mapstructure:"clientKeyFilename"` Endpoint string `mapstructure:"endpoint"` }
EtcdConfig is used to backup/restore/configure etcd nodes
type HTTPAdapterSet ¶
type Master ¶
type Master struct {
ClusterComponentData
}
Master implements the ClusterComponent interface
type MasterConfig ¶
type MasterConfig struct { CertDir string `mapstructure:"certDir"` CaCertFile string `mapstructure:"caCertFilename"` CaKeyFile string `mapstructure:"caKeyFilename"` SaPubFile string `mapstructure:"saPubFilename"` SaKeyFile string `mapstructure:"saKeyFilename"` ProxyCaCertFile string `mapstructure:"proxyCaCertFilename"` ProxyKeyCertFile string `mapstructure:"proxyKeyCertFilename"` }
MasterConfig is used to backup/restore/configure master nodes
type Node ¶
type Node struct {
ClusterComponentData
}
Node represent the object that reflects what nodes need (implements ClusterComponent)
type NodeConfig ¶
type NodeConfig struct { CloudProvider string `mapstructure:"caKeyFilename"` // contains filtered or unexported fields }
NodeConfig is used to backup/restore/configure worker nodes (backup and restore have an empty implementation right now)
type OpenVPN ¶
type OpenVPN struct {
ClusterComponentData
}
type OpenVPNClient ¶
type OpenVPNClient struct {
ClusterComponentData
}
func (OpenVPNClient) CreateUser ¶ added in v0.1.0
func (o OpenVPNClient) CreateUser(clientName string) error
func (OpenVPNClient) RevokeUser ¶ added in v0.1.0
func (o OpenVPNClient) RevokeUser(clientName string) error
type OpenVPNConfig ¶
type SSHComponent ¶
type SSHComponent struct {
ClusterComponentData
}
func (SSHComponent) Backup ¶
func (o SSHComponent) Backup() error
Backup is a nil function to match the interface
func (SSHComponent) Configure ¶
func (o SSHComponent) Configure(overwrite bool) error
Configure setup for each file entry the github configured ssh keys in the authorized_keys file
func (SSHComponent) Init ¶
func (o SSHComponent) Init(dir string) error
func (SSHComponent) Restore ¶
func (o SSHComponent) Restore() error
Restore is a nil function to match the interface
type SSHConfig ¶
type SSHConfig struct { User string `mapstructure:"user"` TempDir string `mapstructure:"tempDir"` LocalDirConfigs string `mapstructure:"localDirConfigs"` Adapter HTTPAdapterSet `mapstructure:"adapter"` }
type SSHUsersFile ¶
type SSHUsersFile struct {
Users []UserSpec `yaml:"users"`
}