mirror of https://github.com/kubevela/kubevela.git
1546 lines
82 KiB
YAML
1546 lines
82 KiB
YAML
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
cert-manager.io/inject-ca-from: vela-system/kubevela-vela-core-root-cert
|
|
controller-gen.kubebuilder.io/version: v0.6.2
|
|
name: applications.core.oam.dev
|
|
spec:
|
|
group: core.oam.dev
|
|
names:
|
|
categories:
|
|
- oam
|
|
kind: Application
|
|
listKind: ApplicationList
|
|
plural: applications
|
|
shortNames:
|
|
- app
|
|
- velaapp
|
|
singular: application
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .spec.components[*].name
|
|
name: COMPONENT
|
|
type: string
|
|
- jsonPath: .spec.components[*].type
|
|
name: TYPE
|
|
type: string
|
|
- jsonPath: .status.status
|
|
name: PHASE
|
|
type: string
|
|
- jsonPath: .status.services[*].healthy
|
|
name: HEALTHY
|
|
type: boolean
|
|
- jsonPath: .status.services[*].message
|
|
name: STATUS
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: AGE
|
|
type: date
|
|
name: v1alpha2
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: Application is the Schema for the applications API
|
|
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:
|
|
type: object
|
|
spec:
|
|
description: ApplicationSpec is the spec of Application
|
|
properties:
|
|
components:
|
|
items:
|
|
description: ApplicationComponent describe the component of application
|
|
properties:
|
|
name:
|
|
type: string
|
|
scopes:
|
|
additionalProperties:
|
|
type: string
|
|
description: scopes in ApplicationComponent defines the component-level
|
|
scopes the format is <scope-type:scope-instance-name> pairs,
|
|
the key represents type of `ScopeDefinition` while the value
|
|
represent the name of scope instance.
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
settings:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
traits:
|
|
description: Traits define the trait of one component, the type
|
|
must be array to keep the order.
|
|
items:
|
|
description: ApplicationTrait defines the trait of application
|
|
properties:
|
|
name:
|
|
type: string
|
|
properties:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
type:
|
|
type: string
|
|
required:
|
|
- name
|
|
- type
|
|
type: object
|
|
type: array
|
|
rolloutPlan:
|
|
description: RolloutPlan is the details on how to rollout the resources
|
|
The controller simply replace the old resources with the new one
|
|
if there is no rollout plan involved
|
|
properties:
|
|
batchPartition:
|
|
description: All pods in the batches up to the batchPartition
|
|
(included) will have the target resource specification while
|
|
the rest still have the source resource This is designed for
|
|
the operators to manually rollout Default is the the number
|
|
of batches which will rollout all the batches
|
|
format: int32
|
|
type: integer
|
|
canaryMetric:
|
|
description: CanaryMetric provides a way for the rollout process
|
|
to automatically check certain metrics before complete the process
|
|
items:
|
|
description: CanaryMetric holds the reference to metrics used
|
|
for canary analysis
|
|
properties:
|
|
interval:
|
|
description: Interval represents the windows size
|
|
type: string
|
|
metricsRange:
|
|
description: Range value accepted for this metric
|
|
properties:
|
|
max:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Maximum value
|
|
x-kubernetes-int-or-string: true
|
|
min:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Minimum value
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
name:
|
|
description: Name of the metric
|
|
type: string
|
|
templateRef:
|
|
description: TemplateRef references a metric template object
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: 'If referring to a piece of an object instead
|
|
of an entire object, this string should contain a
|
|
valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container
|
|
within a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container
|
|
that triggered the event) or if no container name
|
|
is specified "spec.containers[2]" (container with
|
|
index 2 in this pod). This syntax is chosen only to
|
|
have some well-defined way of referencing a part of
|
|
an object. TODO: this design is not final and this
|
|
field is subject to change in the future.'
|
|
type: string
|
|
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/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info:
|
|
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: 'Specific resourceVersion to which this
|
|
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
numBatches:
|
|
description: The number of batches, default = 1
|
|
format: int32
|
|
type: integer
|
|
paused:
|
|
description: Paused the rollout, default is false
|
|
type: boolean
|
|
rolloutBatches:
|
|
description: The exact distribution among batches. its size has
|
|
to be exactly the same as the NumBatches (if set) The total
|
|
number cannot exceed the targetSize or the size of the source
|
|
resource We will IGNORE the last batch's replica field if it's
|
|
a percentage since round errors can lead to inaccurate sum We
|
|
highly recommend to leave the last batch's replica field empty
|
|
items:
|
|
description: RolloutBatch is used to describe how the each batch
|
|
rollout should be
|
|
properties:
|
|
batchRolloutWebhooks:
|
|
description: RolloutWebhooks provides a way for the batch
|
|
rollout to interact with an external process
|
|
items:
|
|
description: RolloutWebhook holds the reference to external
|
|
checks used for canary analysis
|
|
properties:
|
|
expectedStatus:
|
|
description: ExpectedStatus contains all the expected
|
|
http status code that we will accept as success
|
|
items:
|
|
type: integer
|
|
type: array
|
|
metadata:
|
|
additionalProperties:
|
|
type: string
|
|
description: Metadata (key-value pairs) for this webhook
|
|
type: object
|
|
method:
|
|
description: Method the HTTP call method, default
|
|
is POST
|
|
type: string
|
|
name:
|
|
description: Name of this webhook
|
|
type: string
|
|
type:
|
|
description: Type of this webhook
|
|
type: string
|
|
url:
|
|
description: URL address of this webhook
|
|
type: string
|
|
required:
|
|
- name
|
|
- type
|
|
- url
|
|
type: object
|
|
type: array
|
|
canaryMetric:
|
|
description: CanaryMetric provides a way for the batch rollout
|
|
process to automatically check certain metrics before
|
|
moving to the next batch
|
|
items:
|
|
description: CanaryMetric holds the reference to metrics
|
|
used for canary analysis
|
|
properties:
|
|
interval:
|
|
description: Interval represents the windows size
|
|
type: string
|
|
metricsRange:
|
|
description: Range value accepted for this metric
|
|
properties:
|
|
max:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Maximum value
|
|
x-kubernetes-int-or-string: true
|
|
min:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Minimum value
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
name:
|
|
description: Name of the metric
|
|
type: string
|
|
templateRef:
|
|
description: TemplateRef references a metric template
|
|
object
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: 'If referring to a piece of an object
|
|
instead of an entire object, this string should
|
|
contain a valid JSON/Go field access statement,
|
|
such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a
|
|
container within a pod, this would take on a
|
|
value like: "spec.containers{name}" (where "name"
|
|
refers to the name of the container that triggered
|
|
the event) or if no container name is specified
|
|
"spec.containers[2]" (container with index 2
|
|
in this pod). This syntax is chosen only to
|
|
have some well-defined way of referencing a
|
|
part of an object. TODO: this design is not
|
|
final and this field is subject to change in
|
|
the future.'
|
|
type: string
|
|
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/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More
|
|
info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: 'Specific resourceVersion to which
|
|
this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info:
|
|
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
instanceInterval:
|
|
description: The wait time, in seconds, between instances
|
|
upgrades, default = 0
|
|
format: int32
|
|
type: integer
|
|
maxUnavailable:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: MaxUnavailable is the max allowed number of
|
|
pods that is unavailable during the upgrade. We will mark
|
|
the batch as ready as long as there are less or equal
|
|
number of pods unavailable than this number. default =
|
|
0
|
|
x-kubernetes-int-or-string: true
|
|
podList:
|
|
description: The list of Pods to get upgraded it is mutually
|
|
exclusive with the Replicas field
|
|
items:
|
|
type: string
|
|
type: array
|
|
replicas:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: 'Replicas is the number of pods to upgrade
|
|
in this batch it can be an absolute number (ex: 5) or
|
|
a percentage of total pods we will ignore the percentage
|
|
of the last batch to just fill the gap it is mutually
|
|
exclusive with the PodList field'
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
type: array
|
|
rolloutStrategy:
|
|
description: RolloutStrategy defines strategies for the rollout
|
|
plan The default is IncreaseFirstRolloutStrategyType
|
|
type: string
|
|
rolloutWebhooks:
|
|
description: RolloutWebhooks provide a way for the rollout to
|
|
interact with an external process
|
|
items:
|
|
description: RolloutWebhook holds the reference to external
|
|
checks used for canary analysis
|
|
properties:
|
|
expectedStatus:
|
|
description: ExpectedStatus contains all the expected http
|
|
status code that we will accept as success
|
|
items:
|
|
type: integer
|
|
type: array
|
|
metadata:
|
|
additionalProperties:
|
|
type: string
|
|
description: Metadata (key-value pairs) for this webhook
|
|
type: object
|
|
method:
|
|
description: Method the HTTP call method, default is POST
|
|
type: string
|
|
name:
|
|
description: Name of this webhook
|
|
type: string
|
|
type:
|
|
description: Type of this webhook
|
|
type: string
|
|
url:
|
|
description: URL address of this webhook
|
|
type: string
|
|
required:
|
|
- name
|
|
- type
|
|
- url
|
|
type: object
|
|
type: array
|
|
targetSize:
|
|
description: The size of the target resource. The default is the
|
|
same as the size of the source resource.
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
required:
|
|
- components
|
|
type: object
|
|
status:
|
|
description: AppStatus defines the observed state of Application
|
|
properties:
|
|
appliedResources:
|
|
description: AppliedResources record the resources that the workflow
|
|
step apply.
|
|
items:
|
|
description: ClusterObjectReference defines the object reference
|
|
with cluster.
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
cluster:
|
|
type: string
|
|
creator:
|
|
description: ResourceCreatorRole defines the resource creator.
|
|
type: string
|
|
fieldPath:
|
|
description: 'If referring to a piece of an object instead of
|
|
an entire object, this string should contain a valid JSON/Go
|
|
field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container within
|
|
a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container that triggered
|
|
the event) or if no container name is specified "spec.containers[2]"
|
|
(container with index 2 in this pod). This syntax is chosen
|
|
only to have some well-defined way of referencing a part of
|
|
an object. TODO: this design is not final and this field is
|
|
subject to change in the future.'
|
|
type: string
|
|
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/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: 'Specific resourceVersion to which this reference
|
|
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
type: array
|
|
components:
|
|
description: Components record the related Components created by Application
|
|
Controller
|
|
items:
|
|
description: 'ObjectReference contains enough information to let
|
|
you inspect or modify the referred object. --- New uses of this
|
|
type are discouraged because of difficulty describing its usage
|
|
when embedded in APIs. 1. Ignored fields. It includes many fields
|
|
which are not generally honored. For instance, ResourceVersion
|
|
and FieldPath are both very rarely valid in actual usage. 2.
|
|
Invalid usage help. It is impossible to add specific help for
|
|
individual usage. In most embedded usages, there are particular restrictions
|
|
like, "must refer only to types A and B" or "UID not honored"
|
|
or "name must be restricted". Those cannot be well described
|
|
when embedded. 3. Inconsistent validation. Because the usages
|
|
are different, the validation rules are different by usage, which
|
|
makes it hard for users to predict what will happen. 4. The fields
|
|
are both imprecise and overly precise. Kind is not a precise
|
|
mapping to a URL. This can produce ambiguity during interpretation
|
|
and require a REST mapping. In most cases, the dependency is
|
|
on the group,resource tuple and the version of the actual
|
|
struct is irrelevant. 5. We cannot easily change it. Because
|
|
this type is embedded in many locations, updates to this type will
|
|
affect numerous schemas. Don''t make new APIs embed an underspecified
|
|
API type they do not control. Instead of using this type, create
|
|
a locally provided and used type that is well-focused on your
|
|
reference. For example, ServiceReferences for admission registration:
|
|
https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
|
|
.'
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: 'If referring to a piece of an object instead of
|
|
an entire object, this string should contain a valid JSON/Go
|
|
field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container within
|
|
a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container that triggered
|
|
the event) or if no container name is specified "spec.containers[2]"
|
|
(container with index 2 in this pod). This syntax is chosen
|
|
only to have some well-defined way of referencing a part of
|
|
an object. TODO: this design is not final and this field is
|
|
subject to change in the future.'
|
|
type: string
|
|
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/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: 'Specific resourceVersion to which this reference
|
|
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
type: array
|
|
conditions:
|
|
description: Conditions of the resource.
|
|
items:
|
|
description: A Condition that may apply to a resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: LastTransitionTime is the last time this condition
|
|
transitioned from one status to another.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: A Message containing details about this condition's
|
|
last transition from one status to another, if any.
|
|
type: string
|
|
reason:
|
|
description: A Reason for this condition's last transition from
|
|
one status to another.
|
|
type: string
|
|
status:
|
|
description: Status of this condition; is it currently True,
|
|
False, or Unknown?
|
|
type: string
|
|
type:
|
|
description: Type of this condition. At most one of each condition
|
|
type may apply to a resource at any point in time.
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
latestRevision:
|
|
description: LatestRevision of the application configuration it generates
|
|
properties:
|
|
name:
|
|
type: string
|
|
revision:
|
|
format: int64
|
|
type: integer
|
|
revisionHash:
|
|
description: RevisionHash record the hash value of the spec of
|
|
ApplicationRevision object.
|
|
type: string
|
|
required:
|
|
- name
|
|
- revision
|
|
type: object
|
|
observedGeneration:
|
|
description: The generation observed by the application controller.
|
|
format: int64
|
|
type: integer
|
|
policy:
|
|
description: PolicyStatus records the status of policy
|
|
items:
|
|
description: PolicyStatus records the status of policy
|
|
properties:
|
|
name:
|
|
type: string
|
|
status:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
type:
|
|
type: string
|
|
required:
|
|
- name
|
|
- type
|
|
type: object
|
|
type: array
|
|
services:
|
|
description: Services record the status of the application services
|
|
items:
|
|
description: ApplicationComponentStatus record the health status
|
|
of App component
|
|
properties:
|
|
cluster:
|
|
type: string
|
|
env:
|
|
type: string
|
|
healthy:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
scopes:
|
|
items:
|
|
description: 'ObjectReference contains enough information
|
|
to let you inspect or modify the referred object. --- New
|
|
uses of this type are discouraged because of difficulty
|
|
describing its usage when embedded in APIs. 1. Ignored
|
|
fields. It includes many fields which are not generally
|
|
honored. For instance, ResourceVersion and FieldPath are
|
|
both very rarely valid in actual usage. 2. Invalid usage
|
|
help. It is impossible to add specific help for individual
|
|
usage. In most embedded usages, there are particular restrictions
|
|
like, "must refer only to types A and B" or "UID not honored"
|
|
or "name must be restricted". Those cannot be well described
|
|
when embedded. 3. Inconsistent validation. Because the
|
|
usages are different, the validation rules are different
|
|
by usage, which makes it hard for users to predict what
|
|
will happen. 4. The fields are both imprecise and overly
|
|
precise. Kind is not a precise mapping to a URL. This can
|
|
produce ambiguity during interpretation and require
|
|
a REST mapping. In most cases, the dependency is on the
|
|
group,resource tuple and the version of the actual struct
|
|
is irrelevant. 5. We cannot easily change it. Because
|
|
this type is embedded in many locations, updates to this
|
|
type will affect numerous schemas. Don''t make new
|
|
APIs embed an underspecified API type they do not control.
|
|
Instead of using this type, create a locally provided and
|
|
used type that is well-focused on your reference. For example,
|
|
ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
|
|
.'
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: 'If referring to a piece of an object instead
|
|
of an entire object, this string should contain a valid
|
|
JSON/Go field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container
|
|
within a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container that
|
|
triggered the event) or if no container name is specified
|
|
"spec.containers[2]" (container with index 2 in this
|
|
pod). This syntax is chosen only to have some well-defined
|
|
way of referencing a part of an object. TODO: this design
|
|
is not final and this field is subject to change in
|
|
the future.'
|
|
type: string
|
|
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/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: 'Specific resourceVersion to which this reference
|
|
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
type: array
|
|
traits:
|
|
items:
|
|
description: ApplicationTraitStatus records the trait health
|
|
status
|
|
properties:
|
|
healthy:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- healthy
|
|
- type
|
|
type: object
|
|
type: array
|
|
workloadDefinition:
|
|
description: WorkloadDefinition is the definition of a WorkloadDefinition,
|
|
such as deployments/apps.v1
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
required:
|
|
- apiVersion
|
|
- kind
|
|
type: object
|
|
required:
|
|
- healthy
|
|
- name
|
|
type: object
|
|
type: array
|
|
status:
|
|
description: ApplicationPhase is a label for the condition of an application
|
|
at the current time
|
|
type: string
|
|
workflow:
|
|
description: Workflow record the status of workflow
|
|
properties:
|
|
appRevision:
|
|
type: string
|
|
contextBackend:
|
|
description: 'ObjectReference contains enough information to let
|
|
you inspect or modify the referred object. --- New uses of this
|
|
type are discouraged because of difficulty describing its usage
|
|
when embedded in APIs. 1. Ignored fields. It includes many
|
|
fields which are not generally honored. For instance, ResourceVersion
|
|
and FieldPath are both very rarely valid in actual usage. 2.
|
|
Invalid usage help. It is impossible to add specific help for
|
|
individual usage. In most embedded usages, there are particular restrictions
|
|
like, "must refer only to types A and B" or "UID not honored"
|
|
or "name must be restricted". Those cannot be well described
|
|
when embedded. 3. Inconsistent validation. Because the usages
|
|
are different, the validation rules are different by usage,
|
|
which makes it hard for users to predict what will happen. 4.
|
|
The fields are both imprecise and overly precise. Kind is not
|
|
a precise mapping to a URL. This can produce ambiguity during
|
|
interpretation and require a REST mapping. In most cases, the
|
|
dependency is on the group,resource tuple and the version
|
|
of the actual struct is irrelevant. 5. We cannot easily change
|
|
it. Because this type is embedded in many locations, updates
|
|
to this type will affect numerous schemas. Don''t make
|
|
new APIs embed an underspecified API type they do not control.
|
|
Instead of using this type, create a locally provided and used
|
|
type that is well-focused on your reference. For example, ServiceReferences
|
|
for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
|
|
.'
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: 'If referring to a piece of an object instead
|
|
of an entire object, this string should contain a valid
|
|
JSON/Go field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container within
|
|
a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container that triggered
|
|
the event) or if no container name is specified "spec.containers[2]"
|
|
(container with index 2 in this pod). This syntax is chosen
|
|
only to have some well-defined way of referencing a part
|
|
of an object. TODO: this design is not final and this field
|
|
is subject to change in the future.'
|
|
type: string
|
|
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/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: 'Specific resourceVersion to which this reference
|
|
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
finished:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
mode:
|
|
description: WorkflowMode describes the mode of workflow
|
|
type: string
|
|
startTime:
|
|
format: date-time
|
|
type: string
|
|
steps:
|
|
items:
|
|
description: WorkflowStepStatus record the status of a workflow
|
|
step
|
|
properties:
|
|
firstExecuteTime:
|
|
description: FirstExecuteTime is the first time this step
|
|
execution.
|
|
format: date-time
|
|
type: string
|
|
id:
|
|
type: string
|
|
lastExecuteTime:
|
|
description: LastExecuteTime is the last time this step
|
|
execution.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: A human readable message indicating details
|
|
about why the workflowStep is in this state.
|
|
type: string
|
|
name:
|
|
type: string
|
|
phase:
|
|
description: WorkflowStepPhase describes the phase of a
|
|
workflow step.
|
|
type: string
|
|
reason:
|
|
description: A brief CamelCase message indicating details
|
|
about why the workflowStep is in this state.
|
|
type: string
|
|
subSteps:
|
|
description: SubStepsStatus record the status of workflow
|
|
steps.
|
|
properties:
|
|
mode:
|
|
description: WorkflowMode describes the mode of workflow
|
|
type: string
|
|
stepIndex:
|
|
type: integer
|
|
steps:
|
|
items:
|
|
description: WorkflowSubStepStatus record the status
|
|
of a workflow step
|
|
properties:
|
|
id:
|
|
type: string
|
|
message:
|
|
description: A human readable message indicating
|
|
details about why the workflowStep is in this
|
|
state.
|
|
type: string
|
|
name:
|
|
type: string
|
|
phase:
|
|
description: WorkflowStepPhase describes the phase
|
|
of a workflow step.
|
|
type: string
|
|
reason:
|
|
description: A brief CamelCase message indicating
|
|
details about why the workflowStep is in this
|
|
state.
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
type: array
|
|
type: object
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
type: array
|
|
suspend:
|
|
type: boolean
|
|
suspendState:
|
|
type: string
|
|
terminated:
|
|
type: boolean
|
|
required:
|
|
- finished
|
|
- mode
|
|
- suspend
|
|
- terminated
|
|
type: object
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: false
|
|
subresources:
|
|
status: {}
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .spec.components[*].name
|
|
name: COMPONENT
|
|
type: string
|
|
- jsonPath: .spec.components[*].type
|
|
name: TYPE
|
|
type: string
|
|
- jsonPath: .status.status
|
|
name: PHASE
|
|
type: string
|
|
- jsonPath: .status.services[*].healthy
|
|
name: HEALTHY
|
|
type: boolean
|
|
- jsonPath: .status.services[*].message
|
|
name: STATUS
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: AGE
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: Application is the Schema for the applications API
|
|
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:
|
|
type: object
|
|
spec:
|
|
description: ApplicationSpec is the spec of Application
|
|
properties:
|
|
components:
|
|
items:
|
|
description: ApplicationComponent describe the component of application
|
|
properties:
|
|
dependsOn:
|
|
items:
|
|
type: string
|
|
type: array
|
|
externalRevision:
|
|
description: ExternalRevision specified the component revisionName
|
|
type: string
|
|
inputs:
|
|
description: StepInputs defines variable input of WorkflowStep
|
|
items:
|
|
properties:
|
|
from:
|
|
type: string
|
|
parameterKey:
|
|
type: string
|
|
required:
|
|
- from
|
|
- parameterKey
|
|
type: object
|
|
type: array
|
|
name:
|
|
type: string
|
|
outputs:
|
|
description: StepOutputs defines output variable of WorkflowStep
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
valueFrom:
|
|
type: string
|
|
required:
|
|
- name
|
|
- valueFrom
|
|
type: object
|
|
type: array
|
|
properties:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
scopes:
|
|
additionalProperties:
|
|
type: string
|
|
description: scopes in ApplicationComponent defines the component-level
|
|
scopes the format is <scope-type:scope-instance-name> pairs,
|
|
the key represents type of `ScopeDefinition` while the value
|
|
represent the name of scope instance.
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
traits:
|
|
description: Traits define the trait of one component, the type
|
|
must be array to keep the order.
|
|
items:
|
|
description: ApplicationTrait defines the trait of application
|
|
properties:
|
|
properties:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
type: array
|
|
type:
|
|
type: string
|
|
required:
|
|
- name
|
|
- type
|
|
type: object
|
|
type: array
|
|
policies:
|
|
description: Policies defines the global policies for all components
|
|
in the app, e.g. security, metrics, gitops, multi-cluster placement
|
|
rules, etc. Policies are applied after components are rendered and
|
|
before workflow steps are executed.
|
|
items:
|
|
description: AppPolicy defines a global policy for all components
|
|
in the app.
|
|
properties:
|
|
name:
|
|
description: Name is the unique name of the policy.
|
|
type: string
|
|
properties:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
type:
|
|
type: string
|
|
required:
|
|
- name
|
|
- type
|
|
type: object
|
|
type: array
|
|
workflow:
|
|
description: 'Workflow defines how to customize the control logic.
|
|
If workflow is specified, Vela won''t apply any resource, but provide
|
|
rendered output in AppRevision. Workflow steps are executed in array
|
|
order, and each step: - will have a context in annotation. - should
|
|
mark "finish" phase in status.conditions.'
|
|
properties:
|
|
ref:
|
|
type: string
|
|
steps:
|
|
items:
|
|
description: WorkflowStep defines how to execute a workflow
|
|
step.
|
|
properties:
|
|
dependsOn:
|
|
items:
|
|
type: string
|
|
type: array
|
|
inputs:
|
|
description: StepInputs defines variable input of WorkflowStep
|
|
items:
|
|
properties:
|
|
from:
|
|
type: string
|
|
parameterKey:
|
|
type: string
|
|
required:
|
|
- from
|
|
- parameterKey
|
|
type: object
|
|
type: array
|
|
name:
|
|
description: Name is the unique name of the workflow step.
|
|
type: string
|
|
outputs:
|
|
description: StepOutputs defines output variable of WorkflowStep
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
valueFrom:
|
|
type: string
|
|
required:
|
|
- name
|
|
- valueFrom
|
|
type: object
|
|
type: array
|
|
properties:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
type:
|
|
type: string
|
|
required:
|
|
- name
|
|
- type
|
|
type: object
|
|
type: array
|
|
type: object
|
|
required:
|
|
- components
|
|
type: object
|
|
status:
|
|
description: AppStatus defines the observed state of Application
|
|
properties:
|
|
appliedResources:
|
|
description: AppliedResources record the resources that the workflow
|
|
step apply.
|
|
items:
|
|
description: ClusterObjectReference defines the object reference
|
|
with cluster.
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
cluster:
|
|
type: string
|
|
creator:
|
|
description: ResourceCreatorRole defines the resource creator.
|
|
type: string
|
|
fieldPath:
|
|
description: 'If referring to a piece of an object instead of
|
|
an entire object, this string should contain a valid JSON/Go
|
|
field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container within
|
|
a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container that triggered
|
|
the event) or if no container name is specified "spec.containers[2]"
|
|
(container with index 2 in this pod). This syntax is chosen
|
|
only to have some well-defined way of referencing a part of
|
|
an object. TODO: this design is not final and this field is
|
|
subject to change in the future.'
|
|
type: string
|
|
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/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: 'Specific resourceVersion to which this reference
|
|
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
type: array
|
|
components:
|
|
description: Components record the related Components created by Application
|
|
Controller
|
|
items:
|
|
description: 'ObjectReference contains enough information to let
|
|
you inspect or modify the referred object. --- New uses of this
|
|
type are discouraged because of difficulty describing its usage
|
|
when embedded in APIs. 1. Ignored fields. It includes many fields
|
|
which are not generally honored. For instance, ResourceVersion
|
|
and FieldPath are both very rarely valid in actual usage. 2.
|
|
Invalid usage help. It is impossible to add specific help for
|
|
individual usage. In most embedded usages, there are particular restrictions
|
|
like, "must refer only to types A and B" or "UID not honored"
|
|
or "name must be restricted". Those cannot be well described
|
|
when embedded. 3. Inconsistent validation. Because the usages
|
|
are different, the validation rules are different by usage, which
|
|
makes it hard for users to predict what will happen. 4. The fields
|
|
are both imprecise and overly precise. Kind is not a precise
|
|
mapping to a URL. This can produce ambiguity during interpretation
|
|
and require a REST mapping. In most cases, the dependency is
|
|
on the group,resource tuple and the version of the actual
|
|
struct is irrelevant. 5. We cannot easily change it. Because
|
|
this type is embedded in many locations, updates to this type will
|
|
affect numerous schemas. Don''t make new APIs embed an underspecified
|
|
API type they do not control. Instead of using this type, create
|
|
a locally provided and used type that is well-focused on your
|
|
reference. For example, ServiceReferences for admission registration:
|
|
https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
|
|
.'
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: 'If referring to a piece of an object instead of
|
|
an entire object, this string should contain a valid JSON/Go
|
|
field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container within
|
|
a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container that triggered
|
|
the event) or if no container name is specified "spec.containers[2]"
|
|
(container with index 2 in this pod). This syntax is chosen
|
|
only to have some well-defined way of referencing a part of
|
|
an object. TODO: this design is not final and this field is
|
|
subject to change in the future.'
|
|
type: string
|
|
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/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: 'Specific resourceVersion to which this reference
|
|
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
type: array
|
|
conditions:
|
|
description: Conditions of the resource.
|
|
items:
|
|
description: A Condition that may apply to a resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: LastTransitionTime is the last time this condition
|
|
transitioned from one status to another.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: A Message containing details about this condition's
|
|
last transition from one status to another, if any.
|
|
type: string
|
|
reason:
|
|
description: A Reason for this condition's last transition from
|
|
one status to another.
|
|
type: string
|
|
status:
|
|
description: Status of this condition; is it currently True,
|
|
False, or Unknown?
|
|
type: string
|
|
type:
|
|
description: Type of this condition. At most one of each condition
|
|
type may apply to a resource at any point in time.
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
latestRevision:
|
|
description: LatestRevision of the application configuration it generates
|
|
properties:
|
|
name:
|
|
type: string
|
|
revision:
|
|
format: int64
|
|
type: integer
|
|
revisionHash:
|
|
description: RevisionHash record the hash value of the spec of
|
|
ApplicationRevision object.
|
|
type: string
|
|
required:
|
|
- name
|
|
- revision
|
|
type: object
|
|
observedGeneration:
|
|
description: The generation observed by the application controller.
|
|
format: int64
|
|
type: integer
|
|
policy:
|
|
description: PolicyStatus records the status of policy
|
|
items:
|
|
description: PolicyStatus records the status of policy
|
|
properties:
|
|
name:
|
|
type: string
|
|
status:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
type:
|
|
type: string
|
|
required:
|
|
- name
|
|
- type
|
|
type: object
|
|
type: array
|
|
services:
|
|
description: Services record the status of the application services
|
|
items:
|
|
description: ApplicationComponentStatus record the health status
|
|
of App component
|
|
properties:
|
|
cluster:
|
|
type: string
|
|
env:
|
|
type: string
|
|
healthy:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
scopes:
|
|
items:
|
|
description: 'ObjectReference contains enough information
|
|
to let you inspect or modify the referred object. --- New
|
|
uses of this type are discouraged because of difficulty
|
|
describing its usage when embedded in APIs. 1. Ignored
|
|
fields. It includes many fields which are not generally
|
|
honored. For instance, ResourceVersion and FieldPath are
|
|
both very rarely valid in actual usage. 2. Invalid usage
|
|
help. It is impossible to add specific help for individual
|
|
usage. In most embedded usages, there are particular restrictions
|
|
like, "must refer only to types A and B" or "UID not honored"
|
|
or "name must be restricted". Those cannot be well described
|
|
when embedded. 3. Inconsistent validation. Because the
|
|
usages are different, the validation rules are different
|
|
by usage, which makes it hard for users to predict what
|
|
will happen. 4. The fields are both imprecise and overly
|
|
precise. Kind is not a precise mapping to a URL. This can
|
|
produce ambiguity during interpretation and require
|
|
a REST mapping. In most cases, the dependency is on the
|
|
group,resource tuple and the version of the actual struct
|
|
is irrelevant. 5. We cannot easily change it. Because
|
|
this type is embedded in many locations, updates to this
|
|
type will affect numerous schemas. Don''t make new
|
|
APIs embed an underspecified API type they do not control.
|
|
Instead of using this type, create a locally provided and
|
|
used type that is well-focused on your reference. For example,
|
|
ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
|
|
.'
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: 'If referring to a piece of an object instead
|
|
of an entire object, this string should contain a valid
|
|
JSON/Go field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container
|
|
within a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container that
|
|
triggered the event) or if no container name is specified
|
|
"spec.containers[2]" (container with index 2 in this
|
|
pod). This syntax is chosen only to have some well-defined
|
|
way of referencing a part of an object. TODO: this design
|
|
is not final and this field is subject to change in
|
|
the future.'
|
|
type: string
|
|
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/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: 'Specific resourceVersion to which this reference
|
|
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
type: array
|
|
traits:
|
|
items:
|
|
description: ApplicationTraitStatus records the trait health
|
|
status
|
|
properties:
|
|
healthy:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- healthy
|
|
- type
|
|
type: object
|
|
type: array
|
|
workloadDefinition:
|
|
description: WorkloadDefinition is the definition of a WorkloadDefinition,
|
|
such as deployments/apps.v1
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
required:
|
|
- apiVersion
|
|
- kind
|
|
type: object
|
|
required:
|
|
- healthy
|
|
- name
|
|
type: object
|
|
type: array
|
|
status:
|
|
description: ApplicationPhase is a label for the condition of an application
|
|
at the current time
|
|
type: string
|
|
workflow:
|
|
description: Workflow record the status of workflow
|
|
properties:
|
|
appRevision:
|
|
type: string
|
|
contextBackend:
|
|
description: 'ObjectReference contains enough information to let
|
|
you inspect or modify the referred object. --- New uses of this
|
|
type are discouraged because of difficulty describing its usage
|
|
when embedded in APIs. 1. Ignored fields. It includes many
|
|
fields which are not generally honored. For instance, ResourceVersion
|
|
and FieldPath are both very rarely valid in actual usage. 2.
|
|
Invalid usage help. It is impossible to add specific help for
|
|
individual usage. In most embedded usages, there are particular restrictions
|
|
like, "must refer only to types A and B" or "UID not honored"
|
|
or "name must be restricted". Those cannot be well described
|
|
when embedded. 3. Inconsistent validation. Because the usages
|
|
are different, the validation rules are different by usage,
|
|
which makes it hard for users to predict what will happen. 4.
|
|
The fields are both imprecise and overly precise. Kind is not
|
|
a precise mapping to a URL. This can produce ambiguity during
|
|
interpretation and require a REST mapping. In most cases, the
|
|
dependency is on the group,resource tuple and the version
|
|
of the actual struct is irrelevant. 5. We cannot easily change
|
|
it. Because this type is embedded in many locations, updates
|
|
to this type will affect numerous schemas. Don''t make
|
|
new APIs embed an underspecified API type they do not control.
|
|
Instead of using this type, create a locally provided and used
|
|
type that is well-focused on your reference. For example, ServiceReferences
|
|
for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
|
|
.'
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: 'If referring to a piece of an object instead
|
|
of an entire object, this string should contain a valid
|
|
JSON/Go field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container within
|
|
a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container that triggered
|
|
the event) or if no container name is specified "spec.containers[2]"
|
|
(container with index 2 in this pod). This syntax is chosen
|
|
only to have some well-defined way of referencing a part
|
|
of an object. TODO: this design is not final and this field
|
|
is subject to change in the future.'
|
|
type: string
|
|
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/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: 'Specific resourceVersion to which this reference
|
|
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
finished:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
mode:
|
|
description: WorkflowMode describes the mode of workflow
|
|
type: string
|
|
startTime:
|
|
format: date-time
|
|
type: string
|
|
steps:
|
|
items:
|
|
description: WorkflowStepStatus record the status of a workflow
|
|
step
|
|
properties:
|
|
firstExecuteTime:
|
|
description: FirstExecuteTime is the first time this step
|
|
execution.
|
|
format: date-time
|
|
type: string
|
|
id:
|
|
type: string
|
|
lastExecuteTime:
|
|
description: LastExecuteTime is the last time this step
|
|
execution.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: A human readable message indicating details
|
|
about why the workflowStep is in this state.
|
|
type: string
|
|
name:
|
|
type: string
|
|
phase:
|
|
description: WorkflowStepPhase describes the phase of a
|
|
workflow step.
|
|
type: string
|
|
reason:
|
|
description: A brief CamelCase message indicating details
|
|
about why the workflowStep is in this state.
|
|
type: string
|
|
subSteps:
|
|
description: SubStepsStatus record the status of workflow
|
|
steps.
|
|
properties:
|
|
mode:
|
|
description: WorkflowMode describes the mode of workflow
|
|
type: string
|
|
stepIndex:
|
|
type: integer
|
|
steps:
|
|
items:
|
|
description: WorkflowSubStepStatus record the status
|
|
of a workflow step
|
|
properties:
|
|
id:
|
|
type: string
|
|
message:
|
|
description: A human readable message indicating
|
|
details about why the workflowStep is in this
|
|
state.
|
|
type: string
|
|
name:
|
|
type: string
|
|
phase:
|
|
description: WorkflowStepPhase describes the phase
|
|
of a workflow step.
|
|
type: string
|
|
reason:
|
|
description: A brief CamelCase message indicating
|
|
details about why the workflowStep is in this
|
|
state.
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
type: array
|
|
type: object
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
type: array
|
|
suspend:
|
|
type: boolean
|
|
suspendState:
|
|
type: string
|
|
terminated:
|
|
type: boolean
|
|
required:
|
|
- finished
|
|
- mode
|
|
- suspend
|
|
- terminated
|
|
type: object
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
status:
|
|
acceptedNames:
|
|
kind: ""
|
|
plural: ""
|
|
conditions: []
|
|
storedVersions: []
|