Skip to content

Commit 83101ce

Browse files
authored
Enable longhorn storage reserved percentage conf (#1133)
Enabling storage-reserved-percentage-for-default-disk configuration as part of the install.harvester.longhorn.defaultSettings The following behaviour is enforced: * values can range between 0% and 30% * default value if no config passed is 0% * max value is 30% Signed-off-by: Martin Dekov <martin.dekov@suse.com>
1 parent 326b8b4 commit 83101ce

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

pkg/config/config.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ type LHDefaultSettings struct {
123123
// from Longhorn v1.5.0, LH merges the above two into one
124124
// the above two are not used afterwards, but Harvester keeps them for compatibility
125125
GuaranteedInstanceManagerCPU *uint32 `json:"guaranteedInstanceManagerCPU,omitempty"`
126+
127+
StorageReservedPercentageForDefaultDisk *uint32 `json:"storageReservedPercentageForDefaultDisk,omitempty"`
126128
}
127129

128130
type LonghornChartValues struct {

pkg/config/cos.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,15 @@ const (
2828
ifcfgGlobPattern = networkConfigDirectory + "ifcfg-*"
2929
ifrouteGlobPattern = networkConfigDirectory + "ifroute-*"
3030

31-
bootstrapConfigCount = 6
32-
defaultReplicaCount = 3
33-
defaultGuaranteedEngineManagerCPU = 12 // means percentage 12%
34-
defaultGuaranteedReplicaManagerCPU = 12 // means percentage 12%
35-
defaultGuaranteedInstanceManagerCPU = 12 // means percentage 12%
36-
defaultSystemImageSize = 3072 // size of /run/initramfs/cos-state/cOS/active.img in MB
31+
bootstrapConfigCount = 6
32+
defaultReplicaCount = 3
33+
defaultGuaranteedEngineManagerCPU = 12 // means percentage 12%
34+
defaultGuaranteedReplicaManagerCPU = 12 // means percentage 12%
35+
defaultGuaranteedInstanceManagerCPU = 12 // means percentage 12%
36+
defaultStorageReservedPercentageForDefaultDisk = 0 // means percentage 0%
37+
defaultSystemImageSize = 3072 // size of /run/initramfs/cos-state/cOS/active.img in MB
38+
39+
maxStorageReservedPercentageForDefaultDisk = 30 // means percentage 30%
3740
)
3841

3942
var (
@@ -302,6 +305,15 @@ func setConfigDefaultValues(config *HarvesterConfig) {
302305
if config.Harvester.Longhorn.DefaultSettings.GuaranteedInstanceManagerCPU != nil && *config.Harvester.Longhorn.DefaultSettings.GuaranteedInstanceManagerCPU > defaultGuaranteedInstanceManagerCPU {
303306
*config.Harvester.Longhorn.DefaultSettings.GuaranteedInstanceManagerCPU = defaultGuaranteedInstanceManagerCPU
304307
}
308+
309+
if config.Harvester.Longhorn.DefaultSettings.StorageReservedPercentageForDefaultDisk != nil {
310+
if *config.Harvester.Longhorn.DefaultSettings.StorageReservedPercentageForDefaultDisk > maxStorageReservedPercentageForDefaultDisk {
311+
*config.Harvester.Longhorn.DefaultSettings.StorageReservedPercentageForDefaultDisk = maxStorageReservedPercentageForDefaultDisk
312+
}
313+
} else {
314+
config.Harvester.Longhorn.DefaultSettings.StorageReservedPercentageForDefaultDisk = new(uint32)
315+
*config.Harvester.Longhorn.DefaultSettings.StorageReservedPercentageForDefaultDisk = uint32(defaultStorageReservedPercentageForDefaultDisk)
316+
}
305317
}
306318

307319
func initRancherdStage(config *HarvesterConfig, stage *yipSchema.Stage) error {

pkg/config/templates/rancherd-10-harvester.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,9 @@ resources:
185185
{{- if .Harvester.Longhorn.DefaultSettings.GuaranteedInstanceManagerCPU }}
186186
guaranteedInstanceManagerCPU: {{ .Harvester.Longhorn.DefaultSettings.GuaranteedInstanceManagerCPU }}
187187
{{- end }}
188+
{{- if .Harvester.Longhorn.DefaultSettings.StorageReservedPercentageForDefaultDisk }}
189+
storageReservedPercentageForDefaultDisk: {{ .Harvester.Longhorn.DefaultSettings.StorageReservedPercentageForDefaultDisk }}
190+
{{- end }}
188191
detachManuallyAttachedVolumesWhenCordoned: true
189192
nodeDrainPolicy: "allow-if-replica-is-stopped"
190193
harvester-network-controller:

0 commit comments

Comments
 (0)