diff --git a/.github/scripts/.helm-tests/default/result.yaml b/.github/scripts/.helm-tests/default/result.yaml index 5c4ebf6d8d..73be24e1c8 100644 --- a/.github/scripts/.helm-tests/default/result.yaml +++ b/.github/scripts/.helm-tests/default/result.yaml @@ -138,7 +138,7 @@ kind: CustomResourceDefinition metadata: name: analyses.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -158,127 +158,127 @@ spec: singular: analysis scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.analysisDefinition.name - name: AnalysisDefinition - type: string - - jsonPath: .status.warning - name: Warning - type: string - - jsonPath: .status.pass - name: Pass - type: string - name: v1alpha3 - schema: - openAPIV3Schema: - description: Analysis is the Schema for the analyses API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + - additionalPrinterColumns: + - jsonPath: .spec.analysisDefinition.name + name: AnalysisDefinition + type: string + - jsonPath: .status.warning + name: Warning + type: string + - jsonPath: .status.pass + name: Pass + type: string + name: v1alpha3 + schema: + openAPIV3Schema: + description: Analysis is the Schema for the analyses 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 + 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: AnalysisSpec defines the desired state of Analysis - properties: - analysisDefinition: - description: AnalysisDefinition refers to the AnalysisDefinition, - a CRD that stores the AnalysisValuesTemplates - properties: - name: - description: Name defines the name of the referenced object - type: string - namespace: - description: Namespace defines the namespace of the referenced - object - type: string - required: - - name - type: object - args: - additionalProperties: + type: string + metadata: + type: object + spec: + description: AnalysisSpec defines the desired state of Analysis + properties: + analysisDefinition: + description: AnalysisDefinition refers to the AnalysisDefinition, + a CRD that stores the AnalysisValuesTemplates + properties: + name: + description: Name defines the name of the referenced object type: string - description: Args corresponds to a map of key/value pairs that can - be used to substitute placeholders in the AnalysisValueTemplate - query. i.e. for args foo:bar the query could be "query:percentile(95)?scope=tag(my_foo_label:)". - type: object - timeframe: - description: Timeframe specifies the range for the corresponding query - in the AnalysisValueTemplate + namespace: + description: Namespace defines the namespace of the referenced + object + type: string + required: + - name + type: object + args: + additionalProperties: + type: string + description: Args corresponds to a map of key/value pairs that can + be used to substitute placeholders in the AnalysisValueTemplate + query. i.e. for args foo:bar the query could be "query:percentile(95)?scope=tag(my_foo_label:)". + type: object + timeframe: + description: Timeframe specifies the range for the corresponding query + in the AnalysisValueTemplate + properties: + from: + description: From is the time of start for the query, this field + follows RFC3339 time format + format: date-time + type: string + to: + description: To is the time of end for the query, this field follows + RFC3339 time format + format: date-time + type: string + required: + - from + - to + type: object + required: + - analysisDefinition + - timeframe + type: object + status: + description: AnalysisStatus stores the status of the overall analysis + returns also pass or warnings + properties: + pass: + description: Pass returns whether the SLO is satisfied + type: boolean + raw: + description: Raw contains the raw result of the SLO computation + type: string + storedValues: + additionalProperties: + description: ProviderResult stores reference of already collected + provider query associated to its objective template properties: - from: - description: From is the time of start for the query, this field - follows RFC3339 time format - format: date-time + errMsg: + description: ErrMsg stores any possible error at retrieval time type: string - to: - description: To is the time of end for the query, this field follows - RFC3339 time format - format: date-time + objectiveReference: + description: Objective store reference to corresponding objective + template + properties: + name: + description: Name defines the name of the referenced object + type: string + namespace: + description: Namespace defines the namespace of the referenced + object + type: string + required: + - name + type: object + value: + description: Value is the value the provider returned type: string - required: - - from - - to - type: object - required: - - analysisDefinition - - timeframe - type: object - status: - description: AnalysisStatus stores the status of the overall analysis - returns also pass or warnings - properties: - pass: - description: Pass returns whether the SLO is satisfied - type: boolean - raw: - description: Raw contains the raw result of the SLO computation - type: string - storedValues: - additionalProperties: - description: ProviderResult stores reference of already collected - provider query associated to its objective template - properties: - errMsg: - description: ErrMsg stores any possible error at retrieval time - type: string - objectiveReference: - description: Objective store reference to corresponding objective - template - properties: - name: - description: Name defines the name of the referenced object - type: string - namespace: - description: Namespace defines the namespace of the referenced - object - type: string - required: - - name - type: object - value: - description: Value is the value the provider returned - type: string - type: object - description: StoredValues contains all analysis values that have already - been retrieved successfully type: object - warning: - description: Warning returns whether the analysis returned a warning - type: boolean - type: object - type: object - served: true - storage: true - subresources: - status: {} + description: StoredValues contains all analysis values that have already + been retrieved successfully + type: object + warning: + description: Warning returns whether the analysis returned a warning + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} --- # Source: klt/templates/analysisdefinition-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -286,7 +286,7 @@ kind: CustomResourceDefinition metadata: name: analysisdefinitions.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -309,7 +309,8 @@ spec: - name: v1alpha3 schema: openAPIV3Schema: - description: AnalysisDefinition is the Schema for the analysisdefinitions APIs + description: AnalysisDefinition is the Schema for the analysisdefinitions + APIs properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -337,24 +338,26 @@ spec: AnalysisValueTemplate properties: name: + description: Name defines the name of the referenced object type: string namespace: + description: Namespace defines the namespace of the referenced + object type: string required: - name - - namespace type: object keyObjective: default: false - description: KeyObjective defines if the objective fails when - the target is not met + description: KeyObjective defines whether the whole analysis + fails when this objective's target is not met type: boolean target: description: Target defines failure or warning criteria properties: failure: description: Failure defines limits up to which an analysis - fails. + fails properties: equalTo: description: EqualTo represents '==' operator @@ -395,21 +398,33 @@ spec: required: - fixedValue type: object - lessThan: - description: LessThan represents '<' operator + inRange: + description: InRange represents operator checking the + value is inclusively in the defined range, e.g. 2 + <= x <= 5 properties: - fixedValue: + highBound: anyOf: - type: integer - type: string - description: FixedValue defines the value for comparison + description: HighBound defines the higher bound + of the range + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + lowBound: + anyOf: + - type: integer + - type: string + description: LowBound defines the lower bound of + the range pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - - fixedValue + - highBound + - lowBound type: object - lessThanOrEqual: - description: LessThanOrEqual represents '<=' operator + lessThan: + description: LessThan represents '<' operator properties: fixedValue: anyOf: @@ -421,30 +436,18 @@ spec: required: - fixedValue type: object - inRange: - description: InRange represents operator checking the - value is inclusively in the defined range, e.g. 2 - <= x <= 5 + lessThanOrEqual: + description: LessThanOrEqual represents '<=' operator properties: - highBound: - anyOf: - - type: integer - - type: string - description: HighBound defines the higher bound of - the range - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - lowBound: + fixedValue: anyOf: - type: integer - type: string - description: LowBound defines the lower bound of - the range + description: FixedValue defines the value for comparison pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - - highBound - - lowBound + - fixedValue type: object notInRange: description: NotInRange represents operator checking @@ -455,8 +458,8 @@ spec: anyOf: - type: integer - type: string - description: HighBound defines the higher bound of - the range + description: HighBound defines the higher bound + of the range pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true lowBound: @@ -515,21 +518,33 @@ spec: required: - fixedValue type: object - lessThan: - description: LessThan represents '<' operator + inRange: + description: InRange represents operator checking the + value is inclusively in the defined range, e.g. 2 + <= x <= 5 properties: - fixedValue: + highBound: anyOf: - type: integer - type: string - description: FixedValue defines the value for comparison + description: HighBound defines the higher bound + of the range + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + lowBound: + anyOf: + - type: integer + - type: string + description: LowBound defines the lower bound of + the range pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - - fixedValue + - highBound + - lowBound type: object - lessThanOrEqual: - description: LessThanOrEqual represents '<=' operator + lessThan: + description: LessThan represents '<' operator properties: fixedValue: anyOf: @@ -541,30 +556,18 @@ spec: required: - fixedValue type: object - inRange: - description: InRange represents operator checking the - value is inclusively in the defined range, e.g. 2 - <= x <= 5 + lessThanOrEqual: + description: LessThanOrEqual represents '<=' operator properties: - highBound: - anyOf: - - type: integer - - type: string - description: HighBound defines the higher bound of - the range - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - lowBound: + fixedValue: anyOf: - type: integer - type: string - description: LowBound defines the lower bound of - the range + description: FixedValue defines the value for comparison pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - - highBound - - lowBound + - fixedValue type: object notInRange: description: NotInRange represents operator checking @@ -575,8 +578,8 @@ spec: anyOf: - type: integer - type: string - description: HighBound defines the higher bound of - the range + description: HighBound defines the higher bound + of the range pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true lowBound: @@ -595,26 +598,26 @@ spec: type: object weight: default: 1 - description: Weight can be used to emphasize the importance of - one Objective over the others + description: Weight can be used to emphasize the importance + of one Objective over the others type: integer required: - analysisValueTemplateRef type: object type: array totalScore: - description: TotalScore defines the required score for an analysis to - be successful + description: TotalScore defines the required score for an analysis + to be successful properties: passPercentage: - description: PassPercentage defines the threshold to reach for an - analysis to pass. + description: PassPercentage defines the threshold to reach for + an analysis to pass maximum: 100 minimum: 0 type: integer warningPercentage: - description: WarningPercentage defines the threshold to reach for - an analysis to pass with a 'warning' status. + description: WarningPercentage defines the threshold to reach + for an analysis to pass with a 'warning' status maximum: 100 minimum: 0 type: integer @@ -633,12 +636,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/analysisvaluetemplate-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -646,7 +643,7 @@ kind: CustomResourceDefinition metadata: name: analysisvaluetemplates.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -666,62 +663,62 @@ spec: singular: analysisvaluetemplate scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.provider.name - name: Provider - type: string - name: v1alpha3 - schema: - openAPIV3Schema: - description: AnalysisValueTemplate is the Schema for the analysisvaluetemplates - API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + - additionalPrinterColumns: + - jsonPath: .spec.provider.name + name: Provider + type: string + name: v1alpha3 + schema: + openAPIV3Schema: + description: AnalysisValueTemplate is the Schema for the analysisvaluetemplates + 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 + 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: Spec contains the specification for the AnalysisValueTemplate - properties: - provider: - description: Provider refers to the KeptnMetricsProvider which should - be used to retrieve the data - properties: - name: - description: Name defines the name of the referenced object - type: string - namespace: - description: Namespace defines the namespace of the referenced - object - type: string - required: - - name - type: object - query: - description: Query represents the query to be run. It can include - placeholders that are defined using the go template syntax. More - info on go templating - https://pkg.go.dev/text/template - type: string - required: - - provider - - query - type: object - status: - description: unused field - type: string - type: object - served: true - storage: true - subresources: - status: {} + type: string + metadata: + type: object + spec: + description: Spec contains the specification for the AnalysisValueTemplate + properties: + provider: + description: Provider refers to the KeptnMetricsProvider which should + be used to retrieve the data + properties: + name: + description: Name defines the name of the referenced object + type: string + namespace: + description: Namespace defines the namespace of the referenced + object + type: string + required: + - name + type: object + query: + description: Query represents the query to be run. It can include + placeholders that are defined using the go template syntax. More + info on go templating - https://pkg.go.dev/text/template + type: string + required: + - provider + - query + type: object + status: + description: unused field + type: string + type: object + served: true + storage: true + subresources: + status: {} --- # Source: klt/templates/keptnapp-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -729,7 +726,7 @@ kind: CustomResourceDefinition metadata: name: keptnapps.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -914,7 +911,7 @@ spec: description: PostDeploymentEvaluations is a list of all evaluations to be performed during the post-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnApp, or in the KLT namespace. + located in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -922,15 +919,15 @@ spec: description: PostDeploymentTasks is a list of all tasks to be performed during the post-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnTaskDefinitions located in the same - namespace as the KeptnApp, or in the KLT namespace. + namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array preDeploymentEvaluations: - description: PreDeploymentEvaluations is a list of all evaluations to - be performed during the pre-deployment phase of the KeptnApp. The - items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnApp, or in the KLT namespace. + description: PreDeploymentEvaluations is a list of all evaluations + to be performed during the pre-deployment phase of the KeptnApp. + The items of this list refer to the names of KeptnEvaluationDefinitions + located in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -938,7 +935,7 @@ spec: description: PreDeploymentTasks is a list of all tasks to be performed during the pre-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnTaskDefinitions located in the same - namespace as the KeptnApp, or in the KLT namespace. + namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -957,8 +954,8 @@ spec: description: Workloads is a list of all KeptnWorkloads that are part of the KeptnApp. items: - description: KeptnWorkloadRef refers to a KeptnWorkload that is part - of a KeptnApp + description: KeptnWorkloadRef refers to a KeptnWorkload that is + part of a KeptnApp properties: name: description: Name is the name of the KeptnWorkload. @@ -987,12 +984,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptnappcreationrequest-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -1000,7 +991,7 @@ kind: CustomResourceDefinition metadata: name: keptnappcreationrequests.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -1056,12 +1047,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptnappversion-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -1069,7 +1054,7 @@ kind: CustomResourceDefinition metadata: name: keptnappversions.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -1205,9 +1190,11 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object + description: PhaseTraceID is a map storing TraceIDs of OpenTelemetry + spans in lifecycle phases type: object postDeploymentEvaluationStatus: default: Pending @@ -1433,8 +1420,8 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object type: object postDeploymentEvaluationStatus: @@ -1444,7 +1431,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -1467,7 +1454,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -1490,7 +1477,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -1513,7 +1500,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -1619,7 +1606,7 @@ spec: description: PostDeploymentEvaluations is a list of all evaluations to be performed during the post-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnApp, or in the KLT namespace. + located in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -1627,15 +1614,15 @@ spec: description: PostDeploymentTasks is a list of all tasks to be performed during the post-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnTaskDefinitions located in the same - namespace as the KeptnApp, or in the KLT namespace. + namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array preDeploymentEvaluations: - description: PreDeploymentEvaluations is a list of all evaluations to - be performed during the pre-deployment phase of the KeptnApp. The - items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnApp, or in the KLT namespace. + description: PreDeploymentEvaluations is a list of all evaluations + to be performed during the pre-deployment phase of the KeptnApp. + The items of this list refer to the names of KeptnEvaluationDefinitions + located in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -1643,7 +1630,7 @@ spec: description: PreDeploymentTasks is a list of all tasks to be performed during the pre-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnTaskDefinitions located in the same - namespace as the KeptnApp, or in the KLT namespace. + namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -1671,8 +1658,8 @@ spec: description: Workloads is a list of all KeptnWorkloads that are part of the KeptnApp. items: - description: KeptnWorkloadRef refers to a KeptnWorkload that is part - of a KeptnApp + description: KeptnWorkloadRef refers to a KeptnWorkload that is + part of a KeptnApp properties: name: description: Name is the name of the KeptnWorkload. @@ -1704,16 +1691,16 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object description: PhaseTraceIDs contains the trace IDs of the OpenTelemetry spans of each phase of the KeptnAppVersion. type: object postDeploymentEvaluationStatus: default: Pending - description: PostDeploymentEvaluationStatus indicates the current status - of the KeptnAppVersion's PostDeploymentEvaluation phase. + description: PostDeploymentEvaluationStatus indicates the current + status of the KeptnAppVersion's PostDeploymentEvaluation phase. type: string postDeploymentEvaluationTaskStatus: description: PostDeploymentEvaluationTaskStatus indicates the current @@ -1721,7 +1708,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -1732,8 +1719,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -1743,16 +1730,16 @@ spec: type: array postDeploymentStatus: default: Pending - description: PostDeploymentStatus indicates the current status of the - KeptnAppVersion's PostDeployment phase. + description: PostDeploymentStatus indicates the current status of + the KeptnAppVersion's PostDeployment phase. type: string postDeploymentTaskStatus: - description: PostDeploymentTaskStatus indicates the current state of - each postDeploymentTask of the KeptnAppVersion. + description: PostDeploymentTaskStatus indicates the current state + of each postDeploymentTask of the KeptnAppVersion. items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -1763,8 +1750,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -1783,7 +1770,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -1794,8 +1781,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -1814,7 +1801,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -1825,8 +1812,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -1835,8 +1822,8 @@ spec: type: object type: array startTime: - description: StartTime represents the time at which the deployment of - the KeptnAppVersion started. + description: StartTime represents the time at which the deployment + of the KeptnAppVersion started. format: date-time type: string status: @@ -1845,8 +1832,8 @@ spec: type: string workloadOverallStatus: default: Pending - description: WorkloadOverallStatus indicates the current status of the - KeptnAppVersion's Workload deployment phase. + description: WorkloadOverallStatus indicates the current status of + the KeptnAppVersion's Workload deployment phase. type: string workloadStatus: description: WorkloadStatus contains the current status of each KeptnWorkload @@ -1858,8 +1845,8 @@ spec: description: Status indicates the current status of the KeptnWorkload. type: string workload: - description: Workload refers to a KeptnWorkload that is part of - the KeptnAppVersion. + description: Workload refers to a KeptnWorkload that is part + of the KeptnAppVersion. properties: name: description: Name is the name of the KeptnWorkload. @@ -1879,12 +1866,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptnconfig-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -1892,7 +1873,7 @@ kind: CustomResourceDefinition metadata: name: keptnconfigs.options.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -1942,9 +1923,9 @@ spec: type: string keptnAppCreationRequestTimeoutSeconds: default: 30 - description: KeptnAppCreationRequestTimeoutSeconds is used to set the - interval in which automatic app discovery searches for workload to - put into the same auto-generated KeptnApp + description: KeptnAppCreationRequestTimeoutSeconds is used to set + the interval in which automatic app discovery searches for workload + to put into the same auto-generated KeptnApp type: integer type: object status: @@ -1955,12 +1936,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptnevaluation-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -1968,7 +1943,7 @@ kind: CustomResourceDefinition metadata: name: keptnevaluations.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -2253,21 +2228,21 @@ spec: the KeptnEvaluation is done. type: string checkType: - description: Type indicates whether the KeptnEvaluation is part of the - pre- or postDeployment phase. + description: Type indicates whether the KeptnEvaluation is part of + the pre- or postDeployment phase. type: string evaluationDefinition: description: EvaluationDefinition refers to the name of the KeptnEvaluationDefinition which includes the objectives for the KeptnEvaluation. The KeptnEvaluationDefinition - can be located in the same namespace as the KeptnEvaluation, or in - the KLT namespace. + can be located in the same namespace as the KeptnEvaluation, or + in the Keptn namespace. type: string failAction: type: string retries: default: 10 - description: Retries indicates how many times the KeptnEvaluation can - be attempted in the case of an error or missed evaluation objective, + description: Retries indicates how many times the KeptnEvaluation + can be attempted in the case of an error or missed evaluation objective, before considering the KeptnEvaluation to be failed. type: integer retryInterval: @@ -2301,8 +2276,8 @@ spec: properties: message: description: Message contains additional information about the - evaluation of an objective. This can include explanations about - why an evaluation has failed (e.g. due to a missed objective), + evaluation of an objective. This can include explanations + about why an evaluation has failed (e.g. due to a missed objective), or if there was any error during the evaluation of the objective. type: string status: @@ -2323,8 +2298,8 @@ spec: overallStatus: default: Pending description: OverallStatus describes the overall status of the KeptnEvaluation. - The Overall status is derived from the status of the individual objectives - of the KeptnEvaluationDefinition referenced by the KeptnEvaluation. + The Overall status is derived from the status of the individual + objectives of the KeptnEvaluationDefinition referenced by the KeptnEvaluation. type: string retryCount: default: 0 @@ -2346,12 +2321,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptnevaluationdefinition-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -2359,7 +2328,7 @@ kind: CustomResourceDefinition metadata: name: keptnevaluationdefinitions.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -2506,18 +2475,18 @@ spec: properties: objectives: description: Objectives is a list of objectives that have to be met - for a KeptnEvaluation referencing this KeptnEvaluationDefinition to - be successful. + for a KeptnEvaluation referencing this KeptnEvaluationDefinition + to be successful. items: properties: evaluationTarget: - description: EvaluationTarget specifies the target value for the - references KeptnMetric. Needs to start with either '<' or '>', - followed by the target value (e.g. '<10'). + description: EvaluationTarget specifies the target value for + the references KeptnMetric. Needs to start with either '<' + or '>', followed by the target value (e.g. '<10'). type: string keptnMetricRef: - description: KeptnMetricRef references the KeptnMetric that should - be evaluated. + description: KeptnMetricRef references the KeptnMetric that + should be evaluated. properties: name: description: Name is the name of the referenced KeptnMetric. @@ -2545,12 +2514,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptnevaluationprovider-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -2558,7 +2521,7 @@ kind: CustomResourceDefinition metadata: name: keptnevaluationproviders.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -2609,7 +2572,8 @@ spec: metadata: type: object spec: - description: KeptnEvaluationProviderSpec defines the desired state of KeptnEvaluationProvider + description: KeptnEvaluationProviderSpec defines the desired state of + KeptnEvaluationProvider properties: secretName: type: string @@ -2645,14 +2609,15 @@ spec: metadata: type: object spec: - description: KeptnEvaluationProviderSpec defines the desired state of KeptnEvaluationProvider + description: KeptnEvaluationProviderSpec defines the desired state of + KeptnEvaluationProvider properties: secretKeyRef: description: SecretKeySelector selects a key of a Secret. properties: key: - description: The key of the secret to select from. Must be a valid - secret key. + description: The key of the secret to select from. Must be a + valid secret key. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -2697,14 +2662,15 @@ spec: metadata: type: object spec: - description: KeptnEvaluationProviderSpec defines the desired state of KeptnEvaluationProvider + description: KeptnEvaluationProviderSpec defines the desired state of + KeptnEvaluationProvider properties: secretKeyRef: description: SecretKeySelector selects a key of a Secret. properties: key: - description: The key of the secret to select from. Must be a valid - secret key. + description: The key of the secret to select from. Must be a + valid secret key. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -2730,12 +2696,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptnmetric-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -2743,7 +2703,7 @@ kind: CustomResourceDefinition metadata: name: keptnmetrics.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -2804,8 +2764,8 @@ spec: description: KeptnMetricSpec defines the desired state of KeptnMetric properties: fetchIntervalSeconds: - description: FetchIntervalSeconds represents the update frequency in - seconds that is used to update the metric + description: FetchIntervalSeconds represents the update frequency + in seconds that is used to update the metric type: integer provider: description: Provider represents the provider object @@ -2828,8 +2788,8 @@ spec: description: KeptnMetricStatus defines the observed state of KeptnMetric properties: lastUpdated: - description: LastUpdated represents the time when the status data was - last updated + description: LastUpdated represents the time when the status data + was last updated format: date-time type: string rawValue: @@ -2880,8 +2840,8 @@ spec: description: KeptnMetricSpec defines the desired state of KeptnMetric properties: fetchIntervalSeconds: - description: FetchIntervalSeconds represents the update frequency in - seconds that is used to update the metric + description: FetchIntervalSeconds represents the update frequency + in seconds that is used to update the metric type: integer provider: description: Provider represents the provider object @@ -2904,8 +2864,8 @@ spec: description: KeptnMetricStatus defines the observed state of KeptnMetric properties: lastUpdated: - description: LastUpdated represents the time when the status data was - last updated + description: LastUpdated represents the time when the status data + was last updated format: date-time type: string rawValue: @@ -2959,8 +2919,8 @@ spec: description: KeptnMetricSpec defines the desired state of KeptnMetric properties: fetchIntervalSeconds: - description: FetchIntervalSeconds represents the update frequency in - seconds that is used to update the metric + description: FetchIntervalSeconds represents the update frequency + in seconds that is used to update the metric type: integer provider: description: Provider represents the provider object @@ -2975,11 +2935,11 @@ spec: description: Query represents the query to be run type: string range: - description: Range represents the time range for which data is to be - queried + description: Range represents the time range for which data is to + be queried properties: aggregation: - description: 'Aggregation defines as the type of aggregation function + description: 'Aggregation defines the type of aggregation function to be applied on the data. Accepted values: p90, p95, p99, max, min, avg, median' enum: @@ -3014,8 +2974,8 @@ spec: not be evaluated type: string lastUpdated: - description: LastUpdated represents the time when the status data was - last updated + description: LastUpdated represents the time when the status data + was last updated format: date-time type: string rawValue: @@ -3035,12 +2995,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptnmetricsprovider-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -3048,7 +3002,7 @@ kind: CustomResourceDefinition metadata: name: keptnmetricsproviders.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -3095,8 +3049,8 @@ spec: description: SecretKeySelector selects a key of a Secret. properties: key: - description: The key of the secret to select from. Must be a valid - secret key. + description: The key of the secret to select from. Must be a + valid secret key. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -3148,8 +3102,8 @@ spec: to the metrics provider. properties: key: - description: The key of the secret to select from. Must be a valid - secret key. + description: The key of the secret to select from. Must be a + valid secret key. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -3167,8 +3121,8 @@ spec: is reachable with included port and protocol. type: string type: - description: Type represents the provider type. This can be one of prometheus, - dynatrace, datadog, dql. + description: Type represents the provider type. This can be one of + prometheus, dynatrace, datadog, dql. pattern: prometheus|dynatrace|datadog|dql type: string required: @@ -3182,12 +3136,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptntask-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -3195,7 +3143,7 @@ kind: CustomResourceDefinition metadata: name: keptntasks.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -3215,391 +3163,391 @@ spec: singular: keptntask scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.app - name: AppName - type: string - - jsonPath: .spec.appVersion - name: AppVersion - type: string - - jsonPath: .spec.workload - name: WorkloadName - type: string - - jsonPath: .spec.workloadVersion - name: WorkloadVersion - type: string - - jsonPath: .status.jobName - name: Job Name - type: string - - jsonPath: .status.status - name: Status - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: KeptnTask is the Schema for the keptntasks API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + - additionalPrinterColumns: + - jsonPath: .spec.app + name: AppName + type: string + - jsonPath: .spec.appVersion + name: AppVersion + type: string + - jsonPath: .spec.workload + name: WorkloadName + type: string + - jsonPath: .spec.workloadVersion + name: WorkloadVersion + type: string + - jsonPath: .status.jobName + name: Job Name + type: string + - jsonPath: .status.status + name: Status + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: KeptnTask is the Schema for the keptntasks 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 + 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: KeptnTaskSpec defines the desired state of KeptnTask - properties: - app: - type: string - appVersion: - type: string - checkType: - type: string - context: - properties: - appName: - type: string - appVersion: - type: string - objectType: - type: string - taskType: - type: string - workloadName: - type: string - workloadVersion: - type: string - required: - - appName - - appVersion - - objectType - - taskType - - workloadName - - workloadVersion - type: object - parameters: - properties: - map: - additionalProperties: - type: string - type: object - type: object - secureParameters: - properties: - secret: - type: string - type: object - taskDefinition: - type: string - workload: - type: string - workloadVersion: - type: string - required: - - app + type: string + metadata: + type: object + spec: + description: KeptnTaskSpec defines the desired state of KeptnTask + properties: + app: + type: string + appVersion: + type: string + checkType: + type: string + context: + properties: + appName: + type: string + appVersion: + type: string + objectType: + type: string + taskType: + type: string + workloadName: + type: string + workloadVersion: + type: string + required: + - appName - appVersion - - context - - taskDefinition - - workload + - objectType + - taskType + - workloadName - workloadVersion - type: object - status: - description: KeptnTaskStatus defines the observed state of KeptnTask - properties: - endTime: - format: date-time - type: string - jobName: - type: string - message: - type: string - startTime: - format: date-time - type: string - status: - default: Pending - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.app - name: AppName - type: string - - jsonPath: .spec.appVersion - name: AppVersion - type: string - - jsonPath: .spec.workload - name: WorkloadName - type: string - - jsonPath: .spec.workloadVersion - name: WorkloadVersion - type: string - - jsonPath: .status.jobName - name: Job Name - type: string - - jsonPath: .status.status - name: Status - type: string - name: v1alpha2 - schema: - openAPIV3Schema: - description: KeptnTask is the Schema for the keptntasks API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + type: object + parameters: + properties: + map: + additionalProperties: + type: string + type: object + type: object + secureParameters: + properties: + secret: + type: string + type: object + taskDefinition: + type: string + workload: + type: string + workloadVersion: + type: string + required: + - app + - appVersion + - context + - taskDefinition + - workload + - workloadVersion + type: object + status: + description: KeptnTaskStatus defines the observed state of KeptnTask + properties: + endTime: + format: date-time + type: string + jobName: + type: string + message: + type: string + startTime: + format: date-time + type: string + status: + default: Pending + type: string + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.app + name: AppName + type: string + - jsonPath: .spec.appVersion + name: AppVersion + type: string + - jsonPath: .spec.workload + name: WorkloadName + type: string + - jsonPath: .spec.workloadVersion + name: WorkloadVersion + type: string + - jsonPath: .status.jobName + name: Job Name + type: string + - jsonPath: .status.status + name: Status + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: KeptnTask is the Schema for the keptntasks 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 + 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: KeptnTaskSpec defines the desired state of KeptnTask - properties: - app: - type: string - appVersion: - type: string - checkType: - type: string - context: - properties: - appName: - type: string - appVersion: - type: string - objectType: - type: string - taskType: - type: string - workloadName: - type: string - workloadVersion: - type: string - required: - - appName - - appVersion - - objectType - - taskType - - workloadName - - workloadVersion - type: object - parameters: - properties: - map: - additionalProperties: - type: string - type: object - type: object - secureParameters: - properties: - secret: - type: string - type: object - taskDefinition: - type: string - workload: - type: string - workloadVersion: - type: string - required: - - app + type: string + metadata: + type: object + spec: + description: KeptnTaskSpec defines the desired state of KeptnTask + properties: + app: + type: string + appVersion: + type: string + checkType: + type: string + context: + properties: + appName: + type: string + appVersion: + type: string + objectType: + type: string + taskType: + type: string + workloadName: + type: string + workloadVersion: + type: string + required: + - appName - appVersion - - context - - taskDefinition - - workload + - objectType + - taskType + - workloadName - workloadVersion - type: object - status: - description: KeptnTaskStatus defines the observed state of KeptnTask - properties: - endTime: - format: date-time - type: string - jobName: - type: string - message: - type: string - startTime: - format: date-time - type: string - status: - default: Pending - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.app - name: AppName - type: string - - jsonPath: .spec.appVersion - name: AppVersion - type: string - - jsonPath: .spec.workload - name: WorkloadName - type: string - - jsonPath: .spec.workloadVersion - name: WorkloadVersion - type: string - - jsonPath: .status.jobName - name: Job Name - type: string - - jsonPath: .status.status - name: Status - type: string - name: v1alpha3 - schema: - openAPIV3Schema: - description: KeptnTask is the Schema for the keptntasks API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + type: object + parameters: + properties: + map: + additionalProperties: + type: string + type: object + type: object + secureParameters: + properties: + secret: + type: string + type: object + taskDefinition: + type: string + workload: + type: string + workloadVersion: + type: string + required: + - app + - appVersion + - context + - taskDefinition + - workload + - workloadVersion + type: object + status: + description: KeptnTaskStatus defines the observed state of KeptnTask + properties: + endTime: + format: date-time + type: string + jobName: + type: string + message: + type: string + startTime: + format: date-time + type: string + status: + default: Pending + type: string + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.app + name: AppName + type: string + - jsonPath: .spec.appVersion + name: AppVersion + type: string + - jsonPath: .spec.workload + name: WorkloadName + type: string + - jsonPath: .spec.workloadVersion + name: WorkloadVersion + type: string + - jsonPath: .status.jobName + name: Job Name + type: string + - jsonPath: .status.status + name: Status + type: string + name: v1alpha3 + schema: + openAPIV3Schema: + description: KeptnTask is the Schema for the keptntasks 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 + 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: Spec describes the desired state of the KeptnTask. - properties: - checkType: - description: Type indicates whether the KeptnTask is part of the pre- - or postDeployment phase. - type: string - context: - description: Context contains contextual information about the task - execution. - properties: - appName: - description: AppName the name of the KeptnApp the KeptnTask is - being executed for. - type: string - appVersion: - description: AppVersion the version of the KeptnApp the KeptnTask - is being executed for. - type: string - objectType: - description: ObjectType indicates whether the KeptnTask is being - executed for a KeptnApp or KeptnWorkload. - type: string - taskType: - description: TaskType indicates whether the KeptnTask is part - of the pre- or postDeployment phase. - type: string - workloadName: - description: WorkloadName the name of the KeptnWorkload the KeptnTask - is being executed for. - type: string - workloadVersion: - description: WorkloadVersion the version of the KeptnWorkload - the KeptnTask is being executed for. - type: string - type: object - parameters: - description: Parameters contains parameters that will be passed to - the job that executes the task. - properties: - map: - additionalProperties: - type: string - description: Inline contains the parameters that will be made - available to the job executing the KeptnTask via the 'DATA' - environment variable. The 'DATA' environment variable's content - will be a json encoded string containing all properties of the - map provided. - type: object - type: object - retries: - default: 10 - description: Retries indicates how many times the KeptnTask can be - attempted in the case of an error before considering the KeptnTask - to be failed. - format: int32 - type: integer - secureParameters: - description: SecureParameters contains secure parameters that will - be passed to the job that executes the task. These will be stored - and accessed as secrets in the cluster. - properties: - secret: - description: Secret contains the parameters that will be made - available to the job executing the KeptnTask via the 'SECRET_DATA' - environment variable. The 'SECRET_DATA' environment variable's - content will the same as value of the 'SECRET_DATA' key of the - referenced secret. - type: string - type: object - taskDefinition: - description: TaskDefinition refers to the name of the KeptnTaskDefinition - which includes the specification for the task to be performed. The - KeptnTaskDefinition can be located in the same namespace as the - KeptnTask, or in the KLT namespace. - type: string - timeout: - default: 5m - description: Timeout specifies the maximum time to wait for the task - to be completed successfully. If the task does not complete successfully - within this time frame, it will be considered to be failed. - pattern: ^0|([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$ - type: string - required: - - taskDefinition - type: object - status: - description: Status describes the current state of the KeptnTask. - properties: - endTime: - description: EndTime represents the time at which the KeptnTask finished. - format: date-time - type: string - jobName: - description: JobName is the name of the Job executing the Task. - type: string - message: - description: Message contains information about unexpected errors - encountered during the execution of the KeptnTask. - type: string - reason: - description: Reason contains more information about the reason for - the last transition of the Job executing the KeptnTask. - type: string - startTime: - description: StartTime represents the time at which the KeptnTask - started. - format: date-time - type: string - status: - default: Pending - description: Status represents the overall state of the KeptnTask. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} + type: string + metadata: + type: object + spec: + description: Spec describes the desired state of the KeptnTask. + properties: + checkType: + description: Type indicates whether the KeptnTask is part of the pre- + or postDeployment phase. + type: string + context: + description: Context contains contextual information about the task + execution. + properties: + appName: + description: AppName the name of the KeptnApp the KeptnTask is + being executed for. + type: string + appVersion: + description: AppVersion the version of the KeptnApp the KeptnTask + is being executed for. + type: string + objectType: + description: ObjectType indicates whether the KeptnTask is being + executed for a KeptnApp or KeptnWorkload. + type: string + taskType: + description: TaskType indicates whether the KeptnTask is part + of the pre- or postDeployment phase. + type: string + workloadName: + description: WorkloadName the name of the KeptnWorkload the KeptnTask + is being executed for. + type: string + workloadVersion: + description: WorkloadVersion the version of the KeptnWorkload + the KeptnTask is being executed for. + type: string + type: object + parameters: + description: Parameters contains parameters that will be passed to + the job that executes the task. + properties: + map: + additionalProperties: + type: string + description: Inline contains the parameters that will be made + available to the job executing the KeptnTask via the 'DATA' + environment variable. The 'DATA' environment variable's content + will be a json encoded string containing all properties of the + map provided. + type: object + type: object + retries: + default: 10 + description: Retries indicates how many times the KeptnTask can be + attempted in the case of an error before considering the KeptnTask + to be failed. + format: int32 + type: integer + secureParameters: + description: SecureParameters contains secure parameters that will + be passed to the job that executes the task. These will be stored + and accessed as secrets in the cluster. + properties: + secret: + description: Secret contains the parameters that will be made + available to the job executing the KeptnTask via the 'SECRET_DATA' + environment variable. The 'SECRET_DATA' environment variable's + content will the same as value of the 'SECRET_DATA' key of the + referenced secret. + type: string + type: object + taskDefinition: + description: TaskDefinition refers to the name of the KeptnTaskDefinition + which includes the specification for the task to be performed. The + KeptnTaskDefinition can be located in the same namespace as the + KeptnTask, or in the Keptn namespace. + type: string + timeout: + default: 5m + description: Timeout specifies the maximum time to wait for the task + to be completed successfully. If the task does not complete successfully + within this time frame, it will be considered to be failed. + pattern: ^0|([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$ + type: string + required: + - taskDefinition + type: object + status: + description: Status describes the current state of the KeptnTask. + properties: + endTime: + description: EndTime represents the time at which the KeptnTask finished. + format: date-time + type: string + jobName: + description: JobName is the name of the Job executing the Task. + type: string + message: + description: Message contains information about unexpected errors + encountered during the execution of the KeptnTask. + type: string + reason: + description: Reason contains more information about the reason for + the last transition of the Job executing the KeptnTask. + type: string + startTime: + description: StartTime represents the time at which the KeptnTask + started. + format: date-time + type: string + status: + default: Pending + description: Status represents the overall state of the KeptnTask. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} --- # Source: klt/templates/keptntaskdefinition-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -3607,7 +3555,7 @@ kind: CustomResourceDefinition metadata: name: keptntaskdefinitions.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -3693,9 +3641,9 @@ spec: this file' properties: configMap: - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file' + description: 'INSERT ADDITIONAL STATUS FIELD - define observed + state of cluster Important: Run "make" to regenerate code after + modifying this file' type: string type: object type: object @@ -3770,9 +3718,9 @@ spec: this file' properties: configMap: - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file' + description: 'INSERT ADDITIONAL STATUS FIELD - define observed + state of cluster Important: Run "make" to regenerate code after + modifying this file' type: string type: object type: object @@ -3811,11 +3759,11 @@ spec: CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable cannot be resolved, the reference in the input string will be - unchanged. Double $$ are reduced to a single $, which allows for - escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce - the string literal "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable exists or not. - Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' + unchanged. Double $$ are reduced to a single $, which allows + for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will + produce the string literal "$(VAR_NAME)". Escaped references + will never be expanded, regardless of whether the variable exists + or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array @@ -3823,10 +3771,10 @@ spec: description: 'Entrypoint array. Not executed within a shell. The container image''s ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container''s - environment. If a variable cannot be resolved, the reference in - the input string will be unchanged. Double $$ are reduced to a - single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". + environment. If a variable cannot be resolved, the reference + in the input string will be unchanged. Double $$ are reduced + to a single $, which allows for escaping the $(VAR_NAME) syntax: + i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: @@ -3840,18 +3788,19 @@ spec: in a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: Name of the environment variable. Must be a + C_IDENTIFIER. type: string value: description: 'Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in the - container and any service environment variables. If a variable - cannot be resolved, the reference in the input string will - be unchanged. Double $$ are reduced to a single $, which - allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' + using the previously defined environment variables in + the container and any service environment variables. If + a variable cannot be resolved, the reference in the input + string will be unchanged. Double $$ are reduced to a single + $, which allows for escaping the $(VAR_NAME) syntax: i.e. + "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". + Escaped references will never be expanded, regardless + of whether the variable exists or not. Defaults to "".' type: string valueFrom: description: Source for the environment variable's value. @@ -3878,17 +3827,18 @@ spec: x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, - status.podIP, status.podIPs.' + metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath is - written in terms of, defaults to "v1". + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in the specified - API version. + description: Path of the field to select in the + specified API version. type: string required: - fieldPath @@ -3908,8 +3858,8 @@ spec: anyOf: - type: integer - type: string - description: Specifies the output format of the exposed - resources, defaults to "1" + description: Specifies the output format of the + exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: @@ -3920,7 +3870,8 @@ spec: type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the pod's namespace + description: Selects a key of a secret in the pod's + namespace properties: key: description: The key of the secret to select from. Must @@ -3945,15 +3896,16 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment variables in - the container. The keys defined within a source must be a C_IDENTIFIER. - All invalid keys will be reported as an event when the container - is starting. When a key exists in multiple sources, the value - associated with the last source will take precedence. Values defined - by an Env with a duplicate key will take precedence. Cannot be - updated. + description: List of sources to populate environment variables + in the container. The keys defined within a source must be a + C_IDENTIFIER. All invalid keys will be reported as an event + when the container is starting. When a key exists in multiple + sources, the value associated with the last source will take + precedence. Values defined by an Env with a duplicate key will + take precedence. Cannot be updated. items: - description: EnvFromSource represents the source of a set of ConfigMaps + description: EnvFromSource represents the source of a set of + ConfigMaps properties: configMapRef: description: The ConfigMap to select from @@ -3997,8 +3949,8 @@ spec: otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' type: string lifecycle: - description: Actions that the management system should take in response - to container lifecycle events. Cannot be updated. + description: Actions that the management system should take in + response to container lifecycle events. Cannot be updated. properties: postStart: description: 'PostStart is called immediately after a container @@ -4012,11 +3964,11 @@ spec: properties: command: description: Command is the command line to execute - inside the container, the working directory for the - command is root ('/') in the container's filesystem. + inside the container, the working directory for + the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside - a shell, so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly + a shell, so traditional shell instructions ('|', + etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. items: @@ -4027,13 +3979,13 @@ spec: description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the - pod IP. You probably want to set "Host" in httpHeaders + description: Host name to connect to, defaults to + the pod IP. You probably want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. + description: Custom headers to set in the request. + HTTP allows repeated headers. items: description: HTTPHeader describes a custom header to be used in HTTP probes @@ -4058,9 +4010,9 @@ spec: anyOf: - type: integer - type: string - description: Name or number of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. + description: Name or number of the port to access + on the container. Number must be in the range 1 + to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: description: Scheme to use for connecting to the host. @@ -4070,10 +4022,10 @@ spec: - port type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported as a - LifecycleHandler and kept for the backward compatibility. - There are no validation of this field and lifecycle hooks - will fail in runtime when tcp handler is specified. + description: Deprecated. TCPSocket is NOT supported as + a LifecycleHandler and kept for the backward compatibility. + There are no validation of this field and lifecycle + hooks will fail in runtime when tcp handler is specified. properties: host: description: 'Optional: Host name to connect to, defaults @@ -4083,9 +4035,9 @@ spec: anyOf: - type: integer - type: string - description: Number or name of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. + description: Number or name of the port to access + on the container. Number must be in the range 1 + to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -4093,27 +4045,27 @@ spec: type: object preStop: description: 'PreStop is called immediately before a container - is terminated due to an API request or management event such - as liveness/startup probe failure, preemption, resource contention, - etc. The handler is not called if the container crashes or - exits. The Pod''s termination grace period countdown begins - before the PreStop hook is executed. Regardless of the outcome - of the handler, the container will eventually terminate within - the Pod''s termination grace period (unless delayed by finalizers). - Other management of the container blocks until the hook completes - or until the termination grace period is reached. More info: - https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' + is terminated due to an API request or management event + such as liveness/startup probe failure, preemption, resource + contention, etc. The handler is not called if the container + crashes or exits. The Pod''s termination grace period countdown + begins before the PreStop hook is executed. Regardless of + the outcome of the handler, the container will eventually + terminate within the Pod''s termination grace period (unless + delayed by finalizers). Other management of the container + blocks until the hook completes or until the termination + grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: description: Exec specifies the action to take. properties: command: description: Command is the command line to execute - inside the container, the working directory for the - command is root ('/') in the container's filesystem. + inside the container, the working directory for + the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside - a shell, so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly + a shell, so traditional shell instructions ('|', + etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. items: @@ -4124,13 +4076,13 @@ spec: description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the - pod IP. You probably want to set "Host" in httpHeaders + description: Host name to connect to, defaults to + the pod IP. You probably want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. + description: Custom headers to set in the request. + HTTP allows repeated headers. items: description: HTTPHeader describes a custom header to be used in HTTP probes @@ -4155,9 +4107,9 @@ spec: anyOf: - type: integer - type: string - description: Name or number of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. + description: Name or number of the port to access + on the container. Number must be in the range 1 + to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: description: Scheme to use for connecting to the host. @@ -4167,10 +4119,10 @@ spec: - port type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported as a - LifecycleHandler and kept for the backward compatibility. - There are no validation of this field and lifecycle hooks - will fail in runtime when tcp handler is specified. + description: Deprecated. TCPSocket is NOT supported as + a LifecycleHandler and kept for the backward compatibility. + There are no validation of this field and lifecycle + hooks will fail in runtime when tcp handler is specified. properties: host: description: 'Optional: Host name to connect to, defaults @@ -4180,9 +4132,9 @@ spec: anyOf: - type: integer - type: string - description: Number or name of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. + description: Number or name of the port to access + on the container. Number must be in the range 1 + to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -4190,9 +4142,9 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. Container will - be restarted if the probe fails. Cannot be updated. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + description: 'Periodic probe of container liveness. Container + will be restarted if the probe fails. Cannot be updated. More + info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: description: Exec specifies the action to take. @@ -4203,16 +4155,17 @@ spec: root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, - you need to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is unhealthy. + you need to explicitly call out to that shell. Exit + status of 0 is treated as live/healthy and non-zero + is unhealthy. items: type: string type: array type: object failureThreshold: - description: Minimum consecutive failures for the probe to be - considered failed after having succeeded. Defaults to 3. Minimum - value is 1. + description: Minimum consecutive failures for the probe to + be considered failed after having succeeded. Defaults to + 3. Minimum value is 1. format: int32 type: integer grpc: @@ -4228,8 +4181,8 @@ spec: service: description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior is defined - by gRPC." + \n If this is not specified, the default behavior is + defined by gRPC." type: string required: - port @@ -4238,20 +4191,21 @@ spec: description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the pod - IP. You probably want to set "Host" in httpHeaders instead. + description: Host name to connect to, defaults to the + pod IP. You probably want to set "Host" in httpHeaders + instead. type: string httpHeaders: description: Custom headers to set in the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header to be - used in HTTP probes + description: HTTPHeader describes a custom header to + be used in HTTP probes properties: name: - description: The header field name. This will be canonicalized - upon output, so case-variant names will be understood - as the same header. + description: The header field name. This will be + canonicalized upon output, so case-variant names + will be understood as the same header. type: string value: description: The header field value @@ -4273,8 +4227,8 @@ spec: must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. Defaults - to HTTP. + description: Scheme to use for connecting to the host. + Defaults to HTTP. type: string required: - port @@ -4285,18 +4239,20 @@ spec: format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. Default - to 10 seconds. Minimum value is 1. + description: How often (in seconds) to perform the probe. + Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to - 1. Must be 1 for liveness and startup. Minimum value is 1. + 1. Must be 1 for liveness and startup. Minimum value is + 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP port. + description: TCPSocket specifies an action involving a TCP + port. properties: host: description: 'Optional: Host name to connect to, defaults @@ -4314,19 +4270,20 @@ spec: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs to terminate - gracefully upon probe failure. The grace period is the duration - in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly - halted with a kill signal. Set this value longer than the - expected cleanup time for your process. If this value is nil, - the pod's terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. Value - must be non-negative integer. The value zero indicates stop - immediately via the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. + description: Optional duration in seconds the pod needs to + terminate gracefully upon probe failure. The grace period + is the duration in seconds after the processes running in + the pod are sent a termination signal and the time when + the processes are forcibly halted with a kill signal. Set + this value longer than the expected cleanup time for your + process. If this value is nil, the pod's terminationGracePeriodSeconds + will be used. Otherwise, this value overrides the value + provided by the pod spec. Value must be non-negative integer. + The value zero indicates stop immediately via the kill signal + (no opportunity to shut down). This is a beta field and + requires enabling ProbeTerminationGracePeriod feature gate. + Minimum value is 1. spec.terminationGracePeriodSeconds is + used if unset. format: int64 type: integer timeoutSeconds: @@ -4369,10 +4326,10 @@ spec: format: int32 type: integer name: - description: If specified, this must be an IANA_SVC_NAME and - unique within the pod. Each named port in a pod must have - a unique name. Name for the port that can be referred to - by services. + description: If specified, this must be an IANA_SVC_NAME + and unique within the pod. Each named port in a pod must + have a unique name. Name for the port that can be referred + to by services. type: string protocol: default: TCP @@ -4401,16 +4358,17 @@ spec: root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, - you need to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is unhealthy. + you need to explicitly call out to that shell. Exit + status of 0 is treated as live/healthy and non-zero + is unhealthy. items: type: string type: array type: object failureThreshold: - description: Minimum consecutive failures for the probe to be - considered failed after having succeeded. Defaults to 3. Minimum - value is 1. + description: Minimum consecutive failures for the probe to + be considered failed after having succeeded. Defaults to + 3. Minimum value is 1. format: int32 type: integer grpc: @@ -4426,8 +4384,8 @@ spec: service: description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior is defined - by gRPC." + \n If this is not specified, the default behavior is + defined by gRPC." type: string required: - port @@ -4436,20 +4394,21 @@ spec: description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the pod - IP. You probably want to set "Host" in httpHeaders instead. + description: Host name to connect to, defaults to the + pod IP. You probably want to set "Host" in httpHeaders + instead. type: string httpHeaders: description: Custom headers to set in the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header to be - used in HTTP probes + description: HTTPHeader describes a custom header to + be used in HTTP probes properties: name: - description: The header field name. This will be canonicalized - upon output, so case-variant names will be understood - as the same header. + description: The header field name. This will be + canonicalized upon output, so case-variant names + will be understood as the same header. type: string value: description: The header field value @@ -4471,8 +4430,8 @@ spec: must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. Defaults - to HTTP. + description: Scheme to use for connecting to the host. + Defaults to HTTP. type: string required: - port @@ -4483,18 +4442,20 @@ spec: format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. Default - to 10 seconds. Minimum value is 1. + description: How often (in seconds) to perform the probe. + Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to - 1. Must be 1 for liveness and startup. Minimum value is 1. + 1. Must be 1 for liveness and startup. Minimum value is + 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP port. + description: TCPSocket specifies an action involving a TCP + port. properties: host: description: 'Optional: Host name to connect to, defaults @@ -4512,19 +4473,20 @@ spec: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs to terminate - gracefully upon probe failure. The grace period is the duration - in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly - halted with a kill signal. Set this value longer than the - expected cleanup time for your process. If this value is nil, - the pod's terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. Value - must be non-negative integer. The value zero indicates stop - immediately via the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. + description: Optional duration in seconds the pod needs to + terminate gracefully upon probe failure. The grace period + is the duration in seconds after the processes running in + the pod are sent a termination signal and the time when + the processes are forcibly halted with a kill signal. Set + this value longer than the expected cleanup time for your + process. If this value is nil, the pod's terminationGracePeriodSeconds + will be used. Otherwise, this value overrides the value + provided by the pod spec. Value must be non-negative integer. + The value zero indicates stop immediately via the kill signal + (no opportunity to shut down). This is a beta field and + requires enabling ProbeTerminationGracePeriod feature gate. + Minimum value is 1. spec.terminationGracePeriodSeconds is + used if unset. format: int64 type: integer timeoutSeconds: @@ -4539,18 +4501,19 @@ spec: be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: claims: - description: "Claims lists the names of resources, defined in - spec.resourceClaims, that are used by this container. \n This - is an alpha field and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It can only be set - for containers." + description: "Claims lists the names of resources, defined + in spec.resourceClaims, that are used by this container. + \n This is an alpha field and requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable. It can only be + set for containers." items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a container. + is used. It makes that resource available inside a + container. type: string required: - name @@ -4583,17 +4546,19 @@ spec: type: object type: object securityContext: - description: 'SecurityContext defines the security options the container - should be run with. If set, the fields of SecurityContext override - the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' + description: 'SecurityContext defines the security options the + container should be run with. If set, the fields of SecurityContext + override the equivalent fields of PodSecurityContext. More info: + https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls whether a process - can gain more privileges than its parent process. This bool - directly controls if the no_new_privs flag will be set on - the container process. AllowPrivilegeEscalation is true always - when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set when spec.os.name is windows.' + description: 'AllowPrivilegeEscalation controls whether a + process can gain more privileges than its parent process. + This bool directly controls if the no_new_privs flag will + be set on the container process. AllowPrivilegeEscalation + is true always when the container is: 1) run as Privileged + 2) has CAP_SYS_ADMIN Note that this field cannot be set + when spec.os.name is windows.' type: boolean capabilities: description: The capabilities to add/drop when running containers. @@ -4604,21 +4569,23 @@ spec: add: description: Added capabilities items: - description: Capability represent POSIX capabilities type + description: Capability represent POSIX capabilities + type type: string type: array drop: description: Removed capabilities items: - description: Capability represent POSIX capabilities type + description: Capability represent POSIX capabilities + type type: string type: array type: object privileged: description: Run container in privileged mode. Processes in - privileged containers are essentially equivalent to root on - the host. Defaults to false. Note that this field cannot be - set when spec.os.name is windows. + privileged containers are essentially equivalent to root + on the host. Defaults to false. Note that this field cannot + be set when spec.os.name is windows. type: boolean procMount: description: procMount denotes the type of proc mount to use @@ -4635,60 +4602,62 @@ spec: type: boolean runAsGroup: description: The GID to run the entrypoint of the container - process. Uses runtime default if unset. May also be set in - PodSecurityContext. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name is windows. + process. Uses runtime default if unset. May also be set + in PodSecurityContext. If set in both SecurityContext and + PodSecurityContext, the value specified in SecurityContext + takes precedence. Note that this field cannot be set when + spec.os.name is windows. format: int64 type: integer runAsNonRoot: description: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime - to ensure that it does not run as UID 0 (root) and fail to - start the container if it does. If unset or false, no such - validation will be performed. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, the value - specified in SecurityContext takes precedence. + to ensure that it does not run as UID 0 (root) and fail + to start the container if it does. If unset or false, no + such validation will be performed. May also be set in PodSecurityContext. If + set in both SecurityContext and PodSecurityContext, the + value specified in SecurityContext takes precedence. type: boolean runAsUser: description: The UID to run the entrypoint of the container - process. Defaults to user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be set when - spec.os.name is windows. + process. Defaults to user specified in image metadata if + unspecified. May also be set in PodSecurityContext. If + set in both SecurityContext and PodSecurityContext, the + value specified in SecurityContext takes precedence. Note + that this field cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: description: The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random - SELinux context for each container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, the value - specified in SecurityContext takes precedence. Note that this - field cannot be set when spec.os.name is windows. + SELinux context for each container. May also be set in + PodSecurityContext. If set in both SecurityContext and + PodSecurityContext, the value specified in SecurityContext + takes precedence. Note that this field cannot be set when + spec.os.name is windows. properties: level: - description: Level is SELinux level label that applies to - the container. + description: Level is SELinux level label that applies + to the container. type: string role: - description: Role is a SELinux role label that applies to - the container. + description: Role is a SELinux role label that applies + to the container. type: string type: - description: Type is a SELinux type label that applies to - the container. + description: Type is a SELinux type label that applies + to the container. type: string user: - description: User is a SELinux user label that applies to - the container. + description: User is a SELinux user label that applies + to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this container. If - seccomp options are provided at both the pod & container level, - the container options override the pod options. Note that - this field cannot be set when spec.os.name is windows. + description: The seccomp options to use by this container. + If seccomp options are provided at both the pod & container + level, the container options override the pod options. Note + that this field cannot be set when spec.os.name is windows. properties: localhostProfile: description: localhostProfile indicates a profile defined @@ -4699,20 +4668,21 @@ spec: type: string type: description: "type indicates which kind of seccomp profile - will be applied. Valid options are: \n Localhost - a profile - defined in a file on the node should be used. RuntimeDefault - - the container runtime default profile should be used. - Unconfined - no profile should be applied." + will be applied. Valid options are: \n Localhost - a + profile defined in a file on the node should be used. + RuntimeDefault - the container runtime default profile + should be used. Unconfined - no profile should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied to all containers. - If unspecified, the options from the PodSecurityContext will - be used. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name is linux. + description: The Windows specific settings applied to all + containers. If unspecified, the options from the PodSecurityContext + will be used. If set in both SecurityContext and PodSecurityContext, + the value specified in SecurityContext takes precedence. + Note that this field cannot be set when spec.os.name is + linux. properties: gmsaCredentialSpec: description: GMSACredentialSpec is where the GMSA admission @@ -4721,27 +4691,28 @@ spec: by the GMSACredentialSpecName field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name of the GMSA - credential spec to use. + description: GMSACredentialSpecName is the name of the + GMSA credential spec to use. type: string hostProcess: description: HostProcess determines if a container should - be run as a 'Host Process' container. This field is alpha-level - and will only be honored by components that enable the - WindowsHostProcessContainers feature flag. Setting this - field without the feature flag will result in errors when - validating the Pod. All of a Pod's containers must have - the same effective HostProcess value (it is not allowed - to have a mix of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess is true then - HostNetwork must also be set to true. + be run as a 'Host Process' container. This field is + alpha-level and will only be honored by components that + enable the WindowsHostProcessContainers feature flag. + Setting this field without the feature flag will result + in errors when validating the Pod. All of a Pod's containers + must have the same effective HostProcess value (it is + not allowed to have a mix of HostProcess containers + and non-HostProcess containers). In addition, if HostProcess + is true then HostNetwork must also be set to true. type: boolean runAsUserName: description: The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified - in image metadata if unspecified. May also be set in PodSecurityContext. - If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. + in image metadata if unspecified. May also be set in + PodSecurityContext. If set in both SecurityContext and + PodSecurityContext, the value specified in SecurityContext + takes precedence. type: string type: object type: object @@ -4749,11 +4720,11 @@ spec: description: 'StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will - be restarted, just as if the livenessProbe failed. This can be - used to provide different probe parameters at the beginning of - a Pod''s lifecycle, when it might take a long time to load data - or warm a cache, than during steady-state operation. This cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + be restarted, just as if the livenessProbe failed. This can + be used to provide different probe parameters at the beginning + of a Pod''s lifecycle, when it might take a long time to load + data or warm a cache, than during steady-state operation. This + cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: description: Exec specifies the action to take. @@ -4764,16 +4735,17 @@ spec: root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, - you need to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is unhealthy. + you need to explicitly call out to that shell. Exit + status of 0 is treated as live/healthy and non-zero + is unhealthy. items: type: string type: array type: object failureThreshold: - description: Minimum consecutive failures for the probe to be - considered failed after having succeeded. Defaults to 3. Minimum - value is 1. + description: Minimum consecutive failures for the probe to + be considered failed after having succeeded. Defaults to + 3. Minimum value is 1. format: int32 type: integer grpc: @@ -4789,8 +4761,8 @@ spec: service: description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior is defined - by gRPC." + \n If this is not specified, the default behavior is + defined by gRPC." type: string required: - port @@ -4799,20 +4771,21 @@ spec: description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the pod - IP. You probably want to set "Host" in httpHeaders instead. + description: Host name to connect to, defaults to the + pod IP. You probably want to set "Host" in httpHeaders + instead. type: string httpHeaders: description: Custom headers to set in the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header to be - used in HTTP probes + description: HTTPHeader describes a custom header to + be used in HTTP probes properties: name: - description: The header field name. This will be canonicalized - upon output, so case-variant names will be understood - as the same header. + description: The header field name. This will be + canonicalized upon output, so case-variant names + will be understood as the same header. type: string value: description: The header field value @@ -4834,8 +4807,8 @@ spec: must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. Defaults - to HTTP. + description: Scheme to use for connecting to the host. + Defaults to HTTP. type: string required: - port @@ -4846,18 +4819,20 @@ spec: format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. Default - to 10 seconds. Minimum value is 1. + description: How often (in seconds) to perform the probe. + Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to - 1. Must be 1 for liveness and startup. Minimum value is 1. + 1. Must be 1 for liveness and startup. Minimum value is + 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP port. + description: TCPSocket specifies an action involving a TCP + port. properties: host: description: 'Optional: Host name to connect to, defaults @@ -4875,19 +4850,20 @@ spec: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs to terminate - gracefully upon probe failure. The grace period is the duration - in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly - halted with a kill signal. Set this value longer than the - expected cleanup time for your process. If this value is nil, - the pod's terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. Value - must be non-negative integer. The value zero indicates stop - immediately via the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. + description: Optional duration in seconds the pod needs to + terminate gracefully upon probe failure. The grace period + is the duration in seconds after the processes running in + the pod are sent a termination signal and the time when + the processes are forcibly halted with a kill signal. Set + this value longer than the expected cleanup time for your + process. If this value is nil, the pod's terminationGracePeriodSeconds + will be used. Otherwise, this value overrides the value + provided by the pod spec. Value must be non-negative integer. + The value zero indicates stop immediately via the kill signal + (no opportunity to shut down). This is a beta field and + requires enabling ProbeTerminationGracePeriod feature gate. + Minimum value is 1. spec.terminationGracePeriodSeconds is + used if unset. format: int64 type: integer timeoutSeconds: @@ -4900,7 +4876,8 @@ spec: stdin: description: Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from - stdin in the container will always result in EOF. Default is false. + stdin in the container will always result in EOF. Default is + false. type: boolean stdinOnce: description: Whether the container runtime should close the stdin @@ -4932,15 +4909,15 @@ spec: is smaller. Defaults to File. Cannot be updated. type: string tty: - description: Whether this container should allocate a TTY for itself, - also requires 'stdin' to be true. Default is false. + description: Whether this container should allocate a TTY for + itself, also requires 'stdin' to be true. Default is false. type: boolean volumeDevices: - description: volumeDevices is the list of block devices to be used - by the container. + description: volumeDevices is the list of block devices to be + used by the container. items: - description: volumeDevice describes a mapping of a raw block device - within a container. + description: volumeDevice describes a mapping of a raw block + device within a container. properties: devicePath: description: devicePath is the path inside of the container @@ -4967,10 +4944,10 @@ spec: should be mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation determines how mounts are propagated - from the host to container and the other way around. When - not set, MountPropagationNone is used. This field is beta - in 1.10. + description: mountPropagation determines how mounts are + propagated from the host to container and the other way + around. When not set, MountPropagationNone is used. This + field is beta in 1.10. type: string name: description: This must match the Name of a Volume. @@ -4984,8 +4961,8 @@ spec: volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from which the - container's volume should be mounted. Behaves similarly + description: Expanded path within the volume from which + the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually @@ -4997,9 +4974,9 @@ spec: type: object type: array workingDir: - description: Container's working directory. If not specified, the - container runtime's default will be used, which might be configured - in the container image. Cannot be updated. + description: Container's working directory. If not specified, + the container runtime's default will be used, which might be + configured in the container image. Cannot be updated. type: string required: - name @@ -5015,8 +4992,8 @@ spec: configMapRef: description: ConfigMapReference allows to reference a ConfigMap containing the code of the function. When referencing a ConfigMap, - the code of the function must be available as a value of the 'code' - key of the referenced ConfigMap. + the code of the function must be available as a value of the + 'code' key of the referenced ConfigMap. properties: name: description: Name is the name of the referenced ConfigMap. @@ -5030,7 +5007,7 @@ spec: execute the same logic, but each with different parameters. properties: name: - description: Name is the name of the referenced KeptnTaksDefinition. + description: Name is the name of the referenced KeptnTaskDefinition. type: string type: object httpRef: @@ -5042,8 +5019,9 @@ spec: type: string type: object inline: - description: Inline allows to specify the code that should be executed - directly in the KeptnTaskDefinition, as a multi-line string. + description: Inline allows to specify the code that should be + executed directly in the KeptnTaskDefinition, as a multi-line + string. properties: code: description: Code contains the code of the function. @@ -5058,22 +5036,22 @@ spec: type: string description: Inline contains the parameters that will be made available to the job executing the KeptnTask via the 'DATA' - environment variable. The 'DATA' environment variable's content - will be a json encoded string containing all properties of - the map provided. + environment variable. The 'DATA' environment variable's + content will be a json encoded string containing all properties + of the map provided. type: object type: object secureParameters: - description: SecureParameters contains secure parameters that will - be passed to the job that executes the task. These will be stored - and accessed as secrets in the cluster. + description: SecureParameters contains secure parameters that + will be passed to the job that executes the task. These will + be stored and accessed as secrets in the cluster. properties: secret: description: Secret contains the parameters that will be made available to the job executing the KeptnTask via the 'SECRET_DATA' environment variable. The 'SECRET_DATA' environment variable's - content will the same as value of the 'SECRET_DATA' key of - the referenced secret. + content will the same as value of the 'SECRET_DATA' key + of the referenced secret. type: string type: object type: object @@ -5088,8 +5066,8 @@ spec: configMapRef: description: ConfigMapReference allows to reference a ConfigMap containing the code of the function. When referencing a ConfigMap, - the code of the function must be available as a value of the 'code' - key of the referenced ConfigMap. + the code of the function must be available as a value of the + 'code' key of the referenced ConfigMap. properties: name: description: Name is the name of the referenced ConfigMap. @@ -5103,7 +5081,7 @@ spec: execute the same logic, but each with different parameters. properties: name: - description: Name is the name of the referenced KeptnTaksDefinition. + description: Name is the name of the referenced KeptnTaskDefinition. type: string type: object httpRef: @@ -5115,8 +5093,9 @@ spec: type: string type: object inline: - description: Inline allows to specify the code that should be executed - directly in the KeptnTaskDefinition, as a multi-line string. + description: Inline allows to specify the code that should be + executed directly in the KeptnTaskDefinition, as a multi-line + string. properties: code: description: Code contains the code of the function. @@ -5131,22 +5110,22 @@ spec: type: string description: Inline contains the parameters that will be made available to the job executing the KeptnTask via the 'DATA' - environment variable. The 'DATA' environment variable's content - will be a json encoded string containing all properties of - the map provided. + environment variable. The 'DATA' environment variable's + content will be a json encoded string containing all properties + of the map provided. type: object type: object secureParameters: - description: SecureParameters contains secure parameters that will - be passed to the job that executes the task. These will be stored - and accessed as secrets in the cluster. + description: SecureParameters contains secure parameters that + will be passed to the job that executes the task. These will + be stored and accessed as secrets in the cluster. properties: secret: description: Secret contains the parameters that will be made available to the job executing the KeptnTask via the 'SECRET_DATA' environment variable. The 'SECRET_DATA' environment variable's - content will the same as value of the 'SECRET_DATA' key of - the referenced secret. + content will the same as value of the 'SECRET_DATA' key + of the referenced secret. type: string type: object type: object @@ -5161,8 +5140,8 @@ spec: configMapRef: description: ConfigMapReference allows to reference a ConfigMap containing the code of the function. When referencing a ConfigMap, - the code of the function must be available as a value of the 'code' - key of the referenced ConfigMap. + the code of the function must be available as a value of the + 'code' key of the referenced ConfigMap. properties: name: description: Name is the name of the referenced ConfigMap. @@ -5176,7 +5155,7 @@ spec: execute the same logic, but each with different parameters. properties: name: - description: Name is the name of the referenced KeptnTaksDefinition. + description: Name is the name of the referenced KeptnTaskDefinition. type: string type: object httpRef: @@ -5188,8 +5167,9 @@ spec: type: string type: object inline: - description: Inline allows to specify the code that should be executed - directly in the KeptnTaskDefinition, as a multi-line string. + description: Inline allows to specify the code that should be + executed directly in the KeptnTaskDefinition, as a multi-line + string. properties: code: description: Code contains the code of the function. @@ -5204,29 +5184,30 @@ spec: type: string description: Inline contains the parameters that will be made available to the job executing the KeptnTask via the 'DATA' - environment variable. The 'DATA' environment variable's content - will be a json encoded string containing all properties of - the map provided. + environment variable. The 'DATA' environment variable's + content will be a json encoded string containing all properties + of the map provided. type: object type: object secureParameters: - description: SecureParameters contains secure parameters that will - be passed to the job that executes the task. These will be stored - and accessed as secrets in the cluster. + description: SecureParameters contains secure parameters that + will be passed to the job that executes the task. These will + be stored and accessed as secrets in the cluster. properties: secret: description: Secret contains the parameters that will be made available to the job executing the KeptnTask via the 'SECRET_DATA' environment variable. The 'SECRET_DATA' environment variable's - content will the same as value of the 'SECRET_DATA' key of - the referenced secret. + content will the same as value of the 'SECRET_DATA' key + of the referenced secret. type: string type: object type: object retries: default: 10 - description: Retries specifies how many times a job executing the KeptnTaskDefinition - should be restarted in the case of an unsuccessful attempt. + description: Retries specifies how many times a job executing the + KeptnTaskDefinition should be restarted in the case of an unsuccessful + attempt. format: int32 type: integer timeout: @@ -5241,8 +5222,8 @@ spec: description: Status describes the current state of the KeptnTaskDefinition. properties: function: - description: Function contains status information of the function definition - for the task. + description: Function contains status information of the function + definition for the task. properties: configMap: description: ConfigMap indicates the ConfigMap in which the function @@ -5255,12 +5236,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptnworkload-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -5268,7 +5243,7 @@ kind: CustomResourceDefinition metadata: name: keptnworkloads.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -5341,9 +5316,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -5421,9 +5396,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -5482,33 +5457,33 @@ spec: description: PostDeploymentEvaluations is a list of all evaluations to be performed during the post-deployment phase of the KeptnWorkload. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnWorkload, or in the KLT + located in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array postDeploymentTasks: description: PostDeploymentTasks is a list of all tasks to be performed - during the post-deployment phase of the KeptnWorkload. The items of - this list refer to the names of KeptnTaskDefinitions located in the - same namespace as the KeptnWorkload, or in the KLT namespace. + during the post-deployment phase of the KeptnWorkload. The items + of this list refer to the names of KeptnTaskDefinitions located + in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array preDeploymentEvaluations: - description: PreDeploymentEvaluations is a list of all evaluations to - be performed during the pre-deployment phase of the KeptnWorkload. + description: PreDeploymentEvaluations is a list of all evaluations + to be performed during the pre-deployment phase of the KeptnWorkload. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnWorkload, or in the KLT + located in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array preDeploymentTasks: description: PreDeploymentTasks is a list of all tasks to be performed - during the pre-deployment phase of the KeptnWorkload. The items of - this list refer to the names of KeptnTaskDefinitions located in the - same namespace as the KeptnApp, or in the KLT namespace. + during the pre-deployment phase of the KeptnWorkload. The items + of this list refer to the names of KeptnTaskDefinitions located + in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -5523,9 +5498,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -5553,12 +5528,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/keptnworkloadinstance-crd.yaml apiVersion: apiextensions.k8s.io/v1 @@ -5566,7 +5535,7 @@ kind: CustomResourceDefinition metadata: name: keptnworkloadinstances.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: 'helmtests/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -5680,9 +5649,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -5704,7 +5673,8 @@ spec: - workloadName type: object status: - description: KeptnWorkloadInstanceStatus defines the observed state of KeptnWorkloadInstance + description: KeptnWorkloadInstanceStatus defines the observed state of + KeptnWorkloadInstance properties: currentPhase: type: string @@ -5718,9 +5688,11 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object + description: PhaseTraceID is a map storing TraceIDs of OpenTelemetry + spans in lifecycle phases type: object postDeploymentEvaluationStatus: default: Pending @@ -5900,9 +5872,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -5924,7 +5896,8 @@ spec: - workloadName type: object status: - description: KeptnWorkloadInstanceStatus defines the observed state of KeptnWorkloadInstance + description: KeptnWorkloadInstanceStatus defines the observed state of + KeptnWorkloadInstance properties: currentPhase: type: string @@ -5938,8 +5911,8 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object type: object postDeploymentEvaluationStatus: @@ -5949,7 +5922,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -5972,7 +5945,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -5995,7 +5968,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -6018,7 +5991,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -6107,33 +6080,33 @@ spec: description: PostDeploymentEvaluations is a list of all evaluations to be performed during the post-deployment phase of the KeptnWorkload. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnWorkload, or in the KLT + located in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array postDeploymentTasks: description: PostDeploymentTasks is a list of all tasks to be performed - during the post-deployment phase of the KeptnWorkload. The items of - this list refer to the names of KeptnTaskDefinitions located in the - same namespace as the KeptnWorkload, or in the KLT namespace. + during the post-deployment phase of the KeptnWorkload. The items + of this list refer to the names of KeptnTaskDefinitions located + in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array preDeploymentEvaluations: - description: PreDeploymentEvaluations is a list of all evaluations to - be performed during the pre-deployment phase of the KeptnWorkload. + description: PreDeploymentEvaluations is a list of all evaluations + to be performed during the pre-deployment phase of the KeptnWorkload. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnWorkload, or in the KLT + located in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array preDeploymentTasks: description: PreDeploymentTasks is a list of all tasks to be performed - during the pre-deployment phase of the KeptnWorkload. The items of - this list refer to the names of KeptnTaskDefinitions located in the - same namespace as the KeptnApp, or in the KLT namespace. + during the pre-deployment phase of the KeptnWorkload. The items + of this list refer to the names of KeptnTaskDefinitions located + in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -6152,9 +6125,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -6188,8 +6161,8 @@ spec: type: string deploymentStatus: default: Pending - description: DeploymentStatus indicates the current status of the KeptnWorkloadInstance's - Deployment phase. + description: DeploymentStatus indicates the current status of the + KeptnWorkloadInstance's Deployment phase. type: string endTime: description: EndTime represents the time at which the deployment of @@ -6200,16 +6173,16 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object description: PhaseTraceIDs contains the trace IDs of the OpenTelemetry spans of each phase of the KeptnWorkloadInstance type: object postDeploymentEvaluationStatus: default: Pending - description: PostDeploymentEvaluationStatus indicates the current status - of the KeptnWorkloadInstance's PostDeploymentEvaluation phase. + description: PostDeploymentEvaluationStatus indicates the current + status of the KeptnWorkloadInstance's PostDeploymentEvaluation phase. type: string postDeploymentEvaluationTaskStatus: description: PostDeploymentEvaluationTaskStatus indicates the current @@ -6217,7 +6190,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -6228,8 +6201,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -6239,16 +6212,16 @@ spec: type: array postDeploymentStatus: default: Pending - description: PostDeploymentStatus indicates the current status of the - KeptnWorkloadInstance's PostDeployment phase. + description: PostDeploymentStatus indicates the current status of + the KeptnWorkloadInstance's PostDeployment phase. type: string postDeploymentTaskStatus: - description: PostDeploymentTaskStatus indicates the current state of - each postDeploymentTask of the KeptnWorkloadInstance. + description: PostDeploymentTaskStatus indicates the current state + of each postDeploymentTask of the KeptnWorkloadInstance. items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -6259,8 +6232,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -6279,7 +6252,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -6290,8 +6263,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -6310,7 +6283,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -6321,8 +6294,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -6331,8 +6304,8 @@ spec: type: object type: array startTime: - description: StartTime represents the time at which the deployment of - the KeptnWorkloadInstance started. + description: StartTime represents the time at which the deployment + of the KeptnWorkloadInstance started. format: date-time type: string status: @@ -6345,12 +6318,6 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- # Source: klt/templates/certificate-operator-rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index e9dd5601f2..7fecfde3ed 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -143,10 +143,10 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Build Docker Image - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: ${{ matrix.config.folder }} platforms: linux/amd64 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1342edad0f..091a39fcde 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -134,10 +134,10 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to GitHub Container Registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: "ghcr.io" username: ${{ github.actor }} @@ -162,7 +162,7 @@ jobs: - name: Build Docker Image id: docker_build_image - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: ${{ matrix.config.folder }} platforms: linux/amd64,linux/arm64 diff --git a/examples/support/argo/Makefile b/examples/support/argo/Makefile index cc547d42a0..3bb5b7e667 100644 --- a/examples/support/argo/Makefile +++ b/examples/support/argo/Makefile @@ -2,7 +2,7 @@ LFC_NAMESPACE ?= keptn-lifecycle-toolkit-system PODTATO_NAMESPACE ?= podtato-kubectl ARGO_NAMESPACE ?= argocd # renovate: datasource=github-tags depName=argoproj/argo-cd -ARGO_VERSION ?= v2.8.3 +ARGO_VERSION ?= v2.8.4 ARGO_SECRET = $(shell kubectl -n ${ARGO_NAMESPACE} get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo) .PHONY: install diff --git a/examples/support/observability/config/otel-collector.yaml b/examples/support/observability/config/otel-collector.yaml index 9268f1e104..8c54e0fbc8 100644 --- a/examples/support/observability/config/otel-collector.yaml +++ b/examples/support/observability/config/otel-collector.yaml @@ -103,7 +103,7 @@ spec: env: - name: GOGC value: "80" - image: otel/opentelemetry-collector:0.84.0 + image: otel/opentelemetry-collector:0.85.0 name: otel-collector resources: limits: diff --git a/helm/chart/templates/analysis-crd.yaml b/helm/chart/templates/analysis-crd.yaml index bc0d97f2f3..d28a1b0fc6 100644 --- a/helm/chart/templates/analysis-crd.yaml +++ b/helm/chart/templates/analysis-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: analyses.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -19,124 +19,124 @@ spec: singular: analysis scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.analysisDefinition.name - name: AnalysisDefinition - type: string - - jsonPath: .status.warning - name: Warning - type: string - - jsonPath: .status.pass - name: Pass - type: string - name: v1alpha3 - schema: - openAPIV3Schema: - description: Analysis is the Schema for the analyses API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + - additionalPrinterColumns: + - jsonPath: .spec.analysisDefinition.name + name: AnalysisDefinition + type: string + - jsonPath: .status.warning + name: Warning + type: string + - jsonPath: .status.pass + name: Pass + type: string + name: v1alpha3 + schema: + openAPIV3Schema: + description: Analysis is the Schema for the analyses 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 + 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: AnalysisSpec defines the desired state of Analysis - properties: - analysisDefinition: - description: AnalysisDefinition refers to the AnalysisDefinition, - a CRD that stores the AnalysisValuesTemplates - properties: - name: - description: Name defines the name of the referenced object - type: string - namespace: - description: Namespace defines the namespace of the referenced - object - type: string - required: - - name - type: object - args: - additionalProperties: + type: string + metadata: + type: object + spec: + description: AnalysisSpec defines the desired state of Analysis + properties: + analysisDefinition: + description: AnalysisDefinition refers to the AnalysisDefinition, + a CRD that stores the AnalysisValuesTemplates + properties: + name: + description: Name defines the name of the referenced object type: string - description: Args corresponds to a map of key/value pairs that can - be used to substitute placeholders in the AnalysisValueTemplate - query. i.e. for args foo:bar the query could be "query:percentile(95)?scope=tag(my_foo_label:{{.foo}})". - type: object - timeframe: - description: Timeframe specifies the range for the corresponding query - in the AnalysisValueTemplate + namespace: + description: Namespace defines the namespace of the referenced + object + type: string + required: + - name + type: object + args: + additionalProperties: + type: string + description: Args corresponds to a map of key/value pairs that can + be used to substitute placeholders in the AnalysisValueTemplate + query. i.e. for args foo:bar the query could be "query:percentile(95)?scope=tag(my_foo_label:{{.foo}})". + type: object + timeframe: + description: Timeframe specifies the range for the corresponding query + in the AnalysisValueTemplate + properties: + from: + description: From is the time of start for the query, this field + follows RFC3339 time format + format: date-time + type: string + to: + description: To is the time of end for the query, this field follows + RFC3339 time format + format: date-time + type: string + required: + - from + - to + type: object + required: + - analysisDefinition + - timeframe + type: object + status: + description: AnalysisStatus stores the status of the overall analysis + returns also pass or warnings + properties: + pass: + description: Pass returns whether the SLO is satisfied + type: boolean + raw: + description: Raw contains the raw result of the SLO computation + type: string + storedValues: + additionalProperties: + description: ProviderResult stores reference of already collected + provider query associated to its objective template properties: - from: - description: From is the time of start for the query, this field - follows RFC3339 time format - format: date-time + errMsg: + description: ErrMsg stores any possible error at retrieval time type: string - to: - description: To is the time of end for the query, this field follows - RFC3339 time format - format: date-time + objectiveReference: + description: Objective store reference to corresponding objective + template + properties: + name: + description: Name defines the name of the referenced object + type: string + namespace: + description: Namespace defines the namespace of the referenced + object + type: string + required: + - name + type: object + value: + description: Value is the value the provider returned type: string - required: - - from - - to - type: object - required: - - analysisDefinition - - timeframe - type: object - status: - description: AnalysisStatus stores the status of the overall analysis - returns also pass or warnings - properties: - pass: - description: Pass returns whether the SLO is satisfied - type: boolean - raw: - description: Raw contains the raw result of the SLO computation - type: string - storedValues: - additionalProperties: - description: ProviderResult stores reference of already collected - provider query associated to its objective template - properties: - errMsg: - description: ErrMsg stores any possible error at retrieval time - type: string - objectiveReference: - description: Objective store reference to corresponding objective - template - properties: - name: - description: Name defines the name of the referenced object - type: string - namespace: - description: Namespace defines the namespace of the referenced - object - type: string - required: - - name - type: object - value: - description: Value is the value the provider returned - type: string - type: object - description: StoredValues contains all analysis values that have already - been retrieved successfully type: object - warning: - description: Warning returns whether the analysis returned a warning - type: boolean - type: object - type: object - served: true - storage: true - subresources: - status: {} + description: StoredValues contains all analysis values that have already + been retrieved successfully + type: object + warning: + description: Warning returns whether the analysis returned a warning + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/helm/chart/templates/analysisdefinition-crd.yaml b/helm/chart/templates/analysisdefinition-crd.yaml index 4d2a8898a0..3c9c7c2c4a 100644 --- a/helm/chart/templates/analysisdefinition-crd.yaml +++ b/helm/chart/templates/analysisdefinition-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: analysisdefinitions.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -22,7 +22,8 @@ spec: - name: v1alpha3 schema: openAPIV3Schema: - description: AnalysisDefinition is the Schema for the analysisdefinitions APIs + description: AnalysisDefinition is the Schema for the analysisdefinitions + APIs properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -50,24 +51,26 @@ spec: AnalysisValueTemplate properties: name: + description: Name defines the name of the referenced object type: string namespace: + description: Namespace defines the namespace of the referenced + object type: string required: - name - - namespace type: object keyObjective: default: false - description: KeyObjective defines if the objective fails when - the target is not met + description: KeyObjective defines whether the whole analysis + fails when this objective's target is not met type: boolean target: description: Target defines failure or warning criteria properties: failure: description: Failure defines limits up to which an analysis - fails. + fails properties: equalTo: description: EqualTo represents '==' operator @@ -108,21 +111,33 @@ spec: required: - fixedValue type: object - lessThan: - description: LessThan represents '<' operator + inRange: + description: InRange represents operator checking the + value is inclusively in the defined range, e.g. 2 + <= x <= 5 properties: - fixedValue: + highBound: anyOf: - type: integer - type: string - description: FixedValue defines the value for comparison + description: HighBound defines the higher bound + of the range + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + lowBound: + anyOf: + - type: integer + - type: string + description: LowBound defines the lower bound of + the range pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - - fixedValue + - highBound + - lowBound type: object - lessThanOrEqual: - description: LessThanOrEqual represents '<=' operator + lessThan: + description: LessThan represents '<' operator properties: fixedValue: anyOf: @@ -134,30 +149,18 @@ spec: required: - fixedValue type: object - inRange: - description: InRange represents operator checking the - value is inclusively in the defined range, e.g. 2 - <= x <= 5 + lessThanOrEqual: + description: LessThanOrEqual represents '<=' operator properties: - highBound: - anyOf: - - type: integer - - type: string - description: HighBound defines the higher bound of - the range - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - lowBound: + fixedValue: anyOf: - type: integer - type: string - description: LowBound defines the lower bound of - the range + description: FixedValue defines the value for comparison pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - - highBound - - lowBound + - fixedValue type: object notInRange: description: NotInRange represents operator checking @@ -168,8 +171,8 @@ spec: anyOf: - type: integer - type: string - description: HighBound defines the higher bound of - the range + description: HighBound defines the higher bound + of the range pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true lowBound: @@ -228,21 +231,33 @@ spec: required: - fixedValue type: object - lessThan: - description: LessThan represents '<' operator + inRange: + description: InRange represents operator checking the + value is inclusively in the defined range, e.g. 2 + <= x <= 5 properties: - fixedValue: + highBound: anyOf: - type: integer - type: string - description: FixedValue defines the value for comparison + description: HighBound defines the higher bound + of the range + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + lowBound: + anyOf: + - type: integer + - type: string + description: LowBound defines the lower bound of + the range pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - - fixedValue + - highBound + - lowBound type: object - lessThanOrEqual: - description: LessThanOrEqual represents '<=' operator + lessThan: + description: LessThan represents '<' operator properties: fixedValue: anyOf: @@ -254,30 +269,18 @@ spec: required: - fixedValue type: object - inRange: - description: InRange represents operator checking the - value is inclusively in the defined range, e.g. 2 - <= x <= 5 + lessThanOrEqual: + description: LessThanOrEqual represents '<=' operator properties: - highBound: - anyOf: - - type: integer - - type: string - description: HighBound defines the higher bound of - the range - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - lowBound: + fixedValue: anyOf: - type: integer - type: string - description: LowBound defines the lower bound of - the range + description: FixedValue defines the value for comparison pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - - highBound - - lowBound + - fixedValue type: object notInRange: description: NotInRange represents operator checking @@ -288,8 +291,8 @@ spec: anyOf: - type: integer - type: string - description: HighBound defines the higher bound of - the range + description: HighBound defines the higher bound + of the range pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true lowBound: @@ -308,26 +311,26 @@ spec: type: object weight: default: 1 - description: Weight can be used to emphasize the importance of - one Objective over the others + description: Weight can be used to emphasize the importance + of one Objective over the others type: integer required: - analysisValueTemplateRef type: object type: array totalScore: - description: TotalScore defines the required score for an analysis to - be successful + description: TotalScore defines the required score for an analysis + to be successful properties: passPercentage: - description: PassPercentage defines the threshold to reach for an - analysis to pass. + description: PassPercentage defines the threshold to reach for + an analysis to pass maximum: 100 minimum: 0 type: integer warningPercentage: - description: WarningPercentage defines the threshold to reach for - an analysis to pass with a 'warning' status. + description: WarningPercentage defines the threshold to reach + for an analysis to pass with a 'warning' status maximum: 100 minimum: 0 type: integer @@ -345,10 +348,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/analysisvaluetemplate-crd.yaml b/helm/chart/templates/analysisvaluetemplate-crd.yaml index df1f473e5b..b95f2b9d9a 100644 --- a/helm/chart/templates/analysisvaluetemplate-crd.yaml +++ b/helm/chart/templates/analysisvaluetemplate-crd.yaml @@ -4,7 +4,7 @@ kind: CustomResourceDefinition metadata: name: analysisvaluetemplates.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -20,59 +20,59 @@ spec: singular: analysisvaluetemplate scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.provider.name - name: Provider - type: string - name: v1alpha3 - schema: - openAPIV3Schema: - description: AnalysisValueTemplate is the Schema for the analysisvaluetemplates - API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + - additionalPrinterColumns: + - jsonPath: .spec.provider.name + name: Provider + type: string + name: v1alpha3 + schema: + openAPIV3Schema: + description: AnalysisValueTemplate is the Schema for the analysisvaluetemplates + 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 + 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: Spec contains the specification for the AnalysisValueTemplate - properties: - provider: - description: Provider refers to the KeptnMetricsProvider which should - be used to retrieve the data - properties: - name: - description: Name defines the name of the referenced object - type: string - namespace: - description: Namespace defines the namespace of the referenced - object - type: string - required: - - name - type: object - query: - description: Query represents the query to be run. It can include - placeholders that are defined using the go template syntax. More - info on go templating - https://pkg.go.dev/text/template - type: string - required: - - provider - - query - type: object - status: - description: unused field - type: string - type: object - served: true - storage: true - subresources: - status: {} + type: string + metadata: + type: object + spec: + description: Spec contains the specification for the AnalysisValueTemplate + properties: + provider: + description: Provider refers to the KeptnMetricsProvider which should + be used to retrieve the data + properties: + name: + description: Name defines the name of the referenced object + type: string + namespace: + description: Namespace defines the namespace of the referenced + object + type: string + required: + - name + type: object + query: + description: Query represents the query to be run. It can include + placeholders that are defined using the go template syntax. More + info on go templating - https://pkg.go.dev/text/template + type: string + required: + - provider + - query + type: object + status: + description: unused field + type: string + type: object + served: true + storage: true + subresources: + status: {} diff --git a/helm/chart/templates/keptnapp-crd.yaml b/helm/chart/templates/keptnapp-crd.yaml index 3255971f3e..09642631e5 100644 --- a/helm/chart/templates/keptnapp-crd.yaml +++ b/helm/chart/templates/keptnapp-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnapps.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -184,7 +184,7 @@ spec: description: PostDeploymentEvaluations is a list of all evaluations to be performed during the post-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnApp, or in the KLT namespace. + located in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -192,15 +192,15 @@ spec: description: PostDeploymentTasks is a list of all tasks to be performed during the post-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnTaskDefinitions located in the same - namespace as the KeptnApp, or in the KLT namespace. + namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array preDeploymentEvaluations: - description: PreDeploymentEvaluations is a list of all evaluations to - be performed during the pre-deployment phase of the KeptnApp. The - items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnApp, or in the KLT namespace. + description: PreDeploymentEvaluations is a list of all evaluations + to be performed during the pre-deployment phase of the KeptnApp. + The items of this list refer to the names of KeptnEvaluationDefinitions + located in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -208,7 +208,7 @@ spec: description: PreDeploymentTasks is a list of all tasks to be performed during the pre-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnTaskDefinitions located in the same - namespace as the KeptnApp, or in the KLT namespace. + namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -227,8 +227,8 @@ spec: description: Workloads is a list of all KeptnWorkloads that are part of the KeptnApp. items: - description: KeptnWorkloadRef refers to a KeptnWorkload that is part - of a KeptnApp + description: KeptnWorkloadRef refers to a KeptnWorkload that is + part of a KeptnApp properties: name: description: Name is the name of the KeptnWorkload. @@ -256,10 +256,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptnappcreationrequest-crd.yaml b/helm/chart/templates/keptnappcreationrequest-crd.yaml index 85513c155e..be02e3fc96 100644 --- a/helm/chart/templates/keptnappcreationrequest-crd.yaml +++ b/helm/chart/templates/keptnappcreationrequest-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnappcreationrequests.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -54,10 +54,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptnappversion-crd.yaml b/helm/chart/templates/keptnappversion-crd.yaml index 444745d196..a7448e77b3 100644 --- a/helm/chart/templates/keptnappversion-crd.yaml +++ b/helm/chart/templates/keptnappversion-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnappversions.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -135,9 +135,11 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object + description: PhaseTraceID is a map storing TraceIDs of OpenTelemetry + spans in lifecycle phases type: object postDeploymentEvaluationStatus: default: Pending @@ -363,8 +365,8 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object type: object postDeploymentEvaluationStatus: @@ -374,7 +376,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -397,7 +399,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -420,7 +422,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -443,7 +445,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -549,7 +551,7 @@ spec: description: PostDeploymentEvaluations is a list of all evaluations to be performed during the post-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnApp, or in the KLT namespace. + located in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -557,15 +559,15 @@ spec: description: PostDeploymentTasks is a list of all tasks to be performed during the post-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnTaskDefinitions located in the same - namespace as the KeptnApp, or in the KLT namespace. + namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array preDeploymentEvaluations: - description: PreDeploymentEvaluations is a list of all evaluations to - be performed during the pre-deployment phase of the KeptnApp. The - items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnApp, or in the KLT namespace. + description: PreDeploymentEvaluations is a list of all evaluations + to be performed during the pre-deployment phase of the KeptnApp. + The items of this list refer to the names of KeptnEvaluationDefinitions + located in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -573,7 +575,7 @@ spec: description: PreDeploymentTasks is a list of all tasks to be performed during the pre-deployment phase of the KeptnApp. The items of this list refer to the names of KeptnTaskDefinitions located in the same - namespace as the KeptnApp, or in the KLT namespace. + namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -601,8 +603,8 @@ spec: description: Workloads is a list of all KeptnWorkloads that are part of the KeptnApp. items: - description: KeptnWorkloadRef refers to a KeptnWorkload that is part - of a KeptnApp + description: KeptnWorkloadRef refers to a KeptnWorkload that is + part of a KeptnApp properties: name: description: Name is the name of the KeptnWorkload. @@ -634,16 +636,16 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object description: PhaseTraceIDs contains the trace IDs of the OpenTelemetry spans of each phase of the KeptnAppVersion. type: object postDeploymentEvaluationStatus: default: Pending - description: PostDeploymentEvaluationStatus indicates the current status - of the KeptnAppVersion's PostDeploymentEvaluation phase. + description: PostDeploymentEvaluationStatus indicates the current + status of the KeptnAppVersion's PostDeploymentEvaluation phase. type: string postDeploymentEvaluationTaskStatus: description: PostDeploymentEvaluationTaskStatus indicates the current @@ -651,7 +653,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -662,8 +664,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -673,16 +675,16 @@ spec: type: array postDeploymentStatus: default: Pending - description: PostDeploymentStatus indicates the current status of the - KeptnAppVersion's PostDeployment phase. + description: PostDeploymentStatus indicates the current status of + the KeptnAppVersion's PostDeployment phase. type: string postDeploymentTaskStatus: - description: PostDeploymentTaskStatus indicates the current state of - each postDeploymentTask of the KeptnAppVersion. + description: PostDeploymentTaskStatus indicates the current state + of each postDeploymentTask of the KeptnAppVersion. items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -693,8 +695,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -713,7 +715,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -724,8 +726,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -744,7 +746,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -755,8 +757,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -765,8 +767,8 @@ spec: type: object type: array startTime: - description: StartTime represents the time at which the deployment of - the KeptnAppVersion started. + description: StartTime represents the time at which the deployment + of the KeptnAppVersion started. format: date-time type: string status: @@ -775,8 +777,8 @@ spec: type: string workloadOverallStatus: default: Pending - description: WorkloadOverallStatus indicates the current status of the - KeptnAppVersion's Workload deployment phase. + description: WorkloadOverallStatus indicates the current status of + the KeptnAppVersion's Workload deployment phase. type: string workloadStatus: description: WorkloadStatus contains the current status of each KeptnWorkload @@ -788,8 +790,8 @@ spec: description: Status indicates the current status of the KeptnWorkload. type: string workload: - description: Workload refers to a KeptnWorkload that is part of - the KeptnAppVersion. + description: Workload refers to a KeptnWorkload that is part + of the KeptnAppVersion. properties: name: description: Name is the name of the KeptnWorkload. @@ -808,10 +810,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptnconfig-crd.yaml b/helm/chart/templates/keptnconfig-crd.yaml index 81519aedbf..ea03349bae 100644 --- a/helm/chart/templates/keptnconfig-crd.yaml +++ b/helm/chart/templates/keptnconfig-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnconfigs.options.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -49,9 +49,9 @@ spec: type: string keptnAppCreationRequestTimeoutSeconds: default: 30 - description: KeptnAppCreationRequestTimeoutSeconds is used to set the - interval in which automatic app discovery searches for workload to - put into the same auto-generated KeptnApp + description: KeptnAppCreationRequestTimeoutSeconds is used to set + the interval in which automatic app discovery searches for workload + to put into the same auto-generated KeptnApp type: integer type: object status: @@ -61,10 +61,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptnevaluation-crd.yaml b/helm/chart/templates/keptnevaluation-crd.yaml index 117649d8bf..d9073fe4cb 100644 --- a/helm/chart/templates/keptnevaluation-crd.yaml +++ b/helm/chart/templates/keptnevaluation-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnevaluations.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -284,21 +284,21 @@ spec: the KeptnEvaluation is done. type: string checkType: - description: Type indicates whether the KeptnEvaluation is part of the - pre- or postDeployment phase. + description: Type indicates whether the KeptnEvaluation is part of + the pre- or postDeployment phase. type: string evaluationDefinition: description: EvaluationDefinition refers to the name of the KeptnEvaluationDefinition which includes the objectives for the KeptnEvaluation. The KeptnEvaluationDefinition - can be located in the same namespace as the KeptnEvaluation, or in - the KLT namespace. + can be located in the same namespace as the KeptnEvaluation, or + in the Keptn namespace. type: string failAction: type: string retries: default: 10 - description: Retries indicates how many times the KeptnEvaluation can - be attempted in the case of an error or missed evaluation objective, + description: Retries indicates how many times the KeptnEvaluation + can be attempted in the case of an error or missed evaluation objective, before considering the KeptnEvaluation to be failed. type: integer retryInterval: @@ -332,8 +332,8 @@ spec: properties: message: description: Message contains additional information about the - evaluation of an objective. This can include explanations about - why an evaluation has failed (e.g. due to a missed objective), + evaluation of an objective. This can include explanations + about why an evaluation has failed (e.g. due to a missed objective), or if there was any error during the evaluation of the objective. type: string status: @@ -354,8 +354,8 @@ spec: overallStatus: default: Pending description: OverallStatus describes the overall status of the KeptnEvaluation. - The Overall status is derived from the status of the individual objectives - of the KeptnEvaluationDefinition referenced by the KeptnEvaluation. + The Overall status is derived from the status of the individual + objectives of the KeptnEvaluationDefinition referenced by the KeptnEvaluation. type: string retryCount: default: 0 @@ -376,10 +376,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptnevaluationdefinition-crd.yaml b/helm/chart/templates/keptnevaluationdefinition-crd.yaml index 38081fdd68..8459bdbd5f 100644 --- a/helm/chart/templates/keptnevaluationdefinition-crd.yaml +++ b/helm/chart/templates/keptnevaluationdefinition-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnevaluationdefinitions.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -146,18 +146,18 @@ spec: properties: objectives: description: Objectives is a list of objectives that have to be met - for a KeptnEvaluation referencing this KeptnEvaluationDefinition to - be successful. + for a KeptnEvaluation referencing this KeptnEvaluationDefinition + to be successful. items: properties: evaluationTarget: - description: EvaluationTarget specifies the target value for the - references KeptnMetric. Needs to start with either '<' or '>', - followed by the target value (e.g. '<10'). + description: EvaluationTarget specifies the target value for + the references KeptnMetric. Needs to start with either '<' + or '>', followed by the target value (e.g. '<10'). type: string keptnMetricRef: - description: KeptnMetricRef references the KeptnMetric that should - be evaluated. + description: KeptnMetricRef references the KeptnMetric that + should be evaluated. properties: name: description: Name is the name of the referenced KeptnMetric. @@ -184,10 +184,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptnevaluationprovider-crd.yaml b/helm/chart/templates/keptnevaluationprovider-crd.yaml index acec83bdaf..a37eda56d9 100644 --- a/helm/chart/templates/keptnevaluationprovider-crd.yaml +++ b/helm/chart/templates/keptnevaluationprovider-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnevaluationproviders.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -50,7 +50,8 @@ spec: metadata: type: object spec: - description: KeptnEvaluationProviderSpec defines the desired state of KeptnEvaluationProvider + description: KeptnEvaluationProviderSpec defines the desired state of + KeptnEvaluationProvider properties: secretName: type: string @@ -86,14 +87,15 @@ spec: metadata: type: object spec: - description: KeptnEvaluationProviderSpec defines the desired state of KeptnEvaluationProvider + description: KeptnEvaluationProviderSpec defines the desired state of + KeptnEvaluationProvider properties: secretKeyRef: description: SecretKeySelector selects a key of a Secret. properties: key: - description: The key of the secret to select from. Must be a valid - secret key. + description: The key of the secret to select from. Must be a + valid secret key. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -138,14 +140,15 @@ spec: metadata: type: object spec: - description: KeptnEvaluationProviderSpec defines the desired state of KeptnEvaluationProvider + description: KeptnEvaluationProviderSpec defines the desired state of + KeptnEvaluationProvider properties: secretKeyRef: description: SecretKeySelector selects a key of a Secret. properties: key: - description: The key of the secret to select from. Must be a valid - secret key. + description: The key of the secret to select from. Must be a + valid secret key. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -170,10 +173,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptnmetric-crd.yaml b/helm/chart/templates/keptnmetric-crd.yaml index 1b81002df8..fe39b8d0c5 100644 --- a/helm/chart/templates/keptnmetric-crd.yaml +++ b/helm/chart/templates/keptnmetric-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnmetrics.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -60,8 +60,8 @@ spec: description: KeptnMetricSpec defines the desired state of KeptnMetric properties: fetchIntervalSeconds: - description: FetchIntervalSeconds represents the update frequency in - seconds that is used to update the metric + description: FetchIntervalSeconds represents the update frequency + in seconds that is used to update the metric type: integer provider: description: Provider represents the provider object @@ -84,8 +84,8 @@ spec: description: KeptnMetricStatus defines the observed state of KeptnMetric properties: lastUpdated: - description: LastUpdated represents the time when the status data was - last updated + description: LastUpdated represents the time when the status data + was last updated format: date-time type: string rawValue: @@ -136,8 +136,8 @@ spec: description: KeptnMetricSpec defines the desired state of KeptnMetric properties: fetchIntervalSeconds: - description: FetchIntervalSeconds represents the update frequency in - seconds that is used to update the metric + description: FetchIntervalSeconds represents the update frequency + in seconds that is used to update the metric type: integer provider: description: Provider represents the provider object @@ -160,8 +160,8 @@ spec: description: KeptnMetricStatus defines the observed state of KeptnMetric properties: lastUpdated: - description: LastUpdated represents the time when the status data was - last updated + description: LastUpdated represents the time when the status data + was last updated format: date-time type: string rawValue: @@ -215,8 +215,8 @@ spec: description: KeptnMetricSpec defines the desired state of KeptnMetric properties: fetchIntervalSeconds: - description: FetchIntervalSeconds represents the update frequency in - seconds that is used to update the metric + description: FetchIntervalSeconds represents the update frequency + in seconds that is used to update the metric type: integer provider: description: Provider represents the provider object @@ -231,11 +231,11 @@ spec: description: Query represents the query to be run type: string range: - description: Range represents the time range for which data is to be - queried + description: Range represents the time range for which data is to + be queried properties: aggregation: - description: 'Aggregation defines as the type of aggregation function + description: 'Aggregation defines the type of aggregation function to be applied on the data. Accepted values: p90, p95, p99, max, min, avg, median' enum: @@ -270,8 +270,8 @@ spec: not be evaluated type: string lastUpdated: - description: LastUpdated represents the time when the status data was - last updated + description: LastUpdated represents the time when the status data + was last updated format: date-time type: string rawValue: @@ -290,10 +290,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptnmetricsprovider-crd.yaml b/helm/chart/templates/keptnmetricsprovider-crd.yaml index 6b8e0fea55..f180be6233 100644 --- a/helm/chart/templates/keptnmetricsprovider-crd.yaml +++ b/helm/chart/templates/keptnmetricsprovider-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnmetricsproviders.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -46,8 +46,8 @@ spec: description: SecretKeySelector selects a key of a Secret. properties: key: - description: The key of the secret to select from. Must be a valid - secret key. + description: The key of the secret to select from. Must be a + valid secret key. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -99,8 +99,8 @@ spec: to the metrics provider. properties: key: - description: The key of the secret to select from. Must be a valid - secret key. + description: The key of the secret to select from. Must be a + valid secret key. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -118,8 +118,8 @@ spec: is reachable with included port and protocol. type: string type: - description: Type represents the provider type. This can be one of prometheus, - dynatrace, datadog, dql. + description: Type represents the provider type. This can be one of + prometheus, dynatrace, datadog, dql. pattern: prometheus|dynatrace|datadog|dql type: string required: @@ -132,10 +132,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptntask-crd.yaml b/helm/chart/templates/keptntask-crd.yaml index 469d519d8d..7b49821b92 100644 --- a/helm/chart/templates/keptntask-crd.yaml +++ b/helm/chart/templates/keptntask-crd.yaml @@ -4,7 +4,7 @@ kind: CustomResourceDefinition metadata: name: keptntasks.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -20,388 +20,388 @@ spec: singular: keptntask scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.app - name: AppName - type: string - - jsonPath: .spec.appVersion - name: AppVersion - type: string - - jsonPath: .spec.workload - name: WorkloadName - type: string - - jsonPath: .spec.workloadVersion - name: WorkloadVersion - type: string - - jsonPath: .status.jobName - name: Job Name - type: string - - jsonPath: .status.status - name: Status - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: KeptnTask is the Schema for the keptntasks API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + - additionalPrinterColumns: + - jsonPath: .spec.app + name: AppName + type: string + - jsonPath: .spec.appVersion + name: AppVersion + type: string + - jsonPath: .spec.workload + name: WorkloadName + type: string + - jsonPath: .spec.workloadVersion + name: WorkloadVersion + type: string + - jsonPath: .status.jobName + name: Job Name + type: string + - jsonPath: .status.status + name: Status + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: KeptnTask is the Schema for the keptntasks 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 + 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: KeptnTaskSpec defines the desired state of KeptnTask - properties: - app: - type: string - appVersion: - type: string - checkType: - type: string - context: - properties: - appName: - type: string - appVersion: - type: string - objectType: - type: string - taskType: - type: string - workloadName: - type: string - workloadVersion: - type: string - required: - - appName - - appVersion - - objectType - - taskType - - workloadName - - workloadVersion - type: object - parameters: - properties: - map: - additionalProperties: - type: string - type: object - type: object - secureParameters: - properties: - secret: - type: string - type: object - taskDefinition: - type: string - workload: - type: string - workloadVersion: - type: string - required: - - app + type: string + metadata: + type: object + spec: + description: KeptnTaskSpec defines the desired state of KeptnTask + properties: + app: + type: string + appVersion: + type: string + checkType: + type: string + context: + properties: + appName: + type: string + appVersion: + type: string + objectType: + type: string + taskType: + type: string + workloadName: + type: string + workloadVersion: + type: string + required: + - appName - appVersion - - context - - taskDefinition - - workload + - objectType + - taskType + - workloadName - workloadVersion - type: object - status: - description: KeptnTaskStatus defines the observed state of KeptnTask - properties: - endTime: - format: date-time - type: string - jobName: - type: string - message: - type: string - startTime: - format: date-time - type: string - status: - default: Pending - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.app - name: AppName - type: string - - jsonPath: .spec.appVersion - name: AppVersion - type: string - - jsonPath: .spec.workload - name: WorkloadName - type: string - - jsonPath: .spec.workloadVersion - name: WorkloadVersion - type: string - - jsonPath: .status.jobName - name: Job Name - type: string - - jsonPath: .status.status - name: Status - type: string - name: v1alpha2 - schema: - openAPIV3Schema: - description: KeptnTask is the Schema for the keptntasks API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + type: object + parameters: + properties: + map: + additionalProperties: + type: string + type: object + type: object + secureParameters: + properties: + secret: + type: string + type: object + taskDefinition: + type: string + workload: + type: string + workloadVersion: + type: string + required: + - app + - appVersion + - context + - taskDefinition + - workload + - workloadVersion + type: object + status: + description: KeptnTaskStatus defines the observed state of KeptnTask + properties: + endTime: + format: date-time + type: string + jobName: + type: string + message: + type: string + startTime: + format: date-time + type: string + status: + default: Pending + type: string + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.app + name: AppName + type: string + - jsonPath: .spec.appVersion + name: AppVersion + type: string + - jsonPath: .spec.workload + name: WorkloadName + type: string + - jsonPath: .spec.workloadVersion + name: WorkloadVersion + type: string + - jsonPath: .status.jobName + name: Job Name + type: string + - jsonPath: .status.status + name: Status + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: KeptnTask is the Schema for the keptntasks 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 + 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: KeptnTaskSpec defines the desired state of KeptnTask - properties: - app: - type: string - appVersion: - type: string - checkType: - type: string - context: - properties: - appName: - type: string - appVersion: - type: string - objectType: - type: string - taskType: - type: string - workloadName: - type: string - workloadVersion: - type: string - required: - - appName - - appVersion - - objectType - - taskType - - workloadName - - workloadVersion - type: object - parameters: - properties: - map: - additionalProperties: - type: string - type: object - type: object - secureParameters: - properties: - secret: - type: string - type: object - taskDefinition: - type: string - workload: - type: string - workloadVersion: - type: string - required: - - app + type: string + metadata: + type: object + spec: + description: KeptnTaskSpec defines the desired state of KeptnTask + properties: + app: + type: string + appVersion: + type: string + checkType: + type: string + context: + properties: + appName: + type: string + appVersion: + type: string + objectType: + type: string + taskType: + type: string + workloadName: + type: string + workloadVersion: + type: string + required: + - appName - appVersion - - context - - taskDefinition - - workload + - objectType + - taskType + - workloadName - workloadVersion - type: object - status: - description: KeptnTaskStatus defines the observed state of KeptnTask - properties: - endTime: - format: date-time - type: string - jobName: - type: string - message: - type: string - startTime: - format: date-time - type: string - status: - default: Pending - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.app - name: AppName - type: string - - jsonPath: .spec.appVersion - name: AppVersion - type: string - - jsonPath: .spec.workload - name: WorkloadName - type: string - - jsonPath: .spec.workloadVersion - name: WorkloadVersion - type: string - - jsonPath: .status.jobName - name: Job Name - type: string - - jsonPath: .status.status - name: Status - type: string - name: v1alpha3 - schema: - openAPIV3Schema: - description: KeptnTask is the Schema for the keptntasks API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + type: object + parameters: + properties: + map: + additionalProperties: + type: string + type: object + type: object + secureParameters: + properties: + secret: + type: string + type: object + taskDefinition: + type: string + workload: + type: string + workloadVersion: + type: string + required: + - app + - appVersion + - context + - taskDefinition + - workload + - workloadVersion + type: object + status: + description: KeptnTaskStatus defines the observed state of KeptnTask + properties: + endTime: + format: date-time + type: string + jobName: + type: string + message: + type: string + startTime: + format: date-time + type: string + status: + default: Pending + type: string + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.app + name: AppName + type: string + - jsonPath: .spec.appVersion + name: AppVersion + type: string + - jsonPath: .spec.workload + name: WorkloadName + type: string + - jsonPath: .spec.workloadVersion + name: WorkloadVersion + type: string + - jsonPath: .status.jobName + name: Job Name + type: string + - jsonPath: .status.status + name: Status + type: string + name: v1alpha3 + schema: + openAPIV3Schema: + description: KeptnTask is the Schema for the keptntasks 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 + 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: Spec describes the desired state of the KeptnTask. - properties: - checkType: - description: Type indicates whether the KeptnTask is part of the pre- - or postDeployment phase. - type: string - context: - description: Context contains contextual information about the task - execution. - properties: - appName: - description: AppName the name of the KeptnApp the KeptnTask is - being executed for. - type: string - appVersion: - description: AppVersion the version of the KeptnApp the KeptnTask - is being executed for. - type: string - objectType: - description: ObjectType indicates whether the KeptnTask is being - executed for a KeptnApp or KeptnWorkload. - type: string - taskType: - description: TaskType indicates whether the KeptnTask is part - of the pre- or postDeployment phase. - type: string - workloadName: - description: WorkloadName the name of the KeptnWorkload the KeptnTask - is being executed for. - type: string - workloadVersion: - description: WorkloadVersion the version of the KeptnWorkload - the KeptnTask is being executed for. - type: string - type: object - parameters: - description: Parameters contains parameters that will be passed to - the job that executes the task. - properties: - map: - additionalProperties: - type: string - description: Inline contains the parameters that will be made - available to the job executing the KeptnTask via the 'DATA' - environment variable. The 'DATA' environment variable's content - will be a json encoded string containing all properties of the - map provided. - type: object - type: object - retries: - default: 10 - description: Retries indicates how many times the KeptnTask can be - attempted in the case of an error before considering the KeptnTask - to be failed. - format: int32 - type: integer - secureParameters: - description: SecureParameters contains secure parameters that will - be passed to the job that executes the task. These will be stored - and accessed as secrets in the cluster. - properties: - secret: - description: Secret contains the parameters that will be made - available to the job executing the KeptnTask via the 'SECRET_DATA' - environment variable. The 'SECRET_DATA' environment variable's - content will the same as value of the 'SECRET_DATA' key of the - referenced secret. + type: string + metadata: + type: object + spec: + description: Spec describes the desired state of the KeptnTask. + properties: + checkType: + description: Type indicates whether the KeptnTask is part of the pre- + or postDeployment phase. + type: string + context: + description: Context contains contextual information about the task + execution. + properties: + appName: + description: AppName the name of the KeptnApp the KeptnTask is + being executed for. + type: string + appVersion: + description: AppVersion the version of the KeptnApp the KeptnTask + is being executed for. + type: string + objectType: + description: ObjectType indicates whether the KeptnTask is being + executed for a KeptnApp or KeptnWorkload. + type: string + taskType: + description: TaskType indicates whether the KeptnTask is part + of the pre- or postDeployment phase. + type: string + workloadName: + description: WorkloadName the name of the KeptnWorkload the KeptnTask + is being executed for. + type: string + workloadVersion: + description: WorkloadVersion the version of the KeptnWorkload + the KeptnTask is being executed for. + type: string + type: object + parameters: + description: Parameters contains parameters that will be passed to + the job that executes the task. + properties: + map: + additionalProperties: type: string - type: object - taskDefinition: - description: TaskDefinition refers to the name of the KeptnTaskDefinition - which includes the specification for the task to be performed. The - KeptnTaskDefinition can be located in the same namespace as the - KeptnTask, or in the KLT namespace. - type: string - timeout: - default: 5m - description: Timeout specifies the maximum time to wait for the task - to be completed successfully. If the task does not complete successfully - within this time frame, it will be considered to be failed. - pattern: ^0|([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$ - type: string - required: - - taskDefinition - type: object - status: - description: Status describes the current state of the KeptnTask. - properties: - endTime: - description: EndTime represents the time at which the KeptnTask finished. - format: date-time - type: string - jobName: - description: JobName is the name of the Job executing the Task. - type: string - message: - description: Message contains information about unexpected errors - encountered during the execution of the KeptnTask. - type: string - reason: - description: Reason contains more information about the reason for - the last transition of the Job executing the KeptnTask. - type: string - startTime: - description: StartTime represents the time at which the KeptnTask - started. - format: date-time - type: string - status: - default: Pending - description: Status represents the overall state of the KeptnTask. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} \ No newline at end of file + description: Inline contains the parameters that will be made + available to the job executing the KeptnTask via the 'DATA' + environment variable. The 'DATA' environment variable's content + will be a json encoded string containing all properties of the + map provided. + type: object + type: object + retries: + default: 10 + description: Retries indicates how many times the KeptnTask can be + attempted in the case of an error before considering the KeptnTask + to be failed. + format: int32 + type: integer + secureParameters: + description: SecureParameters contains secure parameters that will + be passed to the job that executes the task. These will be stored + and accessed as secrets in the cluster. + properties: + secret: + description: Secret contains the parameters that will be made + available to the job executing the KeptnTask via the 'SECRET_DATA' + environment variable. The 'SECRET_DATA' environment variable's + content will the same as value of the 'SECRET_DATA' key of the + referenced secret. + type: string + type: object + taskDefinition: + description: TaskDefinition refers to the name of the KeptnTaskDefinition + which includes the specification for the task to be performed. The + KeptnTaskDefinition can be located in the same namespace as the + KeptnTask, or in the Keptn namespace. + type: string + timeout: + default: 5m + description: Timeout specifies the maximum time to wait for the task + to be completed successfully. If the task does not complete successfully + within this time frame, it will be considered to be failed. + pattern: ^0|([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$ + type: string + required: + - taskDefinition + type: object + status: + description: Status describes the current state of the KeptnTask. + properties: + endTime: + description: EndTime represents the time at which the KeptnTask finished. + format: date-time + type: string + jobName: + description: JobName is the name of the Job executing the Task. + type: string + message: + description: Message contains information about unexpected errors + encountered during the execution of the KeptnTask. + type: string + reason: + description: Reason contains more information about the reason for + the last transition of the Job executing the KeptnTask. + type: string + startTime: + description: StartTime represents the time at which the KeptnTask + started. + format: date-time + type: string + status: + default: Pending + description: Status represents the overall state of the KeptnTask. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptntaskdefinition-crd.yaml b/helm/chart/templates/keptntaskdefinition-crd.yaml index 2bed312f6a..f75bcfbe95 100644 --- a/helm/chart/templates/keptntaskdefinition-crd.yaml +++ b/helm/chart/templates/keptntaskdefinition-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptntaskdefinitions.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -85,9 +85,9 @@ spec: this file' properties: configMap: - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file' + description: 'INSERT ADDITIONAL STATUS FIELD - define observed + state of cluster Important: Run "make" to regenerate code after + modifying this file' type: string type: object type: object @@ -162,9 +162,9 @@ spec: this file' properties: configMap: - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file' + description: 'INSERT ADDITIONAL STATUS FIELD - define observed + state of cluster Important: Run "make" to regenerate code after + modifying this file' type: string type: object type: object @@ -203,11 +203,11 @@ spec: CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable cannot be resolved, the reference in the input string will be - unchanged. Double $$ are reduced to a single $, which allows for - escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce - the string literal "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable exists or not. - Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' + unchanged. Double $$ are reduced to a single $, which allows + for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will + produce the string literal "$(VAR_NAME)". Escaped references + will never be expanded, regardless of whether the variable exists + or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array @@ -215,10 +215,10 @@ spec: description: 'Entrypoint array. Not executed within a shell. The container image''s ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container''s - environment. If a variable cannot be resolved, the reference in - the input string will be unchanged. Double $$ are reduced to a - single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". + environment. If a variable cannot be resolved, the reference + in the input string will be unchanged. Double $$ are reduced + to a single $, which allows for escaping the $(VAR_NAME) syntax: + i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: @@ -232,18 +232,19 @@ spec: in a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: Name of the environment variable. Must be a + C_IDENTIFIER. type: string value: description: 'Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in the - container and any service environment variables. If a variable - cannot be resolved, the reference in the input string will - be unchanged. Double $$ are reduced to a single $, which - allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' + using the previously defined environment variables in + the container and any service environment variables. If + a variable cannot be resolved, the reference in the input + string will be unchanged. Double $$ are reduced to a single + $, which allows for escaping the $(VAR_NAME) syntax: i.e. + "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". + Escaped references will never be expanded, regardless + of whether the variable exists or not. Defaults to "".' type: string valueFrom: description: Source for the environment variable's value. @@ -270,17 +271,18 @@ spec: x-kubernetes-map-type: atomic fieldRef: description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, - status.podIP, status.podIPs.' + metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath is - written in terms of, defaults to "v1". + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in the specified - API version. + description: Path of the field to select in the + specified API version. type: string required: - fieldPath @@ -300,8 +302,8 @@ spec: anyOf: - type: integer - type: string - description: Specifies the output format of the exposed - resources, defaults to "1" + description: Specifies the output format of the + exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: @@ -312,7 +314,8 @@ spec: type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the pod's namespace + description: Selects a key of a secret in the pod's + namespace properties: key: description: The key of the secret to select from. Must @@ -337,15 +340,16 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment variables in - the container. The keys defined within a source must be a C_IDENTIFIER. - All invalid keys will be reported as an event when the container - is starting. When a key exists in multiple sources, the value - associated with the last source will take precedence. Values defined - by an Env with a duplicate key will take precedence. Cannot be - updated. + description: List of sources to populate environment variables + in the container. The keys defined within a source must be a + C_IDENTIFIER. All invalid keys will be reported as an event + when the container is starting. When a key exists in multiple + sources, the value associated with the last source will take + precedence. Values defined by an Env with a duplicate key will + take precedence. Cannot be updated. items: - description: EnvFromSource represents the source of a set of ConfigMaps + description: EnvFromSource represents the source of a set of + ConfigMaps properties: configMapRef: description: The ConfigMap to select from @@ -389,8 +393,8 @@ spec: otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' type: string lifecycle: - description: Actions that the management system should take in response - to container lifecycle events. Cannot be updated. + description: Actions that the management system should take in + response to container lifecycle events. Cannot be updated. properties: postStart: description: 'PostStart is called immediately after a container @@ -404,11 +408,11 @@ spec: properties: command: description: Command is the command line to execute - inside the container, the working directory for the - command is root ('/') in the container's filesystem. + inside the container, the working directory for + the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside - a shell, so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly + a shell, so traditional shell instructions ('|', + etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. items: @@ -419,13 +423,13 @@ spec: description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the - pod IP. You probably want to set "Host" in httpHeaders + description: Host name to connect to, defaults to + the pod IP. You probably want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. + description: Custom headers to set in the request. + HTTP allows repeated headers. items: description: HTTPHeader describes a custom header to be used in HTTP probes @@ -450,9 +454,9 @@ spec: anyOf: - type: integer - type: string - description: Name or number of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. + description: Name or number of the port to access + on the container. Number must be in the range 1 + to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: description: Scheme to use for connecting to the host. @@ -462,10 +466,10 @@ spec: - port type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported as a - LifecycleHandler and kept for the backward compatibility. - There are no validation of this field and lifecycle hooks - will fail in runtime when tcp handler is specified. + description: Deprecated. TCPSocket is NOT supported as + a LifecycleHandler and kept for the backward compatibility. + There are no validation of this field and lifecycle + hooks will fail in runtime when tcp handler is specified. properties: host: description: 'Optional: Host name to connect to, defaults @@ -475,9 +479,9 @@ spec: anyOf: - type: integer - type: string - description: Number or name of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. + description: Number or name of the port to access + on the container. Number must be in the range 1 + to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -485,27 +489,27 @@ spec: type: object preStop: description: 'PreStop is called immediately before a container - is terminated due to an API request or management event such - as liveness/startup probe failure, preemption, resource contention, - etc. The handler is not called if the container crashes or - exits. The Pod''s termination grace period countdown begins - before the PreStop hook is executed. Regardless of the outcome - of the handler, the container will eventually terminate within - the Pod''s termination grace period (unless delayed by finalizers). - Other management of the container blocks until the hook completes - or until the termination grace period is reached. More info: - https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' + is terminated due to an API request or management event + such as liveness/startup probe failure, preemption, resource + contention, etc. The handler is not called if the container + crashes or exits. The Pod''s termination grace period countdown + begins before the PreStop hook is executed. Regardless of + the outcome of the handler, the container will eventually + terminate within the Pod''s termination grace period (unless + delayed by finalizers). Other management of the container + blocks until the hook completes or until the termination + grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: description: Exec specifies the action to take. properties: command: description: Command is the command line to execute - inside the container, the working directory for the - command is root ('/') in the container's filesystem. + inside the container, the working directory for + the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside - a shell, so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly + a shell, so traditional shell instructions ('|', + etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. items: @@ -516,13 +520,13 @@ spec: description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the - pod IP. You probably want to set "Host" in httpHeaders + description: Host name to connect to, defaults to + the pod IP. You probably want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. + description: Custom headers to set in the request. + HTTP allows repeated headers. items: description: HTTPHeader describes a custom header to be used in HTTP probes @@ -547,9 +551,9 @@ spec: anyOf: - type: integer - type: string - description: Name or number of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. + description: Name or number of the port to access + on the container. Number must be in the range 1 + to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: description: Scheme to use for connecting to the host. @@ -559,10 +563,10 @@ spec: - port type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported as a - LifecycleHandler and kept for the backward compatibility. - There are no validation of this field and lifecycle hooks - will fail in runtime when tcp handler is specified. + description: Deprecated. TCPSocket is NOT supported as + a LifecycleHandler and kept for the backward compatibility. + There are no validation of this field and lifecycle + hooks will fail in runtime when tcp handler is specified. properties: host: description: 'Optional: Host name to connect to, defaults @@ -572,9 +576,9 @@ spec: anyOf: - type: integer - type: string - description: Number or name of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. + description: Number or name of the port to access + on the container. Number must be in the range 1 + to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -582,9 +586,9 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. Container will - be restarted if the probe fails. Cannot be updated. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + description: 'Periodic probe of container liveness. Container + will be restarted if the probe fails. Cannot be updated. More + info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: description: Exec specifies the action to take. @@ -595,16 +599,17 @@ spec: root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, - you need to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is unhealthy. + you need to explicitly call out to that shell. Exit + status of 0 is treated as live/healthy and non-zero + is unhealthy. items: type: string type: array type: object failureThreshold: - description: Minimum consecutive failures for the probe to be - considered failed after having succeeded. Defaults to 3. Minimum - value is 1. + description: Minimum consecutive failures for the probe to + be considered failed after having succeeded. Defaults to + 3. Minimum value is 1. format: int32 type: integer grpc: @@ -620,8 +625,8 @@ spec: service: description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior is defined - by gRPC." + \n If this is not specified, the default behavior is + defined by gRPC." type: string required: - port @@ -630,20 +635,21 @@ spec: description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the pod - IP. You probably want to set "Host" in httpHeaders instead. + description: Host name to connect to, defaults to the + pod IP. You probably want to set "Host" in httpHeaders + instead. type: string httpHeaders: description: Custom headers to set in the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header to be - used in HTTP probes + description: HTTPHeader describes a custom header to + be used in HTTP probes properties: name: - description: The header field name. This will be canonicalized - upon output, so case-variant names will be understood - as the same header. + description: The header field name. This will be + canonicalized upon output, so case-variant names + will be understood as the same header. type: string value: description: The header field value @@ -665,8 +671,8 @@ spec: must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. Defaults - to HTTP. + description: Scheme to use for connecting to the host. + Defaults to HTTP. type: string required: - port @@ -677,18 +683,20 @@ spec: format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. Default - to 10 seconds. Minimum value is 1. + description: How often (in seconds) to perform the probe. + Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to - 1. Must be 1 for liveness and startup. Minimum value is 1. + 1. Must be 1 for liveness and startup. Minimum value is + 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP port. + description: TCPSocket specifies an action involving a TCP + port. properties: host: description: 'Optional: Host name to connect to, defaults @@ -706,19 +714,20 @@ spec: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs to terminate - gracefully upon probe failure. The grace period is the duration - in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly - halted with a kill signal. Set this value longer than the - expected cleanup time for your process. If this value is nil, - the pod's terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. Value - must be non-negative integer. The value zero indicates stop - immediately via the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. + description: Optional duration in seconds the pod needs to + terminate gracefully upon probe failure. The grace period + is the duration in seconds after the processes running in + the pod are sent a termination signal and the time when + the processes are forcibly halted with a kill signal. Set + this value longer than the expected cleanup time for your + process. If this value is nil, the pod's terminationGracePeriodSeconds + will be used. Otherwise, this value overrides the value + provided by the pod spec. Value must be non-negative integer. + The value zero indicates stop immediately via the kill signal + (no opportunity to shut down). This is a beta field and + requires enabling ProbeTerminationGracePeriod feature gate. + Minimum value is 1. spec.terminationGracePeriodSeconds is + used if unset. format: int64 type: integer timeoutSeconds: @@ -761,10 +770,10 @@ spec: format: int32 type: integer name: - description: If specified, this must be an IANA_SVC_NAME and - unique within the pod. Each named port in a pod must have - a unique name. Name for the port that can be referred to - by services. + description: If specified, this must be an IANA_SVC_NAME + and unique within the pod. Each named port in a pod must + have a unique name. Name for the port that can be referred + to by services. type: string protocol: default: TCP @@ -793,16 +802,17 @@ spec: root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, - you need to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is unhealthy. + you need to explicitly call out to that shell. Exit + status of 0 is treated as live/healthy and non-zero + is unhealthy. items: type: string type: array type: object failureThreshold: - description: Minimum consecutive failures for the probe to be - considered failed after having succeeded. Defaults to 3. Minimum - value is 1. + description: Minimum consecutive failures for the probe to + be considered failed after having succeeded. Defaults to + 3. Minimum value is 1. format: int32 type: integer grpc: @@ -818,8 +828,8 @@ spec: service: description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior is defined - by gRPC." + \n If this is not specified, the default behavior is + defined by gRPC." type: string required: - port @@ -828,20 +838,21 @@ spec: description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the pod - IP. You probably want to set "Host" in httpHeaders instead. + description: Host name to connect to, defaults to the + pod IP. You probably want to set "Host" in httpHeaders + instead. type: string httpHeaders: description: Custom headers to set in the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header to be - used in HTTP probes + description: HTTPHeader describes a custom header to + be used in HTTP probes properties: name: - description: The header field name. This will be canonicalized - upon output, so case-variant names will be understood - as the same header. + description: The header field name. This will be + canonicalized upon output, so case-variant names + will be understood as the same header. type: string value: description: The header field value @@ -863,8 +874,8 @@ spec: must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. Defaults - to HTTP. + description: Scheme to use for connecting to the host. + Defaults to HTTP. type: string required: - port @@ -875,18 +886,20 @@ spec: format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. Default - to 10 seconds. Minimum value is 1. + description: How often (in seconds) to perform the probe. + Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to - 1. Must be 1 for liveness and startup. Minimum value is 1. + 1. Must be 1 for liveness and startup. Minimum value is + 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP port. + description: TCPSocket specifies an action involving a TCP + port. properties: host: description: 'Optional: Host name to connect to, defaults @@ -904,19 +917,20 @@ spec: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs to terminate - gracefully upon probe failure. The grace period is the duration - in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly - halted with a kill signal. Set this value longer than the - expected cleanup time for your process. If this value is nil, - the pod's terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. Value - must be non-negative integer. The value zero indicates stop - immediately via the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. + description: Optional duration in seconds the pod needs to + terminate gracefully upon probe failure. The grace period + is the duration in seconds after the processes running in + the pod are sent a termination signal and the time when + the processes are forcibly halted with a kill signal. Set + this value longer than the expected cleanup time for your + process. If this value is nil, the pod's terminationGracePeriodSeconds + will be used. Otherwise, this value overrides the value + provided by the pod spec. Value must be non-negative integer. + The value zero indicates stop immediately via the kill signal + (no opportunity to shut down). This is a beta field and + requires enabling ProbeTerminationGracePeriod feature gate. + Minimum value is 1. spec.terminationGracePeriodSeconds is + used if unset. format: int64 type: integer timeoutSeconds: @@ -931,18 +945,19 @@ spec: be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: claims: - description: "Claims lists the names of resources, defined in - spec.resourceClaims, that are used by this container. \n This - is an alpha field and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It can only be set - for containers." + description: "Claims lists the names of resources, defined + in spec.resourceClaims, that are used by this container. + \n This is an alpha field and requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable. It can only be + set for containers." items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a container. + is used. It makes that resource available inside a + container. type: string required: - name @@ -975,17 +990,19 @@ spec: type: object type: object securityContext: - description: 'SecurityContext defines the security options the container - should be run with. If set, the fields of SecurityContext override - the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' + description: 'SecurityContext defines the security options the + container should be run with. If set, the fields of SecurityContext + override the equivalent fields of PodSecurityContext. More info: + https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls whether a process - can gain more privileges than its parent process. This bool - directly controls if the no_new_privs flag will be set on - the container process. AllowPrivilegeEscalation is true always - when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set when spec.os.name is windows.' + description: 'AllowPrivilegeEscalation controls whether a + process can gain more privileges than its parent process. + This bool directly controls if the no_new_privs flag will + be set on the container process. AllowPrivilegeEscalation + is true always when the container is: 1) run as Privileged + 2) has CAP_SYS_ADMIN Note that this field cannot be set + when spec.os.name is windows.' type: boolean capabilities: description: The capabilities to add/drop when running containers. @@ -996,21 +1013,23 @@ spec: add: description: Added capabilities items: - description: Capability represent POSIX capabilities type + description: Capability represent POSIX capabilities + type type: string type: array drop: description: Removed capabilities items: - description: Capability represent POSIX capabilities type + description: Capability represent POSIX capabilities + type type: string type: array type: object privileged: description: Run container in privileged mode. Processes in - privileged containers are essentially equivalent to root on - the host. Defaults to false. Note that this field cannot be - set when spec.os.name is windows. + privileged containers are essentially equivalent to root + on the host. Defaults to false. Note that this field cannot + be set when spec.os.name is windows. type: boolean procMount: description: procMount denotes the type of proc mount to use @@ -1027,60 +1046,62 @@ spec: type: boolean runAsGroup: description: The GID to run the entrypoint of the container - process. Uses runtime default if unset. May also be set in - PodSecurityContext. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name is windows. + process. Uses runtime default if unset. May also be set + in PodSecurityContext. If set in both SecurityContext and + PodSecurityContext, the value specified in SecurityContext + takes precedence. Note that this field cannot be set when + spec.os.name is windows. format: int64 type: integer runAsNonRoot: description: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime - to ensure that it does not run as UID 0 (root) and fail to - start the container if it does. If unset or false, no such - validation will be performed. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, the value - specified in SecurityContext takes precedence. + to ensure that it does not run as UID 0 (root) and fail + to start the container if it does. If unset or false, no + such validation will be performed. May also be set in PodSecurityContext. If + set in both SecurityContext and PodSecurityContext, the + value specified in SecurityContext takes precedence. type: boolean runAsUser: description: The UID to run the entrypoint of the container - process. Defaults to user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be set when - spec.os.name is windows. + process. Defaults to user specified in image metadata if + unspecified. May also be set in PodSecurityContext. If + set in both SecurityContext and PodSecurityContext, the + value specified in SecurityContext takes precedence. Note + that this field cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: description: The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random - SELinux context for each container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, the value - specified in SecurityContext takes precedence. Note that this - field cannot be set when spec.os.name is windows. + SELinux context for each container. May also be set in + PodSecurityContext. If set in both SecurityContext and + PodSecurityContext, the value specified in SecurityContext + takes precedence. Note that this field cannot be set when + spec.os.name is windows. properties: level: - description: Level is SELinux level label that applies to - the container. + description: Level is SELinux level label that applies + to the container. type: string role: - description: Role is a SELinux role label that applies to - the container. + description: Role is a SELinux role label that applies + to the container. type: string type: - description: Type is a SELinux type label that applies to - the container. + description: Type is a SELinux type label that applies + to the container. type: string user: - description: User is a SELinux user label that applies to - the container. + description: User is a SELinux user label that applies + to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this container. If - seccomp options are provided at both the pod & container level, - the container options override the pod options. Note that - this field cannot be set when spec.os.name is windows. + description: The seccomp options to use by this container. + If seccomp options are provided at both the pod & container + level, the container options override the pod options. Note + that this field cannot be set when spec.os.name is windows. properties: localhostProfile: description: localhostProfile indicates a profile defined @@ -1091,20 +1112,21 @@ spec: type: string type: description: "type indicates which kind of seccomp profile - will be applied. Valid options are: \n Localhost - a profile - defined in a file on the node should be used. RuntimeDefault - - the container runtime default profile should be used. - Unconfined - no profile should be applied." + will be applied. Valid options are: \n Localhost - a + profile defined in a file on the node should be used. + RuntimeDefault - the container runtime default profile + should be used. Unconfined - no profile should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied to all containers. - If unspecified, the options from the PodSecurityContext will - be used. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name is linux. + description: The Windows specific settings applied to all + containers. If unspecified, the options from the PodSecurityContext + will be used. If set in both SecurityContext and PodSecurityContext, + the value specified in SecurityContext takes precedence. + Note that this field cannot be set when spec.os.name is + linux. properties: gmsaCredentialSpec: description: GMSACredentialSpec is where the GMSA admission @@ -1113,27 +1135,28 @@ spec: by the GMSACredentialSpecName field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name of the GMSA - credential spec to use. + description: GMSACredentialSpecName is the name of the + GMSA credential spec to use. type: string hostProcess: description: HostProcess determines if a container should - be run as a 'Host Process' container. This field is alpha-level - and will only be honored by components that enable the - WindowsHostProcessContainers feature flag. Setting this - field without the feature flag will result in errors when - validating the Pod. All of a Pod's containers must have - the same effective HostProcess value (it is not allowed - to have a mix of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess is true then - HostNetwork must also be set to true. + be run as a 'Host Process' container. This field is + alpha-level and will only be honored by components that + enable the WindowsHostProcessContainers feature flag. + Setting this field without the feature flag will result + in errors when validating the Pod. All of a Pod's containers + must have the same effective HostProcess value (it is + not allowed to have a mix of HostProcess containers + and non-HostProcess containers). In addition, if HostProcess + is true then HostNetwork must also be set to true. type: boolean runAsUserName: description: The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified - in image metadata if unspecified. May also be set in PodSecurityContext. - If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. + in image metadata if unspecified. May also be set in + PodSecurityContext. If set in both SecurityContext and + PodSecurityContext, the value specified in SecurityContext + takes precedence. type: string type: object type: object @@ -1141,11 +1164,11 @@ spec: description: 'StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will - be restarted, just as if the livenessProbe failed. This can be - used to provide different probe parameters at the beginning of - a Pod''s lifecycle, when it might take a long time to load data - or warm a cache, than during steady-state operation. This cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + be restarted, just as if the livenessProbe failed. This can + be used to provide different probe parameters at the beginning + of a Pod''s lifecycle, when it might take a long time to load + data or warm a cache, than during steady-state operation. This + cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: description: Exec specifies the action to take. @@ -1156,16 +1179,17 @@ spec: root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, - you need to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is unhealthy. + you need to explicitly call out to that shell. Exit + status of 0 is treated as live/healthy and non-zero + is unhealthy. items: type: string type: array type: object failureThreshold: - description: Minimum consecutive failures for the probe to be - considered failed after having succeeded. Defaults to 3. Minimum - value is 1. + description: Minimum consecutive failures for the probe to + be considered failed after having succeeded. Defaults to + 3. Minimum value is 1. format: int32 type: integer grpc: @@ -1181,8 +1205,8 @@ spec: service: description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior is defined - by gRPC." + \n If this is not specified, the default behavior is + defined by gRPC." type: string required: - port @@ -1191,20 +1215,21 @@ spec: description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the pod - IP. You probably want to set "Host" in httpHeaders instead. + description: Host name to connect to, defaults to the + pod IP. You probably want to set "Host" in httpHeaders + instead. type: string httpHeaders: description: Custom headers to set in the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header to be - used in HTTP probes + description: HTTPHeader describes a custom header to + be used in HTTP probes properties: name: - description: The header field name. This will be canonicalized - upon output, so case-variant names will be understood - as the same header. + description: The header field name. This will be + canonicalized upon output, so case-variant names + will be understood as the same header. type: string value: description: The header field value @@ -1226,8 +1251,8 @@ spec: must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. Defaults - to HTTP. + description: Scheme to use for connecting to the host. + Defaults to HTTP. type: string required: - port @@ -1238,18 +1263,20 @@ spec: format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. Default - to 10 seconds. Minimum value is 1. + description: How often (in seconds) to perform the probe. + Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to - 1. Must be 1 for liveness and startup. Minimum value is 1. + 1. Must be 1 for liveness and startup. Minimum value is + 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP port. + description: TCPSocket specifies an action involving a TCP + port. properties: host: description: 'Optional: Host name to connect to, defaults @@ -1267,19 +1294,20 @@ spec: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs to terminate - gracefully upon probe failure. The grace period is the duration - in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly - halted with a kill signal. Set this value longer than the - expected cleanup time for your process. If this value is nil, - the pod's terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. Value - must be non-negative integer. The value zero indicates stop - immediately via the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. + description: Optional duration in seconds the pod needs to + terminate gracefully upon probe failure. The grace period + is the duration in seconds after the processes running in + the pod are sent a termination signal and the time when + the processes are forcibly halted with a kill signal. Set + this value longer than the expected cleanup time for your + process. If this value is nil, the pod's terminationGracePeriodSeconds + will be used. Otherwise, this value overrides the value + provided by the pod spec. Value must be non-negative integer. + The value zero indicates stop immediately via the kill signal + (no opportunity to shut down). This is a beta field and + requires enabling ProbeTerminationGracePeriod feature gate. + Minimum value is 1. spec.terminationGracePeriodSeconds is + used if unset. format: int64 type: integer timeoutSeconds: @@ -1292,7 +1320,8 @@ spec: stdin: description: Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from - stdin in the container will always result in EOF. Default is false. + stdin in the container will always result in EOF. Default is + false. type: boolean stdinOnce: description: Whether the container runtime should close the stdin @@ -1324,15 +1353,15 @@ spec: is smaller. Defaults to File. Cannot be updated. type: string tty: - description: Whether this container should allocate a TTY for itself, - also requires 'stdin' to be true. Default is false. + description: Whether this container should allocate a TTY for + itself, also requires 'stdin' to be true. Default is false. type: boolean volumeDevices: - description: volumeDevices is the list of block devices to be used - by the container. + description: volumeDevices is the list of block devices to be + used by the container. items: - description: volumeDevice describes a mapping of a raw block device - within a container. + description: volumeDevice describes a mapping of a raw block + device within a container. properties: devicePath: description: devicePath is the path inside of the container @@ -1359,10 +1388,10 @@ spec: should be mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation determines how mounts are propagated - from the host to container and the other way around. When - not set, MountPropagationNone is used. This field is beta - in 1.10. + description: mountPropagation determines how mounts are + propagated from the host to container and the other way + around. When not set, MountPropagationNone is used. This + field is beta in 1.10. type: string name: description: This must match the Name of a Volume. @@ -1376,8 +1405,8 @@ spec: volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from which the - container's volume should be mounted. Behaves similarly + description: Expanded path within the volume from which + the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually @@ -1389,9 +1418,9 @@ spec: type: object type: array workingDir: - description: Container's working directory. If not specified, the - container runtime's default will be used, which might be configured - in the container image. Cannot be updated. + description: Container's working directory. If not specified, + the container runtime's default will be used, which might be + configured in the container image. Cannot be updated. type: string required: - name @@ -1407,8 +1436,8 @@ spec: configMapRef: description: ConfigMapReference allows to reference a ConfigMap containing the code of the function. When referencing a ConfigMap, - the code of the function must be available as a value of the 'code' - key of the referenced ConfigMap. + the code of the function must be available as a value of the + 'code' key of the referenced ConfigMap. properties: name: description: Name is the name of the referenced ConfigMap. @@ -1422,7 +1451,7 @@ spec: execute the same logic, but each with different parameters. properties: name: - description: Name is the name of the referenced KeptnTaksDefinition. + description: Name is the name of the referenced KeptnTaskDefinition. type: string type: object httpRef: @@ -1434,8 +1463,9 @@ spec: type: string type: object inline: - description: Inline allows to specify the code that should be executed - directly in the KeptnTaskDefinition, as a multi-line string. + description: Inline allows to specify the code that should be + executed directly in the KeptnTaskDefinition, as a multi-line + string. properties: code: description: Code contains the code of the function. @@ -1450,22 +1480,22 @@ spec: type: string description: Inline contains the parameters that will be made available to the job executing the KeptnTask via the 'DATA' - environment variable. The 'DATA' environment variable's content - will be a json encoded string containing all properties of - the map provided. + environment variable. The 'DATA' environment variable's + content will be a json encoded string containing all properties + of the map provided. type: object type: object secureParameters: - description: SecureParameters contains secure parameters that will - be passed to the job that executes the task. These will be stored - and accessed as secrets in the cluster. + description: SecureParameters contains secure parameters that + will be passed to the job that executes the task. These will + be stored and accessed as secrets in the cluster. properties: secret: description: Secret contains the parameters that will be made available to the job executing the KeptnTask via the 'SECRET_DATA' environment variable. The 'SECRET_DATA' environment variable's - content will the same as value of the 'SECRET_DATA' key of - the referenced secret. + content will the same as value of the 'SECRET_DATA' key + of the referenced secret. type: string type: object type: object @@ -1480,8 +1510,8 @@ spec: configMapRef: description: ConfigMapReference allows to reference a ConfigMap containing the code of the function. When referencing a ConfigMap, - the code of the function must be available as a value of the 'code' - key of the referenced ConfigMap. + the code of the function must be available as a value of the + 'code' key of the referenced ConfigMap. properties: name: description: Name is the name of the referenced ConfigMap. @@ -1495,7 +1525,7 @@ spec: execute the same logic, but each with different parameters. properties: name: - description: Name is the name of the referenced KeptnTaksDefinition. + description: Name is the name of the referenced KeptnTaskDefinition. type: string type: object httpRef: @@ -1507,8 +1537,9 @@ spec: type: string type: object inline: - description: Inline allows to specify the code that should be executed - directly in the KeptnTaskDefinition, as a multi-line string. + description: Inline allows to specify the code that should be + executed directly in the KeptnTaskDefinition, as a multi-line + string. properties: code: description: Code contains the code of the function. @@ -1523,22 +1554,22 @@ spec: type: string description: Inline contains the parameters that will be made available to the job executing the KeptnTask via the 'DATA' - environment variable. The 'DATA' environment variable's content - will be a json encoded string containing all properties of - the map provided. + environment variable. The 'DATA' environment variable's + content will be a json encoded string containing all properties + of the map provided. type: object type: object secureParameters: - description: SecureParameters contains secure parameters that will - be passed to the job that executes the task. These will be stored - and accessed as secrets in the cluster. + description: SecureParameters contains secure parameters that + will be passed to the job that executes the task. These will + be stored and accessed as secrets in the cluster. properties: secret: description: Secret contains the parameters that will be made available to the job executing the KeptnTask via the 'SECRET_DATA' environment variable. The 'SECRET_DATA' environment variable's - content will the same as value of the 'SECRET_DATA' key of - the referenced secret. + content will the same as value of the 'SECRET_DATA' key + of the referenced secret. type: string type: object type: object @@ -1553,8 +1584,8 @@ spec: configMapRef: description: ConfigMapReference allows to reference a ConfigMap containing the code of the function. When referencing a ConfigMap, - the code of the function must be available as a value of the 'code' - key of the referenced ConfigMap. + the code of the function must be available as a value of the + 'code' key of the referenced ConfigMap. properties: name: description: Name is the name of the referenced ConfigMap. @@ -1568,7 +1599,7 @@ spec: execute the same logic, but each with different parameters. properties: name: - description: Name is the name of the referenced KeptnTaksDefinition. + description: Name is the name of the referenced KeptnTaskDefinition. type: string type: object httpRef: @@ -1580,8 +1611,9 @@ spec: type: string type: object inline: - description: Inline allows to specify the code that should be executed - directly in the KeptnTaskDefinition, as a multi-line string. + description: Inline allows to specify the code that should be + executed directly in the KeptnTaskDefinition, as a multi-line + string. properties: code: description: Code contains the code of the function. @@ -1596,29 +1628,30 @@ spec: type: string description: Inline contains the parameters that will be made available to the job executing the KeptnTask via the 'DATA' - environment variable. The 'DATA' environment variable's content - will be a json encoded string containing all properties of - the map provided. + environment variable. The 'DATA' environment variable's + content will be a json encoded string containing all properties + of the map provided. type: object type: object secureParameters: - description: SecureParameters contains secure parameters that will - be passed to the job that executes the task. These will be stored - and accessed as secrets in the cluster. + description: SecureParameters contains secure parameters that + will be passed to the job that executes the task. These will + be stored and accessed as secrets in the cluster. properties: secret: description: Secret contains the parameters that will be made available to the job executing the KeptnTask via the 'SECRET_DATA' environment variable. The 'SECRET_DATA' environment variable's - content will the same as value of the 'SECRET_DATA' key of - the referenced secret. + content will the same as value of the 'SECRET_DATA' key + of the referenced secret. type: string type: object type: object retries: default: 10 - description: Retries specifies how many times a job executing the KeptnTaskDefinition - should be restarted in the case of an unsuccessful attempt. + description: Retries specifies how many times a job executing the + KeptnTaskDefinition should be restarted in the case of an unsuccessful + attempt. format: int32 type: integer timeout: @@ -1633,8 +1666,8 @@ spec: description: Status describes the current state of the KeptnTaskDefinition. properties: function: - description: Function contains status information of the function definition - for the task. + description: Function contains status information of the function + definition for the task. properties: configMap: description: ConfigMap indicates the ConfigMap in which the function @@ -1646,10 +1679,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptnworkload-crd.yaml b/helm/chart/templates/keptnworkload-crd.yaml index d74d91f4c3..6238558710 100644 --- a/helm/chart/templates/keptnworkload-crd.yaml +++ b/helm/chart/templates/keptnworkload-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnworkloads.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -72,9 +72,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -152,9 +152,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -213,33 +213,33 @@ spec: description: PostDeploymentEvaluations is a list of all evaluations to be performed during the post-deployment phase of the KeptnWorkload. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnWorkload, or in the KLT + located in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array postDeploymentTasks: description: PostDeploymentTasks is a list of all tasks to be performed - during the post-deployment phase of the KeptnWorkload. The items of - this list refer to the names of KeptnTaskDefinitions located in the - same namespace as the KeptnWorkload, or in the KLT namespace. + during the post-deployment phase of the KeptnWorkload. The items + of this list refer to the names of KeptnTaskDefinitions located + in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array preDeploymentEvaluations: - description: PreDeploymentEvaluations is a list of all evaluations to - be performed during the pre-deployment phase of the KeptnWorkload. + description: PreDeploymentEvaluations is a list of all evaluations + to be performed during the pre-deployment phase of the KeptnWorkload. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnWorkload, or in the KLT + located in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array preDeploymentTasks: description: PreDeploymentTasks is a list of all tasks to be performed - during the pre-deployment phase of the KeptnWorkload. The items of - this list refer to the names of KeptnTaskDefinitions located in the - same namespace as the KeptnApp, or in the KLT namespace. + during the pre-deployment phase of the KeptnWorkload. The items + of this list refer to the names of KeptnTaskDefinitions located + in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -254,9 +254,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -283,10 +283,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/helm/chart/templates/keptnworkloadinstance-crd.yaml b/helm/chart/templates/keptnworkloadinstance-crd.yaml index cf44039557..ba9b7b3a73 100644 --- a/helm/chart/templates/keptnworkloadinstance-crd.yaml +++ b/helm/chart/templates/keptnworkloadinstance-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnworkloadinstances.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/klt-certs' labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit @@ -113,9 +113,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -137,7 +137,8 @@ spec: - workloadName type: object status: - description: KeptnWorkloadInstanceStatus defines the observed state of KeptnWorkloadInstance + description: KeptnWorkloadInstanceStatus defines the observed state of + KeptnWorkloadInstance properties: currentPhase: type: string @@ -151,9 +152,11 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object + description: PhaseTraceID is a map storing TraceIDs of OpenTelemetry + spans in lifecycle phases type: object postDeploymentEvaluationStatus: default: Pending @@ -333,9 +336,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -357,7 +360,8 @@ spec: - workloadName type: object status: - description: KeptnWorkloadInstanceStatus defines the observed state of KeptnWorkloadInstance + description: KeptnWorkloadInstanceStatus defines the observed state of + KeptnWorkloadInstance properties: currentPhase: type: string @@ -371,8 +375,8 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object type: object postDeploymentEvaluationStatus: @@ -382,7 +386,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -405,7 +409,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -428,7 +432,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -451,7 +455,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: format: date-time @@ -540,33 +544,33 @@ spec: description: PostDeploymentEvaluations is a list of all evaluations to be performed during the post-deployment phase of the KeptnWorkload. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnWorkload, or in the KLT + located in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array postDeploymentTasks: description: PostDeploymentTasks is a list of all tasks to be performed - during the post-deployment phase of the KeptnWorkload. The items of - this list refer to the names of KeptnTaskDefinitions located in the - same namespace as the KeptnWorkload, or in the KLT namespace. + during the post-deployment phase of the KeptnWorkload. The items + of this list refer to the names of KeptnTaskDefinitions located + in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array preDeploymentEvaluations: - description: PreDeploymentEvaluations is a list of all evaluations to - be performed during the pre-deployment phase of the KeptnWorkload. + description: PreDeploymentEvaluations is a list of all evaluations + to be performed during the pre-deployment phase of the KeptnWorkload. The items of this list refer to the names of KeptnEvaluationDefinitions - located in the same namespace as the KeptnWorkload, or in the KLT + located in the same namespace as the KeptnWorkload, or in the Keptn namespace. items: type: string type: array preDeploymentTasks: description: PreDeploymentTasks is a list of all tasks to be performed - during the pre-deployment phase of the KeptnWorkload. The items of - this list refer to the names of KeptnTaskDefinitions located in the - same namespace as the KeptnApp, or in the KLT namespace. + during the pre-deployment phase of the KeptnWorkload. The items + of this list refer to the names of KeptnTaskDefinitions located + in the same namespace as the KeptnApp, or in the Keptn namespace. items: type: string type: array @@ -585,9 +589,9 @@ spec: type: string uid: description: UID is a type that holds unique ID values, including - UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being - a type captures intent and helps make sure that UIDs and names - do not get conflated. + UUIDs. Because we don't ONLY use UUIDs, this is an alias to + string. Being a type captures intent and helps make sure that + UIDs and names do not get conflated. type: string required: - kind @@ -621,8 +625,8 @@ spec: type: string deploymentStatus: default: Pending - description: DeploymentStatus indicates the current status of the KeptnWorkloadInstance's - Deployment phase. + description: DeploymentStatus indicates the current status of the + KeptnWorkloadInstance's Deployment phase. type: string endTime: description: EndTime represents the time at which the deployment of @@ -633,16 +637,16 @@ spec: additionalProperties: additionalProperties: type: string - description: MapCarrier is a TextMapCarrier that uses a map held in - memory as a storage medium for propagated key-value pairs. + description: MapCarrier is a TextMapCarrier that uses a map held + in memory as a storage medium for propagated key-value pairs. type: object description: PhaseTraceIDs contains the trace IDs of the OpenTelemetry spans of each phase of the KeptnWorkloadInstance type: object postDeploymentEvaluationStatus: default: Pending - description: PostDeploymentEvaluationStatus indicates the current status - of the KeptnWorkloadInstance's PostDeploymentEvaluation phase. + description: PostDeploymentEvaluationStatus indicates the current + status of the KeptnWorkloadInstance's PostDeploymentEvaluation phase. type: string postDeploymentEvaluationTaskStatus: description: PostDeploymentEvaluationTaskStatus indicates the current @@ -650,7 +654,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -661,8 +665,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -672,16 +676,16 @@ spec: type: array postDeploymentStatus: default: Pending - description: PostDeploymentStatus indicates the current status of the - KeptnWorkloadInstance's PostDeployment phase. + description: PostDeploymentStatus indicates the current status of + the KeptnWorkloadInstance's PostDeployment phase. type: string postDeploymentTaskStatus: - description: PostDeploymentTaskStatus indicates the current state of - each postDeploymentTask of the KeptnWorkloadInstance. + description: PostDeploymentTaskStatus indicates the current state + of each postDeploymentTask of the KeptnWorkloadInstance. items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -692,8 +696,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -712,7 +716,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -723,8 +727,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -743,7 +747,7 @@ spec: items: properties: definitionName: - description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton + description: DefinitionName is the name of the EvaluationDefinition/TaskDefinition type: string endTime: description: EndTime represents the time at which the Item (Evaluation/Task) @@ -754,8 +758,8 @@ spec: description: Name is the name of the Evaluation/Task type: string startTime: - description: StartTime represents the time at which the Item (Evaluation/Task) - started. + description: StartTime represents the time at which the Item + (Evaluation/Task) started. format: date-time type: string status: @@ -764,8 +768,8 @@ spec: type: object type: array startTime: - description: StartTime represents the time at which the deployment of - the KeptnWorkloadInstance started. + description: StartTime represents the time at which the deployment + of the KeptnWorkloadInstance started. format: date-time type: string status: @@ -777,10 +781,4 @@ spec: served: true storage: true subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file + status: {} \ No newline at end of file diff --git a/klt-cert-manager/config/default/kustomization.yaml b/klt-cert-manager/config/default/kustomization.yaml index f815d203c7..6c4d1552c2 100644 --- a/klt-cert-manager/config/default/kustomization.yaml +++ b/klt-cert-manager/config/default/kustomization.yaml @@ -9,10 +9,12 @@ namespace: keptn-lifecycle-toolkit-system # namePrefix: certificate- # Labels to add to all resources and selectors. -# commonLabels: +# labels: # someName: someValue -bases: +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: - ../rbac - ../manager # [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix including the one in @@ -22,7 +24,7 @@ bases: # [PROMETHEUS] To enable prometheus monitor, uncomment all sections with 'PROMETHEUS'. # - ../prometheus -# patchesStrategicMerge: +# patches: # Protect the /metrics endpoint by putting it behind auth. # If you want your cert-manager to expose the /metrics # endpoint w/o any authn/z, please comment the following line. diff --git a/lifecycle-operator/apis/lifecycle/v1alpha1/zz_generated.deepcopy.go b/lifecycle-operator/apis/lifecycle/v1alpha1/zz_generated.deepcopy.go index 35d1501f72..19619665f3 100644 --- a/lifecycle-operator/apis/lifecycle/v1alpha1/zz_generated.deepcopy.go +++ b/lifecycle-operator/apis/lifecycle/v1alpha1/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated /* Copyright 2022. @@ -410,7 +409,8 @@ func (in *KeptnAppVersionStatus) DeepCopyInto(out *KeptnAppVersionStatus) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make(propagation.MapCarrier, len(*in)) for key, val := range *in { (*out)[key] = val @@ -1018,7 +1018,8 @@ func (in *KeptnWorkloadInstanceStatus) DeepCopyInto(out *KeptnWorkloadInstanceSt if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make(propagation.MapCarrier, len(*in)) for key, val := range *in { (*out)[key] = val diff --git a/lifecycle-operator/apis/lifecycle/v1alpha2/zz_generated.deepcopy.go b/lifecycle-operator/apis/lifecycle/v1alpha2/zz_generated.deepcopy.go index 3cb212387f..636d2e941a 100644 --- a/lifecycle-operator/apis/lifecycle/v1alpha2/zz_generated.deepcopy.go +++ b/lifecycle-operator/apis/lifecycle/v1alpha2/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated /* Copyright 2022. @@ -410,7 +409,8 @@ func (in *KeptnAppVersionStatus) DeepCopyInto(out *KeptnAppVersionStatus) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make(propagation.MapCarrier, len(*in)) for key, val := range *in { (*out)[key] = val @@ -1019,7 +1019,8 @@ func (in *KeptnWorkloadInstanceStatus) DeepCopyInto(out *KeptnWorkloadInstanceSt if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make(propagation.MapCarrier, len(*in)) for key, val := range *in { (*out)[key] = val diff --git a/lifecycle-operator/apis/lifecycle/v1alpha3/zz_generated.deepcopy.go b/lifecycle-operator/apis/lifecycle/v1alpha3/zz_generated.deepcopy.go index 7dd637e57a..71736eecb0 100644 --- a/lifecycle-operator/apis/lifecycle/v1alpha3/zz_generated.deepcopy.go +++ b/lifecycle-operator/apis/lifecycle/v1alpha3/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated /* Copyright 2022. @@ -468,7 +467,8 @@ func (in *KeptnAppVersionStatus) DeepCopyInto(out *KeptnAppVersionStatus) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make(propagation.MapCarrier, len(*in)) for key, val := range *in { (*out)[key] = val @@ -1123,7 +1123,8 @@ func (in *KeptnWorkloadInstanceStatus) DeepCopyInto(out *KeptnWorkloadInstanceSt if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make(propagation.MapCarrier, len(*in)) for key, val := range *in { (*out)[key] = val diff --git a/lifecycle-operator/apis/options/v1alpha1/zz_generated.deepcopy.go b/lifecycle-operator/apis/options/v1alpha1/zz_generated.deepcopy.go index 29dcf00dcd..5b647241a3 100644 --- a/lifecycle-operator/apis/options/v1alpha1/zz_generated.deepcopy.go +++ b/lifecycle-operator/apis/options/v1alpha1/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated /* Copyright 2022. diff --git a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnappcreationrequests.yaml b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnappcreationrequests.yaml index a6e123f194..0ef35c2108 100644 --- a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnappcreationrequests.yaml +++ b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnappcreationrequests.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnappcreationrequests.lifecycle.keptn.sh spec: group: lifecycle.keptn.sh diff --git a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnapps.yaml b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnapps.yaml index 7966ce83d0..b8de981dfd 100644 --- a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnapps.yaml +++ b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnapps.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnapps.lifecycle.keptn.sh spec: group: lifecycle.keptn.sh diff --git a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnappversions.yaml b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnappversions.yaml index ea7b31bd02..65c5a25590 100644 --- a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnappversions.yaml +++ b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnappversions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnappversions.lifecycle.keptn.sh spec: group: lifecycle.keptn.sh diff --git a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluationdefinitions.yaml b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluationdefinitions.yaml index 06980838fb..3f0b741d29 100644 --- a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluationdefinitions.yaml +++ b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluationdefinitions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnevaluationdefinitions.lifecycle.keptn.sh spec: group: lifecycle.keptn.sh diff --git a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluationproviders.yaml b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluationproviders.yaml index 0a416126b6..b62ec635b6 100644 --- a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluationproviders.yaml +++ b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluationproviders.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnevaluationproviders.lifecycle.keptn.sh spec: group: lifecycle.keptn.sh diff --git a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluations.yaml b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluations.yaml index ef6c4fd5da..bcd060e4b7 100644 --- a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluations.yaml +++ b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnevaluations.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnevaluations.lifecycle.keptn.sh spec: group: lifecycle.keptn.sh diff --git a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptntaskdefinitions.yaml b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptntaskdefinitions.yaml index ed15b5a800..19173dd919 100644 --- a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptntaskdefinitions.yaml +++ b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptntaskdefinitions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptntaskdefinitions.lifecycle.keptn.sh spec: group: lifecycle.keptn.sh diff --git a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptntasks.yaml b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptntasks.yaml index b5ca938da2..d8f0dd6ab6 100644 --- a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptntasks.yaml +++ b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptntasks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptntasks.lifecycle.keptn.sh spec: group: lifecycle.keptn.sh diff --git a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnworkloadinstances.yaml b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnworkloadinstances.yaml index deb4a12f88..5663d2808c 100644 --- a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnworkloadinstances.yaml +++ b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnworkloadinstances.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnworkloadinstances.lifecycle.keptn.sh spec: group: lifecycle.keptn.sh diff --git a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnworkloads.yaml b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnworkloads.yaml index e243dd8c2e..c7096100ac 100644 --- a/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnworkloads.yaml +++ b/lifecycle-operator/config/crd/bases/lifecycle.keptn.sh_keptnworkloads.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnworkloads.lifecycle.keptn.sh spec: group: lifecycle.keptn.sh diff --git a/lifecycle-operator/config/crd/bases/options.keptn.sh_keptnconfigs.yaml b/lifecycle-operator/config/crd/bases/options.keptn.sh_keptnconfigs.yaml index 778e639bcb..87e9004ed1 100644 --- a/lifecycle-operator/config/crd/bases/options.keptn.sh_keptnconfigs.yaml +++ b/lifecycle-operator/config/crd/bases/options.keptn.sh_keptnconfigs.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnconfigs.options.keptn.sh spec: group: options.keptn.sh diff --git a/lifecycle-operator/config/crd/kustomization.yaml b/lifecycle-operator/config/crd/kustomization.yaml index ebcbe72fa3..4deef5a372 100644 --- a/lifecycle-operator/config/crd/kustomization.yaml +++ b/lifecycle-operator/config/crd/kustomization.yaml @@ -14,32 +14,30 @@ resources: - bases/options.keptn.sh_keptnconfigs.yaml - bases/lifecycle.keptn.sh_keptnappcreationrequests.yaml # +kubebuilder:scaffold:crdkustomizeresource - -patchesStrategicMerge: - # [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix. - # patches here are for enabling the conversion webhook for each CRD - # - patches/webhook_in_lifecycle_keptntaskdefinitions.yaml - # - patches/webhook_in_lifecycle_keptntasks.yaml - - patches/webhook_in_lifecycle_keptnapps.yaml - # - patches/webhook_in_lifecycle_keptnworkloads.yaml - - patches/webhook_in_lifecycle_keptnworkloadinstances.yaml - - patches/webhook_in_lifecycle_keptnappversions.yaml - # - patches/webhook_in_lifecycle_keptnevaluationdefinitions.yaml - - patches/webhook_in_lifecycle_keptnevaluationproviders.yaml - # - patches/webhook_in_lifecycle_keptnevaluations.yaml - # - patches/webhook_in_options_keptnconfigs.yaml - # - patches/webhook_in_lifecycle_keptnapps.yaml - # - patches/webhook_in_lifecycle_keptnappversions.yaml - # - patches/webhook_in_lifecycle_keptnworkloadinstances.yaml - # - patches/webhook_in_lifecycle_keptnevaluationproviders.yaml - # - patches/webhook_in_keptnappcreationrequests.yaml - # +kubebuilder:scaffold:crdkustomizewebhookpatch - # the following config is for teaching kustomize how to do kustomization for CRDs. configurations: - kustomizeconfig.yaml -commonLabels: - crdGroup: lifecycle.keptn.sh - app.kubernetes.io/part-of: keptn-lifecycle-toolkit - keptn.sh/inject-cert: "true" +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +labels: + - includeSelectors: true + pairs: + app.kubernetes.io/part-of: keptn-lifecycle-toolkit + crdGroup: lifecycle.keptn.sh + keptn.sh/inject-cert: "true" +patches: + - path: patches/webhook_in_lifecycle_keptnapps.yaml + - path: patches/webhook_in_lifecycle_keptnworkloadinstances.yaml + - path: patches/webhook_in_lifecycle_keptnappversions.yaml + - path: patches/webhook_in_lifecycle_keptnevaluationproviders.yaml +# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix. +# patches here are for enabling the conversion webhook for each CRD +# - path: patches/webhook_in_lifecycle_keptntaskdefinitions.yaml +# - path: patches/webhook_in_lifecycle_keptntasks.yaml +# - path: patches/webhook_in_lifecycle_keptnworkloads.yaml +# - path: patches/webhook_in_lifecycle_keptnevaluationdefinitions.yaml +# - path: patches/webhook_in_lifecycle_keptnevaluations.yaml +# - path: patches/webhook_in_options_keptnconfigs.yaml +# - path: patches/webhook_in_keptnappcreationrequests.yaml +# +kubebuilder:scaffold:crdkustomizewebhookpatch diff --git a/lifecycle-operator/config/default/kustomization.yaml b/lifecycle-operator/config/default/kustomization.yaml index 4480c50f60..c349a400b4 100644 --- a/lifecycle-operator/config/default/kustomization.yaml +++ b/lifecycle-operator/config/default/kustomization.yaml @@ -1,11 +1,12 @@ # Adds namespace to all resources. namespace: keptn-lifecycle-toolkit-system -bases: +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: - ../crd - ../rbac - ../manager - ../webhook - -patchesStrategicMerge: - - webhooknamespaces_patch.yaml +patches: + - path: webhooknamespaces_patch.yaml diff --git a/lifecycle-operator/go.mod b/lifecycle-operator/go.mod index 6bf348c85b..2ed097ce04 100644 --- a/lifecycle-operator/go.mod +++ b/lifecycle-operator/go.mod @@ -9,22 +9,22 @@ require ( github.com/cloudevents/sdk-go/v2 v2.14.0 github.com/go-logr/logr v1.2.4 github.com/kelseyhightower/envconfig v1.4.0 - github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230913063529-469578edabb0 + github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230915062319-b2853f9ecdfb github.com/magiconair/properties v1.8.7 github.com/onsi/ginkgo/v2 v2.12.0 github.com/onsi/gomega v1.27.10 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.16.0 github.com/stretchr/testify v1.8.4 - go.opentelemetry.io/otel v1.17.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.17.0 - go.opentelemetry.io/otel/exporters/prometheus v0.40.0 - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.17.0 - go.opentelemetry.io/otel/metric v1.17.0 - go.opentelemetry.io/otel/sdk v1.17.0 - go.opentelemetry.io/otel/sdk/metric v0.40.0 - go.opentelemetry.io/otel/trace v1.17.0 - google.golang.org/grpc v1.58.0 + go.opentelemetry.io/otel v1.18.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.18.0 + go.opentelemetry.io/otel/exporters/prometheus v0.41.0 + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.18.0 + go.opentelemetry.io/otel/metric v1.18.0 + go.opentelemetry.io/otel/sdk v1.18.0 + go.opentelemetry.io/otel/sdk/metric v0.41.0 + go.opentelemetry.io/otel/trace v1.18.0 + google.golang.org/grpc v1.58.1 k8s.io/api v0.26.9 k8s.io/apiextensions-apiserver v0.26.9 k8s.io/apimachinery v0.26.9 @@ -82,7 +82,7 @@ require ( github.com/prometheus/procfs v0.10.1 // indirect github.com/spf13/afero v1.9.5 // indirect github.com/spf13/pflag v1.0.5 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.17.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.18.0 // indirect go.opentelemetry.io/proto/otlp v1.0.0 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.8.0 // indirect diff --git a/lifecycle-operator/go.sum b/lifecycle-operator/go.sum index c5642e4680..54634e6708 100644 --- a/lifecycle-operator/go.sum +++ b/lifecycle-operator/go.sum @@ -202,8 +202,8 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= -github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230913063529-469578edabb0 h1:o/s55/xwgZe+AgCbEReZLrDC7dHubsRk7j7RXXGSpQc= -github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230913063529-469578edabb0/go.mod h1:+Kion1lq0BnlGJOfO1HQeApnTD2huIIiIrNzFMwWwjs= +github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230915062319-b2853f9ecdfb h1:95+wDGbz28EyzuWU0x6iCB1ezCJG9kBTUyq8sSa8cMk= +github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230915062319-b2853f9ecdfb/go.mod h1:p2jpDC9PY8IGBQZ69KibXR+5YnRlWlej4mE75EGGnTs= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= @@ -279,24 +279,24 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opentelemetry.io/otel v1.17.0 h1:MW+phZ6WZ5/uk2nd93ANk/6yJ+dVrvNWUjGhnnFU5jM= -go.opentelemetry.io/otel v1.17.0/go.mod h1:I2vmBGtFaODIVMBSTPVDlJSzBDNf93k60E6Ft0nyjo0= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.17.0 h1:U5GYackKpVKlPrd/5gKMlrTlP2dCESAAFU682VCpieY= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.17.0/go.mod h1:aFsJfCEnLzEu9vRRAcUiB/cpRTbVsNdF3OHSPpdjxZQ= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.17.0 h1:iGeIsSYwpYSvh5UGzWrJfTDJvPjrXtxl3GUppj6IXQU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.17.0/go.mod h1:1j3H3G1SBYpZFti6OI4P0uRQCW20MXkG5v4UWXppLLE= -go.opentelemetry.io/otel/exporters/prometheus v0.40.0 h1:9h6lCssr1j5aYVvWT6oc+ERB6R034zmsHjBRLyxrAR8= -go.opentelemetry.io/otel/exporters/prometheus v0.40.0/go.mod h1:5USWZ0ovyQB5CIM3IO3bGRSoDPMXiT3t+15gu8Zo9HQ= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.17.0 h1:Ut6hgtYcASHwCzRHkXEtSsM251cXJPW+Z9DyLwEn6iI= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.17.0/go.mod h1:TYeE+8d5CjrgBa0ZuRaDeMpIC1xZ7atg4g+nInjuSjc= -go.opentelemetry.io/otel/metric v1.17.0 h1:iG6LGVz5Gh+IuO0jmgvpTB6YVrCGngi8QGm+pMd8Pdc= -go.opentelemetry.io/otel/metric v1.17.0/go.mod h1:h4skoxdZI17AxwITdmdZjjYJQH5nzijUUjm+wtPph5o= -go.opentelemetry.io/otel/sdk v1.17.0 h1:FLN2X66Ke/k5Sg3V623Q7h7nt3cHXaW1FOvKKrW0IpE= -go.opentelemetry.io/otel/sdk v1.17.0/go.mod h1:U87sE0f5vQB7hwUoW98pW5Rz4ZDuCFBZFNUBlSgmDFQ= -go.opentelemetry.io/otel/sdk/metric v0.40.0 h1:qOM29YaGcxipWjL5FzpyZDpCYrDREvX0mVlmXdOjCHU= -go.opentelemetry.io/otel/sdk/metric v0.40.0/go.mod h1:dWxHtdzdJvg+ciJUKLTKwrMe5P6Dv3FyDbh8UkfgkVs= -go.opentelemetry.io/otel/trace v1.17.0 h1:/SWhSRHmDPOImIAetP1QAeMnZYiQXrTy4fMMYOdSKWQ= -go.opentelemetry.io/otel/trace v1.17.0/go.mod h1:I/4vKTgFclIsXRVucpH25X0mpFSczM7aHeaz0ZBLWjY= +go.opentelemetry.io/otel v1.18.0 h1:TgVozPGZ01nHyDZxK5WGPFB9QexeTMXEH7+tIClWfzs= +go.opentelemetry.io/otel v1.18.0/go.mod h1:9lWqYO0Db579XzVuCKFNPDl4s73Voa+zEck3wHaAYQI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.18.0 h1:IAtl+7gua134xcV3NieDhJHjjOVeJhXAnYf/0hswjUY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.18.0/go.mod h1:w+pXobnBzh95MNIkeIuAKcHe/Uu/CX2PKIvBP6ipKRA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.18.0 h1:yE32ay7mJG2leczfREEhoW3VfSZIvHaB+gvVo1o8DQ8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.18.0/go.mod h1:G17FHPDLt74bCI7tJ4CMitEk4BXTYG4FW6XUpkPBXa4= +go.opentelemetry.io/otel/exporters/prometheus v0.41.0 h1:A3/bhjP5SmELy8dcpK+uttHeh9Qrh+YnS16/VzrztRQ= +go.opentelemetry.io/otel/exporters/prometheus v0.41.0/go.mod h1:mKuXEMi9suyyNJQ99SZCO0mpWGFe0MIALtjd3r6uo7Q= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.18.0 h1:hSWWvDjXHVLq9DkmB+77fl8v7+t+yYiS+eNkiplDK54= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.18.0/go.mod h1:zG7KQql1WjZCaUJd+L/ReSYx4bjbYJxg5ws9ws+mYes= +go.opentelemetry.io/otel/metric v1.18.0 h1:JwVzw94UYmbx3ej++CwLUQZxEODDj/pOuTCvzhtRrSQ= +go.opentelemetry.io/otel/metric v1.18.0/go.mod h1:nNSpsVDjWGfb7chbRLUNW+PBNdcSTHD4Uu5pfFMOI0k= +go.opentelemetry.io/otel/sdk v1.18.0 h1:e3bAB0wB3MljH38sHzpV/qWrOTCFrdZF2ct9F8rBkcY= +go.opentelemetry.io/otel/sdk v1.18.0/go.mod h1:1RCygWV7plY2KmdskZEDDBs4tJeHG92MdHZIluiYs/M= +go.opentelemetry.io/otel/sdk/metric v0.41.0 h1:c3sAt9/pQ5fSIUfl0gPtClV3HhE18DCVzByD33R/zsk= +go.opentelemetry.io/otel/sdk/metric v0.41.0/go.mod h1:PmOmSt+iOklKtIg5O4Vz9H/ttcRFSNTgii+E1KGyn1w= +go.opentelemetry.io/otel/trace v1.18.0 h1:NY+czwbHbmndxojTEKiSMHkG2ClNH2PwmcHrdo0JY10= +go.opentelemetry.io/otel/trace v1.18.0/go.mod h1:T2+SGJGuYZY3bjj5rgh/hN7KIrlpWC5nS8Mjvzckz+0= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= @@ -586,8 +586,8 @@ google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA5 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.58.0 h1:32JY8YpPMSR45K+c3o6b8VL73V+rR8k+DeMIr4vRH8o= -google.golang.org/grpc v1.58.0/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.58.1 h1:OL+Vz23DTtrrldqHK49FUOPHyY75rvFqJfXC84NYW58= +google.golang.org/grpc v1.58.1/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/metrics-operator/api/v1alpha1/zz_generated.deepcopy.go b/metrics-operator/api/v1alpha1/zz_generated.deepcopy.go index 4474a50e0d..56276e7b2d 100644 --- a/metrics-operator/api/v1alpha1/zz_generated.deepcopy.go +++ b/metrics-operator/api/v1alpha1/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated /* Copyright 2023. diff --git a/metrics-operator/api/v1alpha2/zz_generated.deepcopy.go b/metrics-operator/api/v1alpha2/zz_generated.deepcopy.go index c160923088..7f4ad2f629 100644 --- a/metrics-operator/api/v1alpha2/zz_generated.deepcopy.go +++ b/metrics-operator/api/v1alpha2/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated /* Copyright 2023. diff --git a/metrics-operator/api/v1alpha3/common.go b/metrics-operator/api/v1alpha3/common.go index 149c8f4d3c..fe4a459b51 100644 --- a/metrics-operator/api/v1alpha3/common.go +++ b/metrics-operator/api/v1alpha3/common.go @@ -6,3 +6,15 @@ type ObjectReference struct { // Namespace defines the namespace of the referenced object Namespace string `json:"namespace,omitempty"` } + +func (o *ObjectReference) IsNamespaceSet() bool { + return o.Namespace != "" +} + +func (o *ObjectReference) GetNamespace(defaultNamespace string) string { + if o.IsNamespaceSet() { + return o.Namespace + } + + return defaultNamespace +} diff --git a/metrics-operator/api/v1alpha3/common_test.go b/metrics-operator/api/v1alpha3/common_test.go new file mode 100644 index 0000000000..ef2798a0ca --- /dev/null +++ b/metrics-operator/api/v1alpha3/common_test.go @@ -0,0 +1,27 @@ +package v1alpha3 + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestObjectReference_IsNamespaceSet(t *testing.T) { + o := ObjectReference{} + + require.False(t, o.IsNamespaceSet()) + + o.Namespace = "ns" + + require.True(t, o.IsNamespaceSet()) +} + +func TestObjectReference_GetNamespace(t *testing.T) { + o := ObjectReference{} + + require.Equal(t, "default", o.GetNamespace("default")) + + o.Namespace = "ns" + + require.Equal(t, "ns", o.GetNamespace("default")) +} diff --git a/metrics-operator/api/v1alpha3/zz_generated.deepcopy.go b/metrics-operator/api/v1alpha3/zz_generated.deepcopy.go index 6513e3b22c..0fbae59399 100644 --- a/metrics-operator/api/v1alpha3/zz_generated.deepcopy.go +++ b/metrics-operator/api/v1alpha3/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated /* Copyright 2023. diff --git a/metrics-operator/config/crd/bases/metrics.keptn.sh_analyses.yaml b/metrics-operator/config/crd/bases/metrics.keptn.sh_analyses.yaml index 2999211b72..5e8389413f 100644 --- a/metrics-operator/config/crd/bases/metrics.keptn.sh_analyses.yaml +++ b/metrics-operator/config/crd/bases/metrics.keptn.sh_analyses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: analyses.metrics.keptn.sh spec: group: metrics.keptn.sh diff --git a/metrics-operator/config/crd/bases/metrics.keptn.sh_analysisdefinitions.yaml b/metrics-operator/config/crd/bases/metrics.keptn.sh_analysisdefinitions.yaml index e077f6d01d..6e68a094e9 100644 --- a/metrics-operator/config/crd/bases/metrics.keptn.sh_analysisdefinitions.yaml +++ b/metrics-operator/config/crd/bases/metrics.keptn.sh_analysisdefinitions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: analysisdefinitions.metrics.keptn.sh spec: group: metrics.keptn.sh diff --git a/metrics-operator/config/crd/bases/metrics.keptn.sh_analysisvaluetemplates.yaml b/metrics-operator/config/crd/bases/metrics.keptn.sh_analysisvaluetemplates.yaml index 01288641ae..2e9cb04786 100644 --- a/metrics-operator/config/crd/bases/metrics.keptn.sh_analysisvaluetemplates.yaml +++ b/metrics-operator/config/crd/bases/metrics.keptn.sh_analysisvaluetemplates.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: analysisvaluetemplates.metrics.keptn.sh spec: group: metrics.keptn.sh diff --git a/metrics-operator/config/crd/bases/metrics.keptn.sh_keptnmetrics.yaml b/metrics-operator/config/crd/bases/metrics.keptn.sh_keptnmetrics.yaml index 80af18b0c3..e6941937ef 100644 --- a/metrics-operator/config/crd/bases/metrics.keptn.sh_keptnmetrics.yaml +++ b/metrics-operator/config/crd/bases/metrics.keptn.sh_keptnmetrics.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnmetrics.metrics.keptn.sh spec: group: metrics.keptn.sh diff --git a/metrics-operator/config/crd/bases/metrics.keptn.sh_keptnmetricsproviders.yaml b/metrics-operator/config/crd/bases/metrics.keptn.sh_keptnmetricsproviders.yaml index 886d2a7da9..7cb6115e29 100644 --- a/metrics-operator/config/crd/bases/metrics.keptn.sh_keptnmetricsproviders.yaml +++ b/metrics-operator/config/crd/bases/metrics.keptn.sh_keptnmetricsproviders.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.1 + controller-gen.kubebuilder.io/version: v0.13.0 name: keptnmetricsproviders.metrics.keptn.sh spec: group: metrics.keptn.sh diff --git a/metrics-operator/config/crd/kustomization.yaml b/metrics-operator/config/crd/kustomization.yaml index f0acf67e5a..f30808237a 100644 --- a/metrics-operator/config/crd/kustomization.yaml +++ b/metrics-operator/config/crd/kustomization.yaml @@ -9,30 +9,32 @@ resources: - bases/metrics.keptn.sh_analysisvaluetemplates.yaml # +kubebuilder:scaffold:crdkustomizeresource -patchesStrategicMerge: - # [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix. - # patches here are for enabling the conversion webhook for each CRD - # - patches/webhook_in_keptnmetricsproviders.yaml - - patches/webhook_in_keptnmetrics.yaml - # - patches/webhook_in_analyses.yaml - # - patches/webhook_in_analysisdefinitions.yaml - # - patches/webhook_in_analysisvaluetemplates.yaml -# +kubebuilder:scaffold:crdkustomizewebhookpatch - -# [CERTMANAGER] To enable cert-manager, uncomment all the sections with [CERTMANAGER] prefix. -# patches here are for enabling the CA injection for each CRD -# - patches/cainjection_in_keptnmetricsproviders.yaml -# - patches/cainjection_in_keptnmetrics.yaml -# - patches/cainjection_in_analyses.yaml -# - patches/cainjection_in_analysisdefinitions.yaml -# - patches/cainjection_in_analysisvaluetemplates.yaml -# +kubebuilder:scaffold:crdkustomizecainjectionpatch - # the following config is for teaching kustomize how to do kustomization for CRDs. configurations: - kustomizeconfig.yaml -commonLabels: - crdGroup: metrics.keptn.sh - app.kubernetes.io/part-of: keptn-lifecycle-toolkit - keptn.sh/inject-cert: "true" +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +labels: + - includeSelectors: true + Pairs: + app.kubernetes.io/part-of: keptn-lifecycle-toolkit + crdGroup: metrics.keptn.sh + keptn.sh/inject-cert: "true" +patches: + - path: patches/webhook_in_keptnmetrics.yaml +# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix. +# patches here are for enabling the conversion webhook for each CRD +# - path: patches/webhook_in_keptnmetricsproviders.yaml +# - path: patches/webhook_in_analyses.yaml +# - path: patches/webhook_in_analysisdefinitions.yaml +# - path: patches/webhook_in_analysisvaluetemplates.yaml +# +kubebuilder:scaffold:crdkustomizewebhookpatch +# [CERTMANAGER] To enable cert-manager, uncomment all the sections with [CERTMANAGER] prefix. +# patches here are for enabling the CA injection for each CRD +# - path: patches/cainjection_in_keptnmetricsproviders.yaml +# - path: patches/cainjection_in_keptnmetrics.yaml +# - path: patches/cainjection_in_analyses.yaml +# - path: patches/cainjection_in_analysisdefinitions.yaml +# - path: patches/cainjection_in_analysisvaluetemplates.yaml +# +kubebuilder:scaffold:crdkustomizecainjectionpatch diff --git a/metrics-operator/config/default/kustomization.yaml b/metrics-operator/config/default/kustomization.yaml index 3db954039d..fd3c769baa 100644 --- a/metrics-operator/config/default/kustomization.yaml +++ b/metrics-operator/config/default/kustomization.yaml @@ -12,20 +12,22 @@ namespace: keptn-lifecycle-toolkit-system # commonLabels: # someName: someValue -bases: +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: - ../crd - ../rbac - ../manager - ../metrics - # [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix including the one in - # crd/kustomization.yaml - ../webhook +# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix including the one in +# crd/kustomization.yaml # [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER'. 'WEBHOOK' components are required. # - ../certmanager # [PROMETHEUS] To enable prometheus monitor, uncomment all sections with 'PROMETHEUS'. # - ../prometheus -patchesStrategicMerge: +patches: # Protect the /metrics endpoint by putting it behind auth. # If you want your controller to expose the /metrics # endpoint w/o any authn/z, please comment the following line. @@ -44,7 +46,7 @@ patchesStrategicMerge: # - webhookcainjection_patch.yaml # the following config is for teaching kustomize how to do var substitution -vars: +replacements: # [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER' prefix. # - name: CERTIFICATE_NAMESPACE # namespace of the certificate CR # objref: diff --git a/metrics-operator/controllers/analysis/controller.go b/metrics-operator/controllers/analysis/controller.go index 0b7357db48..951906120c 100644 --- a/metrics-operator/controllers/analysis/controller.go +++ b/metrics-operator/controllers/analysis/controller.go @@ -41,7 +41,6 @@ type AnalysisReconciler struct { Scheme *runtime.Scheme Log logr.Logger MaxWorkers int //maybe 2 or 4 as def - Namespace string NewWorkersPoolFactory common.IAnalysisEvaluator } @@ -73,14 +72,12 @@ func (a *AnalysisReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c } //find AnalysisDefinition to have the collection of Objectives + analysisDefNamespace := analysis.Spec.AnalysisDefinition.GetNamespace(analysis.Namespace) analysisDef := &metricsapi.AnalysisDefinition{} - if analysis.Spec.AnalysisDefinition.Namespace == "" { - analysis.Spec.AnalysisDefinition.Namespace = a.Namespace - } err := a.Client.Get(ctx, types.NamespacedName{ Name: analysis.Spec.AnalysisDefinition.Name, - Namespace: analysis.Spec.AnalysisDefinition.Namespace}, + Namespace: analysisDefNamespace}, analysisDef, ) @@ -89,7 +86,7 @@ func (a *AnalysisReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c a.Log.Info( fmt.Sprintf("AnalysisDefinition '%s' in namespace '%s' not found, requeue", analysis.Spec.AnalysisDefinition.Name, - analysis.Spec.AnalysisDefinition.Namespace), + analysisDefNamespace), ) return ctrl.Result{Requeue: true, RequeueAfter: 10 * time.Second}, nil } @@ -107,7 +104,7 @@ func (a *AnalysisReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c } //create multiple workers handling the Objectives - childCtx, wp := a.NewWorkersPoolFactory(ctx, analysis, todo, a.MaxWorkers, a.Client, a.Log, a.Namespace) + childCtx, wp := a.NewWorkersPoolFactory(ctx, analysis, todo, a.MaxWorkers, a.Client, a.Log, analysisDefNamespace) res, err := wp.DispatchAndCollect(childCtx) if err != nil { @@ -121,6 +118,12 @@ func (a *AnalysisReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c err = a.evaluateObjectives(ctx, res, analysisDef, analysis) + // if evaluation was successful remove the stored values + if err == nil { + analysis.Status.StoredValues = nil + err = a.updateStatus(ctx, analysis) + } + return ctrl.Result{}, err } diff --git a/metrics-operator/controllers/analysis/controller_test.go b/metrics-operator/controllers/analysis/controller_test.go index be7d072354..708c4e32aa 100644 --- a/metrics-operator/controllers/analysis/controller_test.go +++ b/metrics-operator/controllers/analysis/controller_test.go @@ -25,6 +25,54 @@ func TestAnalysisReconciler_Reconcile_BasicControlLoop(t *testing.T) { analysis, analysisDef, template, _ := getTestCRDs() + analysis2 := metricsapi.Analysis{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-analysis", + Namespace: "default", + }, + Spec: metricsapi.AnalysisSpec{ + Timeframe: metricsapi.Timeframe{ + From: metav1.Time{ + Time: time.Now(), + }, + To: metav1.Time{ + Time: time.Now(), + }, + }, + Args: map[string]string{ + "good": "good", + "dot": ".", + }, + AnalysisDefinition: metricsapi.ObjectReference{ + Name: "my-analysis-def", + Namespace: "default2", + }, + }, + } + + analysisDef2 := metricsapi.AnalysisDefinition{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-analysis-def", + Namespace: "default2", + }, + Spec: metricsapi.AnalysisDefinitionSpec{ + Objectives: []metricsapi.Objective{ + { + AnalysisValueTemplateRef: metricsapi.ObjectReference{ + Name: "my-template", + Namespace: "default", + }, + Weight: 1, + KeyObjective: false, + }, + }, + TotalScore: metricsapi.TotalScore{ + PassPercentage: 0, + WarningPercentage: 0, + }, + }, + } + tests := []struct { name string client client.Client @@ -55,6 +103,13 @@ func TestAnalysisReconciler_Reconcile_BasicControlLoop(t *testing.T) { wantErr: false, status: &metricsapi.AnalysisStatus{Raw: "{\"objectiveResults\":null,\"totalScore\":0,\"maximumScore\":0,\"pass\":true,\"warning\":false}", Pass: true}, res: metricstypes.AnalysisResult{Pass: true}, + }, { + name: "succeeded - analysis in different namespace, status updated", + client: fake2.NewClient(&analysis2, &analysisDef2, &template), + want: controllerruntime.Result{}, + wantErr: false, + status: &metricsapi.AnalysisStatus{Raw: "{\"objectiveResults\":null,\"totalScore\":0,\"maximumScore\":0,\"pass\":true,\"warning\":false}", Pass: true}, + res: metricstypes.AnalysisResult{Pass: true}, }, } @@ -101,6 +156,61 @@ func TestAnalysisReconciler_Reconcile_BasicControlLoop(t *testing.T) { } } +func TestAnalysisReconciler_ExistingAnalysisStatusIsFlushedWhenEvaluationFinishes(t *testing.T) { + analysis, analysisDef, template, _ := getTestCRDs() + + analysis.Status = metricsapi.AnalysisStatus{ + StoredValues: map[string]metricsapi.ProviderResult{ + "default": { + Objective: metricsapi.ObjectReference{ + Name: "my-analysis-def", + Namespace: "default", + }, + Value: "1", + }, + }, + } + + mockFactory := func(ctx context.Context, analysisMoqParam *metricsapi.Analysis, obj []metricsapi.Objective, numWorkers int, c client.Client, log logr.Logger, namespace string) (context.Context, IAnalysisPool) { + mymock := fake.IAnalysisPoolMock{ + DispatchAndCollectFunc: func(ctx context.Context) (map[string]metricsapi.ProviderResult, error) { + return map[string]metricsapi.ProviderResult{}, nil + }, + } + return ctx, &mymock + } + + fclient := fake2.NewClient(&analysis, &analysisDef, &template) + a := &AnalysisReconciler{ + Client: fclient, + Scheme: fclient.Scheme(), + Log: testr.New(t), + MaxWorkers: 2, + NewWorkersPoolFactory: mockFactory, + IAnalysisEvaluator: &fakeEvaluator.IAnalysisEvaluatorMock{ + EvaluateFunc: func(values map[string]metricsapi.ProviderResult, ad *metricsapi.AnalysisDefinition) metricstypes.AnalysisResult { + return metricstypes.AnalysisResult{Pass: true} + }}, + } + + req := controllerruntime.Request{ + NamespacedName: types.NamespacedName{Namespace: "default", Name: "my-analysis"}, + } + + status := &metricsapi.AnalysisStatus{Raw: "{\"objectiveResults\":null,\"totalScore\":0,\"maximumScore\":0,\"pass\":true,\"warning\":false}", Pass: true} + + got, err := a.Reconcile(context.TODO(), req) + + require.Nil(t, err) + require.Equal(t, controllerruntime.Result{}, got) + resAnalysis := metricsapi.Analysis{} + err = fclient.Get(context.TODO(), req.NamespacedName, &resAnalysis) + require.Nil(t, err) + require.Nil(t, resAnalysis.Status.StoredValues) + require.Equal(t, *status, resAnalysis.Status) + +} + func getTestCRDs() (metricsapi.Analysis, metricsapi.AnalysisDefinition, metricsapi.AnalysisValueTemplate, metricsapi.KeptnMetricsProvider) { analysis := metricsapi.Analysis{ ObjectMeta: metav1.ObjectMeta{ diff --git a/metrics-operator/controllers/analysis/provider_selector.go b/metrics-operator/controllers/analysis/provider_selector.go index 005d671714..2d38a70d89 100644 --- a/metrics-operator/controllers/analysis/provider_selector.go +++ b/metrics-operator/controllers/analysis/provider_selector.go @@ -53,42 +53,36 @@ func (ps ProvidersPool) DispatchToProviders(ctx context.Context, id int) { default: ps.log.Info("worker", "id:", id, "started job:", j.AnalysisValueTemplateRef.Name) templ := &metricsapi.AnalysisValueTemplate{} - if j.AnalysisValueTemplateRef.Namespace == "" { - j.AnalysisValueTemplateRef.Namespace = ps.Namespace - } err := ps.Client.Get(ctx, types.NamespacedName{ Name: j.AnalysisValueTemplateRef.Name, - Namespace: j.AnalysisValueTemplateRef.Namespace}, + Namespace: j.AnalysisValueTemplateRef.GetNamespace(ps.Namespace)}, templ, ) if err != nil { - ps.log.Error(err, "Failed to get the correct Provider") + ps.log.Error(err, "Failed to get AnalysisValueTemplate") ps.results <- metricsapi.ProviderResult{Objective: j.AnalysisValueTemplateRef, ErrMsg: err.Error()} continue } providerRef := &metricsapi.KeptnMetricsProvider{} - if templ.Spec.Provider.Namespace == "" { - templ.Spec.Provider.Namespace = ps.Namespace - } err = ps.Client.Get(ctx, types.NamespacedName{ Name: templ.Spec.Provider.Name, - Namespace: templ.Spec.Provider.Namespace}, + Namespace: templ.Spec.Provider.GetNamespace(ps.Namespace)}, providerRef, ) if err != nil { - ps.log.Error(err, "Failed to get Provider") + ps.log.Error(err, "Failed to get KeptnMetricsProvider") ps.results <- metricsapi.ProviderResult{Objective: j.AnalysisValueTemplateRef, ErrMsg: err.Error()} continue } templatedQuery, err := generateQuery(templ.Spec.Query, ps.Analysis.Spec.Args) if err != nil { - ps.log.Error(err, "Failed to substitute args in templ") + ps.log.Error(err, "Failed to substitute args in AnalysisValueTemplate") ps.results <- metricsapi.ProviderResult{Objective: j.AnalysisValueTemplateRef, ErrMsg: err.Error()} continue } diff --git a/metrics-operator/controllers/analysis/provider_selector_test.go b/metrics-operator/controllers/analysis/provider_selector_test.go index 9716cef663..1b41e1997f 100644 --- a/metrics-operator/controllers/analysis/provider_selector_test.go +++ b/metrics-operator/controllers/analysis/provider_selector_test.go @@ -11,6 +11,7 @@ import ( metricstypes "github.com/keptn/lifecycle-toolkit/metrics-operator/controllers/common/analysis/types" fake2 "github.com/keptn/lifecycle-toolkit/metrics-operator/controllers/common/fake" "github.com/stretchr/testify/require" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -75,28 +76,109 @@ func TestProvidersPool(t *testing.T) { analysis, analysisDef, template, provider := getTestCRDs() + provider2 := metricsapi.KeptnMetricsProvider{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-provider", + Namespace: "default2", + }, + Spec: metricsapi.KeptnMetricsProviderSpec{ + Type: "prometheus", + TargetServer: "localhost:2000", + }, + } + + template2 := metricsapi.AnalysisValueTemplate{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-template", + Namespace: "default", + }, + Spec: metricsapi.AnalysisValueTemplateSpec{ + Provider: metricsapi.ObjectReference{ + Name: "my-provider", + }, + Query: "this is a {{.good}} query{{.dot}}", + }, + } + + analysisDef2 := metricsapi.AnalysisDefinition{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-analysis-def", + Namespace: "default", + }, + Spec: metricsapi.AnalysisDefinitionSpec{ + Objectives: []metricsapi.Objective{ + { + AnalysisValueTemplateRef: metricsapi.ObjectReference{ + Name: "my-template", + }, + Weight: 1, + KeyObjective: false, + }, + }, + TotalScore: metricsapi.TotalScore{ + PassPercentage: 0, + WarningPercentage: 0, + }, + }, + } + + template3 := metricsapi.AnalysisValueTemplate{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-template", + Namespace: "default2", + }, + Spec: metricsapi.AnalysisValueTemplateSpec{ + Provider: metricsapi.ObjectReference{ + Name: "my-provider", + Namespace: "default", + }, + Query: "this is a {{.good}} query{{.dot}}", + }, + } + provider.Spec.Type = "mock-provider" + provider2.Spec.Type = "mock-provider" testCases := []struct { name string expectedErr string mockClient client.Client + analysisDef metricsapi.AnalysisDefinition providerResult *metricstypes.ProviderRequest }{ { name: "MissingTemplate", expectedErr: "analysisvaluetemplates.metrics.keptn.sh \"my-template\" not found", + analysisDef: analysisDef, mockClient: fake2.NewClient(&analysis, &analysisDef), }, { name: "MissingProvider", expectedErr: "keptnmetricsproviders.metrics.keptn.sh \"my-provider\" not found", + analysisDef: analysisDef, mockClient: fake2.NewClient(&analysis, &analysisDef, &template), }, { - name: "Success", - mockClient: fake2.NewClient(&analysis, &analysisDef, &template, &provider), + name: "Success", + mockClient: fake2.NewClient(&analysis, &analysisDef, &template, &provider), + analysisDef: analysisDef, + providerResult: &metricstypes.ProviderRequest{ + Query: "this is a good query.", + }, + }, + { + name: "Success - provider in same namespace", + mockClient: fake2.NewClient(&analysis, &analysisDef, &template2, &provider2), + analysisDef: analysisDef, + providerResult: &metricstypes.ProviderRequest{ + Query: "this is a good query.", + }, + }, + { + name: "Success - analysisValueTemplate in same namespace", + mockClient: fake2.NewClient(&analysis, &analysisDef2, &template3, &provider), + analysisDef: analysisDef2, providerResult: &metricstypes.ProviderRequest{ Query: "this is a good query.", }, @@ -118,9 +200,9 @@ func TestProvidersPool(t *testing.T) { IObjectivesEvaluator: mockEvaluator, Client: tc.mockClient, log: mockLogger, - Namespace: "default", + Namespace: "default2", Objectives: map[int][]metricsapi.Objective{ - 1: analysisDef.Spec.Objectives, + 1: tc.analysisDef.Spec.Objectives, }, Analysis: &analysis, results: resultChan, diff --git a/metrics-operator/controllers/common/analysis/objective_evaluator.go b/metrics-operator/controllers/common/analysis/objective_evaluator.go index c958918bbc..0e050ca185 100644 --- a/metrics-operator/controllers/common/analysis/objective_evaluator.go +++ b/metrics-operator/controllers/common/analysis/objective_evaluator.go @@ -63,7 +63,7 @@ func getValueFromMap(values map[string]v1alpha3.ProviderResult, key string) (flo } func ComputeKey(obj v1alpha3.ObjectReference) string { - if obj.Namespace == "" { + if !obj.IsNamespaceSet() { return obj.Name } return obj.Name + "-" + obj.Namespace diff --git a/metrics-operator/go.mod b/metrics-operator/go.mod index f33dd6c60a..d660d1a327 100644 --- a/metrics-operator/go.mod +++ b/metrics-operator/go.mod @@ -3,12 +3,12 @@ module github.com/keptn/lifecycle-toolkit/metrics-operator go 1.20 require ( - github.com/DataDog/datadog-api-client-go/v2 v2.16.0 + github.com/DataDog/datadog-api-client-go/v2 v2.17.0 github.com/benbjohnson/clock v1.3.5 github.com/go-logr/logr v1.2.4 github.com/gorilla/mux v1.8.0 github.com/kelseyhightower/envconfig v1.4.0 - github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230913063529-469578edabb0 + github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230915062319-b2853f9ecdfb github.com/open-feature/go-sdk v1.7.0 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.16.0 diff --git a/metrics-operator/go.sum b/metrics-operator/go.sum index 5f12c6fa29..d36bbd37c9 100644 --- a/metrics-operator/go.sum +++ b/metrics-operator/go.sum @@ -42,8 +42,8 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DataDog/datadog-api-client-go/v2 v2.16.0 h1:wwroXLmBlO5/o+uS1UxDpuMIkhIL6gJAu6m0ttGM5Yc= -github.com/DataDog/datadog-api-client-go/v2 v2.16.0/go.mod h1:uJd7G1BONVIyiVw684VMn2XYI1FfN1tx4bRGenAf2bo= +github.com/DataDog/datadog-api-client-go/v2 v2.17.0 h1:0jI5TotLfWgsydMg/QTHkuoqNCFKSMorjU3ki/fbVI8= +github.com/DataDog/datadog-api-client-go/v2 v2.17.0/go.mod h1:uJd7G1BONVIyiVw684VMn2XYI1FfN1tx4bRGenAf2bo= github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= @@ -266,8 +266,8 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= -github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230913063529-469578edabb0 h1:o/s55/xwgZe+AgCbEReZLrDC7dHubsRk7j7RXXGSpQc= -github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230913063529-469578edabb0/go.mod h1:+Kion1lq0BnlGJOfO1HQeApnTD2huIIiIrNzFMwWwjs= +github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230915062319-b2853f9ecdfb h1:95+wDGbz28EyzuWU0x6iCB1ezCJG9kBTUyq8sSa8cMk= +github.com/keptn/lifecycle-toolkit/klt-cert-manager v0.0.0-20230915062319-b2853f9ecdfb/go.mod h1:p2jpDC9PY8IGBQZ69KibXR+5YnRlWlej4mE75EGGnTs= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= diff --git a/metrics-operator/main.go b/metrics-operator/main.go index 8d8f3a4fa4..d00fa1ea27 100644 --- a/metrics-operator/main.go +++ b/metrics-operator/main.go @@ -194,7 +194,6 @@ func main() { Scheme: mgr.GetScheme(), Log: analysisLogger.V(env.AnalysisControllerLogLevel), MaxWorkers: 2, - Namespace: env.PodNamespace, NewWorkersPoolFactory: analysiscontroller.NewWorkersPool, IAnalysisEvaluator: &analysisEval, }).SetupWithManager(mgr); err != nil { diff --git a/scheduler/go.mod b/scheduler/go.mod index 4a701d3248..fec868b1a3 100644 --- a/scheduler/go.mod +++ b/scheduler/go.mod @@ -13,7 +13,7 @@ require ( go.opentelemetry.io/otel/exporters/stdout v0.20.0 go.opentelemetry.io/otel/sdk v0.20.0 go.opentelemetry.io/otel/trace v0.20.0 - google.golang.org/grpc v1.58.0 + google.golang.org/grpc v1.58.1 k8s.io/api v0.25.14 k8s.io/apimachinery v0.25.14 k8s.io/apiserver v0.25.14 diff --git a/scheduler/go.sum b/scheduler/go.sum index bc0727b4a7..16145381e6 100644 --- a/scheduler/go.sum +++ b/scheduler/go.sum @@ -658,8 +658,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.58.0 h1:32JY8YpPMSR45K+c3o6b8VL73V+rR8k+DeMIr4vRH8o= -google.golang.org/grpc v1.58.0/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.58.1 h1:OL+Vz23DTtrrldqHK49FUOPHyY75rvFqJfXC84NYW58= +google.golang.org/grpc v1.58.1/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/test/integration/analysis-controller-existing-status/00-assert.yaml b/test/integration/analysis-controller-existing-status/00-assert.yaml new file mode 100644 index 0000000000..9506857208 --- /dev/null +++ b/test/integration/analysis-controller-existing-status/00-assert.yaml @@ -0,0 +1,14 @@ +apiVersion: metrics.keptn.sh/v1alpha3 +kind: Analysis +metadata: + name: analysis-sample + namespace: testy +spec: + analysisDefinition: + name: ed-my-proj-dev-svc1 +status: + storedValues: + ready-testy: + objectiveReference: + name: ready + namespace: testy diff --git a/test/integration/analysis-controller-existing-status/00-install.yaml b/test/integration/analysis-controller-existing-status/00-install.yaml new file mode 100644 index 0000000000..5a75c37dc8 --- /dev/null +++ b/test/integration/analysis-controller-existing-status/00-install.yaml @@ -0,0 +1,70 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: testy +--- +apiVersion: metrics.keptn.sh/v1alpha3 +kind: AnalysisValueTemplate +metadata: + name: ready + namespace: testy +spec: + provider: + name: my-mocked-provider + namespace: testy + query: 'sum(kube_pod_container_status_ready{namespace="{{.ns}}"})' +--- +apiVersion: metrics.keptn.sh/v1alpha3 +kind: AnalysisDefinition +metadata: + name: ed-my-proj-dev-svc1 + namespace: testy +spec: + objectives: + - analysisValueTemplateRef: + name: ready + namespace: testy + target: + failure: + lessThan: + fixedValue: 2 + warning: + lessThan: + fixedValue: 3 + weight: 1 + keyObjective: false + totalScore: + passPercentage: 90 + warningPercentage: 75 +--- +apiVersion: metrics.keptn.sh/v1alpha3 +kind: Analysis +metadata: + name: analysis-sample + namespace: testy +spec: + timeframe: + from: 2023-09-14T07:33:19Z + to: 2023-09-14T07:33:19Z + args: + "ns": "keptn-lifecycle-toolkit-system" + analysisDefinition: + name: ed-my-proj-dev-svc1 + namespace: testy +status: + storedValues: + my-provider-query-1: + objectiveReference: + name: objective-template-1 + value: 1 + errMsg: "" + +--- +apiVersion: metrics.keptn.sh/v1alpha3 +kind: KeptnMetricsProvider +metadata: + name: my-mocked-provider + namespace: testy +spec: + type: prometheus + targetServer: "http://mockserver.testy.svc.cluster.local:1080" diff --git a/test/integration/analysis-controller-existing-status/01-assert.yaml b/test/integration/analysis-controller-existing-status/01-assert.yaml new file mode 100644 index 0000000000..e3baae607b --- /dev/null +++ b/test/integration/analysis-controller-existing-status/01-assert.yaml @@ -0,0 +1,12 @@ +apiVersion: metrics.keptn.sh/v1alpha3 +kind: Analysis +metadata: + name: analysis-sample + namespace: testy +spec: + analysisDefinition: + name: ed-my-proj-dev-svc1 +status: + pass: true + # yamllint disable-line rule:line-length + raw: '{"objectiveResults":[{"result":{"failResult":{"operator":{"lessThan":{"fixedValue":"2"}},"fulfilled":false},"warnResult":{"operator":{"lessThan":{"fixedValue":"3"}},"fulfilled":false},"warning":false,"pass":true},"value":4,"score":1}],"totalScore":1,"maximumScore":1,"pass":true,"warning":false}' diff --git a/test/integration/analysis-controller-existing-status/01-install.yaml b/test/integration/analysis-controller-existing-status/01-install.yaml new file mode 100644 index 0000000000..cd82cd0761 --- /dev/null +++ b/test/integration/analysis-controller-existing-status/01-install.yaml @@ -0,0 +1,143 @@ +apiVersion: v1 +kind: Service +metadata: + name: mockserver + namespace: testy +spec: + ports: + - name: serviceport + port: 1080 + protocol: TCP + targetPort: serviceport + selector: + app: mockserver + sessionAffinity: None + type: ClusterIP +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: mockserver + name: mockserver + namespace: testy +spec: + replicas: 1 + selector: + matchLabels: + app: mockserver + template: + metadata: + labels: + app: mockserver + name: mockserver + spec: + containers: + - env: + - name: MOCKSERVER_LOG_LEVEL + value: INFO + - name: SERVER_PORT + value: "1080" + image: mockserver/mockserver:mockserver-5.13.0 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 1 + tcpSocket: + port: serviceport + timeoutSeconds: 1 + name: mockserver + ports: + - containerPort: 1080 + name: serviceport + protocol: TCP + readinessProbe: + failureThreshold: 10 + initialDelaySeconds: 2 + periodSeconds: 2 + successThreshold: 1 + tcpSocket: + port: serviceport + timeoutSeconds: 1 + volumeMounts: + - mountPath: /config + name: config-volume + - mountPath: /libs + name: libs-volume + terminationGracePeriodSeconds: 30 + volumes: + - configMap: + defaultMode: 420 + name: mockserver-config + optional: true + name: config-volume + - configMap: + defaultMode: 420 + name: mockserver-config + optional: true + name: libs-volume +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: mockserver-config + namespace: testy +data: + initializerJson.json: |- + [ + { + "httpRequest": { + "path": "/api/v1/query_range", + "method": "POST" + }, + "httpResponse": { + "body": { + "status": "success", + "data": { + "resultType": "matrix", + "result": [ + { + "metric": { + "__name__": "metric-name", + "job": "", + "instance": "" + }, + "values": [[1669714193.275, "4"]] + } + ] + } + }, + "statusCode": 200 + } + } + ] + mockserver.properties: |- + ############################### + # MockServer & Proxy Settings # + ############################### + # Socket & Port Settings + # socket timeout in milliseconds (default 120000) + mockserver.maxSocketTimeout=120000 + # Certificate Generation + # dynamically generated CA key pair (if they don't already exist in + specified directory) + mockserver.dynamicallyCreateCertificateAuthorityCertificate=true + # save dynamically generated CA key pair in working directory + mockserver.directoryToSaveDynamicSSLCertificate=. + # certificate domain name (default "localhost") + mockserver.sslCertificateDomainName=localhost + # comma separated list of ip addresses for Subject Alternative Name domain + names (default empty list) + mockserver.sslSubjectAlternativeNameDomains=www.example.com,www.another.com + # comma separated list of ip addresses for Subject Alternative Name ips + (default empty list) + mockserver.sslSubjectAlternativeNameIps=127.0.0.1 + # CORS + # enable CORS for MockServer REST API + mockserver.enableCORSForAPI=true + # enable CORS for all responses + mockserver.enableCORSForAllResponses=true + # Json Initialization + mockserver.initializationJsonPath=/config/initializerJson.json diff --git a/test/integration/analysis-controller-existing-status/02-namespacedelete.yaml b/test/integration/analysis-controller-existing-status/02-namespacedelete.yaml new file mode 100644 index 0000000000..de2c1eecac --- /dev/null +++ b/test/integration/analysis-controller-existing-status/02-namespacedelete.yaml @@ -0,0 +1,4 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - script: kubectl delete ns testy diff --git a/test/integration/analysis-controller/00-teststep-template.yaml b/test/integration/analysis-controller/00-teststep-template.yaml index ea3f3168fa..519913ae4f 100644 --- a/test/integration/analysis-controller/00-teststep-template.yaml +++ b/test/integration/analysis-controller/00-teststep-template.yaml @@ -2,8 +2,6 @@ apiVersion: kuttl.dev/v1beta1 kind: TestStep commands: - script: | - envsubst < mock-server.yaml | kubectl apply -f - - # substitutes current time and namespace, making sure they are changed to env var first - # to prevent bad files in case of a test interrupt + kubectl apply -f mock-server.yaml -n $NAMESPACE - script: | - envsubst < install.yaml | kubectl apply -f - + envsubst < install.yaml | kubectl apply -f - -n $NAMESPACE diff --git a/test/integration/analysis-controller/install.yaml b/test/integration/analysis-controller/install.yaml index 9b8dd7049c..7b1986fcb4 100644 --- a/test/integration/analysis-controller/install.yaml +++ b/test/integration/analysis-controller/install.yaml @@ -2,23 +2,19 @@ apiVersion: metrics.keptn.sh/v1alpha3 kind: AnalysisValueTemplate metadata: name: ready - namespace: $NAMESPACE spec: provider: name: my-mocked-provider - namespace: $NAMESPACE query: 'sum(kube_pod_container_status_ready{namespace="{{.ns}}"})' --- apiVersion: metrics.keptn.sh/v1alpha3 kind: AnalysisDefinition metadata: name: ed-my-proj-dev-svc1 - namespace: $NAMESPACE spec: objectives: - analysisValueTemplateRef: name: ready - namespace: $NAMESPACE target: failure: lessThan: @@ -36,7 +32,6 @@ apiVersion: metrics.keptn.sh/v1alpha3 kind: Analysis metadata: name: analysis-sample - namespace: $NAMESPACE spec: timeframe: from: 2023-09-14T07:33:19Z @@ -45,13 +40,11 @@ spec: "ns": "keptn-lifecycle-toolkit-system" analysisDefinition: name: ed-my-proj-dev-svc1 - namespace: $NAMESPACE --- apiVersion: metrics.keptn.sh/v1alpha3 kind: KeptnMetricsProvider metadata: name: my-mocked-provider - namespace: $NAMESPACE spec: type: prometheus targetServer: "http://mockserver.$NAMESPACE.svc.cluster.local:1080" diff --git a/test/integration/analysis-controller/mock-server.yaml b/test/integration/analysis-controller/mock-server.yaml index 44ddf38d5b..b01cda4fb3 100644 --- a/test/integration/analysis-controller/mock-server.yaml +++ b/test/integration/analysis-controller/mock-server.yaml @@ -2,7 +2,6 @@ apiVersion: v1 kind: Service metadata: name: mockserver - namespace: $NAMESPACE spec: ports: - name: serviceport @@ -20,7 +19,6 @@ metadata: labels: app: mockserver name: mockserver - namespace: $NAMESPACE spec: replicas: 1 selector: @@ -83,7 +81,6 @@ kind: ConfigMap apiVersion: v1 metadata: name: mockserver-config - namespace: $NAMESPACE data: initializerJson.json: |- [ diff --git a/test/integration/expose-keptn-metric/job-existing-metric.yaml b/test/integration/expose-keptn-metric/job-existing-metric.yaml index 17d627edae..2f264000a4 100644 --- a/test/integration/expose-keptn-metric/job-existing-metric.yaml +++ b/test/integration/expose-keptn-metric/job-existing-metric.yaml @@ -20,7 +20,7 @@ spec: spec: containers: - name: test-prometheus - image: curlimages/curl:8.2.1 + image: curlimages/curl:8.3.0 args: - /bin/sh - -ec @@ -33,7 +33,7 @@ spec: fi exit 1 - name: test-api-endpoint - image: curlimages/curl:8.2.1 + image: curlimages/curl:8.3.0 # yamllint disable rule:line-length args: - /bin/sh diff --git a/test/integration/expose-keptn-metric/job-no-metric.yaml b/test/integration/expose-keptn-metric/job-no-metric.yaml index 7cbddb06c4..2609972cd9 100644 --- a/test/integration/expose-keptn-metric/job-no-metric.yaml +++ b/test/integration/expose-keptn-metric/job-no-metric.yaml @@ -9,7 +9,7 @@ spec: spec: containers: - name: test-prometheus - image: curlimages/curl:8.2.1 + image: curlimages/curl:8.3.0 args: - /bin/sh - -ec @@ -20,7 +20,7 @@ spec: exit 1 fi - name: test-api-endpoint - image: curlimages/curl:8.2.1 + image: curlimages/curl:8.3.0 args: - /bin/sh - -ec