Documentation
¶
Index ¶
Constants ¶
View Source
const ( AwsAccessKeyIdSuffix = "AWS_ACCESS_KEY_ID" AwsSecretAccessKeySuffix = "AWS_SECRET_ACCESS_KEY" ApiKeySuffix = "API_KEY" )
View Source
const ( ServerApiKeyEnv = "SERVER_API_KEY" DefaultTsState = "/var/lib/texit/tsstate" )
View Source
const (
TailnetApiKeySuffix = "TAILNET_API_KEY"
)
Variables ¶
View Source
var ( ErrMissingDatabaseHost = errors.New("missing database host") ErrMissingDatabasePort = errors.New("missing database port") ErrMissingDatabaseUser = errors.New("missing database user") ErrMissingDatabasePass = errors.New("missing database pass") ErrMissingDatabaseName = errors.New("missing database name") )
View Source
var ( ErrMissingProviderAwsAccessKey = fmt.Errorf("missing provider access key") ErrMissingProviderAwsSecretKey = fmt.Errorf("missing provider secret key") ErrMissingApiKey = fmt.Errorf("missing api key") ErrMissingProviderName = fmt.Errorf("missing provider name") )
View Source
var ( ErrMissingTailnetType = errors.New("missing tailnet type") ErrMissingTailnet = errors.New("missing tailnet") ErrMissingTailnetApiKey = errors.New("missing tailnet api key") ErrMissingUser = errors.New("missing headscale user") ErrMissingHeadscaleControlServer = errors.New("missing headscale control server") )
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
LogLevel string `yaml:"logLevel"`
Server *ServerConfig `yaml:"server"`
Tailnets []*TailnetConfig `yaml:"tailnets"`
Database *DatabaseConfig `yaml:"database"`
Providers []*ProviderConfig `yaml:"providers"`
}
func LoadFromData ¶ added in v0.0.6
func LoadFromFile ¶
Loads the application config from a file at the specified path.
type DatabaseConfig ¶
type DatabaseConfig struct {
// The database engine to use
Engine DatabaseEngine `yaml:"engine"`
// The host of the database
Host string `yaml:"host"`
// The port of the database
Port int `yaml:"port"`
// The username to connect to the database
Username string `yaml:"username"`
// The password to connect to the database
Password string `yaml:"password"`
// The name of the database
Database string `yaml:"database"`
// Location of the database file. For sqlite only
Location string `yaml:"location"`
}
Configuration for the database
func (*DatabaseConfig) Validate ¶
func (c *DatabaseConfig) Validate() error
type DatabaseEngine ¶
type DatabaseEngine string
const ( DatabaseEngineSqlite DatabaseEngine = "sqlite" DatabaseEngineDynamoDb DatabaseEngine = "dynamodb" )
type ProviderConfig ¶
type ProviderConfig struct {
// The type of provider, curretly only aws-ecs
Type ProviderType `yaml:"type"`
// The access key for the provider. This is only for AWS types.
AccessKey string `yaml:"accessKey"`
// The secret key for the provider. This is only for AWS types.
SecretKey string `yaml:"secretKey"`
// An api key for the provider.
ApiKey string `yaml:"apiKey"`
// The name of the provider.
Name string `yaml:"name"`
}
Configuration for a provider. Currently only AWS ECS.
func (*ProviderConfig) Validate ¶
func (c *ProviderConfig) Validate() error
type ProviderType ¶
type ProviderType string
const ( ProviderTypeAwsEcs ProviderType = "aws-ecs" ProviderTypeAwsEc2 ProviderType = "aws-ec2" ProviderTypeLinode ProviderType = "linode" )
func (ProviderType) String ¶
func (t ProviderType) String() string
type ServerConfig ¶
type ServerConfig struct {
// The address to listen on
Address string `yaml:"address"`
// If specified, the server will join the tailnet with the config provided
Tailnet *tsn.Config `yaml:"tailnet"`
// A static key to use for the API. If not specified, one will be generated.
APIKey string `yaml:"apiKey"` //TODO: make this better one day
}
Configuration for the server
func (*ServerConfig) Validate ¶
func (c *ServerConfig) Validate() error
type TailnetConfig ¶
type TailnetConfig struct {
// The type of tailnet, tailscale or headscale
Type TailnetType `yaml:"type"`
// The network of the tailnet. On tailscale this is the network id
Tailnet string `yaml:"tailnet"`
// The api token to communicate with the tailnet
ApiKey string `yaml:"apiKey"`
// The user to register exist nodes for.
User string `yaml:"user"`
// the control server to use. This is require for headscale
ControlServer string `yaml:"controlServer"`
}
Configuration for the tailnet exit nodes will join
func (*TailnetConfig) Validate ¶
func (c *TailnetConfig) Validate() error
type TailnetType ¶
type TailnetType string // tailscale or headscale
const ( TailnetTypeTailscale TailnetType = "tailscale" TailnetTypeHeadscale TailnetType = "headscale" )
func (TailnetType) String ¶
func (t TailnetType) String() string
Click to show internal directories.
Click to hide internal directories.