mirror of
https://github.com/stakater/Reloader.git
synced 2026-08-20 20:46:30 +00:00
57 lines
1.5 KiB
Go
57 lines
1.5 KiB
Go
package common
|
|
|
|
import (
|
|
"bytes"
|
|
"math/rand"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
var (
|
|
letters = []rune("abcdefghijklmnopqrstuvwxyz")
|
|
)
|
|
|
|
const (
|
|
// ConfigmapUpdateOnChangeAnnotation is an annotation to detect changes in configmaps
|
|
ConfigmapUpdateOnChangeAnnotation = "configmap.reloader.stakater.com/reload"
|
|
// SecretUpdateOnChangeAnnotation is an annotation to detect changes in secrets
|
|
SecretUpdateOnChangeAnnotation = "secret.reloader.stakater.com/reload"
|
|
// ConfigmapEnvarPostfix is a postfix for configmap envVar
|
|
ConfigmapEnvarPostfix = "_CONFIGMAP"
|
|
// SecretEnvarPostfix is a postfix for secret envVar
|
|
SecretEnvarPostfix = "_SECRET"
|
|
// EnvVarPrefix is a Prefix for environment variable
|
|
EnvVarPrefix = "STAKATER_"
|
|
)
|
|
|
|
// 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()
|
|
}
|
|
|
|
// RandSeq generates a random sequence
|
|
func RandSeq(n int) string {
|
|
rand.Seed(time.Now().UnixNano())
|
|
b := make([]rune, n)
|
|
for i := range b {
|
|
b[i] = letters[rand.Intn(len(letters))]
|
|
}
|
|
return string(b)
|
|
}
|