This repository has been archived by the owner on Aug 24, 2020. It is now read-only.
/
config.go
56 lines (47 loc) · 1.8 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package main
import (
"time"
envstruct "code.cloudfoundry.org/go-envstruct"
)
type CAPI struct {
Addr string `env:"CAPI_ADDR, required, report"`
CAPath string `env:"CAPI_CA_PATH, required, report"`
CommonName string `env:"CAPI_COMMON_NAME, required, report"`
}
type UAA struct {
ClientID string `env:"UAA_CLIENT_ID, required"`
ClientSecret string `env:"UAA_CLIENT_SECRET, required"`
Addr string `env:"UAA_ADDR, required, report"`
CAPath string `env:"UAA_CA_PATH, required, report"`
}
type Config struct {
LogCacheGatewayAddr string `env:"LOG_CACHE_GATEWAY_ADDR, required, report"`
Addr string `env:"ADDR, required, report"`
InternalIP string `env:"INTERNAL_IP, report"`
HealthPort int `env:"HEALTH_PORT, report"`
CertPath string `env:"EXTERNAL_CERT, required, report"`
KeyPath string `env:"EXTERNAL_KEY, required, report"`
SkipCertVerify bool `env:"SKIP_CERT_VERIFY, report"`
ProxyCAPath string `env:"PROXY_CA_PATH, required, report"`
SecurityEventLog string `env:"SECURITY_EVENT_LOG, report"`
TokenPruningInterval time.Duration `env:"TOKEN_PRUNING_INTERVAL, report"`
CacheExpirationInterval time.Duration `env:"CACHE_EXPIRATION_INTERVAL, report"`
CAPI CAPI
UAA UAA
}
func LoadConfig() (*Config, error) {
cfg := Config{
SkipCertVerify: false,
Addr: ":8083",
InternalIP: "0.0.0.0",
HealthPort: 6065,
LogCacheGatewayAddr: "localhost:8081",
TokenPruningInterval: time.Minute,
CacheExpirationInterval: time.Minute,
}
err := envstruct.Load(&cfg)
if err != nil {
return nil, err
}
return &cfg, nil
}