add public key template functions

This commit is contained in:
Mikaël Cluseau
2025-07-06 10:18:54 +02:00
parent d77588274b
commit 6651ff0364
5 changed files with 58 additions and 18 deletions

View File

@ -124,7 +124,7 @@ func eachFragment(path string, searchList []FS, walk func(io.Reader) error) (err
log.Print("#!gen ", cmdArgs)
}
cmd := "gen/" + cmdArgs[0]
cmd := *dir + "/gen/" + cmdArgs[0]
args := cmdArgs[1:]
genOutput, err := exec.Command(cmd, args...).Output()
if err != nil {

View File

@ -203,7 +203,7 @@ func (ctx *renderContext) renderConfigTo(buf io.Writer, configTemplate *clusters
}
}
func (ctx *renderContext) templateFuncs(ctxMap map[string]any) map[string]interface{} {
func (ctx *renderContext) templateFuncs(ctxMap map[string]any) map[string]any {
cluster := ctx.Cluster.Name
getKeyCert := func(name, funcName string) (s string, err error) {
@ -229,14 +229,15 @@ func (ctx *renderContext) templateFuncs(ctxMap map[string]any) map[string]interf
key += "/" + ctx.Host.Name
}
if funcName == "tls_dir" {
switch funcName {
case "tls_dir":
// needs the dir name
dir := "/etc/tls/" + name
s = fmt.Sprintf("{{ %s %q %q %q %q %q %q %q }}", funcName,
dir, cluster, req.CA, key, req.Profile, req.Label, buf.String())
} else {
default:
s = fmt.Sprintf("{{ %s %q %q %q %q %q %q }}", funcName,
cluster, req.CA, key, req.Profile, req.Label, buf.String())
}
@ -266,6 +267,9 @@ func (ctx *renderContext) templateFuncs(ctxMap map[string]any) map[string]interf
"tls_key": func(name string) (string, error) {
return getKeyCert(name, "tls_key")
},
"tls_pubkey": func(name string) string {
return fmt.Sprintf("{{ tls_pubkey %q %q }}", ctx.Cluster.Name, name)
},
"tls_crt": func(name string) (s string, err error) {
return getKeyCert(name, "tls_crt")