github.com/minio/minio@v0.0.0-20240328213742-3f72439b8a27/internal/config/ilm/ilm.go (about) 1 // Copyright (c) 2015-2024 MinIO, Inc. 2 // 3 // This file is part of MinIO Object Storage stack 4 // 5 // This program is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU Affero General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU Affero General Public License for more details. 14 // 15 // You should have received a copy of the GNU Affero General Public License 16 // along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 package ilm 19 20 import ( 21 "strconv" 22 23 "github.com/minio/minio/internal/config" 24 "github.com/minio/pkg/v2/env" 25 ) 26 27 // DefaultKVS default configuration values for ILM subsystem 28 var DefaultKVS = config.KVS{ 29 config.KV{ 30 Key: transitionWorkers, 31 Value: "100", 32 }, 33 config.KV{ 34 Key: expirationWorkers, 35 Value: "100", 36 }, 37 } 38 39 // Config represents the different configuration values for ILM subsystem 40 type Config struct { 41 TransitionWorkers int 42 ExpirationWorkers int 43 } 44 45 // LookupConfig - lookup ilm config and override with valid environment settings if any. 46 func LookupConfig(kvs config.KVS) (cfg Config, err error) { 47 tw, err := strconv.Atoi(env.Get(EnvILMTransitionWorkers, kvs.GetWithDefault(transitionWorkers, DefaultKVS))) 48 if err != nil { 49 return cfg, err 50 } 51 52 ew, err := strconv.Atoi(env.Get(EnvILMExpirationWorkers, kvs.GetWithDefault(expirationWorkers, DefaultKVS))) 53 if err != nil { 54 return cfg, err 55 } 56 57 cfg.TransitionWorkers = tw 58 cfg.ExpirationWorkers = ew 59 return cfg, nil 60 }