wisski-cloud-distillery/internal/component/web/web.go
Tom Wiesing f19619ef9f
Add 'environment' package
This commit adds a new environment package that manages all calls to the
underlying operating system.
2022-09-18 14:24:22 +02:00

59 lines
1.3 KiB
Go

package web
import (
"embed"
"github.com/FAU-CDI/wisski-distillery/internal/component"
"github.com/FAU-CDI/wisski-distillery/pkg/environment"
)
// Web implements the ingress gateway for the distillery.
//
// It consists of an nginx docker container and an optional letsencrypt container.
type Web struct {
component.ComponentBase
}
func (Web) Name() string {
return "web"
}
func (web Web) Stack(env environment.Environment) component.StackWithResources {
if web.Config.HTTPSEnabled() {
return web.stackHTTPS(env)
} else {
return web.stackHTTP(env)
}
}
//go:embed all:web-https
//go:embed web-https.env
var httpsResources embed.FS
func (web Web) stackHTTPS(env environment.Environment) component.StackWithResources {
return web.MakeStack(env, component.StackWithResources{
Resources: httpsResources,
ContextPath: "web-https",
EnvPath: "web-https.env",
EnvContext: map[string]string{
"DEFAULT_HOST": web.Config.DefaultDomain,
},
})
}
//go:embed all:web-http
//go:embed web-http.env
var httpResources embed.FS
func (web Web) stackHTTP(env environment.Environment) component.StackWithResources {
return web.MakeStack(env, component.StackWithResources{
Resources: httpResources,
ContextPath: "web-http",
EnvPath: "web-http.env",
EnvContext: map[string]string{
"DEFAULT_HOST": web.Config.DefaultDomain,
},
})
}