mirror of
https://github.com/hanzoai/deploy.git
synced 2026-10-07 08:44:50 +00:00
Two corrections on top of the naming pass, both found by checking the live cluster rather than the source. The rename had silently changed the user-facing annotation key from argocd.argoproj.io/sync-wave to cd.argoproj.io/sync-wave — 63 live Applications carry the old key, so deploying that would have ignored every sync-wave and broken fleet deploy ordering. The key is now cd.hanzo.ai/*, and universe 575650286 moves the ApplicationSet template that stamps it, so the controller regenerates all 63 consistently. The API group in code said argoproj.io/v1alpha1 in 157 places while the cluster has served apps.hanzo.ai/v1alpha1 since 2026-07-23 (the CRDs are applications.apps.hanzo.ai). Code now matches what is actually served. The legacy applications.argoproj.io/app-name label had ZERO live users, so it went with the rest. foo.argoproj.io test fixtures became foo.example.com — arbitrary test domains should not carry a vendor name. go build ./... exit 0. Co-authored-by: Hanzo Dev <[email protected]>
1266 lines
60 KiB
YAML
1266 lines
60 KiB
YAML
swagger: "2.0"
|
|
info:
|
|
title: Application
|
|
version: "v1alpha1"
|
|
paths: {}
|
|
definitions:
|
|
io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference:
|
|
description: OwnerReference contains enough information to let you identify an
|
|
owning object. An owning object must be in the same namespace as the
|
|
dependent, or be cluster-scoped, so there is no namespace field.
|
|
type: object
|
|
required:
|
|
- apiVersion
|
|
- kind
|
|
- name
|
|
- uid
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
blockOwnerDeletion:
|
|
description: If true, AND if the owner has the "foregroundDeletion" finalizer,
|
|
then the owner cannot be deleted from the key-value store until this
|
|
reference is removed. See
|
|
https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
|
|
for how the garbage collector interacts with this field and enforces
|
|
the foreground deletion. Defaults to false. To set this field, a user
|
|
needs "delete" permission of the owner, otherwise 422 (Unprocessable
|
|
Entity) will be returned.
|
|
type: boolean
|
|
controller:
|
|
description: If true, this reference points to the managing controller.
|
|
type: boolean
|
|
kind:
|
|
description: "Kind of the referent. More info:
|
|
https://git.k8s.io/community/contributors/devel/sig-architecture/api-\
|
|
conventions.md#types-kinds"
|
|
type: string
|
|
name:
|
|
description: "Name of the referent. More info:
|
|
https://kubernetes.io/docs/concepts/overview/working-with-objects/nam\
|
|
es#names"
|
|
type: string
|
|
uid:
|
|
description: "UID of the referent. More info:
|
|
https://kubernetes.io/docs/concepts/overview/working-with-objects/nam\
|
|
es#uids"
|
|
type: string
|
|
x-kubernetes-map-type: atomic
|
|
io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1:
|
|
description: >-
|
|
FieldsV1 stores a set of fields in a data structure like a Trie, in JSON
|
|
format.
|
|
|
|
|
|
Each key is either a '.' representing the field itself, and will always
|
|
map to an empty set, or a string representing a sub-field or item. The
|
|
string will follow one of these four formats: 'f:<name>', where <name> is
|
|
the name of a field in a struct, or key in a map 'v:<value>', where
|
|
<value> is the exact json formatted value of a list item 'i:<index>',
|
|
where <index> is position of a item in a list 'k:<keys>', where <keys> is
|
|
a map of a list item's key fields to their unique values If a key maps to
|
|
an empty Fields value, the field that key represents is part of the set.
|
|
|
|
|
|
The exact format is defined in sigs.k8s.io/structured-merge-diff
|
|
type: object
|
|
io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry:
|
|
description: ManagedFieldsEntry is a workflow-id, a FieldSet and the group
|
|
version of the resource that the fieldset applies to.
|
|
type: object
|
|
properties:
|
|
apiVersion:
|
|
description: APIVersion defines the version of this resource that this field set
|
|
applies to. The format is "group/version" just like the top-level
|
|
APIVersion field. It is necessary to track the version of a field set
|
|
because it cannot be automatically converted.
|
|
type: string
|
|
fieldsType:
|
|
description: 'FieldsType is the discriminator for the different fields format
|
|
and version. There is currently only one possible value: "FieldsV1"'
|
|
type: string
|
|
fieldsV1:
|
|
description: FieldsV1 holds the first JSON version format as described in the
|
|
"FieldsV1" type.
|
|
$ref: "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1"
|
|
manager:
|
|
description: Manager is an identifier of the workflow managing these fields.
|
|
type: string
|
|
operation:
|
|
description: Operation is the type of operation which lead to this
|
|
ManagedFieldsEntry being created. The only valid values for this field
|
|
are 'Apply' and 'Update'.
|
|
type: string
|
|
subresource:
|
|
description: Subresource is the name of the subresource used to update that
|
|
object, or empty string if the object was updated through the main
|
|
resource. The value of this field is used to distinguish between
|
|
managers, even if they share the same name. For example, a status
|
|
update will be distinct from a regular update using the same manager
|
|
name. Note that the APIVersion field is not related to the Subresource
|
|
field and it always corresponds to the version of the main resource.
|
|
type: string
|
|
time:
|
|
description: Time is the timestamp of when the ManagedFields entry was added.
|
|
The timestamp will also be updated if a field is added, the manager
|
|
changes any of the owned fields value or removes a field. The
|
|
timestamp does not update when a field is removed from the entry
|
|
because another manager took it over.
|
|
$ref: "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time"
|
|
io.k8s.apimachinery.pkg.apis.meta.v1.Time:
|
|
description: Time is a wrapper around time.Time which supports correct
|
|
marshaling to YAML and JSON. Wrappers are provided for many of the
|
|
factory methods that the time package offers.
|
|
type: string
|
|
format: date-time
|
|
io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta:
|
|
description: ObjectMeta is metadata that all persisted resources must have,
|
|
which includes all objects users must create.
|
|
type: object
|
|
properties:
|
|
annotations:
|
|
description: "Annotations is an unstructured key value map stored with a
|
|
resource that may be set by external tools to store and retrieve
|
|
arbitrary metadata. They are not queryable and should be preserved
|
|
when modifying objects. More info:
|
|
https://kubernetes.io/docs/concepts/overview/working-with-objects/ann\
|
|
otations"
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
creationTimestamp:
|
|
description: |-
|
|
CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
|
|
|
|
Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
$ref: "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time"
|
|
deletionGracePeriodSeconds:
|
|
description: Number of seconds allowed for this object to gracefully terminate
|
|
before it will be removed from the system. Only set when
|
|
deletionTimestamp is also set. May only be shortened. Read-only.
|
|
type: integer
|
|
format: int64
|
|
deletionTimestamp:
|
|
description: |-
|
|
DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
|
|
|
|
Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
$ref: "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time"
|
|
finalizers:
|
|
description: Must be empty before the object is deleted from the registry. Each
|
|
entry is an identifier for the responsible component that will remove
|
|
the entry from the list. If the deletionTimestamp of the object is
|
|
non-nil, entries in this list can only be removed. Finalizers may be
|
|
processed and removed in any order. Order is NOT enforced because it
|
|
introduces significant risk of stuck finalizers. finalizers is a
|
|
shared field, any actor with permission can reorder it. If the
|
|
finalizer list is processed in order, then this can lead to a
|
|
situation in which the component responsible for the first finalizer
|
|
in the list is waiting for a signal (field value, external system, or
|
|
other) produced by a component responsible for a finalizer later in
|
|
the list, resulting in a deadlock. Without enforced ordering
|
|
finalizers are free to order amongst themselves and are not vulnerable
|
|
to ordering changes in the list.
|
|
type: array
|
|
items:
|
|
type: string
|
|
x-kubernetes-list-type: set
|
|
x-kubernetes-patch-strategy: merge
|
|
generateName:
|
|
description: |-
|
|
GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.
|
|
|
|
If this field is specified and the generated name exists, the server will return a 409.
|
|
|
|
Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
|
|
type: string
|
|
generation:
|
|
description: A sequence number representing a specific generation of the desired
|
|
state. Populated by the system. Read-only.
|
|
type: integer
|
|
format: int64
|
|
labels:
|
|
description: "Map of string keys and values that can be used to organize and
|
|
categorize (scope and select) objects. May match selectors of
|
|
replication controllers and services. More info:
|
|
https://kubernetes.io/docs/concepts/overview/working-with-objects/lab\
|
|
els"
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
managedFields:
|
|
description: ManagedFields maps workflow-id and version to the set of fields
|
|
that are managed by that workflow. This is mostly for internal
|
|
housekeeping, and users typically shouldn't need to set or understand
|
|
this field. A workflow can be the user's name, a controller's name, or
|
|
the name of a specific apply path like "ci-cd". The set of fields is
|
|
always in the version that the workflow used when modifying the
|
|
object.
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"
|
|
x-kubernetes-list-type: atomic
|
|
name:
|
|
description: "Name must be unique within a namespace. Is required when creating
|
|
resources, although some resources may allow a client to request the
|
|
generation of an appropriate name automatically. Name is primarily
|
|
intended for creation idempotence and configuration definition. Cannot
|
|
be updated. More info:
|
|
https://kubernetes.io/docs/concepts/overview/working-with-objects/nam\
|
|
es#names"
|
|
type: string
|
|
namespace:
|
|
description: |-
|
|
Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.
|
|
|
|
Must be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces
|
|
type: string
|
|
ownerReferences:
|
|
description: List of objects depended by this object. If ALL objects in the list
|
|
have been deleted, this object will be garbage collected. If this
|
|
object is managed by a controller, then an entry in this list will
|
|
point to this controller, with the controller field set to true. There
|
|
cannot be more than one managing controller.
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"
|
|
x-kubernetes-list-map-keys:
|
|
- uid
|
|
x-kubernetes-list-type: map
|
|
x-kubernetes-patch-merge-key: uid
|
|
x-kubernetes-patch-strategy: merge
|
|
resourceVersion:
|
|
description: |-
|
|
An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.
|
|
|
|
Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
|
|
type: string
|
|
selfLink:
|
|
description: "Deprecated: selfLink is a legacy read-only field that is no longer
|
|
populated by the system."
|
|
type: string
|
|
uid:
|
|
description: |-
|
|
UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
|
|
|
|
Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
|
|
type: string
|
|
io.argoproj.v1alpha1.Application:
|
|
description: Application is a definition of Application resource.
|
|
type: object
|
|
required:
|
|
- metadata
|
|
- spec
|
|
properties:
|
|
apiVersion:
|
|
description: "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"
|
|
type: string
|
|
kind:
|
|
description: "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"
|
|
type: string
|
|
metadata:
|
|
description: "Standard object's metadata. More info:
|
|
https://git.k8s.io/community/contributors/devel/sig-architecture/api-\
|
|
conventions.md#metadata"
|
|
$ref: "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
|
|
spec:
|
|
description: ApplicationSpec represents desired application state. Contains link
|
|
to repository with application definition and additional parameters
|
|
link definition revision.
|
|
type: object
|
|
required:
|
|
- destination
|
|
- project
|
|
properties:
|
|
destination:
|
|
description: Destination is a reference to the target Kubernetes server and
|
|
namespace
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: Name is an alternate way of specifying the target cluster by its
|
|
symbolic name. This must be set if Server is not set.
|
|
type: string
|
|
namespace:
|
|
description: >-
|
|
Namespace specifies the target namespace for the application's
|
|
resources.
|
|
|
|
The namespace will only be set for namespace-scoped resources
|
|
that have not set a value for .metadata.namespace
|
|
type: string
|
|
server:
|
|
description: Server specifies the URL of the target cluster's Kubernetes control
|
|
plane API. This must be set if Name is not set.
|
|
type: string
|
|
ignoreDifferences:
|
|
description: IgnoreDifferences is a list of resources and their fields which
|
|
should be ignored during comparison
|
|
type: array
|
|
items:
|
|
description: ResourceIgnoreDifferences contains resource filter and list of json
|
|
paths which should be ignored during comparison with live state.
|
|
type: object
|
|
required:
|
|
- kind
|
|
properties:
|
|
group:
|
|
type: string
|
|
jqPathExpressions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
jsonPointers:
|
|
type: array
|
|
items:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
managedFieldsManagers:
|
|
description: >-
|
|
ManagedFieldsManagers is a list of trusted managers. Fields
|
|
mutated by those managers will take precedence over the
|
|
|
|
desired state defined in the SCM and won't be displayed in
|
|
diffs
|
|
type: array
|
|
items:
|
|
type: string
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
info:
|
|
description: Info contains a list of information (URLs, email addresses, and
|
|
plain text) that relates to the application
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- name
|
|
- value
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
project:
|
|
description: >-
|
|
Project is a reference to the project this application belongs to.
|
|
|
|
The empty string means that application belongs to the 'default'
|
|
project.
|
|
type: string
|
|
revisionHistoryLimit:
|
|
description: >-
|
|
RevisionHistoryLimit limits the number of items kept in the
|
|
application's revision history, which is used for informational
|
|
purposes as well as for rollbacks to previous versions.
|
|
|
|
This should only be changed in exceptional circumstances.
|
|
|
|
Setting to zero will store no history. This will reduce storage
|
|
used.
|
|
|
|
Increasing will increase the space used to store the history, so
|
|
we do not recommend increasing it.
|
|
|
|
Default is 10.
|
|
type: integer
|
|
format: int64
|
|
source:
|
|
description: Source is a reference to the location of the application's
|
|
manifests or chart
|
|
type: object
|
|
required:
|
|
- repoURL
|
|
properties:
|
|
chart:
|
|
description: Chart is a Helm chart name, and must be specified for applications
|
|
sourced from a Helm repo.
|
|
type: string
|
|
directory:
|
|
description: Directory holds path/directory specific options
|
|
type: object
|
|
properties:
|
|
exclude:
|
|
description: Exclude contains a glob pattern to match paths against that should
|
|
be explicitly excluded from being used during manifest
|
|
generation
|
|
type: string
|
|
include:
|
|
description: Include contains a glob pattern to match paths against that should
|
|
be explicitly included during manifest generation
|
|
type: string
|
|
jsonnet:
|
|
description: Jsonnet holds options specific to Jsonnet
|
|
type: object
|
|
properties:
|
|
extVars:
|
|
description: ExtVars is a list of Jsonnet External Variables
|
|
type: array
|
|
items:
|
|
description: JsonnetVar represents a variable to be passed to jsonnet during
|
|
manifest generation
|
|
type: object
|
|
required:
|
|
- name
|
|
- value
|
|
properties:
|
|
code:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
libs:
|
|
description: Additional library search dirs
|
|
type: array
|
|
items:
|
|
type: string
|
|
tlas:
|
|
description: TLAS is a list of Jsonnet Top-level Arguments
|
|
type: array
|
|
items:
|
|
description: JsonnetVar represents a variable to be passed to jsonnet during
|
|
manifest generation
|
|
type: object
|
|
required:
|
|
- name
|
|
- value
|
|
properties:
|
|
code:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
recurse:
|
|
description: Recurse specifies whether to scan a directory recursively for
|
|
manifests
|
|
type: boolean
|
|
helm:
|
|
description: Helm holds helm specific options
|
|
type: object
|
|
properties:
|
|
apiVersions:
|
|
description: >-
|
|
APIVersions specifies the Kubernetes resource API versions
|
|
to pass to Helm when templating manifests. By default,
|
|
|
|
Hanzo CD uses the API versions of the target cluster. The
|
|
format is [group/]version/kind.
|
|
type: array
|
|
items:
|
|
type: string
|
|
fileParameters:
|
|
description: FileParameters are file parameters to the helm template
|
|
type: array
|
|
items:
|
|
description: HelmFileParameter is a file parameter that's passed to helm
|
|
template during manifest generation
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: Name is the name of the Helm parameter
|
|
type: string
|
|
path:
|
|
description: Path is the path to the file containing the values for the Helm
|
|
parameter
|
|
type: string
|
|
ignoreMissingValueFiles:
|
|
description: IgnoreMissingValueFiles prevents helm template from failing when
|
|
valueFiles do not exist locally by not appending them to
|
|
helm template --values
|
|
type: boolean
|
|
kubeVersion:
|
|
description: >-
|
|
KubeVersion specifies the Kubernetes API version to pass
|
|
to Helm when templating manifests. By default, Hanzo CD
|
|
|
|
uses the Kubernetes version of the target cluster.
|
|
type: string
|
|
namespace:
|
|
description: Namespace is an optional namespace to template with. If left empty,
|
|
defaults to the app's destination namespace.
|
|
type: string
|
|
parameters:
|
|
description: Parameters is a list of Helm parameters which are passed to the
|
|
helm template command upon manifest generation
|
|
type: array
|
|
items:
|
|
description: HelmParameter is a parameter that's passed to helm template during
|
|
manifest generation
|
|
type: object
|
|
properties:
|
|
forceString:
|
|
description: ForceString determines whether to tell Helm to interpret booleans
|
|
and numbers as strings
|
|
type: boolean
|
|
name:
|
|
description: Name is the name of the Helm parameter
|
|
type: string
|
|
value:
|
|
description: Value is the value for the Helm parameter
|
|
type: string
|
|
passCredentials:
|
|
description: PassCredentials pass credentials to all domains (Helm's
|
|
--pass-credentials)
|
|
type: boolean
|
|
releaseName:
|
|
description: ReleaseName is the Helm release name to use. If omitted it will use
|
|
the application name
|
|
type: string
|
|
skipCrds:
|
|
description: SkipCrds skips custom resource definition installation step (Helm's
|
|
--skip-crds)
|
|
type: boolean
|
|
skipSchemaValidation:
|
|
description: SkipSchemaValidation skips JSON schema validation (Helm's
|
|
--skip-schema-validation)
|
|
type: boolean
|
|
skipTests:
|
|
description: SkipTests skips test manifest installation step (Helm's
|
|
--skip-tests).
|
|
type: boolean
|
|
valueFiles:
|
|
description: ValuesFiles is a list of Helm value files to use when generating a
|
|
template
|
|
type: array
|
|
items:
|
|
type: string
|
|
values:
|
|
description: Values specifies Helm values to be passed to helm template,
|
|
typically defined as a block. ValuesObject takes
|
|
precedence over Values, so use one or the other.
|
|
type: string
|
|
valuesObject:
|
|
description: ValuesObject specifies Helm values to be passed to helm template,
|
|
defined as a map. This takes precedence over Values.
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
version:
|
|
description: Version is the Helm version to use for templating ("3")
|
|
type: string
|
|
kustomize:
|
|
description: Kustomize holds kustomize specific options
|
|
type: object
|
|
properties:
|
|
apiVersions:
|
|
description: >-
|
|
APIVersions specifies the Kubernetes resource API versions
|
|
to pass to Helm when templating manifests. By default,
|
|
|
|
Hanzo CD uses the API versions of the target cluster. The
|
|
format is [group/]version/kind.
|
|
type: array
|
|
items:
|
|
type: string
|
|
commonAnnotations:
|
|
description: CommonAnnotations is a list of additional annotations to add to
|
|
rendered manifests
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
commonAnnotationsEnvsubst:
|
|
description: CommonAnnotationsEnvsubst specifies whether to apply env variables
|
|
substitution for annotation values
|
|
type: boolean
|
|
commonLabels:
|
|
description: CommonLabels is a list of additional labels to add to rendered
|
|
manifests
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
components:
|
|
description: Components specifies a list of kustomize components to add to the
|
|
kustomization before building
|
|
type: array
|
|
items:
|
|
type: string
|
|
forceCommonAnnotations:
|
|
description: ForceCommonAnnotations specifies whether to force applying common
|
|
annotations to resources for Kustomize apps
|
|
type: boolean
|
|
forceCommonLabels:
|
|
description: ForceCommonLabels specifies whether to force applying common labels
|
|
to resources for Kustomize apps
|
|
type: boolean
|
|
ignoreMissingComponents:
|
|
description: IgnoreMissingComponents prevents kustomize from failing when
|
|
components do not exist locally by not appending them to
|
|
kustomization file
|
|
type: boolean
|
|
images:
|
|
description: Images is a list of Kustomize image override specifications
|
|
type: array
|
|
items:
|
|
description: KustomizeImage represents a Kustomize image definition in the
|
|
format [old_image_name=]<image_name>:<image_tag>
|
|
type: string
|
|
kubeVersion:
|
|
description: >-
|
|
KubeVersion specifies the Kubernetes API version to pass
|
|
to Helm when templating manifests. By default, Hanzo CD
|
|
|
|
uses the Kubernetes version of the target cluster.
|
|
type: string
|
|
labelIncludeTemplates:
|
|
description: LabelIncludeTemplates specifies whether to apply common labels to
|
|
resource templates or not
|
|
type: boolean
|
|
labelWithoutSelector:
|
|
description: LabelWithoutSelector specifies whether to apply common labels to
|
|
resource selectors or not
|
|
type: boolean
|
|
namePrefix:
|
|
description: NamePrefix is a prefix appended to resources for Kustomize apps
|
|
type: string
|
|
nameSuffix:
|
|
description: NameSuffix is a suffix appended to resources for Kustomize apps
|
|
type: string
|
|
namespace:
|
|
description: Namespace sets the namespace that Kustomize adds to all resources
|
|
type: string
|
|
patches:
|
|
description: Patches is a list of Kustomize patches
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
options:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
patch:
|
|
type: string
|
|
path:
|
|
type: string
|
|
target:
|
|
type: object
|
|
properties:
|
|
annotationSelector:
|
|
type: string
|
|
group:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
labelSelector:
|
|
type: string
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
version:
|
|
type: string
|
|
replicas:
|
|
description: Replicas is a list of Kustomize Replicas override specifications
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- count
|
|
- name
|
|
properties:
|
|
count:
|
|
description: Number of replicas
|
|
x-kubernetes-int-or-string: true
|
|
name:
|
|
description: Name of Deployment or StatefulSet
|
|
type: string
|
|
version:
|
|
description: Version controls which version of Kustomize to use for rendering
|
|
manifests
|
|
type: string
|
|
name:
|
|
description: Name is used to refer to a source and is displayed in the UI. It is
|
|
used in multi-source Applications.
|
|
type: string
|
|
path:
|
|
description: Path is a directory path within the Git repository, and is only
|
|
valid for applications sourced from Git.
|
|
type: string
|
|
plugin:
|
|
description: Plugin holds config management plugin specific options
|
|
type: object
|
|
properties:
|
|
env:
|
|
description: Env is a list of environment variable entries
|
|
type: array
|
|
items:
|
|
description: EnvEntry represents an entry in the application's environment
|
|
type: object
|
|
required:
|
|
- name
|
|
- value
|
|
properties:
|
|
name:
|
|
description: Name is the name of the variable, usually expressed in uppercase
|
|
type: string
|
|
value:
|
|
description: Value is the value of the variable
|
|
type: string
|
|
name:
|
|
type: string
|
|
parameters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
array:
|
|
description: Array is the value of an array type parameter.
|
|
type: array
|
|
items:
|
|
type: string
|
|
map:
|
|
description: Map is the value of a map type parameter.
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
name:
|
|
description: Name is the name identifying a parameter.
|
|
type: string
|
|
string:
|
|
description: String_ is the value of a string type parameter.
|
|
type: string
|
|
ref:
|
|
description: Ref is reference to another source within sources field. This field
|
|
will not be used if used with a `source` tag.
|
|
type: string
|
|
repoURL:
|
|
description: RepoURL is the URL to the repository (Git or Helm) that contains
|
|
the application manifests
|
|
type: string
|
|
targetRevision:
|
|
description: >-
|
|
TargetRevision defines the revision of the source to sync the
|
|
application to.
|
|
|
|
In case of Git, this can be commit, tag, or branch. If
|
|
omitted, will equal to HEAD.
|
|
|
|
In case of Helm, this is a semver tag for the Chart's version.
|
|
type: string
|
|
sourceHydrator:
|
|
description: SourceHydrator provides a way to push hydrated manifests back to
|
|
git before syncing them to the cluster.
|
|
type: object
|
|
required:
|
|
- drySource
|
|
- syncSource
|
|
properties:
|
|
drySource:
|
|
description: DrySource specifies where the dry "don't repeat yourself" manifest
|
|
source lives.
|
|
type: object
|
|
required:
|
|
- path
|
|
- repoURL
|
|
- targetRevision
|
|
properties:
|
|
path:
|
|
description: Path is a directory path within the Git repository where the
|
|
manifests are located
|
|
type: string
|
|
repoURL:
|
|
description: RepoURL is the URL to the git repository that contains the
|
|
application manifests
|
|
type: string
|
|
targetRevision:
|
|
description: TargetRevision defines the revision of the source to hydrate
|
|
type: string
|
|
hydrateTo:
|
|
description: >-
|
|
HydrateTo specifies an optional "staging" location to push
|
|
hydrated manifests to. An external system would then
|
|
|
|
have to move manifests to the SyncSource, e.g. by pull
|
|
request.
|
|
type: object
|
|
required:
|
|
- targetBranch
|
|
properties:
|
|
targetBranch:
|
|
description: TargetBranch is the branch to which hydrated manifests should be
|
|
committed
|
|
type: string
|
|
syncSource:
|
|
description: SyncSource specifies where to sync hydrated manifests from.
|
|
type: object
|
|
required:
|
|
- path
|
|
- targetBranch
|
|
properties:
|
|
path:
|
|
description: >-
|
|
Path is a directory path within the git repository where
|
|
hydrated manifests should be committed to and synced
|
|
|
|
from. If hydrateTo is set, this is just the path from
|
|
which hydrated manifests will be synced.
|
|
type: string
|
|
targetBranch:
|
|
description: TargetBranch is the branch to which hydrated manifests should be
|
|
committed
|
|
type: string
|
|
sources:
|
|
description: Sources is a reference to the location of the application's
|
|
manifests or chart
|
|
type: array
|
|
items:
|
|
description: ApplicationSource contains all required information about the
|
|
source of an application
|
|
type: object
|
|
required:
|
|
- repoURL
|
|
properties:
|
|
chart:
|
|
description: Chart is a Helm chart name, and must be specified for applications
|
|
sourced from a Helm repo.
|
|
type: string
|
|
directory:
|
|
description: Directory holds path/directory specific options
|
|
type: object
|
|
properties:
|
|
exclude:
|
|
description: Exclude contains a glob pattern to match paths against that should
|
|
be explicitly excluded from being used during manifest
|
|
generation
|
|
type: string
|
|
include:
|
|
description: Include contains a glob pattern to match paths against that should
|
|
be explicitly included during manifest generation
|
|
type: string
|
|
jsonnet:
|
|
description: Jsonnet holds options specific to Jsonnet
|
|
type: object
|
|
properties:
|
|
extVars:
|
|
description: ExtVars is a list of Jsonnet External Variables
|
|
type: array
|
|
items:
|
|
description: JsonnetVar represents a variable to be passed to jsonnet during
|
|
manifest generation
|
|
type: object
|
|
required:
|
|
- name
|
|
- value
|
|
properties:
|
|
code:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
libs:
|
|
description: Additional library search dirs
|
|
type: array
|
|
items:
|
|
type: string
|
|
tlas:
|
|
description: TLAS is a list of Jsonnet Top-level Arguments
|
|
type: array
|
|
items:
|
|
description: JsonnetVar represents a variable to be passed to jsonnet during
|
|
manifest generation
|
|
type: object
|
|
required:
|
|
- name
|
|
- value
|
|
properties:
|
|
code:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
recurse:
|
|
description: Recurse specifies whether to scan a directory recursively for
|
|
manifests
|
|
type: boolean
|
|
helm:
|
|
description: Helm holds helm specific options
|
|
type: object
|
|
properties:
|
|
apiVersions:
|
|
description: >-
|
|
APIVersions specifies the Kubernetes resource API
|
|
versions to pass to Helm when templating manifests. By
|
|
default,
|
|
|
|
Hanzo CD uses the API versions of the target cluster. The
|
|
format is [group/]version/kind.
|
|
type: array
|
|
items:
|
|
type: string
|
|
fileParameters:
|
|
description: FileParameters are file parameters to the helm template
|
|
type: array
|
|
items:
|
|
description: HelmFileParameter is a file parameter that's passed to helm
|
|
template during manifest generation
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: Name is the name of the Helm parameter
|
|
type: string
|
|
path:
|
|
description: Path is the path to the file containing the values for the Helm
|
|
parameter
|
|
type: string
|
|
ignoreMissingValueFiles:
|
|
description: IgnoreMissingValueFiles prevents helm template from failing when
|
|
valueFiles do not exist locally by not appending them to
|
|
helm template --values
|
|
type: boolean
|
|
kubeVersion:
|
|
description: >-
|
|
KubeVersion specifies the Kubernetes API version to pass
|
|
to Helm when templating manifests. By default, Hanzo CD
|
|
|
|
uses the Kubernetes version of the target cluster.
|
|
type: string
|
|
namespace:
|
|
description: Namespace is an optional namespace to template with. If left empty,
|
|
defaults to the app's destination namespace.
|
|
type: string
|
|
parameters:
|
|
description: Parameters is a list of Helm parameters which are passed to the
|
|
helm template command upon manifest generation
|
|
type: array
|
|
items:
|
|
description: HelmParameter is a parameter that's passed to helm template during
|
|
manifest generation
|
|
type: object
|
|
properties:
|
|
forceString:
|
|
description: ForceString determines whether to tell Helm to interpret booleans
|
|
and numbers as strings
|
|
type: boolean
|
|
name:
|
|
description: Name is the name of the Helm parameter
|
|
type: string
|
|
value:
|
|
description: Value is the value for the Helm parameter
|
|
type: string
|
|
passCredentials:
|
|
description: PassCredentials pass credentials to all domains (Helm's
|
|
--pass-credentials)
|
|
type: boolean
|
|
releaseName:
|
|
description: ReleaseName is the Helm release name to use. If omitted it will use
|
|
the application name
|
|
type: string
|
|
skipCrds:
|
|
description: SkipCrds skips custom resource definition installation step (Helm's
|
|
--skip-crds)
|
|
type: boolean
|
|
skipSchemaValidation:
|
|
description: SkipSchemaValidation skips JSON schema validation (Helm's
|
|
--skip-schema-validation)
|
|
type: boolean
|
|
skipTests:
|
|
description: SkipTests skips test manifest installation step (Helm's
|
|
--skip-tests).
|
|
type: boolean
|
|
valueFiles:
|
|
description: ValuesFiles is a list of Helm value files to use when generating a
|
|
template
|
|
type: array
|
|
items:
|
|
type: string
|
|
values:
|
|
description: Values specifies Helm values to be passed to helm template,
|
|
typically defined as a block. ValuesObject takes
|
|
precedence over Values, so use one or the other.
|
|
type: string
|
|
valuesObject:
|
|
description: ValuesObject specifies Helm values to be passed to helm template,
|
|
defined as a map. This takes precedence over Values.
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
version:
|
|
description: Version is the Helm version to use for templating ("3")
|
|
type: string
|
|
kustomize:
|
|
description: Kustomize holds kustomize specific options
|
|
type: object
|
|
properties:
|
|
apiVersions:
|
|
description: >-
|
|
APIVersions specifies the Kubernetes resource API
|
|
versions to pass to Helm when templating manifests. By
|
|
default,
|
|
|
|
Hanzo CD uses the API versions of the target cluster. The
|
|
format is [group/]version/kind.
|
|
type: array
|
|
items:
|
|
type: string
|
|
commonAnnotations:
|
|
description: CommonAnnotations is a list of additional annotations to add to
|
|
rendered manifests
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
commonAnnotationsEnvsubst:
|
|
description: CommonAnnotationsEnvsubst specifies whether to apply env variables
|
|
substitution for annotation values
|
|
type: boolean
|
|
commonLabels:
|
|
description: CommonLabels is a list of additional labels to add to rendered
|
|
manifests
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
components:
|
|
description: Components specifies a list of kustomize components to add to the
|
|
kustomization before building
|
|
type: array
|
|
items:
|
|
type: string
|
|
forceCommonAnnotations:
|
|
description: ForceCommonAnnotations specifies whether to force applying common
|
|
annotations to resources for Kustomize apps
|
|
type: boolean
|
|
forceCommonLabels:
|
|
description: ForceCommonLabels specifies whether to force applying common labels
|
|
to resources for Kustomize apps
|
|
type: boolean
|
|
ignoreMissingComponents:
|
|
description: IgnoreMissingComponents prevents kustomize from failing when
|
|
components do not exist locally by not appending them to
|
|
kustomization file
|
|
type: boolean
|
|
images:
|
|
description: Images is a list of Kustomize image override specifications
|
|
type: array
|
|
items:
|
|
description: KustomizeImage represents a Kustomize image definition in the
|
|
format [old_image_name=]<image_name>:<image_tag>
|
|
type: string
|
|
kubeVersion:
|
|
description: >-
|
|
KubeVersion specifies the Kubernetes API version to pass
|
|
to Helm when templating manifests. By default, Hanzo CD
|
|
|
|
uses the Kubernetes version of the target cluster.
|
|
type: string
|
|
labelIncludeTemplates:
|
|
description: LabelIncludeTemplates specifies whether to apply common labels to
|
|
resource templates or not
|
|
type: boolean
|
|
labelWithoutSelector:
|
|
description: LabelWithoutSelector specifies whether to apply common labels to
|
|
resource selectors or not
|
|
type: boolean
|
|
namePrefix:
|
|
description: NamePrefix is a prefix appended to resources for Kustomize apps
|
|
type: string
|
|
nameSuffix:
|
|
description: NameSuffix is a suffix appended to resources for Kustomize apps
|
|
type: string
|
|
namespace:
|
|
description: Namespace sets the namespace that Kustomize adds to all resources
|
|
type: string
|
|
patches:
|
|
description: Patches is a list of Kustomize patches
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
options:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
patch:
|
|
type: string
|
|
path:
|
|
type: string
|
|
target:
|
|
type: object
|
|
properties:
|
|
annotationSelector:
|
|
type: string
|
|
group:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
labelSelector:
|
|
type: string
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
version:
|
|
type: string
|
|
replicas:
|
|
description: Replicas is a list of Kustomize Replicas override specifications
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- count
|
|
- name
|
|
properties:
|
|
count:
|
|
description: Number of replicas
|
|
x-kubernetes-int-or-string: true
|
|
name:
|
|
description: Name of Deployment or StatefulSet
|
|
type: string
|
|
version:
|
|
description: Version controls which version of Kustomize to use for rendering
|
|
manifests
|
|
type: string
|
|
name:
|
|
description: Name is used to refer to a source and is displayed in the UI. It is
|
|
used in multi-source Applications.
|
|
type: string
|
|
path:
|
|
description: Path is a directory path within the Git repository, and is only
|
|
valid for applications sourced from Git.
|
|
type: string
|
|
plugin:
|
|
description: Plugin holds config management plugin specific options
|
|
type: object
|
|
properties:
|
|
env:
|
|
description: Env is a list of environment variable entries
|
|
type: array
|
|
items:
|
|
description: EnvEntry represents an entry in the application's environment
|
|
type: object
|
|
required:
|
|
- name
|
|
- value
|
|
properties:
|
|
name:
|
|
description: Name is the name of the variable, usually expressed in uppercase
|
|
type: string
|
|
value:
|
|
description: Value is the value of the variable
|
|
type: string
|
|
name:
|
|
type: string
|
|
parameters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
array:
|
|
description: Array is the value of an array type parameter.
|
|
type: array
|
|
items:
|
|
type: string
|
|
map:
|
|
description: Map is the value of a map type parameter.
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
name:
|
|
description: Name is the name identifying a parameter.
|
|
type: string
|
|
string:
|
|
description: String_ is the value of a string type parameter.
|
|
type: string
|
|
ref:
|
|
description: Ref is reference to another source within sources field. This field
|
|
will not be used if used with a `source` tag.
|
|
type: string
|
|
repoURL:
|
|
description: RepoURL is the URL to the repository (Git or Helm) that contains
|
|
the application manifests
|
|
type: string
|
|
targetRevision:
|
|
description: >-
|
|
TargetRevision defines the revision of the source to sync
|
|
the application to.
|
|
|
|
In case of Git, this can be commit, tag, or branch. If
|
|
omitted, will equal to HEAD.
|
|
|
|
In case of Helm, this is a semver tag for the Chart's
|
|
version.
|
|
type: string
|
|
syncPolicy:
|
|
description: SyncPolicy controls when and how a sync will be performed
|
|
type: object
|
|
properties:
|
|
automated:
|
|
description: Automated will keep an application synced to the target revision
|
|
type: object
|
|
properties:
|
|
allowEmpty:
|
|
description: "AllowEmpty allows apps have zero live resources (default: false)"
|
|
type: boolean
|
|
enabled:
|
|
description: Enable allows apps to explicitly control automated sync
|
|
type: boolean
|
|
prune:
|
|
description: "Prune specifies whether to delete resources from the cluster that
|
|
are not found in the sources anymore as part of automated
|
|
sync (default: false)"
|
|
type: boolean
|
|
selfHeal:
|
|
description: "SelfHeal specifies whether to revert resources back to their
|
|
desired state upon modification in the cluster (default:
|
|
false)"
|
|
type: boolean
|
|
managedNamespaceMetadata:
|
|
description: ManagedNamespaceMetadata controls metadata in the given namespace
|
|
(if CreateNamespace=true)
|
|
type: object
|
|
properties:
|
|
annotations:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
labels:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
retry:
|
|
description: Retry controls failed sync retry behavior
|
|
type: object
|
|
properties:
|
|
backoff:
|
|
description: Backoff controls how to backoff on subsequent retries of failed
|
|
syncs
|
|
type: object
|
|
properties:
|
|
duration:
|
|
description: Duration is the amount to back off. Default unit is seconds, but
|
|
could also be a duration (e.g. "2m", "1h")
|
|
type: string
|
|
factor:
|
|
description: Factor is a factor to multiply the base duration after each failed
|
|
retry
|
|
type: integer
|
|
format: int64
|
|
maxDuration:
|
|
description: MaxDuration is the maximum amount of time allowed for the backoff
|
|
strategy
|
|
type: string
|
|
limit:
|
|
description: Limit is the maximum number of attempts for retrying a failed sync.
|
|
If set to 0, no retries will be performed.
|
|
type: integer
|
|
format: int64
|
|
syncOptions:
|
|
description: Options allow you to specify whole app sync-options
|
|
type: array
|
|
items:
|
|
type: string
|
|
x-kubernetes-group-version-kind:
|
|
- group: apps.hanzo.ai
|
|
kind: Application
|
|
version: v1alpha1
|