feat: add ability to set shm-size property

This doesn't yet manage process volumes, but the scaffolding is there to allow interacting with the property.
This commit is contained in:
Jose Diaz-Gonzalez
2025-03-06 22:48:49 -05:00
parent 52c05558f9
commit 888d1d4bf3
4 changed files with 41 additions and 6 deletions

View File

@@ -138,12 +138,13 @@ dokku scheduler-k3s:set --global network-interface eth1
The k3s plugin provides a number of settings that can be used to managed deployments on a per-app basis. The following table outlines ones not covered elsewhere:
| Name | Description | Global Default |
|---------------------|---------------------------------------------------|----------------|
| deploy-timeout | Controls when app deploys will timeout in seconds | 300s |
| namespace | Controls the namespace used for resource creation | default |
| rollback-on-failure | Whether to rollback failed deploys | false |
| image-pull-secrets | Name of a kubernetes secret used to auth against a registry | Contents of `~/.docker/config.json` from Dokku server |
| Name | Description | Global Default |
|-----------------------|---------------------------------------------------|--------------------|
| `deploy-timeout` | Controls when app deploys will timeout in seconds | `300s` |
| `image-pull-secrets` | Name of a kubernetes secret used to auth against a registry | Contents of `~/.docker/config.json` from Dokku server |
| `namespace` | Controls the namespace used for resource creation | `default` |
| `rollback-on-failure` | Whether to rollback failed deploys | `false` |
| `shm-size` | Default shared memory size for pods | Kubernetes default |
All settings can be set via the `scheduler-k3s:set` command. Using `deploy-timeout` as an example:

View File

@@ -1227,6 +1227,23 @@ func getComputedRollbackOnFailure(appName string) string {
return rollbackOnFailure
}
func getShmSize(appName string) string {
return common.PropertyGetDefault("scheduler-k3s", appName, "shm-size", "")
}
func getGlobalShmSize() string {
return common.PropertyGetDefault("scheduler-k3s", "--global", "shm-size", "")
}
func getComputedShmSize(appName string) string {
shmSize := getShmSize(appName)
if shmSize == "" {
shmSize = getGlobalShmSize()
}
return shmSize
}
func getGlobalGlobalToken() string {
return common.PropertyGet("scheduler-k3s", "--global", "token")
}

View File

@@ -35,6 +35,9 @@ func ReportSingleApp(appName string, format string, infoFlag string) error {
"--scheduler-k3s-computed-rollback-on-failure": reportComputedRollbackOnFailure,
"--scheduler-k3s-rollback-on-failure": reportRollbackOnFailure,
"--scheduler-k3s-global-rollback-on-failure": reportGlobalRollbackOnFailure,
"--scheduler-k3s-computed-shm-size": reportComputedShmSize,
"--scheduler-k3s-global-shm-size": reportGlobalShmSize,
"--scheduler-k3s-shm-size": reportShmSize,
}
chartProperties, err := common.PropertyGetAllByPrefix("scheduler-k3s", "--global", "chart.")
@@ -172,3 +175,15 @@ func reportRollbackOnFailure(appName string) string {
func reportGlobalRollbackOnFailure(appName string) string {
return getGlobalRollbackOnFailure()
}
func reportComputedShmSize(appName string) string {
return getComputedShmSize(appName)
}
func reportGlobalShmSize(appName string) string {
return getGlobalShmSize()
}
func reportShmSize(appName string) string {
return getShmSize(appName)
}

View File

@@ -23,6 +23,7 @@ var (
"image-pull-secrets": "",
"namespace": "",
"rollback-on-failure": "",
"shm-size": "",
}
// GlobalProperties is a map of all valid global k3s properties
@@ -38,6 +39,7 @@ var (
"namespace": true,
"network-interface": true,
"rollback-on-failure": true,
"shm-size": true,
"token": true,
}
)