kr8_native_funcs

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2025 License: MIT Imports: 21 Imported by: 0

Documentation

Overview

Package kr8_native_funcs provides native functions that jsonnet code can reference. Functions include processing docker-compose files, helm charts, templating, URL and IP address parsing.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NativeHelmTemplate

func NativeHelmTemplate() *jsonnet.NativeFunction

Allows executing helm template to process a helm chart and make available to kr8+ configuration.

Source: https://github.com/grafana/tanka/blob/v0.27.1/pkg/helm/template.go#L23

func NativeHelp

func NativeHelp(allFuncs []*jsonnet.NativeFunction) *jsonnet.NativeFunction

func NativeKompose

func NativeKompose() *jsonnet.NativeFunction

Allows converting a docker-compose string into kubernetes resources using kompose. Files in the directory must be in the format `[docker-]compose.y[a]ml`. RootDir is usually `std.thisFile()`.

Source: https://github.com/kubernetes/kompose/blob/main/cmd/convert.go

Inputs: `rootDir`, `listFiles`, `namespace`.

func NativeNetAddressARPA

func NativeNetAddressARPA() *jsonnet.NativeFunction

Convert address to addr.APRA DNS name.

Inputs: "rawIP".

func NativeNetAddressBinary

func NativeNetAddressBinary() *jsonnet.NativeFunction

Return binary string representation of address. This is the default stringer format for v6 net.IP.

Inputs: "rawIP".

func NativeNetAddressCalcSubnetsV4

func NativeNetAddressCalcSubnetsV4() *jsonnet.NativeFunction

Return a list of networks of a given masklen that can be extracted from an IPv4 CIDR. The mask provided must be a larger-integer than the current mask. If set to 0 Subnet carves the network in half.

Inputs: "ip4Net", "maskLen".

func NativeNetAddressCalcSubnetsV6

func NativeNetAddressCalcSubnetsV6() *jsonnet.NativeFunction

Return a list of networks of a given masklen that can be extracted from an IPv6 CIDR. The mask provided must be a larger-integer than the current mask. If set to 0 Subnet carves the network in half. Hostmask must be provided if desired.

Inputs: "ip6Net", "netMaskLen", "hostMaskLen".

func NativeNetAddressCompare

func NativeNetAddressCompare() *jsonnet.NativeFunction

Compare two addresses.

0 if a==b, -1 if a<b, 1 if a>b.

func NativeNetAddressDec

func NativeNetAddressDec() *jsonnet.NativeFunction

PreviousIP returns a net.IP decremented by one from the input address. If you underflow the IP space the zero address is returned.

Inputs: "rawIP".

func NativeNetAddressDecBy

func NativeNetAddressDecBy() *jsonnet.NativeFunction

Returns a net.IP that is lower than the supplied net.IP by the supplied integer value. If you underflow the IP space the zero address is returned.

Inputs: "rawIP", "count".

func NativeNetAddressDelta

func NativeNetAddressDelta() *jsonnet.NativeFunction

Gets the delta of two addresses. Takes two net.IP's as input and returns the difference between them up to the limit of uint32.

Inputs: "rawIP, "otherIP".

func NativeNetAddressHex

func NativeNetAddressHex() *jsonnet.NativeFunction

Return hex representation of address. This is the default stringer format for v6 net.IP.

Inputs: "rawIP".

func NativeNetAddressInc

func NativeNetAddressInc() *jsonnet.NativeFunction

NextIP returns a net.IP incremented by one from the input address. If you overflow the IP space the all-ones address is returned.

Inputs: "rawIP".

func NativeNetAddressIncBy

func NativeNetAddressIncBy() *jsonnet.NativeFunction

Returns a net.IP that is greater than the supplied net.IP by the supplied integer value. If you overflow the IP space the all-ones address is returned.

Inputs: "rawIP", "count".

func NativeNetAddressNetsBetween

func NativeNetAddressNetsBetween() *jsonnet.NativeFunction

Returns a slice of netblocks spanning the range between the two networks, inclusively. Returns single-address netblocks if required.

