Documentation ¶
Index ¶
- Constants
- Variables
- func CalculateChecksumOfDirectory(dir string) (string, error)
- func CalculateChecksumOfFile(path string) (string, error)
- func CalculateChecksumOfPaths(paths ...string) (string, error)
- func CalculateStringsChecksum(stringArr ...string) string
- func DecodeJsonPatchOperation(v interface{}) (jsonpatch.Operation, error)
- func FilesFromRoot(root string, filterFn func(dir string, name string, info os.FileInfo) bool) (files map[string]map[string]string, err error)
- func FindExecutableFilesInPath(dir string) (executables []string, nonExecutables []string, err error)
- func IsNonExistentPathError(err error) bool
- func JsonPatchFromBytes(data []byte) (jsonpatch.Patch, error)
- func JsonPatchFromReader(r io.Reader) (jsonpatch.Patch, error)
- func JsonPatchFromString(in string) (jsonpatch.Patch, error)
- func LabelsToLogFields(labelsMaps ...map[string]string) log.Fields
- func ListFullyIn(arr []string, ref []string) bool
- func ListIntersection(arrs ...[]string) (result []string)
- func ListSubtract(src []string, ignored ...[]string) (result []string)
- func ListUnion(src []string, more ...[]string) []string
- func MergeLabels(labelsMaps ...map[string]string) map[string]string
- func ModuleEnabledValue(i interface{}) (*bool, error)
- func ModuleNameFromValuesKey(moduleValuesKey string) string
- func ModuleNameToValuesKey(moduleName string) string
- func SortByReference(in []string, ref []string) []string
- func SortReverse(in []string) []string
- func SortReverseByReference(in []string, ref []string) []string
- func SymlinkInfo(path string, info os.FileInfo) (target string, isDir bool, err error)
- func ValidateHookValuesPatch(valuesPatch ValuesPatch, permittedRootKey string) error
- func WalkSymlinks(target string, linkName string, files map[string]map[string]string, ...) (symlinkedDirectories map[string]string, err error)
- type ApplyPatchMode
- type ModuleConfig
- func (mc *ModuleConfig) Checksum() string
- func (mc *ModuleConfig) FromConfigMapData(configData map[string]string) (*ModuleConfig, error)
- func (mc *ModuleConfig) FromYaml(yamlString []byte) (*ModuleConfig, error)
- func (mc *ModuleConfig) GetEnabled() string
- func (mc *ModuleConfig) LoadFromValues(values Values) (*ModuleConfig, error)
- func (mc ModuleConfig) String() string
- func (mc *ModuleConfig) WithEnabled(v bool) *ModuleConfig
- func (mc *ModuleConfig) WithUpdated(v bool) *ModuleConfig
- func (mc *ModuleConfig) WithValues(values Values) *ModuleConfig
- type Values
- func ApplyValuesPatch(values Values, valuesPatch ValuesPatch, mode ApplyPatchMode) (Values, bool, error)
- func MergeValues(values ...Values) Values
- func NewGlobalValues(globalSectionContent string) (Values, error)
- func NewValues(data map[string]interface{}) (Values, error)
- func NewValuesFromBytes(data []byte) (Values, error)
- func (v Values) AsBytes(format string) ([]byte, error)
- func (v Values) AsConfigMapData() (map[string]string, error)
- func (v Values) AsString(format string) (string, error)
- func (v Values) Checksum() (string, error)
- func (v Values) DebugString() string
- func (v Values) Global() Values
- func (v Values) HasGlobal() bool
- func (v Values) HasKey(key string) bool
- func (v Values) JsonBytes() ([]byte, error)
- func (v Values) JsonString() (string, error)
- func (v Values) SectionByKey(key string) Values
- func (v Values) YamlBytes() ([]byte, error)
- func (v Values) YamlString() (string, error)
- type ValuesPatch
- func AppendValuesPatch(valuesPatches []ValuesPatch, newValuesPatch ValuesPatch) []ValuesPatch
- func CompactPatches(existedOperations []*ValuesPatchOperation, ...) ValuesPatch
- func CompactValuesPatches(valuesPatches []ValuesPatch, newValuesPatch ValuesPatch) []ValuesPatch
- func EnabledFromValuesPatch(valuesPatch ValuesPatch) ValuesPatch
- func FilterValuesPatch(valuesPatch ValuesPatch, rootPath string) ValuesPatch
- func MustValuesPatch(res *ValuesPatch, err error) *ValuesPatch
- func NewValuesPatch() *ValuesPatch
- func ValuesPatchFromBytes(data []byte) (*ValuesPatch, error)
- func ValuesPatchFromFile(filePath string) (*ValuesPatch, error)
- type ValuesPatchOperation
- type ValuesPatchType
Constants ¶
const (
GlobalValuesKey = "global"
)
const MissingPathErrorMsg = "remove operation does not apply: doc is missing path"
const NonExistentPathErrorMsg = "error in remove for path:"
Error messages to distinguish non-typed errors from the 'json-patch' library.
Variables ¶
var ModuleDisabled = false
var ModuleEnabled = true
Functions ¶
func CalculateChecksumOfFile ¶
func DecodeJsonPatchOperation ¶
func DecodeJsonPatchOperation(v interface{}) (jsonpatch.Operation, error)
func FilesFromRoot ¶
func FilesFromRoot(root string, filterFn func(dir string, name string, info os.FileInfo) bool) (files map[string]map[string]string, err error)
FilesFromRoot returns a map with path and array of files under it
func FindExecutableFilesInPath ¶
func FindExecutableFilesInPath(dir string) (executables []string, nonExecutables []string, err error)
FindExecutableFilesInPath returns a list of executable and a list of non-executable files in path
func IsNonExistentPathError ¶
func JsonPatchFromBytes ¶
func JsonPatchFromReader ¶
func JsonPatchFromString ¶
func ListFullyIn ¶
ListFullyIn returns whether all 'arr' items contains in `ref` array.
func ListIntersection ¶
ListIntersection returns an array with items that are present in all 'arrs' arrays.
func ListSubtract ¶
ListSubtract creates a new array from 'src' array with items that are not present in 'ignored' arrays.
func MergeLabels ¶
MergeLabels merges several maps into one. Last map keys overrides keys from first maps.
Can be used to copy a map if just one argument is used.
func ModuleEnabledValue ¶
func ModuleNameFromValuesKey ¶
ModuleNameFromValuesKey returns kebab-cased name from camelCased (verySimpleModule become ver-simple-module)
func ModuleNameToValuesKey ¶
ModuleNameToValuesKey returns camelCased name from kebab-cased (very-simple-module become verySimpleModule)
func SortByReference ¶
SortByReference returns a new array with items sorted by the order of 'ref' array.
func SortReverse ¶
SortReverse creates a copy of 'in' array and sort it in a reverse order.
func SortReverseByReference ¶
SortReverseByReference returns a new array with items, reverse sorted by the order of 'ref' array.
func SymlinkInfo ¶
func ValidateHookValuesPatch ¶
func ValidateHookValuesPatch(valuesPatch ValuesPatch, permittedRootKey string) error
func WalkSymlinks ¶
func WalkSymlinks(target string, linkName string, files map[string]map[string]string, filterFn func(dir string, name string, info os.FileInfo) bool) (symlinkedDirectories map[string]string, err error)
WalkSymlinks walks a directory, updates files map and returns symlinked directories
Types ¶
type ApplyPatchMode ¶
type ApplyPatchMode string
const IgnoreNonExistentPaths ApplyPatchMode = "ignore-non-existent-paths"
const Strict ApplyPatchMode = "strict"
type ModuleConfig ¶
type ModuleConfig struct { ModuleName string IsEnabled *bool Values Values IsUpdated bool ModuleConfigKey string ModuleEnabledKey string RawConfig []string }
func NewModuleConfig ¶
func NewModuleConfig(moduleName string) *ModuleConfig
func (*ModuleConfig) Checksum ¶
func (mc *ModuleConfig) Checksum() string
func (*ModuleConfig) FromConfigMapData ¶
func (mc *ModuleConfig) FromConfigMapData(configData map[string]string) (*ModuleConfig, error)
func (*ModuleConfig) FromYaml ¶
func (mc *ModuleConfig) FromYaml(yamlString []byte) (*ModuleConfig, error)
FromYaml loads module config from a yaml string.
Example:
simpleModule:
param1: 10 param2: 120
simpleModuleEnabled: true
func (*ModuleConfig) GetEnabled ¶
func (mc *ModuleConfig) GetEnabled() string
GetEnabled returns string description of enabled status.
func (*ModuleConfig) LoadFromValues ¶
func (mc *ModuleConfig) LoadFromValues(values Values) (*ModuleConfig, error)
LoadFromValues loads module config from a map.
Values for module in `values` map are addressed by a key. This key should be produced with ModuleNameToValuesKey.
func (ModuleConfig) String ¶
func (mc ModuleConfig) String() string
String returns description of ModuleConfig values.
func (*ModuleConfig) WithEnabled ¶
func (mc *ModuleConfig) WithEnabled(v bool) *ModuleConfig
func (*ModuleConfig) WithUpdated ¶
func (mc *ModuleConfig) WithUpdated(v bool) *ModuleConfig
func (*ModuleConfig) WithValues ¶
func (mc *ModuleConfig) WithValues(values Values) *ModuleConfig
type Values ¶
type Values map[string]interface{}
Values stores values for modules or hooks by name.
func ApplyValuesPatch ¶
func ApplyValuesPatch(values Values, valuesPatch ValuesPatch, mode ApplyPatchMode) (Values, bool, error)
ApplyValuesPatch applies a set of json patch operations to the values and returns a result
func MergeValues ¶
func NewGlobalValues ¶
NewGlobalValues creates Values with global section loaded from input string.
func NewValues ¶
NewValues load all sections from input data and makes sure that input map can be marshaled to yaml and that yaml is compatible with json.
func NewValuesFromBytes ¶
NewValuesFromBytes loads values sections from maps in yaml or json format
func (Values) AsConfigMapData ¶
AsConfigMapData returns values as map that can be used as a 'data' field in the ConfigMap.
func (Values) DebugString ¶
DebugString returns values as yaml or an error line if dump is failed
func (Values) JsonString ¶
func (Values) SectionByKey ¶
func (Values) YamlString ¶
type ValuesPatch ¶
type ValuesPatch struct {
Operations []*ValuesPatchOperation
}
func AppendValuesPatch ¶
func AppendValuesPatch(valuesPatches []ValuesPatch, newValuesPatch ValuesPatch) []ValuesPatch
func CompactPatches ¶
func CompactPatches(existedOperations []*ValuesPatchOperation, newOperations []*ValuesPatchOperation) ValuesPatch
CompactPatches modifies an array of existed patch operations according to the new array of patch operations. The rule is: only last operation for the path should be stored.
func CompactValuesPatches ¶
func CompactValuesPatches(valuesPatches []ValuesPatch, newValuesPatch ValuesPatch) []ValuesPatch
func EnabledFromValuesPatch ¶
func EnabledFromValuesPatch(valuesPatch ValuesPatch) ValuesPatch
func FilterValuesPatch ¶
func FilterValuesPatch(valuesPatch ValuesPatch, rootPath string) ValuesPatch
func MustValuesPatch ¶
func MustValuesPatch(res *ValuesPatch, err error) *ValuesPatch
TODO this one used only in tests
func NewValuesPatch ¶
func NewValuesPatch() *ValuesPatch
func ValuesPatchFromBytes ¶
func ValuesPatchFromBytes(data []byte) (*ValuesPatch, error)
ValuesPatchFromBytes reads a JSON stream of json patches and single operations from bytes and returns a ValuesPatch with all json patch operations. TODO do we need a separate ValuesPatchOperation type??
func ValuesPatchFromFile ¶
func ValuesPatchFromFile(filePath string) (*ValuesPatch, error)
func (*ValuesPatch) ApplyIgnoreNonExistentPaths ¶
func (p *ValuesPatch) ApplyIgnoreNonExistentPaths(doc []byte) ([]byte, error)
Apply calls jsonpatch.Apply to transform an input JSON document.
- errors from "remove" operations are ignored.
func (*ValuesPatch) ApplyStrict ¶
func (p *ValuesPatch) ApplyStrict(doc []byte) ([]byte, error)
ApplyStrict calls jsonpatch.Apply to transform a JSON document according to the patch.
- "remove" operation errors are not ignored. - absent paths are not ignored.
func (*ValuesPatch) MergeOperations ¶
func (p *ValuesPatch) MergeOperations(src *ValuesPatch)
func (*ValuesPatch) ToJsonPatch ¶
func (p *ValuesPatch) ToJsonPatch() (jsonpatch.Patch, error)
ToJsonPatch returns a jsonpatch.Patch with all operations.
type ValuesPatchOperation ¶
type ValuesPatchOperation struct { Op string `json:"op,omitempty"` Path string `json:"path,omitempty"` Value interface{} `json:"value,omitempty"` }
func (*ValuesPatchOperation) ToJsonPatch ¶
func (op *ValuesPatchOperation) ToJsonPatch() (jsonpatch.Patch, error)
ToJsonPatch returns a jsonpatch.Patch with one operation.
func (*ValuesPatchOperation) ToString ¶
func (op *ValuesPatchOperation) ToString() string
type ValuesPatchType ¶
type ValuesPatchType string
const ConfigMapPatch ValuesPatchType = "CONFIG_MAP_PATCH"
const MemoryValuesPatch ValuesPatchType = "MEMORY_VALUES_PATCH"