Native Functions
Additional functions have been added to the jsonnet vm to add functionality.
They are able to be called from jsonnet using std.native('funcName'), where funcName is the name of the function.
Native function definitions: pkg/nativefuncs.
template
Templates the passed in input str using the json string config.
Config is unmarshaled into a json object and passed to the template engine.
The template engine used is sprig - Template Documentation.
The resulting string is returned.
Usage:
std.native("template")(config json, str string) (string)
Example:
local templateOutput = std.native("template")(config.data, "Hello {{ .Name }}");
helmTemplate
Provides the same Helm.Template functionality as the grafana/tanka package.
Charts are required to be present on the local filesystem, at a relative location to the file that calls helm.template() / std.native('helmTemplate').
This guarantees hermeticity.
Does not use sprig for templating.
Usage:
std.native("helmTemplate")(name string, chart string, opts TemplateOpts) (manifest.List)
Example:
local helm_template = std.native("helmTemplate")(config.release_name, "./vendor/"+config.chart_version, {
calledFrom: std.thisFile,
namespace: config.namespace,
values: config.helm_values,
});
[
object
for object in std.objectValues(helm_template)
if "kind" in object && object.kind != "Secret"
]
- Template Opts: godocs grafana/tanka
- Function Source: grafana/tanka v0.27.1
escapeStringRegex
Uses regexp.QuoteMeta to escape a string for use in a regular expression.
Usage:
std.native("escapeStringRegex")(str string) (string)
Example:
local clean_string = std.native("escapeStringRegex")(config.knarly_string);
regexMatch
Uses regexp.MatchString to check if a string matches a regular expression.
Usage:
std.native("regexMatch")(regex string, str string) (bool)
Example:
// check if a string is numbers
if std.native("regexMatch")("\d+", config.thing) then config.thing else ""
regexSubst
Uses regexp.ReplaceAllString to replace all occurrences of a regular expression in a string.
Usage:
std.native("regexSubst")(regex string, src string, repl string) (string)
Example:
local stringVar = std.native("regexSubst")("\d", config.thing, "<num>");