refactor: move all port management code to standalone ports plugin
This change makes interacting with port mappings more clear - folks might previously set the port mapping to the proxy type or vice-versa. The existing proxy:ports* commands still exist but will show a deprecation warning for a single minor release.
This commit is contained in:
@@ -2,8 +2,6 @@ package proxy
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/dokku/dokku/plugins/config"
|
||||
)
|
||||
|
||||
// TriggerProxyIsEnabled prints true or false depending on whether the proxy is enabled
|
||||
@@ -24,69 +22,3 @@ func TriggerProxyType(appName string) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// TriggerPostCertsRemove unsets port config vars after SSL cert is added
|
||||
func TriggerPostCertsRemove(appName string) error {
|
||||
keys := []string{"DOKKU_PROXY_SSL_PORT"}
|
||||
if err := config.UnsetMany(appName, keys, false); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return removeProxyPorts(appName, filterAppProxyPorts(appName, "https", 443))
|
||||
}
|
||||
|
||||
// TriggerPostCertsUpdate sets port config vars after SSL cert is added
|
||||
func TriggerPostCertsUpdate(appName string) error {
|
||||
port := config.GetWithDefault(appName, "DOKKU_PROXY_PORT", "")
|
||||
sslPort := config.GetWithDefault(appName, "DOKKU_PROXY_SSL_PORT", "")
|
||||
proxyPortMap := getProxyPortMap(appName)
|
||||
|
||||
toUnset := []string{}
|
||||
if port == "80" {
|
||||
toUnset = append(toUnset, "DOKKU_PROXY_PORT")
|
||||
}
|
||||
if sslPort == "443" {
|
||||
toUnset = append(toUnset, "DOKKU_PROXY_SSL_PORT")
|
||||
}
|
||||
|
||||
if len(toUnset) > 0 {
|
||||
if err := config.UnsetMany(appName, toUnset, false); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
var http80Ports []PortMap
|
||||
for _, portMap := range proxyPortMap {
|
||||
if portMap.Scheme == "http" && portMap.HostPort == 80 {
|
||||
http80Ports = append(http80Ports, portMap)
|
||||
}
|
||||
}
|
||||
|
||||
if len(http80Ports) > 0 {
|
||||
var https443Ports []PortMap
|
||||
for _, portMap := range proxyPortMap {
|
||||
if portMap.Scheme == "https" && portMap.HostPort == 443 {
|
||||
https443Ports = append(https443Ports, portMap)
|
||||
}
|
||||
}
|
||||
|
||||
if err := removeProxyPorts(appName, https443Ports); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var toAdd []PortMap
|
||||
for _, portMap := range http80Ports {
|
||||
toAdd = append(toAdd, PortMap{
|
||||
Scheme: "https",
|
||||
HostPort: 443,
|
||||
ContainerPort: portMap.ContainerPort,
|
||||
})
|
||||
}
|
||||
|
||||
if err := addProxyPorts(appName, toAdd); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user