diff --git a/charts/vela-core/crds/core.oam.dev_applicationconfigurations.yaml b/charts/vela-core/crds/core.oam.dev_applicationconfigurations.yaml index 7496e8523..f4c65b92d 100644 --- a/charts/vela-core/crds/core.oam.dev_applicationconfigurations.yaml +++ b/charts/vela-core/crds/core.oam.dev_applicationconfigurations.yaml @@ -101,16 +101,29 @@ spec: to match a value. properties: fieldPath: + description: FieldPath specifies got value from + workload/trait object type: string op: description: ConditionOperator specifies the operator to match a value. type: string value: + description: Value specifies an expected value This + is mutually exclusive with ValueFrom type: string + valueFrom: + description: ValueFrom specifies expected value + from AppConfig This is mutually exclusive with + Value + properties: + fieldPath: + type: string + required: + - fieldPath + type: object required: - op - - value type: object type: array fieldPath: @@ -233,16 +246,29 @@ spec: requirement to match a value. properties: fieldPath: + description: FieldPath specifies got value + from workload/trait object type: string op: description: ConditionOperator specifies the operator to match a value. type: string value: + description: Value specifies an expected value + This is mutually exclusive with ValueFrom type: string + valueFrom: + description: ValueFrom specifies expected + value from AppConfig This is mutually exclusive + with Value + properties: + fieldPath: + type: string + required: + - fieldPath + type: object required: - op - - value type: object type: array fieldPath: @@ -338,6 +364,8 @@ spec: - kind - name type: object + reason: + type: string to: description: DependencyToObject represents the object that dependency data goes to. @@ -365,10 +393,47 @@ spec: type: object required: - from + - reason - to type: object type: array type: object + historyWorkloads: + description: HistoryWorkloads will record history but still working + revision workloads. + items: + description: HistoryWorkload contain the old component revision + that are still running + properties: + revision: + description: component revision of this workload + type: string + workloadRef: + description: Reference to running workload. + properties: + apiVersion: + description: APIVersion of the referenced object. + type: string + kind: + description: Kind of the referenced object. + type: string + name: + description: Name of the referenced object. + type: string + uid: + description: UID of the referenced object. + type: string + required: + - apiVersion + - kind + - name + type: object + type: object + type: array + observedGeneration: + description: The generation observed by the appConfig controller. + format: int64 + type: integer status: description: Status is a place holder for a customized controller to fill if it needs a single place to summarize the status of the @@ -483,7 +548,7 @@ spec: type: object type: array required: - - dependency + - historyWorkloads type: object type: object served: true diff --git a/charts/vela-core/crds/core.oam.dev_components.yaml b/charts/vela-core/crds/core.oam.dev_components.yaml index 5539c5607..287a8e45a 100644 --- a/charts/vela-core/crds/core.oam.dev_components.yaml +++ b/charts/vela-core/crds/core.oam.dev_components.yaml @@ -72,6 +72,7 @@ spec: will specify parameter values using this name. type: string required: + default: false description: Required specifies whether or not a value for this parameter must be supplied when authoring an ApplicationConfiguration. type: boolean @@ -82,7 +83,9 @@ spec: type: array workload: description: A Workload that will be created for each ApplicationConfiguration - that includes this Component. Workloads must be defined by a WorkloadDefinition. + that includes this Component. Workload is an instance of a workloadDefinition. + We either use the GVK info or a special "type" field in the workload + to associate the content of the workload with its workloadDefinition type: object x-kubernetes-embedded-resource: true x-kubernetes-preserve-unknown-fields: true @@ -137,6 +140,10 @@ spec: - name - revision type: object + observedGeneration: + description: The generation observed by the component controller. + format: int64 + type: integer type: object type: object served: true diff --git a/charts/vela-core/crds/core.oam.dev_healthscopes.yaml b/charts/vela-core/crds/core.oam.dev_healthscopes.yaml index 45afd3fcc..5310a5a98 100644 --- a/charts/vela-core/crds/core.oam.dev_healthscopes.yaml +++ b/charts/vela-core/crds/core.oam.dev_healthscopes.yaml @@ -11,190 +11,190 @@ spec: group: core.oam.dev names: categories: - - crossplane - - oam + - crossplane + - oam kind: HealthScope listKind: HealthScopeList plural: healthscopes singular: healthscope scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .status.health - name: HEALTH - type: string - name: v1alpha2 - schema: - openAPIV3Schema: - description: A HealthScope determines an aggregate health status based of - the health of components. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + - additionalPrinterColumns: + - jsonPath: .status.health + name: HEALTH + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: A HealthScope determines an aggregate health status based of + the health of components. + 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 + 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: A HealthScopeSpec defines the desired state of a HealthScope. - properties: - probe-interval: - description: ProbeInterval is the amount of time in seconds between - probing tries. - format: int32 - type: integer - probe-timeout: - description: ProbeTimeout is the amount of time in seconds to wait - when receiving a response before marked failure. - format: int32 - type: integer - workloadRefs: - description: WorkloadReferences to the workloads that are in this - scope. - items: - description: A TypedReference refers to an object by Name, Kind, - and APIVersion. It is commonly used to reference cluster-scoped - objects or objects where the namespace is already known. - properties: - apiVersion: - description: APIVersion of the referenced object. - type: string - kind: - description: Kind of the referenced object. - type: string - name: - description: Name of the referenced object. - type: string - uid: - description: UID of the referenced object. - type: string - required: - - apiVersion - - kind - - name - type: object - type: array - required: - - workloadRefs - type: object - status: - description: A HealthScopeStatus represents the observed state of a HealthScope. - properties: - 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 - healthConditions: - description: WorkloadHealthConditions represents health condition - of workloads in the scope - items: - description: WorkloadHealthCondition represents informative health - condition. - properties: - componentName: - description: ComponentName represents the component name if - target is a workload - type: string - diagnosis: - type: string - healthStatus: - description: HealthStatus represents health status strings. - type: string - targetWorkload: - description: A TypedReference refers to an object by Name, Kind, - and APIVersion. It is commonly used to reference cluster-scoped - objects or objects where the namespace is already known. - properties: - apiVersion: - description: APIVersion of the referenced object. - type: string - kind: - description: Kind of the referenced object. - type: string - name: - description: Name of the referenced object. - type: string - uid: - description: UID of the referenced object. - type: string - required: - - apiVersion - - kind - - name - type: object - workloadStatus: - description: WorkloadStatus represents status of workloads whose - HealthStatus is UNKNOWN. - type: string - required: - - healthStatus - type: object - type: array - scopeHealthCondition: - description: ScopeHealthCondition represents health condition summary - of the scope + type: string + metadata: + type: object + spec: + description: A HealthScopeSpec defines the desired state of a HealthScope. + properties: + probe-interval: + description: ProbeInterval is the amount of time in seconds between + probing tries. + format: int32 + type: integer + probe-timeout: + description: ProbeTimeout is the amount of time in seconds to wait + when receiving a response before marked failure. + format: int32 + type: integer + workloadRefs: + description: WorkloadReferences to the workloads that are in this + scope. + items: + description: A TypedReference refers to an object by Name, Kind, + and APIVersion. It is commonly used to reference cluster-scoped + objects or objects where the namespace is already known. properties: + apiVersion: + description: APIVersion of the referenced object. + type: string + kind: + description: Kind of the referenced object. + type: string + name: + description: Name of the referenced object. + type: string + uid: + description: UID of the referenced object. + type: string + required: + - apiVersion + - kind + - name + type: object + type: array + required: + - workloadRefs + type: object + status: + description: A HealthScopeStatus represents the observed state of a HealthScope. + properties: + 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 + healthConditions: + description: WorkloadHealthConditions represents health condition + of workloads in the scope + items: + description: WorkloadHealthCondition represents informative health + condition. + properties: + componentName: + description: ComponentName represents the component name if + target is a workload + type: string + diagnosis: + type: string healthStatus: description: HealthStatus represents health status strings. type: string - healthyWorkloads: - format: int64 - type: integer - total: - format: int64 - type: integer - unhealthyWorkloads: - format: int64 - type: integer - unknownWorkloads: - format: int64 - type: integer + targetWorkload: + description: A TypedReference refers to an object by Name, Kind, + and APIVersion. It is commonly used to reference cluster-scoped + objects or objects where the namespace is already known. + properties: + apiVersion: + description: APIVersion of the referenced object. + type: string + kind: + description: Kind of the referenced object. + type: string + name: + description: Name of the referenced object. + type: string + uid: + description: UID of the referenced object. + type: string + required: + - apiVersion + - kind + - name + type: object + workloadStatus: + description: WorkloadStatus represents status of workloads whose + HealthStatus is UNKNOWN. + type: string required: - - healthStatus + - healthStatus type: object - required: - - scopeHealthCondition - type: object - type: object - served: true - storage: true - subresources: - status: {} + type: array + scopeHealthCondition: + description: ScopeHealthCondition represents health condition summary + of the scope + properties: + healthStatus: + description: HealthStatus represents health status strings. + type: string + healthyWorkloads: + format: int64 + type: integer + total: + format: int64 + type: integer + unhealthyWorkloads: + format: int64 + type: integer + unknownWorkloads: + format: int64 + type: integer + required: + - healthStatus + type: object + required: + - scopeHealthCondition + type: object + type: object + served: true + storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/charts/vela-core/crds/core.oam.dev_workloaddefinitions.yaml b/charts/vela-core/crds/core.oam.dev_workloaddefinitions.yaml index 3505899b8..6196bbf12 100644 --- a/charts/vela-core/crds/core.oam.dev_workloaddefinitions.yaml +++ b/charts/vela-core/crds/core.oam.dev_workloaddefinitions.yaml @@ -85,6 +85,16 @@ spec: builders type: object x-kubernetes-preserve-unknown-fields: true + podSpecPath: + description: PodSpecPath indicates where/if this workload has K8s + podSpec field if one workload has podSpec, trait can do lot's of + assumption such as port, env, volume fields. + type: string + revisionLabel: + description: RevisionLabel indicates which label for underlying resources(e.g. + pods) of this workload can be used by trait to create resource selectors(e.g. + label selector for pods). + type: string required: - definitionRef type: object diff --git a/go.mod b/go.mod index dd29ee5a2..4c979c383 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/briandowns/spinner v1.11.1 github.com/coreos/prometheus-operator v0.41.1 github.com/crossplane/crossplane-runtime v0.9.0 - github.com/crossplane/oam-kubernetes-runtime v0.2.1 + github.com/crossplane/oam-kubernetes-runtime v0.3.0-rc1 github.com/fatih/color v1.9.0 github.com/gertd/go-pluralize v0.1.7 github.com/ghodss/yaml v1.0.0 diff --git a/go.sum b/go.sum index 381ab9e3c..f3aa6f3cf 100644 --- a/go.sum +++ b/go.sum @@ -284,8 +284,8 @@ github.com/crossplane/crossplane-runtime v0.8.0/go.mod h1:gNY/21MLBaz5KNP7hmfXbB github.com/crossplane/crossplane-runtime v0.9.0 h1:K6/tLhXKzhsEUUddTvEWWnQLLrawWyw1ptNK7NBDpDU= github.com/crossplane/crossplane-runtime v0.9.0/go.mod h1:gNY/21MLBaz5KNP7hmfXbBXp8reYRbwY5B/97Kp4tgM= github.com/crossplane/crossplane-tools v0.0.0-20200219001116-bb8b2ce46330/go.mod h1:C735A9X0x0lR8iGVOOxb49Mt70Ua4EM2b7PGaRPBLd4= -github.com/crossplane/oam-kubernetes-runtime v0.2.1 h1:C0kiSo9Tza/T+OhnjrP1yrQL+huPGxlINK7xK9VCYYo= -github.com/crossplane/oam-kubernetes-runtime v0.2.1/go.mod h1:D+MDS5vrJZWEA5cxr5kyzCSRQwrt1hLD3ONgC7sVMmc= +github.com/crossplane/oam-kubernetes-runtime v0.3.0-rc1 h1:N9999ECMaJYf+yhiNgAXk2HIgMeT9E5M7Y1AcXut8dU= +github.com/crossplane/oam-kubernetes-runtime v0.3.0-rc1/go.mod h1:D+MDS5vrJZWEA5cxr5kyzCSRQwrt1hLD3ONgC7sVMmc= github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/daixiang0/gci v0.0.0-20200727065011-66f1df783cb2/go.mod h1:+AV8KmHTGxxwp/pY84TLQfFKp2vuKXXJVzF3kD/hfR4=