From 183ddf6378b80713feabc17bf90464969202cbaf Mon Sep 17 00:00:00 2001 From: keptn-bot <86361500+keptn-bot@users.noreply.github.com> Date: Wed, 21 Jun 2023 09:51:39 +0200 Subject: [PATCH] chore: release klt/klt 0.2.4 (#100) Co-authored-by: mowies Co-authored-by: Moritz Wiesinger --- charts/keptn-lifecycle-toolkit/Chart.yaml | 4 +- charts/keptn-lifecycle-toolkit/README.md | 145 +- charts/keptn-lifecycle-toolkit/doc.yaml | 3 +- .../templates/deployment.yaml | 4 +- .../templates/keptnapp-crd.yaml | 36 +- .../keptnappcreationrequest-crd.yaml | 7 +- .../templates/keptnappversion-crd.yaml | 87 +- .../templates/keptnconfig-crd.yaml | 2 +- .../templates/keptnevaluation-crd.yaml | 44 +- .../keptnevaluationdefinition-crd.yaml | 19 +- .../keptnevaluationprovider-crd.yaml | 2 +- .../templates/keptnmetric-crd.yaml | 6 +- .../templates/keptnmetricsprovider-crd.yaml | 2 +- .../templates/keptntask-crd.yaml | 60 +- .../templates/keptntaskdefinition-crd.yaml | 1407 ++++++++++++++++- .../templates/keptnworkload-crd.yaml | 31 +- .../templates/keptnworkloadinstance-crd.yaml | 77 +- ...ycle-validating-webhook-configuration.yaml | 29 + charts/keptn-lifecycle-toolkit/values.yaml | 19 +- 19 files changed, 1858 insertions(+), 126 deletions(-) create mode 100644 charts/keptn-lifecycle-toolkit/templates/lifecycle-validating-webhook-configuration.yaml diff --git a/charts/keptn-lifecycle-toolkit/Chart.yaml b/charts/keptn-lifecycle-toolkit/Chart.yaml index 4b3c34d..0c06439 100644 --- a/charts/keptn-lifecycle-toolkit/Chart.yaml +++ b/charts/keptn-lifecycle-toolkit/Chart.yaml @@ -41,10 +41,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.3 +version: 0.2.4 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v0.7.1" # x-release-please-version +appVersion: "v0.8.0" # x-release-please-version diff --git a/charts/keptn-lifecycle-toolkit/README.md b/charts/keptn-lifecycle-toolkit/README.md index 5da5d16..7501150 100644 --- a/charts/keptn-lifecycle-toolkit/README.md +++ b/charts/keptn-lifecycle-toolkit/README.md @@ -8,23 +8,23 @@ checks ### Keptn Scheduler -| Name | Description | Value | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------- | ------------------------------- | -| `scheduler.scheduler.containerSecurityContext` | Sets security context | | -| `scheduler.scheduler.env.otelCollectorUrl` | sets url for open telemetry collector | `otel-collector:4317` | -| `scheduler.scheduler.image.repository` | set image repository for scheduler | `ghcr.keptn.sh/keptn/scheduler` | -| `scheduler.scheduler.image.tag` | set image tag for scheduler | `v0.7.1` | -| `scheduler.scheduler.imagePullPolicy` | set image pull policy for scheduler | `Always` | -| `scheduler.scheduler.livenessProbe` | customizable liveness probe for the scheduler | | -| `scheduler.scheduler.readinessProbe` | customizable readiness probe for the scheduler | | -| `scheduler.scheduler.resources` | sets cpu and memory resurces/limits for scheduler | | -| `schedulerConfig.schedulerConfigYaml.leaderElection.leaderElect` | enables leader election for multiple replicas of the scheduler | `false` | -| `schedulerConfig.schedulerConfigYaml.profiles[0].plugins.permit.enabled[0].name` | enables permit plugin | `KLCPermit` | -| `schedulerConfig.schedulerConfigYaml.profiles[0].schedulerName` | changes scheduler name | `keptn-scheduler` | -| `scheduler.nodeSelector` | adds node selectors for scheduler | `{}` | -| `scheduler.replicas` | modifies replicas | `1` | -| `scheduler.tolerations` | adds tolerations for scheduler | `[]` | -| `scheduler.topologySpreadConstraints` | add topology constraints for scheduler | `[]` | +| Name | Description | Value | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------- | ------------------------- | +| `scheduler.scheduler.containerSecurityContext` | Sets security context | | +| `scheduler.scheduler.env.otelCollectorUrl` | sets url for open telemetry collector | `otel-collector:4317` | +| `scheduler.scheduler.image.repository` | set image repository for scheduler | `ghcr.io/keptn/scheduler` | +| `scheduler.scheduler.image.tag` | set image tag for scheduler | `v0.8.0` | +| `scheduler.scheduler.imagePullPolicy` | set image pull policy for scheduler | `Always` | +| `scheduler.scheduler.livenessProbe` | customizable liveness probe for the scheduler | | +| `scheduler.scheduler.readinessProbe` | customizable readiness probe for the scheduler | | +| `scheduler.scheduler.resources` | sets cpu and memory resurces/limits for scheduler | | +| `schedulerConfig.schedulerConfigYaml.leaderElection.leaderElect` | enables leader election for multiple replicas of the scheduler | `false` | +| `schedulerConfig.schedulerConfigYaml.profiles[0].plugins.permit.enabled[0].name` | enables permit plugin | `KLCPermit` | +| `schedulerConfig.schedulerConfigYaml.profiles[0].schedulerName` | changes scheduler name | `keptn-scheduler` | +| `scheduler.nodeSelector` | adds node selectors for scheduler | `{}` | +| `scheduler.replicas` | modifies replicas | `1` | +| `scheduler.tolerations` | adds tolerations for scheduler | `[]` | +| `scheduler.topologySpreadConstraints` | add topology constraints for scheduler | `[]` | ### Keptn Certificate Operator common @@ -42,17 +42,17 @@ checks ### Keptn Certificate Operator controller -| Name | Description | Value | -| ------------------------------------------------------ | ------------------------------------------------------------------------- | ------------------------------------------ | -| `certificateOperator.manager.containerSecurityContext` | Sets security context for the cert manager | | -| `certificateOperator.manager.image.repository` | specify repo for manager image | `ghcr.keptn.sh/keptn/certificate-operator` | -| `certificateOperator.manager.image.tag` | select tag for manager container | `v0.7.1` | -| `certificateOperator.manager.imagePullPolicy` | select image pull policy for manager container | `Always` | -| `certificateOperator.manager.env.labelSelectorKey` | specify the label selector to find resources to generate certificates for | `keptn.sh/inject-cert` | -| `certificateOperator.manager.env.labelSelectorValue` | specify the value for the label selector | `true` | -| `certificateOperator.manager.livenessProbe` | custom RBAC proxy liveness probe | | -| `certificateOperator.manager.readinessProbe` | custom manager readiness probe | | -| `certificateOperator.manager.resources` | custom limits and requests for manager container | | +| Name | Description | Value | +| ------------------------------------------------------ | ------------------------------------------------------------------------- | ------------------------------------ | +| `certificateOperator.manager.containerSecurityContext` | Sets security context for the cert manager | | +| `certificateOperator.manager.image.repository` | specify repo for manager image | `ghcr.io/keptn/certificate-operator` | +| `certificateOperator.manager.image.tag` | select tag for manager container | `v0.8.0` | +| `certificateOperator.manager.imagePullPolicy` | select image pull policy for manager container | `Always` | +| `certificateOperator.manager.env.labelSelectorKey` | specify the label selector to find resources to generate certificates for | `keptn.sh/inject-cert` | +| `certificateOperator.manager.env.labelSelectorValue` | specify the value for the label selector | `true` | +| `certificateOperator.manager.livenessProbe` | custom RBAC proxy liveness probe | | +| `certificateOperator.manager.readinessProbe` | custom manager readiness probe | | +| `certificateOperator.manager.resources` | custom limits and requests for manager container | | ### Keptn Lifecycle Operator common @@ -71,33 +71,34 @@ checks ### Keptn Lifecycle Operator controller -| Name | Description | Value | -| ----------------------------------------------------------------------------- | --------------------------------------------------------------- | ---------------------------------------------- | -| `lifecycleOperator.manager.containerSecurityContext` | Sets security context privileges | | -| `lifecycleOperator.manager.containerSecurityContext.allowPrivilegeEscalation` | | `false` | -| `lifecycleOperator.manager.containerSecurityContext.capabilities.drop` | | `["ALL"]` | -| `lifecycleOperator.manager.containerSecurityContext.privileged` | | `false` | -| `lifecycleOperator.manager.containerSecurityContext.runAsGroup` | | `65532` | -| `lifecycleOperator.manager.containerSecurityContext.runAsNonRoot` | | `true` | -| `lifecycleOperator.manager.containerSecurityContext.runAsUser` | | `65532` | -| `lifecycleOperator.manager.containerSecurityContext.seccompProfile.type` | | `RuntimeDefault` | -| `lifecycleOperator.manager.env.keptnAppControllerLogLevel` | sets the log level of Keptn App Controller | `0` | -| `lifecycleOperator.manager.env.keptnAppCreationRequestControllerLogLevel` | sets the log level of Keptn App Creation Request Controller | `0` | -| `lifecycleOperator.manager.env.keptnAppVersionControllerLogLevel` | sets the log level of Keptn AppVersion Controller | `0` | -| `lifecycleOperator.manager.env.keptnEvaluationControllerLogLevel` | sets the log level of Keptn Evaluation Controller | `0` | -| `lifecycleOperator.manager.env.keptnTaskControllerLogLevel` | sets the log level of Keptn Task Controller | `0` | -| `lifecycleOperator.manager.env.keptnTaskDefinitionControllerLogLevel` | sets the log level of Keptn TaskDefinition Controller | `0` | -| `lifecycleOperator.manager.env.keptnWorkloadControllerLogLevel` | sets the log level of Keptn Workload Controller | `0` | -| `lifecycleOperator.manager.env.keptnWorkloadInstanceControllerLogLevel` | sets the log level of Keptn WorkloadInstance Controller | `0` | -| `lifecycleOperator.manager.env.optionsControllerLogLevel` | sets the log level of Keptn Options Controller | `0` | -| `lifecycleOperator.manager.env.otelCollectorUrl` | Sets the URL for the open telemetry collector | `otel-collector:4317` | -| `lifecycleOperator.manager.env.functionRunnerImage` | specify image for task runtime | `ghcr.keptn.sh/keptn/functions-runtime:v0.7.1` | -| `lifecycleOperator.manager.image.repository` | specify registry for manager image | `ghcr.keptn.sh/keptn/lifecycle-operator` | -| `lifecycleOperator.manager.image.tag` | select tag for manager image | `v0.7.1` | -| `lifecycleOperator.manager.imagePullPolicy` | specify pull policy for manager image | `Always` | -| `lifecycleOperator.manager.livenessProbe` | custom livenessprobe for manager container | | -| `lifecycleOperator.manager.readinessProbe` | custom readinessprobe for manager container | | -| `lifecycleOperator.manager.resources` | specify limits and requests for manager container | | +| Name | Description | Value | +| ----------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------- | +| `lifecycleOperator.manager.containerSecurityContext` | Sets security context privileges | | +| `lifecycleOperator.manager.containerSecurityContext.allowPrivilegeEscalation` | | `false` | +| `lifecycleOperator.manager.containerSecurityContext.capabilities.drop` | | `["ALL"]` | +| `lifecycleOperator.manager.containerSecurityContext.privileged` | | `false` | +| `lifecycleOperator.manager.containerSecurityContext.runAsGroup` | | `65532` | +| `lifecycleOperator.manager.containerSecurityContext.runAsNonRoot` | | `true` | +| `lifecycleOperator.manager.containerSecurityContext.runAsUser` | | `65532` | +| `lifecycleOperator.manager.containerSecurityContext.seccompProfile.type` | | `RuntimeDefault` | +| `lifecycleOperator.manager.env.keptnAppControllerLogLevel` | sets the log level of Keptn App Controller | `0` | +| `lifecycleOperator.manager.env.keptnAppCreationRequestControllerLogLevel` | sets the log level of Keptn App Creation Request Controller | `0` | +| `lifecycleOperator.manager.env.keptnAppVersionControllerLogLevel` | sets the log level of Keptn AppVersion Controller | `0` | +| `lifecycleOperator.manager.env.keptnEvaluationControllerLogLevel` | sets the log level of Keptn Evaluation Controller | `0` | +| `lifecycleOperator.manager.env.keptnTaskControllerLogLevel` | sets the log level of Keptn Task Controller | `0` | +| `lifecycleOperator.manager.env.keptnTaskDefinitionControllerLogLevel` | sets the log level of Keptn TaskDefinition Controller | `0` | +| `lifecycleOperator.manager.env.keptnWorkloadControllerLogLevel` | sets the log level of Keptn Workload Controller | `0` | +| `lifecycleOperator.manager.env.keptnWorkloadInstanceControllerLogLevel` | sets the log level of Keptn WorkloadInstance Controller | `0` | +| `lifecycleOperator.manager.env.optionsControllerLogLevel` | sets the log level of Keptn Options Controller | `0` | +| `lifecycleOperator.manager.env.otelCollectorUrl` | Sets the URL for the open telemetry collector | `otel-collector:4317` | +| `lifecycleOperator.manager.env.functionRunnerImage` | specify image for deno task runtime | `ghcr.io/keptn/functions-runtime:v0.8.0` | +| `lifecycleOperator.manager.env.pythonRunnerImage` | specify image for python task runtime | `ghcr.io/keptn/python-runtime:v0.8.0` | +| `lifecycleOperator.manager.image.repository` | specify registry for manager image | `ghcr.io/keptn/lifecycle-operator` | +| `lifecycleOperator.manager.image.tag` | select tag for manager image | `v0.8.0` | +| `lifecycleOperator.manager.imagePullPolicy` | specify pull policy for manager image | `Always` | +| `lifecycleOperator.manager.livenessProbe` | custom livenessprobe for manager container | | +| `lifecycleOperator.manager.readinessProbe` | custom readinessprobe for manager container | | +| `lifecycleOperator.manager.resources` | specify limits and requests for manager container | | ### Keptn Metrics Operator common @@ -135,23 +136,23 @@ checks ### Keptn Metrics Operator controller -| Name | Description | Value | -| --------------------------------------------------------------------------- | ------------------------------------------------------------- | -------------------------------------- | -| `metricsOperator.manager.containerSecurityContext` | Sets security context privileges | | -| `metricsOperator.manager.containerSecurityContext.allowPrivilegeEscalation` | | `false` | -| `metricsOperator.manager.containerSecurityContext.capabilities.drop` | | `["ALL"]` | -| `metricsOperator.manager.containerSecurityContext.privileged` | | `false` | -| `metricsOperator.manager.containerSecurityContext.runAsGroup` | | `65532` | -| `metricsOperator.manager.containerSecurityContext.runAsNonRoot` | | `true` | -| `metricsOperator.manager.containerSecurityContext.runAsUser` | | `65532` | -| `metricsOperator.manager.containerSecurityContext.seccompProfile.type` | | `RuntimeDefault` | -| `metricsOperator.manager.image.repository` | specify registry for manager image | `ghcr.keptn.sh/keptn/metrics-operator` | -| `metricsOperator.manager.image.tag` | select tag for manager image | `v0.7.1` | -| `metricsOperator.manager.env.exposeKeptnMetrics` | enable metrics exporter | `true` | -| `metricsOperator.manager.env.metricsControllerLogLevel` | sets the log level of Metrics Controller | `0` | -| `metricsOperator.manager.livenessProbe` | custom livenessprobe for manager container | | -| `metricsOperator.manager.readinessProbe` | custom readinessprobe for manager container | | -| `metricsOperator.manager.resources` | specify limits and requests for manager container | | +| Name | Description | Value | +| --------------------------------------------------------------------------- | ------------------------------------------------------------- | -------------------------------- | +| `metricsOperator.manager.containerSecurityContext` | Sets security context privileges | | +| `metricsOperator.manager.containerSecurityContext.allowPrivilegeEscalation` | | `false` | +| `metricsOperator.manager.containerSecurityContext.capabilities.drop` | | `["ALL"]` | +| `metricsOperator.manager.containerSecurityContext.privileged` | | `false` | +| `metricsOperator.manager.containerSecurityContext.runAsGroup` | | `65532` | +| `metricsOperator.manager.containerSecurityContext.runAsNonRoot` | | `true` | +| `metricsOperator.manager.containerSecurityContext.runAsUser` | | `65532` | +| `metricsOperator.manager.containerSecurityContext.seccompProfile.type` | | `RuntimeDefault` | +| `metricsOperator.manager.image.repository` | specify registry for manager image | `ghcr.io/keptn/metrics-operator` | +| `metricsOperator.manager.image.tag` | select tag for manager image | `v0.8.0` | +| `metricsOperator.manager.env.exposeKeptnMetrics` | enable metrics exporter | `true` | +| `metricsOperator.manager.env.metricsControllerLogLevel` | sets the log level of Metrics Controller | `0` | +| `metricsOperator.manager.livenessProbe` | custom livenessprobe for manager container | | +| `metricsOperator.manager.readinessProbe` | custom readinessprobe for manager container | | +| `metricsOperator.manager.resources` | specify limits and requests for manager container | | ### Global diff --git a/charts/keptn-lifecycle-toolkit/doc.yaml b/charts/keptn-lifecycle-toolkit/doc.yaml index af7c3a9..459e333 100644 --- a/charts/keptn-lifecycle-toolkit/doc.yaml +++ b/charts/keptn-lifecycle-toolkit/doc.yaml @@ -132,7 +132,8 @@ ## @param lifecycleOperator.manager.env.optionsControllerLogLevel sets the log level of Keptn Options Controller ## @param lifecycleOperator.manager.env.otelCollectorUrl Sets the URL for the open telemetry collector -## @param lifecycleOperator.manager.env.functionRunnerImage specify image for task runtime +## @param lifecycleOperator.manager.env.functionRunnerImage specify image for deno task runtime +## @param lifecycleOperator.manager.env.pythonRunnerImage specify image for python task runtime ## @param lifecycleOperator.manager.image.repository specify registry for manager image ## @param lifecycleOperator.manager.image.tag select tag for manager image diff --git a/charts/keptn-lifecycle-toolkit/templates/deployment.yaml b/charts/keptn-lifecycle-toolkit/templates/deployment.yaml index 471b8e3..2a5cb59 100644 --- a/charts/keptn-lifecycle-toolkit/templates/deployment.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/deployment.yaml @@ -159,7 +159,6 @@ spec: containers: - args: - webhook-server - - --certs-dir=/tmp/k8s-webhook-server/serving-certs/ - --leader-elect - --adapter-port=6443 - --adapter-certs-dir=/tmp/metrics-adapter/serving-certs @@ -177,6 +176,8 @@ spec: fieldPath: metadata.name - name: FUNCTION_RUNNER_IMAGE value: {{ .Values.lifecycleOperator.manager.env.functionRunnerImage | quote }} + - name: PYTHON_RUNNER_IMAGE + value: {{ .Values.lifecycleOperator.manager.env.pythonRunnerImage | quote }} - name: OTEL_COLLECTOR_URL value: {{ .Values.lifecycleOperator.manager.env.otelCollectorUrl | quote }} - name: KEPTN_APP_CONTROLLER_LOG_LEVEL @@ -308,7 +309,6 @@ spec: containers: - args: - webhook-server - - --certs-dir=/tmp/k8s-webhook-server/serving-certs/ - --leader-elect - --adapter-port=6443 - --adapter-certs-dir=/tmp/metrics-adapter/serving-certs diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnapp-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnapp-crd.yaml index f774f0d..3eb613f 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnapp-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnapp-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnapps.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh @@ -177,35 +177,63 @@ spec: metadata: type: object spec: - description: KeptnAppSpec defines the desired state of KeptnApp + description: Spec describes the desired state of the KeptnApp. properties: postDeploymentEvaluations: + 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. items: type: string type: array postDeploymentTasks: + 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. 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. items: type: string type: array preDeploymentTasks: + 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. items: type: string type: array revision: default: 1 + description: Revision can be modified to trigger another deployment + of a KeptnApp of the same version. This can be used for restarting + a KeptnApp which failed to deploy, e.g. due to a failed preDeploymentEvaluation/preDeploymentTask. type: integer version: + description: Version defines the version of the application. For automatically + created KeptnApps, the version is a function of all KeptnWorkloads + that are part of the KeptnApp. type: string workloads: + 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 properties: name: + description: Name is the name of the KeptnWorkload. type: string version: + description: Version is the version of the KeptnWorkload. type: string required: - name @@ -216,9 +244,11 @@ spec: - version type: object status: - description: KeptnAppStatus defines the observed state of KeptnApp + description: Status describes the current state of the KeptnApp. properties: currentVersion: + description: CurrentVersion indicates the version that is currently + deployed or being reconciled. type: string type: object type: object diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnappcreationrequest-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnappcreationrequest-crd.yaml index 767a268..acf8e21 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnappcreationrequest-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnappcreationrequest-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnappcreationrequests.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh @@ -37,7 +37,7 @@ spec: metadata: type: object spec: - description: KeptnAppCreationRequestSpec defines the desired state of KeptnAppCreationRequest + description: Spec describes the desired state of the KeptnAppCreationRequest. properties: appName: description: AppName is the name of the KeptnApp the KeptnAppCreationRequest @@ -47,8 +47,7 @@ spec: - appName type: object status: - description: KeptnAppCreationRequestStatus defines the observed state of - KeptnAppCreationRequest + description: Status describes the current state of the KeptnAppCreationRequest. type: object type: object served: true diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnappversion-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnappversion-crd.yaml index 75ced92..35e1248 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnappversion-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnappversion-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnappversions.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh @@ -539,43 +539,75 @@ spec: metadata: type: object spec: - description: KeptnAppVersionSpec defines the desired state of KeptnAppVersion + description: Spec describes the desired state of the KeptnAppVersion. properties: appName: + description: AppName is the name of the KeptnApp. type: string postDeploymentEvaluations: + 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. items: type: string type: array postDeploymentTasks: + 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. 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. items: type: string type: array preDeploymentTasks: + 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. items: type: string type: array previousVersion: + description: PreviousVersion is the version of the KeptnApp that has + been deployed prior to this version. type: string revision: default: 1 + description: Revision can be modified to trigger another deployment + of a KeptnApp of the same version. This can be used for restarting + a KeptnApp which failed to deploy, e.g. due to a failed preDeploymentEvaluation/preDeploymentTask. type: integer traceId: additionalProperties: type: string + description: TraceId contains the OpenTelemetry trace ID. type: object version: + description: Version defines the version of the application. For automatically + created KeptnApps, the version is a function of all KeptnWorkloads + that are part of the KeptnApp. type: string workloads: + 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 properties: name: + description: Name is the name of the KeptnWorkload. type: string version: + description: Version is the version of the KeptnWorkload. type: string required: - name @@ -587,11 +619,14 @@ spec: - version type: object status: - description: KeptnAppVersionStatus defines the observed state of KeptnAppVersion + description: Status describes the current state of the KeptnAppVersion. properties: currentPhase: + description: CurrentPhase indicates the current phase of the KeptnAppVersion. type: string endTime: + description: EndTime represents the time at which the deployment of + the KeptnAppVersion finished. format: date-time type: string phaseTraceIDs: @@ -601,23 +636,33 @@ spec: 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. type: string postDeploymentEvaluationTaskStatus: + description: PostDeploymentEvaluationTaskStatus indicates the current + state of each postDeploymentEvaluation of the KeptnAppVersion. items: properties: definitionName: description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton type: string endTime: + description: EndTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string name: description: Name is the name of the Evaluation/Task type: string startTime: + description: StartTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string status: @@ -627,20 +672,28 @@ spec: type: array postDeploymentStatus: default: Pending + 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. items: properties: definitionName: description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton type: string endTime: + description: EndTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string name: description: Name is the name of the Evaluation/Task type: string startTime: + description: StartTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string status: @@ -650,20 +703,28 @@ spec: type: array preDeploymentEvaluationStatus: default: Pending + description: PreDeploymentEvaluationStatus indicates the current status + of the KeptnAppVersion's PreDeploymentEvaluation phase. type: string preDeploymentEvaluationTaskStatus: + description: PreDeploymentEvaluationTaskStatus indicates the current + state of each preDeploymentEvaluation of the KeptnAppVersion. items: properties: definitionName: description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton type: string endTime: + description: EndTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string name: description: Name is the name of the Evaluation/Task type: string startTime: + description: StartTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string status: @@ -673,20 +734,28 @@ spec: type: array preDeploymentStatus: default: Pending + description: PreDeploymentStatus indicates the current status of the + KeptnAppVersion's PreDeployment phase. type: string preDeploymentTaskStatus: + description: PreDeploymentTaskStatus indicates the current state of + each preDeploymentTask of the KeptnAppVersion. items: properties: definitionName: description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton type: string endTime: + description: EndTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string name: description: Name is the name of the Evaluation/Task type: string startTime: + description: StartTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string status: @@ -695,25 +764,37 @@ spec: type: object type: array startTime: + description: StartTime represents the time at which the deployment of + the KeptnAppVersion started. format: date-time type: string status: default: Pending + description: Status represents the overall status of the KeptnAppVersion. type: string workloadOverallStatus: default: Pending + 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 + that is part of the KeptnAppVersion. items: properties: status: default: Pending + description: Status indicates the current status of the KeptnWorkload. type: string workload: + description: Workload refers to a KeptnWorkload that is part of + the KeptnAppVersion. properties: name: + description: Name is the name of the KeptnWorkload. type: string version: + description: Version is the version of the KeptnWorkload. type: string required: - name diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnconfig-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnconfig-crd.yaml index 5501985..9d3c6c1 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnconfig-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnconfig-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnconfigs.options.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnevaluation-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnevaluation-crd.yaml index 4fbb4d6..17d44aa 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnevaluation-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnevaluation-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnevaluations.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh @@ -272,60 +272,98 @@ spec: metadata: type: object spec: - description: KeptnEvaluationSpec defines the desired state of KeptnEvaluation + description: Spec describes the desired state of the KeptnEvaluation. properties: appName: + description: AppName defines the KeptnApp for which the KeptnEvaluation + is done. type: string appVersion: + description: AppVersion defines the version of the KeptnApp for which + the KeptnEvaluation is done. type: string checkType: + 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. 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, + before considering the KeptnEvaluation to be failed. type: integer retryInterval: default: 5s + description: RetryInterval specifies the interval at which the KeptnEvaluation + is retried in the case of an error or a missed objective. pattern: ^0|([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$ type: string workload: + description: Workload defines the KeptnWorkload for which the KeptnEvaluation + is done. type: string workloadVersion: + description: WorkloadVersion defines the version of the KeptnWorkload + for which the KeptnEvaluation is done. type: string required: - evaluationDefinition - workloadVersion type: object status: - description: KeptnEvaluationStatus defines the observed state of KeptnEvaluation + description: Status describes the current state of the KeptnEvaluation. properties: endTime: + description: EndTime represents the time at which the KeptnEvaluation + finished. format: date-time type: string evaluationStatus: additionalProperties: 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), + or if there was any error during the evaluation of the objective. type: string status: + description: Status indicates the status of the objective being + evaluated. type: string value: + description: Value represents the value of the KeptnMetric being + evaluated. type: string required: - status - value type: object + description: EvaluationStatus describes the status of each objective + of the KeptnEvaluationDefinition referenced by the KeptnEvaluation. type: object 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. type: string retryCount: default: 0 + description: RetryCount indicates how many times the KeptnEvaluation + has been attempted already. type: integer startTime: + description: StartTime represents the time at which the KeptnEvaluation + started. format: date-time type: string required: diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnevaluationdefinition-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnevaluationdefinition-crd.yaml index 4783784..8216c46 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnevaluationdefinition-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnevaluationdefinition-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnevaluationdefinitions.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh @@ -143,19 +143,29 @@ spec: metadata: type: object spec: - description: KeptnEvaluationDefinitionSpec defines the desired state of - KeptnEvaluationDefinition + description: Spec describes the desired state of the KeptnEvaluationDefinition. properties: objectives: + description: Objectives is a list of objectives that have to be met + 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'). type: string keptnMetricRef: + description: KeptnMetricRef references the KeptnMetric that should + be evaluated. properties: name: + description: Name is the name of the referenced KeptnMetric. type: string namespace: + description: Namespace is the namespace where the referenced + KeptnMetric is located. type: string required: - name @@ -169,8 +179,7 @@ spec: - objectives type: object status: - description: KeptnEvaluationDefinitionStatus defines the observed state - of KeptnEvaluationDefinition + description: Status describes the current state of the KeptnEvaluationDefinition. type: object type: object served: true diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnevaluationprovider-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnevaluationprovider-crd.yaml index 2fcfa2f..58e45d8 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnevaluationprovider-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnevaluationprovider-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnevaluationproviders.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnmetric-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnmetric-crd.yaml index 0f672c8..7bfb3d5 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnmetric-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnmetric-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnmetrics.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: metrics.keptn.sh @@ -234,6 +234,10 @@ spec: status: description: KeptnMetricStatus defines the observed state of KeptnMetric properties: + errMsg: + description: ErrMsg represents the error details when the query could + not be evaluated + type: string lastUpdated: description: LastUpdated represents the time when the status data was last updated diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnmetricsprovider-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnmetricsprovider-crd.yaml index 316dad3..92d148b 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnmetricsprovider-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnmetricsprovider-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnmetricsproviders.metrics.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: metrics.keptn.sh diff --git a/charts/keptn-lifecycle-toolkit/templates/keptntask-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptntask-crd.yaml index cc3048a..4e85991 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptntask-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptntask-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptntasks.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh @@ -285,27 +285,47 @@ spec: metadata: type: object spec: - description: KeptnTaskSpec defines the desired state of KeptnTask + description: Spec describes the desired state of the KeptnTask. properties: app: + description: AppName defines the KeptnApp for which the KeptnTask is + executed. type: string appVersion: + description: AppVersion defines the version of the KeptnApp for which + the KeptnTask is executed. type: string 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 required: - appName @@ -316,30 +336,56 @@ spec: - workloadVersion 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 workload: + description: Workload defines the KeptnWorkload for which the KeptnTask + is executed. type: string workloadVersion: + description: WorkloadVersion defines the version of the KeptnWorkload + for which the KeptnTask is executed. type: string required: - app @@ -350,22 +396,30 @@ spec: - workloadVersion type: object status: - description: KeptnTaskStatus defines the observed state of KeptnTask + 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 diff --git a/charts/keptn-lifecycle-toolkit/templates/keptntaskdefinition-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptntaskdefinition-crd.yaml index 64ae17f..112e1c9 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptntaskdefinition-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptntaskdefinition-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptntaskdefinitions.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh @@ -191,64 +191,1453 @@ spec: metadata: type: object spec: - description: KeptnTaskDefinitionSpec defines the desired state of KeptnTaskDefinition + description: Spec describes the desired state of the KeptnTaskDefinition. properties: + container: + description: Container contains the definition for the container that + is to be used in Job based on the KeptnTaskDefinitions. + properties: + args: + description: 'Arguments to the entrypoint. The container image''s + 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' + items: + type: string + type: array + command: + 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)". + 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 + env: + description: List of environment variables to set in the container. + Cannot be updated. + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + 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 "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + 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.' + properties: + apiVersion: + 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. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only + resources limits and requests (limits.cpu, limits.memory, + limits.ephemeral-storage, requests.cpu, requests.memory + and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + 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: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + 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 + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + 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. + items: + description: EnvFromSource represents the source of a set of ConfigMaps + properties: + configMapRef: + description: The ConfigMap to select from + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap must be defined + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + description: An optional identifier to prepend to each key + in the ConfigMap. Must be a C_IDENTIFIER. + type: string + secretRef: + description: The Secret to select from + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret must be defined + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + image: + description: 'Container image name. More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management + to default or override container images in workload controllers + like Deployments and StatefulSets.' + type: string + imagePullPolicy: + description: 'Image pull policy. One of Always, Never, IfNotPresent. + Defaults to Always if :latest tag is specified, or IfNotPresent + 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. + properties: + postStart: + description: 'PostStart is called immediately after a container + is created. If the handler fails, the container is terminated + and restarted according to its restart policy. Other management + of the container blocks until the hook completes. 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. + 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. + items: + type: string + type: array + type: object + httpGet: + 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. + 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 + properties: + name: + 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 + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + 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. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. + Defaults to HTTP. + type: string + required: + - 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. + properties: + host: + description: 'Optional: Host name to connect to, defaults + to the pod IP.' + type: string + port: + 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. + x-kubernetes-int-or-string: true + required: + - port + type: object + 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' + 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. + 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. + items: + type: string + type: array + type: object + httpGet: + 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. + 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 + properties: + name: + 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 + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + 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. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. + Defaults to HTTP. + type: string + required: + - 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. + properties: + host: + description: 'Optional: Host name to connect to, defaults + to the pod IP.' + type: string + port: + 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. + x-kubernetes-int-or-string: true + required: + - port + type: object + 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' + 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. 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. + 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. + format: int32 + type: integer + grpc: + description: GRPC specifies an action involving a GRPC port. + This is a beta field and requires enabling GRPCContainerProbe + feature gate. + properties: + port: + description: Port number of the gRPC service. Number must + be in the range 1 to 65535. + format: int32 + type: integer + 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." + type: string + required: + - port + type: object + httpGet: + 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. + 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 + properties: + name: + 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 + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + 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. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. Defaults + to HTTP. + type: string + required: + - port + type: object + initialDelaySeconds: + description: 'Number of seconds after the container has started + before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + periodSeconds: + 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. + format: int32 + type: integer + tcpSocket: + description: TCPSocket specifies an action involving a TCP port. + properties: + host: + description: 'Optional: Host name to connect to, defaults + to the pod IP.' + type: string + port: + 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. + x-kubernetes-int-or-string: true + required: + - 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. + format: int64 + type: integer + timeoutSeconds: + description: 'Number of seconds after which the probe times + out. Defaults to 1 second. Minimum value is 1. More info: + https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + type: object + name: + description: Name of the container specified as a DNS_LABEL. Each + container in a pod must have a unique name (DNS_LABEL). Cannot + be updated. + type: string + ports: + description: List of ports to expose from the container. Not specifying + a port here DOES NOT prevent that port from being exposed. Any + port which is listening on the default "0.0.0.0" address inside + a container will be accessible from the network. Modifying this + array with strategic merge patch may corrupt the data. For more + information See https://github.com/kubernetes/kubernetes/issues/108255. + Cannot be updated. + items: + description: ContainerPort represents a network port in a single + container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, + this must be a valid port number, 0 < x < 65536. If HostNetwork + is specified, this must match ContainerPort. Most containers + do not need this. + 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. + type: string + protocol: + default: TCP + description: Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + description: 'Periodic probe of container service readiness. Container + will be removed from service endpoints 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. + 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. 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. + 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. + format: int32 + type: integer + grpc: + description: GRPC specifies an action involving a GRPC port. + This is a beta field and requires enabling GRPCContainerProbe + feature gate. + properties: + port: + description: Port number of the gRPC service. Number must + be in the range 1 to 65535. + format: int32 + type: integer + 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." + type: string + required: + - port + type: object + httpGet: + 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. + 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 + properties: + name: + 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 + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + 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. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. Defaults + to HTTP. + type: string + required: + - port + type: object + initialDelaySeconds: + description: 'Number of seconds after the container has started + before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + periodSeconds: + 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. + format: int32 + type: integer + tcpSocket: + description: TCPSocket specifies an action involving a TCP port. + properties: + host: + description: 'Optional: Host name to connect to, defaults + to the pod IP.' + type: string + port: + 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. + x-kubernetes-int-or-string: true + required: + - 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. + format: int64 + type: integer + timeoutSeconds: + description: 'Number of seconds after which the probe times + out. Defaults to 1 second. Minimum value is 1. More info: + https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + type: object + resources: + description: 'Compute Resources required by this container. Cannot + 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." + 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. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute + resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute + resources required. If Requests is omitted for a container, + it defaults to Limits if that is explicitly specified, otherwise + to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + 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/' + 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.' + type: boolean + capabilities: + description: The capabilities to add/drop when running containers. + Defaults to the default set of capabilities granted by the + container runtime. Note that this field cannot be set when + spec.os.name is windows. + properties: + add: + description: Added capabilities + items: + description: Capability represent POSIX capabilities type + type: string + type: array + drop: + description: Removed capabilities + items: + 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. + type: boolean + procMount: + description: procMount denotes the type of proc mount to use + for the containers. The default is DefaultProcMount which + uses the container runtime defaults for readonly paths and + masked paths. This requires the ProcMountType feature flag + to be enabled. Note that this field cannot be set when spec.os.name + is windows. + type: string + readOnlyRootFilesystem: + description: Whether this container has a read-only root filesystem. + Default is false. Note that this field cannot be set when + spec.os.name is windows. + 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. + 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. + 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. + 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. + properties: + level: + 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. + type: string + type: + 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. + 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. + properties: + localhostProfile: + description: localhostProfile indicates a profile defined + in a file on the node should be used. The profile must + be preconfigured on the node to work. Must be a descending + path, relative to the kubelet's configured seccomp profile + location. Must only be set if type is "Localhost". + 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." + 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. + properties: + gmsaCredentialSpec: + description: GMSACredentialSpec is where the GMSA admission + webhook (https://github.com/kubernetes-sigs/windows-gmsa) + inlines the contents of the GMSA credential spec named + by the GMSACredentialSpecName field. + type: string + gmsaCredentialSpecName: + 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. + 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. + type: string + type: object + type: object + startupProbe: + 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' + 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. 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. + 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. + format: int32 + type: integer + grpc: + description: GRPC specifies an action involving a GRPC port. + This is a beta field and requires enabling GRPCContainerProbe + feature gate. + properties: + port: + description: Port number of the gRPC service. Number must + be in the range 1 to 65535. + format: int32 + type: integer + 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." + type: string + required: + - port + type: object + httpGet: + 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. + 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 + properties: + name: + 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 + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + 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. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. Defaults + to HTTP. + type: string + required: + - port + type: object + initialDelaySeconds: + description: 'Number of seconds after the container has started + before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + periodSeconds: + 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. + format: int32 + type: integer + tcpSocket: + description: TCPSocket specifies an action involving a TCP port. + properties: + host: + description: 'Optional: Host name to connect to, defaults + to the pod IP.' + type: string + port: + 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. + x-kubernetes-int-or-string: true + required: + - 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. + format: int64 + type: integer + timeoutSeconds: + description: 'Number of seconds after which the probe times + out. Defaults to 1 second. Minimum value is 1. More info: + https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + type: object + 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. + type: boolean + stdinOnce: + description: Whether the container runtime should close the stdin + channel after it has been opened by a single attach. When stdin + is true the stdin stream will remain open across multiple attach + sessions. If stdinOnce is set to true, stdin is opened on container + start, is empty until the first client attaches to stdin, and + then remains open and accepts data until the client disconnects, + at which time stdin is closed and remains closed until the container + is restarted. If this flag is false, a container processes that + reads from stdin will never receive an EOF. Default is false + type: boolean + terminationMessagePath: + description: 'Optional: Path at which the file to which the container''s + termination message will be written is mounted into the container''s + filesystem. Message written is intended to be brief final status, + such as an assertion failure message. Will be truncated by the + node if greater than 4096 bytes. The total message length across + all containers will be limited to 12kb. Defaults to /dev/termination-log. + Cannot be updated.' + type: string + terminationMessagePolicy: + description: Indicate how the termination message should be populated. + File will use the contents of terminationMessagePath to populate + the container status message on both success and failure. FallbackToLogsOnError + will use the last chunk of container log output if the termination + message file is empty and the container exited with an error. + The log output is limited to 2048 bytes or 80 lines, whichever + 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. + type: boolean + volumeDevices: + 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. + properties: + devicePath: + description: devicePath is the path inside of the container + that the device will be mapped to. + type: string + name: + description: name must match the name of a persistentVolumeClaim + in the pod + type: string + required: + - devicePath + - name + type: object + type: array + volumeMounts: + description: Pod volumes to mount into the container's filesystem. + Cannot be updated. + items: + description: VolumeMount describes a mounting of a Volume within + a container. + properties: + mountPath: + description: Path within the container at which the volume + 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. + type: string + name: + description: This must match the Name of a Volume. + type: string + readOnly: + description: Mounted read-only if true, read-write otherwise + (false or unspecified). Defaults to false. + type: boolean + subPath: + description: Path within the volume from which the container's + 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 + 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 + exclusive. + type: string + required: + - mountPath + - name + 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. + type: string + required: + - name + type: object + deno: + description: Deno contains the definition for the Deno function that + is to be executed in KeptnTasks based on the KeptnTaskDefinitions. + properties: + cmdParameters: + description: CmdParameters contains parameters that will be passed + to the command + type: string + 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. + properties: + name: + description: Name is the name of the referenced ConfigMap. + type: string + type: object + functionRef: + description: FunctionReference allows to reference another KeptnTaskDefinition + which contains the source code of the function to be executes + for KeptnTasks based on this KeptnTaskDefinition. This can be + useful when you have multiple KeptnTaskDefinitions that should + execute the same logic, but each with different parameters. + properties: + name: + description: Name is the name of the referenced KeptnTaksDefinition. + type: string + type: object + httpRef: + description: HttpReference allows to point to an HTTP URL containing + the code of the function. + properties: + url: + description: Url is the URL containing the code of the function. + 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. + properties: + code: + description: Code contains the code of the function. + type: string + type: object + parameters: + description: Parameters contains parameters that will be passed + to the job that executes the task as env variables. + 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 + 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 + type: object function: + description: Deprecated Function contains the definition for the function + that is to be executed in KeptnTasks based on the KeptnTaskDefinitions. properties: + cmdParameters: + description: CmdParameters contains parameters that will be passed + to the command + type: string 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. properties: name: + description: Name is the name of the referenced ConfigMap. type: string type: object functionRef: + description: FunctionReference allows to reference another KeptnTaskDefinition + which contains the source code of the function to be executes + for KeptnTasks based on this KeptnTaskDefinition. This can be + useful when you have multiple KeptnTaskDefinitions that should + execute the same logic, but each with different parameters. properties: name: + description: Name is the name of the referenced KeptnTaksDefinition. type: string type: object httpRef: + description: HttpReference allows to point to an HTTP URL containing + the code of the function. properties: url: + description: Url is the URL containing the code of the function. 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. properties: code: + description: Code contains the code of the function. type: string type: object parameters: + description: Parameters contains parameters that will be passed + to the job that executes the task as env variables. 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 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 + type: object + python: + description: Python contains the definition for the python function + that is to be executed in KeptnTasks based on the KeptnTaskDefinitions. + properties: + cmdParameters: + description: CmdParameters contains parameters that will be passed + to the command + type: string + 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. + properties: + name: + description: Name is the name of the referenced ConfigMap. + type: string + type: object + functionRef: + description: FunctionReference allows to reference another KeptnTaskDefinition + which contains the source code of the function to be executes + for KeptnTasks based on this KeptnTaskDefinition. This can be + useful when you have multiple KeptnTaskDefinitions that should + execute the same logic, but each with different parameters. + properties: + name: + description: Name is the name of the referenced KeptnTaksDefinition. + type: string + type: object + httpRef: + description: HttpReference allows to point to an HTTP URL containing + the code of the function. + properties: + url: + description: Url is the URL containing the code of the function. + 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. + properties: + code: + description: Code contains the code of the function. + type: string + type: object + parameters: + description: Parameters contains parameters that will be passed + to the job that executes the task as env variables. + 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 + 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 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. format: int32 type: integer 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 type: object status: - description: KeptnTaskDefinitionStatus defines the observed state of KeptnTaskDefinition + description: Status describes the current state of the KeptnTaskDefinition. properties: function: - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file' + description: Function contains status information of the function definition + for the task. properties: configMap: - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file' + description: ConfigMap indicates the ConfigMap in which the function + code is stored. type: string type: object type: object diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnworkload-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnworkload-crd.yaml index c839fbd..890a95f 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnworkload-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnworkload-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnworkloads.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh @@ -203,27 +203,49 @@ spec: metadata: type: object spec: - description: KeptnWorkloadSpec defines the desired state of KeptnWorkload + description: Spec describes the desired state of the KeptnWorkload. properties: app: + description: AppName is the name of the KeptnApp containing the KeptnWorkload. type: string postDeploymentEvaluations: + 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 + 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. 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. + The items of this list refer to the names of KeptnEvaluationDefinitions + located in the same namespace as the KeptnWorkload, or in the KLT + 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. items: type: string type: array resourceReference: + description: ResourceReference is a reference to the Kubernetes resource + (Deployment, DaemonSet, StatefulSet or ReplicaSet) the KeptnWorkload + is representing. properties: kind: type: string @@ -241,6 +263,7 @@ spec: - uid type: object version: + description: Version defines the version of the KeptnWorkload. type: string required: - app @@ -248,9 +271,11 @@ spec: - version type: object status: - description: KeptnWorkloadStatus defines the observed state of KeptnWorkload + description: Status describes the current state of the KeptnWorkload. properties: currentVersion: + description: CurrentVersion indicates the version that is currently + deployed or being reconciled. type: string type: object type: object diff --git a/charts/keptn-lifecycle-toolkit/templates/keptnworkloadinstance-crd.yaml b/charts/keptn-lifecycle-toolkit/templates/keptnworkloadinstance-crd.yaml index d1775e0..8a93206 100644 --- a/charts/keptn-lifecycle-toolkit/templates/keptnworkloadinstance-crd.yaml +++ b/charts/keptn-lifecycle-toolkit/templates/keptnworkloadinstance-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: keptnworkloadinstances.lifecycle.keptn.sh annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.12.0 labels: app.kubernetes.io/part-of: keptn-lifecycle-toolkit crdGroup: lifecycle.keptn.sh @@ -530,29 +530,53 @@ spec: metadata: type: object spec: - description: KeptnWorkloadInstanceSpec defines the desired state of KeptnWorkloadInstance + description: Spec describes the desired state of the KeptnWorkloadInstance. properties: app: + description: AppName is the name of the KeptnApp containing the KeptnWorkload. type: string postDeploymentEvaluations: + 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 + 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. 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. + The items of this list refer to the names of KeptnEvaluationDefinitions + located in the same namespace as the KeptnWorkload, or in the KLT + 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. items: type: string type: array previousVersion: + description: PreviousVersion is the version of the KeptnWorkload that + has been deployed prior to this version. type: string resourceReference: + description: ResourceReference is a reference to the Kubernetes resource + (Deployment, DaemonSet, StatefulSet or ReplicaSet) the KeptnWorkload + is representing. properties: kind: type: string @@ -572,10 +596,13 @@ spec: traceId: additionalProperties: type: string + description: TraceId contains the OpenTelemetry trace ID. type: object version: + description: Version defines the version of the KeptnWorkload. type: string workloadName: + description: WorkloadName is the name of the KeptnWorkload. type: string required: - app @@ -584,14 +611,21 @@ spec: - workloadName type: object status: - description: KeptnWorkloadInstanceStatus defines the observed state of KeptnWorkloadInstance + description: Status describes the current state of the KeptnWorkloadInstance. properties: currentPhase: + description: 'CurrentPhase indicates the current phase of the KeptnWorkloadInstance. + This can be: - PreDeploymentTasks - PreDeploymentEvaluations - Deployment + - PostDeploymentTasks - PostDeploymentEvaluations' type: string deploymentStatus: default: Pending + 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 + the KeptnWorkloadInstance finished. format: date-time type: string phaseTraceIDs: @@ -601,23 +635,33 @@ spec: 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. type: string postDeploymentEvaluationTaskStatus: + description: PostDeploymentEvaluationTaskStatus indicates the current + state of each postDeploymentEvaluation of the KeptnWorkloadInstance. items: properties: definitionName: description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton type: string endTime: + description: EndTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string name: description: Name is the name of the Evaluation/Task type: string startTime: + description: StartTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string status: @@ -627,20 +671,28 @@ spec: type: array postDeploymentStatus: default: Pending + 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. items: properties: definitionName: description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton type: string endTime: + description: EndTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string name: description: Name is the name of the Evaluation/Task type: string startTime: + description: StartTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string status: @@ -650,20 +702,28 @@ spec: type: array preDeploymentEvaluationStatus: default: Pending + description: PreDeploymentEvaluationStatus indicates the current status + of the KeptnWorkloadInstance's PreDeploymentEvaluation phase. type: string preDeploymentEvaluationTaskStatus: + description: PreDeploymentEvaluationTaskStatus indicates the current + state of each preDeploymentEvaluation of the KeptnWorkloadInstance. items: properties: definitionName: description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton type: string endTime: + description: EndTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string name: description: Name is the name of the Evaluation/Task type: string startTime: + description: StartTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string status: @@ -673,20 +733,28 @@ spec: type: array preDeploymentStatus: default: Pending + description: PreDeploymentStatus indicates the current status of the + KeptnWorkloadInstance's PreDeployment phase. type: string preDeploymentTaskStatus: + description: PreDeploymentTaskStatus indicates the current state of + each preDeploymentTask of the KeptnWorkloadInstance. items: properties: definitionName: description: DefinitionName is the name of the EvaluationDefinition/TaskDefiniton type: string endTime: + description: EndTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string name: description: Name is the name of the Evaluation/Task type: string startTime: + description: StartTime represents the time at which the Item (Evaluation/Task) + started. format: date-time type: string status: @@ -695,10 +763,13 @@ spec: type: object type: array startTime: + description: StartTime represents the time at which the deployment of + the KeptnWorkloadInstance started. format: date-time type: string status: default: Pending + description: Status represents the overall status of the KeptnWorkloadInstance. type: string type: object type: object diff --git a/charts/keptn-lifecycle-toolkit/templates/lifecycle-validating-webhook-configuration.yaml b/charts/keptn-lifecycle-toolkit/templates/lifecycle-validating-webhook-configuration.yaml new file mode 100644 index 0000000..0c7c61e --- /dev/null +++ b/charts/keptn-lifecycle-toolkit/templates/lifecycle-validating-webhook-configuration.yaml @@ -0,0 +1,29 @@ +apiVersion: admissionregistration.k8s.io/v1 +kind: ValidatingWebhookConfiguration +metadata: + name: {{ include "chart.fullname" . }}-lifecycle-validating-webhook-configuration + annotations: + cert-manager.io/inject-ca-from: {{ .Release.Namespace }}/{{ include "chart.fullname" . }}- + labels: + {{- include "chart.labels" . | nindent 4 }} +webhooks: +- admissionReviewVersions: + - v1 + clientConfig: + service: + name: '{{ include "chart.fullname" . }}-lifecycle-webhook-service' + namespace: '{{ .Release.Namespace }}' + path: /validate-lifecycle-keptn-sh-v1alpha3-keptntaskdefinition + failurePolicy: Fail + name: vkeptntaskdefinition.kb.io + rules: + - apiGroups: + - lifecycle.keptn.sh + apiVersions: + - v1alpha3 + operations: + - CREATE + - UPDATE + resources: + - keptntaskdefinitions + sideEffects: None \ No newline at end of file diff --git a/charts/keptn-lifecycle-toolkit/values.yaml b/charts/keptn-lifecycle-toolkit/values.yaml index 3249d73..4e48f78 100644 --- a/charts/keptn-lifecycle-toolkit/values.yaml +++ b/charts/keptn-lifecycle-toolkit/values.yaml @@ -14,8 +14,8 @@ certificateOperator: labelSelectorKey: keptn.sh/inject-cert labelSelectorValue: "true" image: - repository: ghcr.keptn.sh/keptn/certificate-operator - tag: v0.7.1 + repository: ghcr.io/keptn/certificate-operator + tag: v0.8.0 imagePullPolicy: Always livenessProbe: httpGet: @@ -67,7 +67,7 @@ lifecycleOperator: seccompProfile: type: RuntimeDefault env: - functionRunnerImage: ghcr.keptn.sh/keptn/functions-runtime:v0.7.1 + functionRunnerImage: ghcr.io/keptn/functions-runtime:v0.8.0 keptnAppControllerLogLevel: "0" keptnAppCreationRequestControllerLogLevel: "0" keptnAppVersionControllerLogLevel: "0" @@ -78,9 +78,10 @@ lifecycleOperator: keptnWorkloadInstanceControllerLogLevel: "0" optionsControllerLogLevel: "0" otelCollectorUrl: otel-collector:4317 + pythonRunnerImage: ghcr.io/keptn/python-runtime:v0.8.0 image: - repository: ghcr.keptn.sh/keptn/lifecycle-operator - tag: v0.7.1 + repository: ghcr.io/keptn/lifecycle-operator + tag: v0.8.0 imagePullPolicy: Always livenessProbe: httpGet: @@ -146,8 +147,8 @@ metricsOperator: exposeKeptnMetrics: "true" metricsControllerLogLevel: "0" image: - repository: ghcr.keptn.sh/keptn/metrics-operator - tag: v0.7.1 + repository: ghcr.io/keptn/metrics-operator + tag: v0.8.0 livenessProbe: httpGet: path: /healthz @@ -209,8 +210,8 @@ scheduler: env: otelCollectorUrl: otel-collector:4317 image: - repository: ghcr.keptn.sh/keptn/scheduler - tag: v0.7.1 + repository: ghcr.io/keptn/scheduler + tag: v0.8.0 imagePullPolicy: Always livenessProbe: httpGet: