mirror of
https://github.com/stakater/Reloader.git
synced 2026-02-14 18:09:50 +00:00
Changes: modified: internal/pkg/cmd/reloader.go modified: internal/pkg/controller/controller.go modified: internal/pkg/util/util.go
67 lines
1.4 KiB
Go
67 lines
1.4 KiB
Go
package util
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/base64"
|
|
"sort"
|
|
"strings"
|
|
|
|
"github.com/stakater/Reloader/internal/pkg/crypto"
|
|
v1 "k8s.io/api/core/v1"
|
|
)
|
|
|
|
// ConvertToEnvVarName converts the given text into a usable env var
|
|
// removing any special chars with '_' and transforming text to upper case
|
|
func ConvertToEnvVarName(text string) string {
|
|
var buffer bytes.Buffer
|
|
upper := strings.ToUpper(text)
|
|
lastCharValid := false
|
|
for i := 0; i < len(upper); i++ {
|
|
ch := upper[i]
|
|
if (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9') {
|
|
buffer.WriteString(string(ch))
|
|
lastCharValid = true
|
|
} else {
|
|
if lastCharValid {
|
|
buffer.WriteString("_")
|
|
}
|
|
lastCharValid = false
|
|
}
|
|
}
|
|
return buffer.String()
|
|
}
|
|
|
|
func GetSHAfromConfigmap(configmap *v1.ConfigMap) string {
|
|
values := []string{}
|
|
for k, v := range configmap.Data {
|
|
values = append(values, k+"="+v)
|
|
}
|
|
for k, v := range configmap.BinaryData {
|
|
values = append(values, k+"="+base64.StdEncoding.EncodeToString(v))
|
|
}
|
|
sort.Strings(values)
|
|
return crypto.GenerateSHA(strings.Join(values, ";"))
|
|
}
|
|
|
|
func GetSHAfromSecret(data map[string][]byte) string {
|
|
values := []string{}
|
|
for k, v := range data {
|
|
values = append(values, k+"="+string(v[:]))
|
|
}
|
|
sort.Strings(values)
|
|
return crypto.GenerateSHA(strings.Join(values, ";"))
|
|
}
|
|
|
|
type List []string
|
|
|
|
type Map map[string]string
|
|
|
|
func (l *List) Contains(s string) bool {
|
|
for _, v := range *l {
|
|
if v == s {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|