MCPcopy
hub / github.com/openfaas/faas / Read

Method Read

gateway/types/readconfig.go:57–171  ·  view source on GitHub ↗

Read fetches gateway server configuration from environmental variables

(hasEnv HasEnv)

Source from the content-addressed store, hash-verified

55
56// Read fetches gateway server configuration from environmental variables
57func (ReadConfig) Read(hasEnv HasEnv) (*GatewayConfig, error) {
58 cfg := GatewayConfig{
59 PrometheusHost: "prometheus",
60 PrometheusPort: 9090,
61 }
62
63 defaultDuration := time.Second * 60
64
65 cfg.ReadTimeout = parseIntOrDurationValue(hasEnv.Getenv("read_timeout"), defaultDuration)
66 cfg.WriteTimeout = parseIntOrDurationValue(hasEnv.Getenv("write_timeout"), defaultDuration)
67 cfg.UpstreamTimeout = parseIntOrDurationValue(hasEnv.Getenv("upstream_timeout"), defaultDuration)
68
69 if len(hasEnv.Getenv("functions_provider_url")) > 0 {
70 var err error
71 cfg.FunctionsProviderURL, err = url.Parse(hasEnv.Getenv("functions_provider_url"))
72 if err != nil {
73 return nil, fmt.Errorf("if functions_provider_url is provided, then it should be a valid URL, error: %s", err)
74 }
75 }
76
77 if len(hasEnv.Getenv("logs_provider_url")) > 0 {
78 var err error
79 cfg.LogsProviderURL, err = url.Parse(hasEnv.Getenv("logs_provider_url"))
80 if err != nil {
81 return nil, fmt.Errorf("if logs_provider_url is provided, then it should be a valid URL, error: %s", err)
82 }
83 } else if cfg.FunctionsProviderURL != nil {
84 cfg.LogsProviderURL, _ = url.Parse(cfg.FunctionsProviderURL.String())
85 }
86
87 faasNATSAddress := hasEnv.Getenv("faas_nats_address")
88 if len(faasNATSAddress) > 0 {
89 cfg.NATSAddress = &faasNATSAddress
90 }
91
92 faasNATSPort := hasEnv.Getenv("faas_nats_port")
93 if len(faasNATSPort) > 0 {
94 port, err := strconv.Atoi(faasNATSPort)
95 if err == nil {
96 cfg.NATSPort = &port
97 } else {
98 return nil, fmt.Errorf("faas_nats_port invalid number: %s", faasNATSPort)
99 }
100 }
101
102 faasNATSClusterName := hasEnv.Getenv("faas_nats_cluster_name")
103 if len(faasNATSClusterName) > 0 {
104 cfg.NATSClusterName = &faasNATSClusterName
105 } else {
106 v := "faas-cluster"
107 cfg.NATSClusterName = &v
108 }
109
110 faasNATSChannel := hasEnv.Getenv("faas_nats_channel")
111 if len(faasNATSChannel) > 0 {
112 cfg.NATSChannel = &faasNATSChannel
113 } else {
114 v := "faas-request"

Calls 3

parseIntOrDurationValueFunction · 0.85
parseBoolValueFunction · 0.85
GetenvMethod · 0.65