outposts: use common config loader for outposts to support loading values from file

closes #4383

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2023-01-08 14:19:08 +01:00
parent 47aba4a996
commit 7eb6320d74
No known key found for this signature in database
4 changed files with 23 additions and 14 deletions

View File

@ -8,6 +8,7 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"goauthentik.io/internal/common" "goauthentik.io/internal/common"
"goauthentik.io/internal/config"
"goauthentik.io/internal/debug" "goauthentik.io/internal/debug"
"goauthentik.io/internal/outpost/ak" "goauthentik.io/internal/outpost/ak"
"goauthentik.io/internal/outpost/ldap" "goauthentik.io/internal/outpost/ldap"
@ -30,14 +31,14 @@ func main() {
DisableHTMLEscape: true, DisableHTMLEscape: true,
}) })
go debug.EnableDebugServer() go debug.EnableDebugServer()
akURL, found := os.LookupEnv("AUTHENTIK_HOST") akURL := config.Get().AuthentikHost
if !found { if akURL == "" {
fmt.Println("env AUTHENTIK_HOST not set!") fmt.Println("env AUTHENTIK_HOST not set!")
fmt.Println(helpMessage) fmt.Println(helpMessage)
os.Exit(1) os.Exit(1)
} }
akToken, found := os.LookupEnv("AUTHENTIK_TOKEN") akToken := config.Get().AuthentikToken
if !found { if akToken == "" {
fmt.Println("env AUTHENTIK_TOKEN not set!") fmt.Println("env AUTHENTIK_TOKEN not set!")
fmt.Println(helpMessage) fmt.Println(helpMessage)
os.Exit(1) os.Exit(1)

View File

@ -8,6 +8,7 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"goauthentik.io/internal/common" "goauthentik.io/internal/common"
"goauthentik.io/internal/config"
"goauthentik.io/internal/debug" "goauthentik.io/internal/debug"
"goauthentik.io/internal/outpost/ak" "goauthentik.io/internal/outpost/ak"
"goauthentik.io/internal/outpost/proxyv2" "goauthentik.io/internal/outpost/proxyv2"
@ -33,14 +34,14 @@ func main() {
DisableHTMLEscape: true, DisableHTMLEscape: true,
}) })
go debug.EnableDebugServer() go debug.EnableDebugServer()
akURL, found := os.LookupEnv("AUTHENTIK_HOST") akURL := config.Get().AuthentikHost
if !found { if akURL == "" {
fmt.Println("env AUTHENTIK_HOST not set!") fmt.Println("env AUTHENTIK_HOST not set!")
fmt.Println(helpMessage) fmt.Println(helpMessage)
os.Exit(1) os.Exit(1)
} }
akToken, found := os.LookupEnv("AUTHENTIK_TOKEN") akToken := config.Get().AuthentikToken
if !found { if akToken == "" {
fmt.Println("env AUTHENTIK_TOKEN not set!") fmt.Println("env AUTHENTIK_TOKEN not set!")
fmt.Println(helpMessage) fmt.Println(helpMessage)
os.Exit(1) os.Exit(1)

View File

@ -1,14 +1,23 @@
package config package config
type Config struct { type Config struct {
Debug bool `yaml:"debug" env:"AUTHENTIK_DEBUG"` // Core specific config
SecretKey string `yaml:"secret_key" env:"AUTHENTIK_SECRET_KEY"` SecretKey string `yaml:"secret_key" env:"AUTHENTIK_SECRET_KEY"`
Listen ListenConfig `yaml:"listen"`
Paths PathsConfig `yaml:"paths"` Paths PathsConfig `yaml:"paths"`
LogLevel string `yaml:"log_level" env:"AUTHENTIK_LOG_LEVEL"` LogLevel string `yaml:"log_level" env:"AUTHENTIK_LOG_LEVEL"`
ErrorReporting ErrorReportingConfig `yaml:"error_reporting"` ErrorReporting ErrorReportingConfig `yaml:"error_reporting"`
Redis RedisConfig `yaml:"redis"` Redis RedisConfig `yaml:"redis"`
Outposts OutpostConfig `yaml:"outposts" ` Outposts OutpostConfig `yaml:"outposts"`
// Config for both core and outposts
Debug bool `yaml:"debug" env:"AUTHENTIK_DEBUG"`
Listen ListenConfig `yaml:"listen"`
// Outpost specific config
// These are only relevant for proxy/ldap outposts, and cannot be set via YAML
// They are loaded via this config loader to support file:// schemas
AuthentikHost string `env:"AUTHENTIK_HOST"`
AuthentikToken string `env:"AUTHENTIK_TOKEN"`
} }
type RedisConfig struct { type RedisConfig struct {

View File

@ -3,8 +3,6 @@ package debug
import ( import (
"net/http" "net/http"
"net/http/pprof" "net/http/pprof"
"os"
"strings"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"goauthentik.io/internal/config" "goauthentik.io/internal/config"
@ -12,7 +10,7 @@ import (
func EnableDebugServer() { func EnableDebugServer() {
l := log.WithField("logger", "authentik.go_debugger") l := log.WithField("logger", "authentik.go_debugger")
if deb := os.Getenv("AUTHENTIK_DEBUG"); strings.ToLower(deb) != "true" { if !config.Get().Debug {
l.Info("not enabling debug server, set `AUTHENTIK_DEBUG` to `true` to enable it.") l.Info("not enabling debug server, set `AUTHENTIK_DEBUG` to `true` to enable it.")
return return
} }