Merge pull request #8047 from dokku/disable-letsencrypt

Add ability to disable letsencrypt for a given application or globally
This commit is contained in:
Jose Diaz-Gonzalez
2025-10-16 23:51:56 -04:00
committed by GitHub
2 changed files with 26 additions and 12 deletions

View File

@@ -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]

View File

@@ -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-")