diff --git a/docs/deployment/schedulers/k3s.md b/docs/deployment/schedulers/k3s.md index 2846949e9..3f05ef279 100644 --- a/docs/deployment/schedulers/k3s.md +++ b/docs/deployment/schedulers/k3s.md @@ -213,6 +213,18 @@ The default value may be set by passing an empty value for the option. dokku scheduler-k3s:set --global letsencrypt-server staging ``` +Letsencrypt can be completely disabled for a given app by setting the `letsencrypt-server` to `false` + +```shell +dokku scheduler-k3s:set node-js-app letsencrypt-server false +``` + +The server can also be disabled globally, and then conditionally enabled on a per-app basis: + +```shell +dokku scheduler-k3s:set --global letsencrypt-server false +``` + ### Customizing Annotations and Labels > [!NOTE] diff --git a/plugins/scheduler-k3s/triggers.go b/plugins/scheduler-k3s/triggers.go index 298ee7fe2..b89aa017c 100644 --- a/plugins/scheduler-k3s/triggers.go +++ b/plugins/scheduler-k3s/triggers.go @@ -226,22 +226,24 @@ func TriggerSchedulerDeploy(scheduler string, appName string, imageTag string) e return fmt.Errorf("Error loading environment for deployment: %w", err) } - issuerName := "letsencrypt-stag" server := getComputedLetsencryptServer(appName) - if server == "prod" || server == "production" { - issuerName = "letsencrypt-prod" - } else if server != "stag" && server != "staging" { - return fmt.Errorf("Invalid letsencrypt server config: %s", server) - } - - tlsEnabled := false letsencryptEmailStag := getGlobalLetsencryptEmailStag() letsencryptEmailProd := getGlobalLetsencryptEmailProd() - if issuerName == "letsencrypt-stag" { - tlsEnabled = letsencryptEmailStag != "" - } - if issuerName == "letsencrypt-prod" { + tlsEnabled := false + + issuerName := "" + switch server { + case "prod", "production": + issuerName = "letsencrypt-prod" tlsEnabled = letsencryptEmailProd != "" + case "stag", "staging": + issuerName = "letsencrypt-stag" + tlsEnabled = letsencryptEmailStag != "" + case "false": + issuerName = "" + tlsEnabled = false + default: + return fmt.Errorf("Invalid letsencrypt server config: %s", server) } chartDir, err := os.MkdirTemp("", "dokku-chart-")