Target represents a single destination -- a cluster, for instance -- that Stages promote Freight to. A Target is descriptive: it holds target-specific values consumed by the promotion steps of Stages that govern it. It defines no promotion steps and no Freight sources of its own and therefore cannot effect any promotion itself. Its status records, per governing Stage, what Freight was last promoted to it and how that Freight is faring there.
Unchanged since Kargo v1.12.0
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
Spec describes the Target.
Params is a map of arbitrary, target-specific values. Values may be any valid JSON -- including nested objects and arrays -- so promotion steps can reference deeply nested data. Promotion steps of Stages that govern this Target may reference these values by key in their expressions (for example, target.params.branch or target.params.cluster.region).
Status describes the current status of the Target.
Stages records the Target's state with respect to each Stage that governs it, keyed by Stage name. A Target may be governed by several Stages at once, each promoting its own Freight to it, so everything observed about the Target is scoped to the Stage that observed it. This mirrors how Freight status keys currentlyIn, verifiedIn, and approvedFor by Stage name. An entry exists only once a Promotion from that Stage to this Target has succeeded. A Stage that governs the Target but has never promoted to it has no entry.
CurrentFreight is the FreightCollection that the Stage's most recent successful Promotion to this Target rendered. Because a Stage may request Freight from several origins and a single Promotion changes only one of them, this is a collection rather than a single Freight reference: it holds one entry per origin, exactly as the Stage's own current collection does, so the Target's full desired state is known even for origins the latest Promotion did not touch. The collection is copied from the Promotion's status rather than derived from this Target's previous state, so a Target that missed a round or was newly discovered converges to the Stage's desired state on its next successful Promotion. Its ID is deterministic in its contents, so a Target that received the same round as the Stage carries the same ID as the Stage's current collection; comparing the two tells whether the Target is up to date. Its verification history records verifications of this Freight on this Target specifically.
ID is a unique and deterministically calculated identifier for the FreightCollection. It is updated on each use of the UpdateOrPush method.
Freight is a map of FreightReference objects, indexed by their Warehouse origin.
Artifacts describes specific versions of artifacts other than Git repository commits, container images, and Helm charts.
ArtifactType specifies the type of artifact this is. Often, but not always, it will be the media type (MIME type) of the artifact referenced by this ArtifactReference.
Metadata is a JSON object containing a mostly opaque collection of artifact attributes. (It must be an object. It may not be a list or a scalar value.) "Mostly" because Kargo may understand how to interpret some documented, well-known, top-level keys. Those aside, this metadata is only understood by a corresponding Subscriber implementation that created it.
SubscriptionName is the name of the Subscription that discovered this artifact.
Version identifies a specific revision of this artifact.
Charts describes specific versions of specific Helm charts.
Name specifies the name of the chart.
RepoURL specifies the URL of a Helm chart repository. Classic chart repositories (using HTTP/S) can contain differently named charts. When this field points to such a repository, the Name field will specify the name of the chart within the repository. In the case of a repository within an OCI registry, the URL implicitly points to a specific chart and the Name field will be empty.
SubscriptionName is the name of the subscription that discovered this chart. This field is only populated if the subscription was assigned a name.
Version specifies a particular version of the chart.
Commits describes specific Git repository commits.
Author is the author of the commit.
Branch denotes the branch of the repository where this commit was found.
Committer is the person who committed the commit.
ID is the ID of a specific commit in the Git repository specified by RepoURL.
Message is the message associated with the commit. At present, this only contains the first line (subject) of the commit message.
RepoURL is the URL of a Git repository.
SubscriptionName is the name of the subscription that discovered this commit. This field is only populated if the subscription was assigned a name.
Tag denotes a tag in the repository that matched selection criteria and resolved to this commit.
Images describes specific versions of specific container images.
Annotations is a map of arbitrary metadata for the image.
Digest identifies a specific version of the image in the repository specified by RepoURL. This is a more precise identifier than Tag.
RepoURL describes the repository in which the image can be found.
SubscriptionName is the name of the subscription that discovered this image. This field is only populated if the subscription was assigned a name.
Tag identifies a specific version of the image in the repository specified by RepoURL.
Name is a system-assigned identifier derived deterministically from the contents of the Freight. I.e., two pieces of Freight can be compared for equality by comparing their Names.
Origin describes a kind of Freight in terms of its origin.
Kind is the kind of resource from which Freight may have originated. At present, this can only be "Warehouse".
Name is the name of the resource of the kind indicated by the Kind field from which Freight may originate.
VerificationHistory is a stack of recent VerificationInfo. By default, the last ten VerificationInfo are stored.
Actor is the name of the entity that initiated or aborted the Verification process.
AnalysisRun is a reference to the Argo Rollouts AnalysisRun that implements the Verification process.
Name is the name of the AnalysisRun.
Namespace is the namespace of the AnalysisRun.
Phase is the last observed phase of the AnalysisRun referenced by Name.
FinishTime is the time at which the Verification process finished.
ID is the identifier of the Verification process.
Message may contain additional information about why the verification process is in its current phase.
Phase describes the current phase of the Verification process. Generally, this will be a reflection of the underlying AnalysisRun's phase, however, there are exceptions to this, such as in the case where an AnalysisRun cannot be launched successfully.
StartTime is the time at which the Verification process was started.
Health is the Target's health with respect to this Stage's Freight, as last assessed by executing HealthChecks. It is absent until the first assessment. Health is an ongoing observation rather than a Promotion outcome: it is reassessed periodically and whenever the systems the health checks observe change, so it may become Unhealthy long after the Promotion that produced CurrentFreight succeeded. A target-aware Stage does not assess health itself. Its own health is an aggregate of this field across every Target it governs: Healthy only when each is Healthy and on the Stage's current Freight, Unhealthy when any is not, Unknown while any has yet to be assessed.
Config is the opaque configuration of all health checks performed on this Stage.
Issues clarifies why a Stage in any state other than Healthy is in that state. This field will always be the empty when a Stage is Healthy.
Output is the opaque output of all health checks performed on this Stage.
Status describes the health of the Stage.
HealthChecks are the health check directives produced by the steps of the Stage's most recent successful Promotion to this Target -- for instance, which Argo CD Applications that Promotion updated and to what revisions. They are the input from which Health is assessed, and they are recorded here because Health must be reassessed for as long as CurrentFreight remains on the Target, while the Promotion that produced them is eventually garbage collected. A Stage keeps the same information for itself in its lastPromotion.
Config is the configuration for the directive.
Uses identifies a runner that can execute this step.
Source: kargo.akuity.io_targets.yaml
Changes to Target (kargo.akuity.io/v1alpha1) in each Kargo version, compared to the version before it.
Target was first seen on this version of Kargo
Released · View Target in v1.12.0
No examples of Target yet. Contribute one on GitHub.