...
1 package configobject
2
3 import (
4 corev1 "k8s.io/api/core/v1"
5 "k8s.io/apimachinery/pkg/fields"
6 "k8s.io/apimachinery/pkg/labels"
7
8 "edge-infra.dev/pkg/sds/lib/os/file"
9 "edge-infra.dev/pkg/sds/lib/os/passthrough"
10 )
11
12 var configMapObjectType = "ConfigMap"
13
14 type ConfigMap struct {
15 corev1.ConfigMap
16 }
17
18 func (configMap *ConfigMap) ObjectType() string {
19 return configMapObjectType
20 }
21
22 func (configMap *ConfigMap) GetFiles() map[string][]byte {
23 return mapStringValuesToBytes(configMap.Data)
24 }
25
26 func mapStringValuesToBytes[K comparable](stringMap map[K]string) map[K][]byte {
27 byteMap := map[K][]byte{}
28 for key, value := range stringMap {
29 byteMap[key] = []byte(value)
30 }
31 return byteMap
32 }
33
34 func (configMap *ConfigMap) GetLabelsSet() labels.Set {
35 return labels.Set(configMap.GetLabels())
36 }
37
38 func (configMap *ConfigMap) GetFieldsSet() (fields.Set, error) {
39 return getFieldsSetFromConfigObject(configMap)
40 }
41
42 func (configMap *ConfigMap) Update(directory string, service string, fileHandler file.File, passthrough passthrough.Exec) error {
43 return updateConfigObject(configMap, directory, service, fileHandler, passthrough)
44 }
45
46 func (configMap *ConfigMap) UpdateFiles(directory string, fileHandler file.File) (bool, error) {
47 return updateConfigObjectFiles(configMap, directory, fileHandler)
48 }
49
50 func NewFromConfigMap(configMap corev1.ConfigMap) ConfigObject {
51 return &ConfigMap{configMap}
52 }
53
View as plain text