Inputs: "ipNet", "otherIPNet".

func NativeNetAddressSort

func NativeNetAddressSort() *jsonnet.NativeFunction

Sort list of ip addresses.

Inputs: "listIPs".

func NativeNetIPInfo

func NativeNetIPInfo() *jsonnet.NativeFunction

net.IP tools. https://github.com/c-robinson/iplib .

Inputs: "rawIP".

func NativeNetUrl

func NativeNetUrl() *jsonnet.NativeFunction

Decode URL information from a string. Based on https://github.com/lintnet/go-jsonnet-native-functions/blob/main/pkg/net/url/url.go .

Inputs: "rawURL".

func NativeRegexEscape

func NativeRegexEscape() *jsonnet.NativeFunction

Escapes a string for use in regex.

Inputs: "str".

func NativeRegexMatch

func NativeRegexMatch() *jsonnet.NativeFunction

Matches a string against a regex pattern.

Inputs: "regex", "string".

func NativeRegexSubst

func NativeRegexSubst() *jsonnet.NativeFunction

Substitutes a regex pattern in a string with another string.

Inputs: "regex", "src", "repl".

func NativeSprigTemplate

func NativeSprigTemplate() *jsonnet.NativeFunction

Uses sprig to process passed in config data and template. Sprig template guide: https://masterminds.github.io/sprig/ .

Inputs: "config" "templateStr".

func RegisterNativeFuncs

func RegisterNativeFuncs(jvm *jsonnet.VM)

Registers additional native functions in the jsonnet VM. These functions are used to extend the functionality of jsonnet. Adds on to functions part of the jsonnet standard lib: https://jsonnet.org/ref/stdlib.html

Types

type IPV4

type IPV4 struct {
	IP           string
	Mask         int
	CIDR         string
	Count        uint32
	FirstAddress string
	LastAddress  string
	Broadcast    string
}

An IPv4 address or subnet range.

func IPV4Info

func IPV4Info(rawIP string) (*IPV4, error)

Parses an IPv4 object from a string.

type IPV6

type IPV6 struct {
	IP           string
	NetMask      string
	HostMask     string
	CIDR         string
	Count        uint128.Uint128
	FirstAddress string
	LastAddress  string
}

An IPv6 address or subnet range.

func IPV6Info

func IPV6Info(rawIP string) (*IPV6, error)

Parses an IPv6 object from a string.

type KomposeHook

type KomposeHook struct{}

func (*KomposeHook) Fire

func (*KomposeHook) Fire(entry *kLogger.Entry) error

func (*KomposeHook) Levels

func (*KomposeHook) Levels() []kLogger.Level

type KomposeParams

type KomposeParams struct {
	// Root directory of the compose files
	RootDir string `json:"rootDir"`
	// The list of compose files to convert.
	ComposeFiles []string `json:"composeFileList"`
	// Namespace to assign to resources.
	Namespace string `json:"namespace"`
}

func ParseKomposeParams

func ParseKomposeParams(args []interface{}) (*KomposeParams, error)

func (*KomposeParams) ExtractParameters

func (params *KomposeParams) ExtractParameters()

type NativeFuncURL

type NativeFuncURL struct {
	Scheme string `json:"scheme"`
	// encoded opaque data
	Opaque string `json:"opaque"`
	// username information
	Username string `json:"username"`
	// Whether the password field is set
	PasswordSet bool `json:"passwordSet"`
	// password information
	Password string `json:"password"`
	// host or host:port (see Hostname and Port methods)
	Host string `json:"host"`
	// path (relative paths may omit leading slash)
	Path string `json:"path"`
	// encoded path hint (see EscapedPath method)
	RawPath string `json:"pathRaw"`
	// query values
	Query map[string]interface{} `json:"query"`
	// encoded query values, without '?'
	RawQuery string `json:"queryRaw"`
	// fragment for references, without '#'
	Fragment string `json:"fragment"`
	// encoded fragment hint (see EscapedFragment method)
	RawFragment string `json:"fragmentRaw"`
}

Contains the url information.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL