Documentation ¶
Overview ¶
Package variables contains functions for interacting with variables
Package variables contains functions for interacting with variables ¶
Package variables contains functions for interacting with variables ¶
Package variables contains functions for interacting with variables
Index ¶
- Variables
- type Constant
- type InteractiveVariable
- type SetVariable
- type SetVariableMap
- type TextTemplate
- type Variable
- type VariableConfig
- func (vc *VariableConfig) CheckVariablePattern(name, pattern string) error
- func (vc *VariableConfig) GetAllTemplates() map[string]*TextTemplate
- func (vc *VariableConfig) GetSetVariable(name string) (variable *SetVariable, ok bool)
- func (vc *VariableConfig) PopulateVariables(variables []InteractiveVariable, presetVariables map[string]string) error
- func (vc *VariableConfig) ReplaceTextTemplate(path string) error
- func (vc *VariableConfig) SetApplicationTemplates(applicationTemplates map[string]*TextTemplate)
- func (vc *VariableConfig) SetConstants(constants []Constant)
- func (vc *VariableConfig) SetVariable(name, value string, sensitive bool, autoIndent bool, varType VariableType)
- type VariableType
Constants ¶
This section is empty.
Variables ¶
var ( // IsUppercaseNumberUnderscore is a regex for uppercase, numbers and underscores. // https://regex101.com/r/tfsEuZ/1 IsUppercaseNumberUnderscore = regexp.MustCompile(`^[A-Z0-9_]+$`).MatchString )
Functions ¶
This section is empty.
Types ¶
type Constant ¶
type Constant struct { // The name to be used for the constant Name string `json:"name" jsonschema:"pattern=^[A-Z0-9_]+$"` // The value to set for the constant during deploy Value string `json:"value"` // A description of the constant to explain its purpose on package create or deploy confirmation prompts Description string `json:"description,omitempty"` // Whether to automatically indent the variable's value (if multiline) when templating. Based on the number of chars before the start of ###ZARF_CONST_. AutoIndent bool `json:"autoIndent,omitempty"` // An optional regex pattern that a constant value must match before a package can be created. Pattern string `json:"pattern,omitempty"` }
Constant are constants that can be used to dynamically template K8s resources or run in actions.
type InteractiveVariable ¶
type InteractiveVariable struct { Variable `json:",inline"` // A description of the variable to be used when prompting the user a value Description string `json:"description,omitempty"` // The default value to use for the variable Default string `json:"default,omitempty"` // Whether to prompt the user for input for this variable Prompt bool `json:"prompt,omitempty"` }
InteractiveVariable is a variable that can be used to prompt a user for more information
type SetVariable ¶
type SetVariable struct { Variable `json:",inline"` // The value the variable is currently set with Value string `json:"value"` }
SetVariable tracks internal variables that have been set during this run of Zarf
type SetVariableMap ¶
type SetVariableMap map[string]*SetVariable
SetVariableMap represents a map of variable names to their set values
type TextTemplate ¶
type TextTemplate struct { Sensitive bool AutoIndent bool Type VariableType Value string }
TextTemplate represents a value to be templated into a text file.
type Variable ¶
type Variable struct { // The name to be used for the variable Name string `json:"name" jsonschema:"pattern=^[A-Z0-9_]+$"` // Whether to mark this variable as sensitive to not print it in the log Sensitive bool `json:"sensitive,omitempty"` // Whether to automatically indent the variable's value (if multiline) when templating. Based on the number of chars before the start of ###ZARF_VAR_. AutoIndent bool `json:"autoIndent,omitempty"` // An optional regex pattern that a variable value must match before a package deployment can continue. Pattern string `json:"pattern,omitempty"` // Changes the handling of a variable to load contents differently (i.e. from a file rather than as a raw variable - templated files should be kept below 1 MiB) Type VariableType `json:"type,omitempty" jsonschema:"enum=raw,enum=file"` }
Variable represents a variable that has a value set programmatically
type VariableConfig ¶
type VariableConfig struct {
// contains filtered or unexported fields
}
VariableConfig represents a value to be templated into a text file.
func New ¶
func New(templatePrefix string, prompt func(variable InteractiveVariable) (value string, err error), logger *slog.Logger) *VariableConfig
New creates a new VariableConfig
func (*VariableConfig) CheckVariablePattern ¶
func (vc *VariableConfig) CheckVariablePattern(name, pattern string) error
CheckVariablePattern checks to see if a current variable is set to a value that matches its pattern
func (*VariableConfig) GetAllTemplates ¶
func (vc *VariableConfig) GetAllTemplates() map[string]*TextTemplate
GetAllTemplates gets all of the current templates stored in the VariableConfig
func (*VariableConfig) GetSetVariable ¶
func (vc *VariableConfig) GetSetVariable(name string) (variable *SetVariable, ok bool)
GetSetVariable gets a variable set within a VariableConfig by its name
func (*VariableConfig) PopulateVariables ¶
func (vc *VariableConfig) PopulateVariables(variables []InteractiveVariable, presetVariables map[string]string) error
PopulateVariables handles setting the active variables within a VariableConfig's SetVariableMap
func (*VariableConfig) ReplaceTextTemplate ¶
func (vc *VariableConfig) ReplaceTextTemplate(path string) error
ReplaceTextTemplate loads a file from a given path, replaces text in it and writes it back in place.
func (*VariableConfig) SetApplicationTemplates ¶
func (vc *VariableConfig) SetApplicationTemplates(applicationTemplates map[string]*TextTemplate)
SetApplicationTemplates sets the application-specific templates for the variable config (i.e. ZARF_REGISTRY for Zarf)
func (*VariableConfig) SetConstants ¶
func (vc *VariableConfig) SetConstants(constants []Constant)
SetConstants sets the constants for a variable config (templated as PREFIX_CONST_NAME)
func (*VariableConfig) SetVariable ¶
func (vc *VariableConfig) SetVariable(name, value string, sensitive bool, autoIndent bool, varType VariableType)
SetVariable sets a variable in a VariableConfig's SetVariableMap
type VariableType ¶
type VariableType string
VariableType represents a type of a Zarf package variable
const ( // RawVariableType is the default type for a Zarf package variable RawVariableType VariableType = "raw" // FileVariableType is a type for a Zarf package variable that loads its contents from a file FileVariableType VariableType = "file" )