component

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2023 License: Apache-2.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EtcdCaCrt              = "ca.crt"
	EtcdCaKey              = "ca.key"
	SnapshotFilenameBucket = "snapshot.db"
)
View Source
const (
	MasterSaKey     = "sa.key"
	MasterSaPub     = "sa.pub"
	MasterFProxyCrt = "front-proxy-ca.crt"
	MasterFProxyKey = "front-proxy-ca.key"
	MasterCaKey     = "ca.key"
	MasterCaCrt     = "ca.crt"
)
View Source
const (
	JoinFile                 string        = "join.sh"
	BucketPath               string        = "join"
	LocalJoinFilePath        string        = "."
	DefaultJointTimeoutValue time.Duration = 30 * time.Minute
)
View Source
const (
	OpenVPNServerCert = "server.crt"
	OpenVPNServerKey  = "server.key"
	OpenVPNCaCert     = "ca.crt"
	OpenVPNCaKey      = "ca.key"
	OpenVPNCRL        = "ca.crl"
	OpenVPNTaKey      = "ta.key"
	OpenVPNPath       = "pki/vpn"
)
View Source
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"
)
View Source
const (
	SSHUserSpecs                  = "ssh-users.yml"
	SSHBucketDir                  = "ssh"
	SSHAuthorizedKeysFileName     = "authorized_keys"
	SSHAuthorizedKeysTempFileName = "authorized_keys_tmp"
	SSHSudoerDir                  = "/etc/sudoers.d"
)

Variables

View Source
var (
	Cert = 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},
	}
	CertConfig = pki.CertConfig{
		Config:             Cert,
		PublicKeyAlgorithm: 0,
	}
)

Functions

func GetUidGid

func GetUidGid(username string) (uid, gid int)

Types

type BackoffNode

type BackoffNode struct {
	Node
	OverWrite bool
}

type ClusterComponentData

type ClusterComponentData struct {
	*ClusterConfig
	*storage.Data
}

type ClusterConfig

type ClusterConfig struct {
	NodeName string        `json:"nodeName" mapstructure:"nodeName"`
	Etcd     EtcdConfig    `json:"etcd"     mapstructure:"etcd"`
	Master   MasterConfig  `json:"master"   mapstructure:"master"`
	Node     NodeConfig    `json:"node"     mapstructure:"node"`
	OpenVPN  OpenVPNConfig `json:"openvpn"  mapstructure:"openvpn"`
	SSH      SSHConfig     `json:"sshkeys"  mapstructure:"sshkeys"`
}

ClusterConfig represents the configuration for the whole cluster

type Etcd

type Etcd struct {
	ClusterComponentData
	StopFlag bool
}

Etcd implements the ClusterComponent Interface

func (Etcd) Backup

func (e Etcd) Backup() error

func (Etcd) Configure

func (e Etcd) Configure(overwrite bool) error

func (Etcd) Init

func (e Etcd) Init() error

func (Etcd) Restore

func (e Etcd) Restore() error

type EtcdConfig

type EtcdConfig struct {
	DataDir             string `json:"dataDir"             mapstructure:"dataDir"`
	CertDir             string `json:"certDir"             mapstructure:"certDir"`
	CaCertFilename      string `json:"caCertFilename"      mapstructure:"caCertFilename"`
	CaKeyFilename       string `json:"caKeyFilename"       mapstructure:"caKeyFilename"`
	ClientCertFilename  string `json:"clientCertFilename"  mapstructure:"clientCertFilename"`
	InitialClusterToken string `json:"initialClusterToken" mapstructure:"initialClusterToken"`
	SnapshotFile        string `json:"snapshotFile"        mapstructure:"snapshotFile"`
	ClientKeyFilename   string `json:"clientKeyFilename"   mapstructure:"clientKeyFilename"`
	Endpoint            string `json:"endpoint"            mapstructure:"endpoint"`
}

EtcdConfig is used to backup/restore/configure etcd nodes

type HTTPAdapterSet

type HTTPAdapterSet struct {
	Name string `json:"name" mapstructure:"name"`
	Uri  string `json:"uri"  mapstructure:"uri"`
}

type ListOutput added in v0.2.0

type ListOutput struct {
	User      string             `json:"user"`
	ValidFrom string             `json:"valid_from"`
	ValidTo   string             `json:"valid_to"`
	Expired   bool               `json:"expired"`
	Revoked   RevocationResponse `json:"revoke_info"`
}

type Master

type Master struct {
	ClusterComponentData
}

Master implements the ClusterComponent interface

func (Master) Configure

func (m Master) Configure(overwrite bool) error

Configure implements

func (Master) Init

func (m Master) Init() error

type MasterConfig

type MasterConfig struct {
	CertDir          string `json:"certDir"              mapstructure:"certDir"`
	CaCertFile       string `json:"caCertFilename"       mapstructure:"caCertFilename"`
	CaKeyFile        string `json:"caKeyFilename"        mapstructure:"caKeyFilename"`
	SaPubFile        string `json:"saPubFilename"        mapstructure:"saPubFilename"`
	SaKeyFile        string `json:"saKeyFilename"        mapstructure:"saKeyFilename"`
	ProxyCaCertFile  string `json:"proxyCaCertFilename"  mapstructure:"proxyCaCertFilename"`
	ProxyKeyCertFile string `json:"proxyKeyCertFilename" 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)

func (Node) Configure

func (n Node) Configure(overwrite bool) error

Configure basically joins the nodes to the cluster

func (Node) Init

func (n Node) Init(s string) error

Init is for interface compliance, now is empty

type NodeConfig

type NodeConfig struct {
	CloudProvider string `json:"caKeyFilename" mapstructure:"caKeyFilename"`
	// contains filtered or unexported fields
}

NodeConfig is used to backup/restore/configure worker nodes (backup and restore are not implemented right now)

type OpenVPN

type OpenVPN struct {
	ClusterComponentData
}

func (OpenVPN) Configure

func (o OpenVPN) Configure(overwrite bool) error

func (OpenVPN) Init

func (o OpenVPN) Init() error

type OpenVPNClient

type OpenVPNClient struct {
	ClusterComponentData
}

func (OpenVPNClient) CreateUser added in v0.1.0

func (o OpenVPNClient) CreateUser(clientName string) error

func (OpenVPNClient) ListUserCertificates added in v0.2.0

func (o OpenVPNClient) ListUserCertificates(output string) error

func (OpenVPNClient) RevokeUser added in v0.1.0

func (o OpenVPNClient) RevokeUser(clientName string) error

type OpenVPNConfig

type OpenVPNConfig struct {
	CertDir string   `json:"certDir" mapstructure:"certDir"`
	Servers []string `json:"servers" mapstructure:"servers"`
}

type RevocationResponse added in v0.2.0

type RevocationResponse struct {
	Revoked    bool      `json:"revoked"`
	RevokeTime time.Time `json:"revoked_time"`
}

type SSHComponent

type SSHComponent struct {
	ClusterComponentData
}

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() error

type SSHConfig

type SSHConfig struct {
	User            string         `json:"user"            mapstructure:"user"`
	TempDir         string         `json:"tempDir"         mapstructure:"tempDir"`
	LocalDirConfigs string         `json:"localDirConfigs" mapstructure:"localDirConfigs"`
	Adapter         HTTPAdapterSet `json:"adapter"         mapstructure:"adapter"`
}

type SSHUsersFile

type SSHUsersFile struct {
	Users []UserSpec `yaml:"users"`
}

type SystemUser

type SystemUser struct {
	Name string
	Home string
	Gid  int
	Uid  int
}

type UserSpec

type UserSpec struct {
	Name   string `yaml:"name"`
	UserID string `yaml:"user_id"`
}

Jump to

Keyboard shortcuts

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