mirror of
https://github.com/kubevela/kubevela.git
synced 2026-02-14 18:10:21 +00:00
1515 lines
97 KiB
YAML
1515 lines
97 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:
|
|
conversion:
|
|
strategy: Webhook
|
|
webhook:
|
|
clientConfig:
|
|
service:
|
|
name: vela-core-webhook
|
|
namespace: vela-system
|
|
path: /convert
|
|
port: 443
|
|
conversionReviewVersions:
|
|
- v1beta1
|
|
- v1alpha2
|
|
group: core.oam.dev
|
|
names:
|
|
categories:
|
|
- oam
|
|
kind: Application
|
|
listKind: ApplicationList
|
|
plural: applications
|
|
shortNames:
|
|
- app
|
|
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
|
|
resourceTracker:
|
|
description: ResourceTracker record the status of the ResourceTracker
|
|
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
|
|
rollout:
|
|
description: AppRolloutStatus defines the observed state of AppRollout
|
|
properties:
|
|
LastSourceAppRevision:
|
|
description: LastSourceAppRevision contains the name of the app that we need to upgrade from. We will restart the rollout if this is not the same as the spec
|
|
type: string
|
|
batchRollingState:
|
|
description: BatchRollingState only meaningful when the Status is rolling
|
|
type: string
|
|
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
|
|
currentBatch:
|
|
description: The current batch the rollout is working on/blocked it starts from 0
|
|
format: int32
|
|
type: integer
|
|
lastAppliedPodTemplateIdentifier:
|
|
description: lastAppliedPodTemplateIdentifier is a string that uniquely represent the last pod template each workload type could use different ways to identify that so we cannot compare between resources We update this field only after a successful rollout
|
|
type: string
|
|
lastTargetAppRevision:
|
|
description: LastUpgradedTargetAppRevision contains the name of the app that we upgraded to We will restart the rollout if this is not the same as the spec
|
|
type: string
|
|
rollingState:
|
|
description: RollingState is the Rollout State
|
|
type: string
|
|
rolloutOriginalSize:
|
|
description: RolloutTargetSize is the size of the target resources. This is determined once the initial spec verification and does not change until the rollout is restarted
|
|
format: int32
|
|
type: integer
|
|
rolloutTargetSize:
|
|
description: RolloutTargetSize is the size of the target resources. This is determined once the initial spec verification and does not change until the rollout is restarted
|
|
format: int32
|
|
type: integer
|
|
targetGeneration:
|
|
description: NewPodTemplateIdentifier is a string that uniquely represent the new pod template each workload type could use different ways to identify that so we cannot compare between resources
|
|
type: string
|
|
upgradedReadyReplicas:
|
|
description: UpgradedReadyReplicas is the number of Pods upgraded by the rollout controller that have a Ready Condition.
|
|
format: int32
|
|
type: integer
|
|
upgradedReplicas:
|
|
description: UpgradedReplicas is the number of Pods upgraded by the rollout controller
|
|
format: int32
|
|
type: integer
|
|
required:
|
|
- currentBatch
|
|
- lastTargetAppRevision
|
|
- rollingState
|
|
- upgradedReadyReplicas
|
|
- upgradedReplicas
|
|
type: object
|
|
services:
|
|
description: Services record the status of the application services
|
|
items:
|
|
description: ApplicationComponentStatus record the health status of App component
|
|
properties:
|
|
env:
|
|
type: string
|
|
healthy:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
name:
|
|
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 a 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
|
|
mode:
|
|
description: WorkflowMode describes the mode of workflow
|
|
type: string
|
|
steps:
|
|
items:
|
|
description: WorkflowStepStatus 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
|
|
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
|
|
terminated:
|
|
type: boolean
|
|
required:
|
|
- 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:
|
|
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
|
|
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
|
|
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:
|
|
steps:
|
|
items:
|
|
description: WorkflowStep defines how to execute a workflow step.
|
|
properties:
|
|
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
|
|
resourceTracker:
|
|
description: ResourceTracker record the status of the ResourceTracker
|
|
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
|
|
rollout:
|
|
description: AppRolloutStatus defines the observed state of AppRollout
|
|
properties:
|
|
LastSourceAppRevision:
|
|
description: LastSourceAppRevision contains the name of the app that we need to upgrade from. We will restart the rollout if this is not the same as the spec
|
|
type: string
|
|
batchRollingState:
|
|
description: BatchRollingState only meaningful when the Status is rolling
|
|
type: string
|
|
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
|
|
currentBatch:
|
|
description: The current batch the rollout is working on/blocked it starts from 0
|
|
format: int32
|
|
type: integer
|
|
lastAppliedPodTemplateIdentifier:
|
|
description: lastAppliedPodTemplateIdentifier is a string that uniquely represent the last pod template each workload type could use different ways to identify that so we cannot compare between resources We update this field only after a successful rollout
|
|
type: string
|
|
lastTargetAppRevision:
|
|
description: LastUpgradedTargetAppRevision contains the name of the app that we upgraded to We will restart the rollout if this is not the same as the spec
|
|
type: string
|
|
rollingState:
|
|
description: RollingState is the Rollout State
|
|
type: string
|
|
rolloutOriginalSize:
|
|
description: RolloutTargetSize is the size of the target resources. This is determined once the initial spec verification and does not change until the rollout is restarted
|
|
format: int32
|
|
type: integer
|
|
rolloutTargetSize:
|
|
description: RolloutTargetSize is the size of the target resources. This is determined once the initial spec verification and does not change until the rollout is restarted
|
|
format: int32
|
|
type: integer
|
|
targetGeneration:
|
|
description: NewPodTemplateIdentifier is a string that uniquely represent the new pod template each workload type could use different ways to identify that so we cannot compare between resources
|
|
type: string
|
|
upgradedReadyReplicas:
|
|
description: UpgradedReadyReplicas is the number of Pods upgraded by the rollout controller that have a Ready Condition.
|
|
format: int32
|
|
type: integer
|
|
upgradedReplicas:
|
|
description: UpgradedReplicas is the number of Pods upgraded by the rollout controller
|
|
format: int32
|
|
type: integer
|
|
required:
|
|
- currentBatch
|
|
- lastTargetAppRevision
|
|
- rollingState
|
|
- upgradedReadyReplicas
|
|
- upgradedReplicas
|
|
type: object
|
|
services:
|
|
description: Services record the status of the application services
|
|
items:
|
|
description: ApplicationComponentStatus record the health status of App component
|
|
properties:
|
|
env:
|
|
type: string
|
|
healthy:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
name:
|
|
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 a 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
|
|
mode:
|
|
description: WorkflowMode describes the mode of workflow
|
|
type: string
|
|
steps:
|
|
items:
|
|
description: WorkflowStepStatus 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
|
|
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
|
|
terminated:
|
|
type: boolean
|
|
required:
|
|
- mode
|
|
- suspend
|
|
- terminated
|
|
type: object
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
status:
|
|
acceptedNames:
|
|
kind: ""
|
|
plural: ""
|
|
conditions: []
|
|
storedVersions: []
|