Documentation
¶
Overview ¶
Package artifact defines the structural details of any given release artifact, so that the respective current and desired state can be mapped to their source code.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Struct ¶
type Struct struct {
// Condition is the namespace for the state requirements of any given
// infrastructure or service release.
Condition condition.Struct
// Reference is the namespace for the desired state of any given
// infrastructure or service release.
Reference reference.Struct
// Scheduler is the namespace for the current state of any given
// infrastructure or service release.
Scheduler scheduler.Struct
}
func (Struct) Drift ¶
Drift returns whether the current state is different from the desired state, or whether this artifcat should trigger a deployment regardless.
func (Struct) Merge ¶
Merge applies the given forward only patch, which means that only non-zero values can overwrite zero values. This particular patch strategy is important because Kayron manages release artifacts concurrently, so we must only ever update the leafs of an artifact where it actually changed. Otherwise zero values would overwrite artifact leafs that are patched by another goroutine in parallel.