Updates the following dependencies to latest:
* Masterminds/semver
* Masterminds/sprig
* ghodss/yaml
* satori/go.uuid -> google/uuid
* huandu/xstrings
* imdario/mergo
* crypto
* alecthomas/kingpin.v2
* yaml.v2
As usual Go libraries are YOLO-versioned, so who knows what changed
here. I'll be going through `sprig` at least to add that to the
changelog.
This relates to #152.
These changes overrides the `default` function provided by sprig with
an alternative to retrieve variable values from variables that might
not have been declared at all.
Referencing a variable in a template that is not declared, will lead
to the underlying templating functionality raising an error, causing
kontemplate to exit.
The override alternative to `default` accepts a second string argument
with the variable name. If the variable in question has not been
declared the first argument's value would be returned, just as the
original `default` function does.
Introduces a test which will merge variables defined at every possible
layer together and ensure that the loaded context configuration is as
expected.
The test data provides an actual resource set template that can be
tested locally from a kontemplate source checkout:
kontemplate template context/testdata/merging/context.yaml --var cliVar=cliVar
Changes the logic for merging context values to be unambiguous and
easy to follow.
* loadDefaultVars returns the default vars directly instead of
performing merging in addition
* all merging is performed in `mergeContextValues` using explicit
explanations for every step of the merge.
After this commit the order of merging goes from least to most
"specific", please read the explanatory comments for more information.
This relates to #142.
This lets users choose the executable (either by full path or via a
$PATH-entry) to be used when executing `kubectl`.
This is useful in, for example, OpenShift based setups.
This fixes#143
In some cases the value of a variable may contain an equals sign,
which would not work in the previous version.
This uses `SplitN` to split the variable specifier into a
pre-determined number (2) of sub-slices. Further `=`-symbols will then
be included in the second substring.
This directory is the default for state directories managed by
systemd, which will be the main use-case of journaldriver when running
it on NixOS.
Relates to nixos/nixpkgs#42134
Lets users specify environment variables to configure the monitored
resource descriptor. In combination with service account support this
can be used to configure journaldriver on non-GCP machines.
The supported environment variables are:
* `GOOGLE_CLOUD_PROJECT`: Project ID of the project to which to report
logs
* `LOG_NAME`: Name of the Stackdriver Logging log into which to write
entries
Adds support for authenticating towards Google's APIs by using static
service account credentials which can be retrieved from the GCP
console.
Users can toggle the behaviour by specifying the
`GOOGLE_APPLICATION_CREDENTIALS` environment variable.
Still slightly below the Stackdriver limit. However, previous errors
seem to have mostly been related to JSON payloads - which has been
fixed in the previous commit.
In some cases Stackdriver seems to return error responses for batched
inserts.
This change will log the error response body and status from
Stackdriver for all insertion errors.
Instead of relying on Stackdriver's ingestion timestamps, parse
timestamps out of journal entries and provide those to Stackdriver.
If a timestamp could not be parsed out of a log entry, the ingestion
time is used as the fallback.