Warehouse
kargo.akuity.io / v1alpha1
apiVersion: kargo.akuity.io/v1alpha1
kind: Warehouse
metadata:
name: example
apiVersion
string
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
string
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
metadata
object
spec object required
Spec describes sources of artifacts.
freightCreationPolicy
string
FreightCreationPolicy describes how Freight is created by this Warehouse.
This field is optional. When left unspecified, the field is implicitly
treated as if its value were "Automatic".
Accepted values: Automatic, Manual
enum:
Automatic, Manual
interval
string required
Interval is the reconciliation interval for this Warehouse. On each
reconciliation, the Warehouse will discover new artifacts and optionally
produce new Freight. This field is optional. When left unspecified, the
field is implicitly treated as if its value were "5m0s".
pattern:
^([0-9]+(\.[0-9]+)?(s|m|h))+$
shard
string
Shard is the name of the shard that this Warehouse belongs to. This is an
optional field. If not specified, the Warehouse will belong to the default
shard. A defaulting webhook will sync this field with the value of the
kargo.akuity.io/shard label. When the shard label is not present or differs
from the value of this field, the defaulting webhook will set the label to
the value of this field. If the shard label is present and this field is
empty, the defaulting webhook will set the value of this field to the value
of the shard label.
subscriptions []object required
Subscriptions describes sources of artifacts to be included in Freight
produced by this Warehouse.
minItems:
1chart object
Chart describes a subscription to a Helm chart repository.
discoveryLimit
integer
DiscoveryLimit is an optional limit on the number of chart versions that
can be discovered for this subscription. The limit is applied after
filtering charts based on the SemverConstraint field.
When left unspecified, the field is implicitly treated as if its value
were "20". The upper limit for this field is 100.
format:
int32minimum:
1maximum:
100
name
string
Name specifies the name of a Helm chart to subscribe to within a classic
chart repository specified by the RepoURL field. This field is required
when the RepoURL field points to a classic chart repository and MUST
otherwise be empty.
repoURL
string required
RepoURL specifies the URL of a Helm chart repository. It may be a classic
chart repository (using HTTP/S) OR a repository within an OCI registry.
Classic chart repositories can contain differently named charts. When this
field points to such a repository, the Name field MUST also be used
to specify the name of the desired chart within that repository. In the
case of a repository within an OCI registry, the URL implicitly points to
a specific chart and the Name field MUST NOT be used. The RepoURL field is
required.
pattern:
^(((https?)|(oci))://)([\w\d\.\-]+)(:[\d]+)?(/.*)*$minLength:
1
semverConstraint
string
SemverConstraint specifies constraints on what new chart versions are
permissible. This field is optional. When left unspecified, there will be
no constraints, which means the latest version of the chart will always be
used. Care should be taken with leaving this field unspecified, as it can
lead to the unanticipated rollout of breaking changes.
More info: https://github.com/masterminds/semver#checking-version-constraints
git object
Git describes a subscriptions to a Git repository.
allowTags
string
AllowTags is a regular expression that can optionally be used to limit the
tags that are considered in determining the newest commit of interest. The
value in this field only has any effect when the CommitSelectionStrategy is
Lexical, NewestTag, or SemVer. This field is optional.
branch
string
Branch references a particular branch of the repository. The value in this
field only has any effect when the CommitSelectionStrategy is
NewestFromBranch or left unspecified (which is implicitly the same as
NewestFromBranch). This field is optional. When left unspecified, (and the
CommitSelectionStrategy is NewestFromBranch or unspecified), the
subscription is implicitly to the repository's default branch.
pattern:
^[a-zA-Z0-9]([a-zA-Z0-9._\/-]*[a-zA-Z0-9_-])?$minLength:
1maxLength:
255
commitSelectionStrategy
string
CommitSelectionStrategy specifies the rules for how to identify the newest
commit of interest in the repository specified by the RepoURL field. This
field is optional. When left unspecified, the field is implicitly treated
as if its value were "NewestFromBranch".
Accepted values: Lexical, NewestFromBranch, NewestTag, SemVer
enum:
Lexical, NewestFromBranch, NewestTag, SemVer
discoveryLimit
integer
DiscoveryLimit is an optional limit on the number of commits that can be
discovered for this subscription. The limit is applied after filtering
commits based on the AllowTags and IgnoreTags fields.
When left unspecified, the field is implicitly treated as if its value
were "20". The upper limit for this field is 100.
format:
int32minimum:
1maximum:
100
excludePaths
[]string
ExcludePaths is a list of selectors that designate paths in the repository
that should NOT trigger the production of new Freight when changes are
detected therein. When specified, changes in the identified paths will not
trigger Freight production. When not specified, paths that should trigger
Freight production will be defined solely by IncludePaths. Selectors may be
defined using:
1. Exact paths to files or directories (ex. "charts/foo")
2. Glob patterns (prefix the pattern with "glob:"; ex. "glob:*.yaml")
3. Regular expressions (prefix the pattern with "regex:" or "regexp:";
ex. "regexp:^.*\.yaml$")
Paths selected by IncludePaths may be unselected by ExcludePaths. This
is a useful method for including a broad set of paths and then excluding a
subset of them.
ignoreTags
[]string
IgnoreTags is a list of tags that must be ignored when determining the
newest commit of interest. No regular expressions or glob patterns are
supported yet. The value in this field only has any effect when the
CommitSelectionStrategy is Lexical, NewestTag, or SemVer. This field is
optional.
includePaths
[]string
IncludePaths is a list of selectors that designate paths in the repository
that should trigger the production of new Freight when changes are detected
therein. When specified, only changes in the identified paths will trigger
Freight production. When not specified, changes in any path will trigger
Freight production. Selectors may be defined using:
1. Exact paths to files or directories (ex. "charts/foo")
2. Glob patterns (prefix the pattern with "glob:"; ex. "glob:*.yaml")
3. Regular expressions (prefix the pattern with "regex:" or "regexp:";
ex. "regexp:^.*\.yaml$")
Paths selected by IncludePaths may be unselected by ExcludePaths. This
is a useful method for including a broad set of paths and then excluding a
subset of them.
insecureSkipTLSVerify
boolean
InsecureSkipTLSVerify specifies whether certificate verification errors
should be ignored when connecting to the repository. This should be enabled
only with great caution.
repoURL
string required
URL is the repository's URL. This is a required field.
pattern:
(?:^(ssh|https?)://(?:([\w-]+)(:(.+))?@)?([\w-]+(?:\.[\w-]+)*)(?::(\d{1,5}))?(/.*)$)|(?:^([\w-]+)@([\w+]+(?:\.[\w-]+)*):(/?.*))minLength:
1
semverConstraint
string
SemverConstraint specifies constraints on what new tagged commits are
considered in determining the newest commit of interest. The value in this
field only has any effect when the CommitSelectionStrategy is SemVer. This
field is optional. When left unspecified, there will be no constraints,
which means the latest semantically tagged commit will always be used. Care
should be taken with leaving this field unspecified, as it can lead to the
unanticipated rollout of breaking changes.
strictSemvers
boolean required
StrictSemvers specifies whether only "strict" semver tags should be
considered. A "strict" semver tag is one containing ALL of major, minor,
and patch version components. This is enabled by default, but only has any
effect when the CommitSelectionStrategy is SemVer. This should be disabled
cautiously, as it creates the potential for any tag containing numeric
characters only to be mistaken for a semver string containing the major
version number only.
image object
Image describes a subscription to container image repository.
allowTags
string
AllowTags is a regular expression that can optionally be used to limit the
image tags that are considered in determining the newest version of an
image. This field is optional.
discoveryLimit
integer
DiscoveryLimit is an optional limit on the number of image references
that can be discovered for this subscription. The limit is applied after
filtering images based on the AllowTags and IgnoreTags fields.
When left unspecified, the field is implicitly treated as if its value
were "20". The upper limit for this field is 100.
format:
int32minimum:
1maximum:
100
gitRepoURL
string
GitRepoURL optionally specifies the URL of a Git repository that contains
the source code for the image repository referenced by the RepoURL field.
When this is specified, Kargo MAY be able to infer and link to the exact
revision of that source code that was used to build the image.
Deprecated: Use OCI annotations instead. Will be removed in v1.7.0.
pattern:
^https?://(\w+([\.-]\w+)*@)?\w+([\.-]\w+)*(:[\d]+)?(/.*)?$
ignoreTags
[]string
IgnoreTags is a list of tags that must be ignored when determining the
newest version of an image. No regular expressions or glob patterns are
supported yet. This field is optional.
imageSelectionStrategy
string
ImageSelectionStrategy specifies the rules for how to identify the newest version
of the image specified by the RepoURL field. This field is optional. When
left unspecified, the field is implicitly treated as if its value were
"SemVer".
Accepted values: Digest, Lexical, NewestBuild, SemVer
enum:
Digest, Lexical, NewestBuild, SemVer
insecureSkipTLSVerify
boolean
InsecureSkipTLSVerify specifies whether certificate verification errors
should be ignored when connecting to the repository. This should be enabled
only with great caution.
platform
string
Platform is a string of the form <os>/<arch> that limits the tags that can
be considered when searching for new versions of an image. This field is
optional. When left unspecified, it is implicitly equivalent to the
OS/architecture of the Kargo controller. Care should be taken to set this
value correctly in cases where the image referenced by this
ImageRepositorySubscription will run on a Kubernetes node with a different
OS/architecture than the Kargo controller. At present this is uncommon, but
not unheard of.
repoURL
string required
RepoURL specifies the URL of the image repository to subscribe to. The
value in this field MUST NOT include an image tag. This field is required.
pattern:
^(\w+([\.-]\w+)*(:[\d]+)?/)?(\w+([\.-]\w+)*)(/\w+([\.-]\w+)*)*$minLength:
1
semverConstraint
string
SemverConstraint specifies constraints on what new image versions are
permissible. The value in this field only has any effect when the
ImageSelectionStrategy is SemVer or left unspecified (which is implicitly
the same as SemVer). This field is also optional. When left unspecified,
(and the ImageSelectionStrategy is SemVer or unspecified), there will be no
constraints, which means the latest semantically tagged version of an image
will always be used. Care should be taken with leaving this field
unspecified, as it can lead to the unanticipated rollout of breaking
changes.
More info: https://github.com/masterminds/semver#checking-version-constraints
strictSemvers
boolean required
StrictSemvers specifies whether only "strict" semver tags should be
considered. A "strict" semver tag is one containing ALL of major, minor,
and patch version components. This is enabled by default, but only has any
effect when the ImageSelectionStrategy is SemVer. This should be disabled
cautiously, as it is not uncommon to tag container images with short Git
commit hashes, which have the potential to contain numeric characters only
and could be mistaken for a semver string containing the major version
number only.
status object
Status describes the Warehouse's most recently observed state.
conditions []object
Conditions contains the last observations of the Warehouse's current
state.
lastTransitionTime
string required
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format:
date-time
message
string required
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength:
32768
observedGeneration
integer
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format:
int64minimum:
0
reason
string required
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$minLength:
1maxLength:
1024
status
string required
status of the condition, one of True, False, Unknown.
enum:
True, False, Unknown
type
string required
type of condition in CamelCase or in foo.example.com/CamelCase.
pattern:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$maxLength:
316discoveredArtifacts object
DiscoveredArtifacts holds the artifacts discovered by the Warehouse.
charts []object
Charts holds the charts discovered by the Warehouse for the chart
subscriptions.
name
string
Name is the name of the Helm chart, as specified in the ChartSubscription.
repoURL
string required
RepoURL is the repository URL of the Helm chart, as specified in the
ChartSubscription.
minLength:
1
semverConstraint
string
SemverConstraint is the constraint for which versions were discovered.
This field is optional, and only populated if the ChartSubscription
specifies a SemverConstraint.
versions
[]string
Versions is a list of versions discovered by the Warehouse for the
ChartSubscription. An empty list indicates that the discovery operation was
successful, but no versions matching the ChartSubscription criteria were
found.
discoveredAt
string
DiscoveredAt is the time at which the Warehouse discovered the artifacts.
format:
date-timegit []object
Git holds the commits discovered by the Warehouse for the Git
subscriptions.
commits []object
Commits is a list of commits discovered by the Warehouse for the
GitSubscription. An empty list indicates that the discovery operation was
successful, but no commits matching the GitSubscription criteria were found.
author
string
Author is the author of the commit.
branch
string
Branch is the branch in which the commit was found. This field is
optional, and populated based on the CommitSelectionStrategy of the
GitSubscription.
committer
string
Committer is the person who committed the commit.
creatorDate
string
CreatorDate is the commit creation date as specified by the commit, or
the tagger date if the commit belongs to an annotated tag.
format:
date-time
id
string
ID is the identifier of the commit. This typically is a SHA-1 hash.
minLength:
1
subject
string
Subject is the subject of the commit (i.e. the first line of the commit
message).
tag
string
Tag is the tag that resolved to this commit. This field is optional, and
populated based on the CommitSelectionStrategy of the GitSubscription.
repoURL
string required
RepoURL is the repository URL of the GitSubscription.
pattern:
(?:^(ssh|https?)://(?:([\w-]+)(:(.+))?@)?([\w-]+(?:\.[\w-]+)*)(?::(\d{1,5}))?(/.*)$)|(?:^([\w-]+)@([\w+]+(?:\.[\w-]+)*):(/?.*))minLength:
1images []object
Images holds the image references discovered by the Warehouse for the
image subscriptions.
platform
string
Platform is the target platform constraint of the ImageSubscription
for which references were discovered. This field is optional, and
only populated if the ImageSubscription specifies a Platform.
references []object
References is a list of image references discovered by the Warehouse for
the ImageSubscription. An empty list indicates that the discovery
operation was successful, but no images matching the ImageSubscription
criteria were found.
annotations
object
Annotations is a map of key-value pairs that provide additional
information about the image.
createdAt
string
CreatedAt is the time the image was created. This field is optional, and
not populated for every ImageSelectionStrategy.
format:
date-time
digest
string required
Digest is the digest of the image.
pattern:
^[a-z0-9]+:[a-f0-9]+$minLength:
1
gitRepoURL
string
GitRepoURL is the URL of the Git repository that contains the source
code for this image. This field is optional, and only populated if the
ImageSubscription specifies a GitRepoURL.
Deprecated: Use OCI annotations instead. Will be removed in v1.7.0.
tag
string required
Tag is the tag of the image.
pattern:
^[\w.\-\_]+$minLength:
1maxLength:
128
repoURL
string required
RepoURL is the repository URL of the image, as specified in the
ImageSubscription.
minLength:
1
lastFreightID
string
LastFreightID is a reference to the system-assigned identifier (name) of
the most recent Freight produced by the Warehouse.
lastHandledRefresh
string
LastHandledRefresh holds the value of the most recent AnnotationKeyRefresh
annotation that was handled by the controller. This field can be used to
determine whether the request to refresh the resource has been handled.
observedGeneration
integer
ObservedGeneration represents the .metadata.generation that this Warehouse
was reconciled against.
format:
int64No matches. Try .spec.freightCreationPolicy for an exact path