package configobject import ( corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" "edge-infra.dev/pkg/sds/lib/os/file" "edge-infra.dev/pkg/sds/lib/os/passthrough" ) var configMapObjectType = "ConfigMap" type ConfigMap struct { corev1.ConfigMap } func (configMap *ConfigMap) ObjectType() string { return configMapObjectType } func (configMap *ConfigMap) GetFiles() map[string][]byte { return mapStringValuesToBytes(configMap.Data) } func mapStringValuesToBytes[K comparable](stringMap map[K]string) map[K][]byte { byteMap := map[K][]byte{} for key, value := range stringMap { byteMap[key] = []byte(value) } return byteMap } func (configMap *ConfigMap) GetLabelsSet() labels.Set { return labels.Set(configMap.GetLabels()) } func (configMap *ConfigMap) GetFieldsSet() (fields.Set, error) { return getFieldsSetFromConfigObject(configMap) } func (configMap *ConfigMap) Update(directory string, service string, fileHandler file.File, passthrough passthrough.Exec) error { return updateConfigObject(configMap, directory, service, fileHandler, passthrough) } func (configMap *ConfigMap) UpdateFiles(directory string, fileHandler file.File) (bool, error) { return updateConfigObjectFiles(configMap, directory, fileHandler) } func NewFromConfigMap(configMap corev1.ConfigMap) ConfigObject { return &ConfigMap{configMap} }