Documentation ¶
Overview ¶
Package utils provides generic utility functions.
Package utils provides generic utility functions.
Package utils provides generic utility functions.
Package utils provides generic utility functions.
Package utils provides generic utility functions.
Package utils provides generic helper functions.
Package utils provides generic helper functions.
Package utils provides generic utility functions.
Package utils provides generic helper functions.
Package utils provides generic utility functions.
Index ¶
- func AddImageNameAnnotation(ociPath string, referenceToDigest map[string]string) error
- func AddRootHint(hints map[string]string, rootKey string, hintText string) map[string]string
- func AddRootListHint(hints map[string]string, listKey string, listValue string, hintText string) map[string]string
- func ByteFormat(inputNum float64, precision int) string
- func ColorPrintYAML(data any, hints map[string]string, spaceRootLists bool)
- func CosignSignBlob(blobPath string, outputSigPath string, keyPath string, ...) ([]byte, error)
- func CosignVerifyBlob(blobRef string, sigRef string, keyPath string) error
- func DownloadToFile(src string, dst string, cosignKeyPath string) (err error)
- func ExecuteWait(waitTimeout, waitNamespace, condition, kind, identifier string, ...) error
- func FindYamlTemplates(config any, prefix string, suffix string) (map[string]string, error)
- func GetCosignArtifacts(image string) (cosignList []string, err error)
- func GetFinalExecutableCommand() (string, error)
- func GetFinalExecutablePath() (string, error)
- func GetHtpasswdString(username string, password string) (string, error)
- func HasImageLayers(img v1.Image) (bool, error)
- func LoadOCIImage(imgPath string, refInfo transform.Image) (v1.Image, error)
- func MakeTempDir(basePath string) (string, error)
- func ReadYaml(path string, destConfig any) error
- func ReloadYamlTemplate(config any, mappings map[string]string) error
- func RenderProgressBarForLocalDirWrite(filepath string, expectedTotal int64, completeChan chan error, ...)
- func RoundUp(input float64, places int) (newVal float64)
- func Sget(ctx context.Context, image, key string, out io.Writer) error
- func SortDependencies(data []Dependency) ([]string, error)
- func SplitFile(srcPath string, chunkSizeBytes int) (err error)
- func SplitYAML(yamlData []byte) ([]*unstructured.Unstructured, error)
- func SplitYAMLToString(yamlData []byte) ([]string, error)
- func WriteYaml(path string, srcConfig any, perm fs.FileMode) error
- type Credential
- type Dependency
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddImageNameAnnotation ¶
AddImageNameAnnotation adds an annotation to the index.json file so that the deploying code can figure out what the image reference <-> digest shasum will be.
func AddRootHint ¶
AddRootHint adds a hint string for a given root key.
func AddRootListHint ¶
func AddRootListHint(hints map[string]string, listKey string, listValue string, hintText string) map[string]string
AddRootListHint adds a hint string for a given root list key and value.
func ByteFormat ¶
ByteFormat formats a number of bytes into a human readable string.
func ColorPrintYAML ¶
ColorPrintYAML pretty prints a yaml file to the console.
func CosignSignBlob ¶
func CosignSignBlob(blobPath string, outputSigPath string, keyPath string, passwordFunc func(bool) ([]byte, error)) ([]byte, error)
CosignSignBlob signs the provide binary and returns the signature
func CosignVerifyBlob ¶
CosignVerifyBlob verifies the jackal.yaml.sig was signed with the key provided by the flag
func DownloadToFile ¶
DownloadToFile downloads a given URL to the target filepath (including the cosign key if necessary).
func ExecuteWait ¶
func ExecuteWait(waitTimeout, waitNamespace, condition, kind, identifier string, timeout time.Duration) error
ExecuteWait executes the wait-for command.
func FindYamlTemplates ¶
FindYamlTemplates finds strings with a given prefix in a config.
func GetCosignArtifacts ¶
GetCosignArtifacts returns signatures and attestations for the given image
func GetFinalExecutableCommand ¶
GetFinalExecutableCommand returns the final path to the Jackal executable including and library prefixes and overrides.
func GetFinalExecutablePath ¶
GetFinalExecutablePath returns the absolute path to the current executable, following any symlinks along the way.
func GetHtpasswdString ¶
GetHtpasswdString converts a username and password to a properly formatted and hashed format for `htpasswd`.
func HasImageLayers ¶
HasImageLayers checks if any layers in the v1.Image are known image layers.
func LoadOCIImage ¶
LoadOCIImage returns a v1.Image with the image ref specified from a location provided, or an error if the image cannot be found.
func MakeTempDir ¶
MakeTempDir creates a temp directory with the jackal- prefix.
func ReloadYamlTemplate ¶
ReloadYamlTemplate marshals a given config, replaces strings and unmarshals it back.
func RenderProgressBarForLocalDirWrite ¶
func RenderProgressBarForLocalDirWrite(filepath string, expectedTotal int64, completeChan chan error, updateText string, successText string)
RenderProgressBarForLocalDirWrite creates a progress bar that continuously tracks the progress of writing files to a local directory and all of its subdirectories. NOTE: This function runs infinitely until either completeChan or errChan is triggered, this function should be run in a goroutine while a different thread/process is writing to the directory.
func Sget ¶
Sget performs a cosign signature verification on a given image using the specified public key.
func SortDependencies ¶
func SortDependencies(data []Dependency) ([]string, error)
SortDependencies performs a topological sort on a dependency graph and returns a slice of the nodes in order of their precedence. The input data is a map of nodes to a slice of its dependencies.
E.g: A depends on B & C, B depends on C and C has no dependencies: {"A": ["B", "C"], "B": ["C"], "C": []string{}}
Note sort order is dependent on the slice order of the input data for nodes with the same in-degree (i.e. the same number of dependencies).
func SplitFile ¶
SplitFile will take a srcFile path and split it into files based on chunkSizeBytes the first file will be a metadata file containing: - sha256sum of the original file - number of bytes in the original file - number of files the srcFile was split into SplitFile will delete the original file
Returns: - fileNames: list of file paths srcFile was split across - sha256sum: sha256sum of the srcFile before splitting - err: any errors encountered
func SplitYAML ¶
func SplitYAML(yamlData []byte) ([]*unstructured.Unstructured, error)
SplitYAML splits a YAML file into unstructured objects. Returns list of all unstructured objects found in the yaml. If an error occurs, returns objects that have been parsed so far too. Source: https://github.com/argoproj/gitops-engine/blob/v0.5.2/pkg/utils/kube/kube.go#L286.
func SplitYAMLToString ¶
SplitYAMLToString splits a YAML file into strings. Returns list of yamls found in the yaml. If an error occurs, returns objects that have been parsed so far too. Source: https://github.com/argoproj/gitops-engine/blob/v0.5.2/pkg/utils/kube/kube.go#L304.
Types ¶
type Credential ¶
Credential represents authentication for a given host.
func FindAuthForHost ¶
func FindAuthForHost(baseURL string) *Credential
FindAuthForHost finds the authentication scheme for a given host using .git-credentials then .netrc.
type Dependency ¶
Dependency is an interface that represents a node in a list of dependencies.