diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt index 396213275a..3843a4f8c2 100644 --- a/.github/actions/spelling/excludes.txt +++ b/.github/actions/spelling/excludes.txt @@ -1,31 +1,31 @@ (?:^|/)(?i)LICENSE /package-lock\.json$ /swagger-ui/ -CODEOWNERS -CONTRIBUTORS.md -CHANGELOG.md -ignore$ \.editorconfig$ +\.gif$ \.gitkeep$ +\.ico$ +\.jpg$ \.map$ \.mod$ \.npmrc$ \.png$ -\.jpg$ -\.ttf$ \.sav$ \.sum$ -\.xlf$ \.svg$ -\.ico$ +\.ttf$ +\.xlf$ \.zip$ -\.gif$ ^\.github/actions/spelling -_test\.go$ -^examples/support/observability/config/ -^examples/support/observability/assets/ -^test/prometheus/ ^\.github/scripts/\.helm-tests/[a-zA-Z0-9-]+/result.ya?ml +^\Qdocs/layouts/partials/hooks/body-end.html\E$ ^dashboards/grafana/configmap/.*\.ya?ml ^dashboards/grafana/import/.*\.json -^\Qdocs/layouts/partials/hooks/body-end.html\E$ +^examples/support/observability/assets/ +^examples/support/observability/config/ +^test/prometheus/ +_test\.go$ +CHANGELOG.md +CODEOWNERS +CONTRIBUTORS.md +ignore$ diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt index 6cddf2047d..c803bf87ab 100644 --- a/.github/actions/spelling/expect.txt +++ b/.github/actions/spelling/expect.txt @@ -581,7 +581,7 @@ spanitem spdx spf squidfunk -stakeholders +Stakeholders standalone statefulset statefultest @@ -647,8 +647,8 @@ undeploy unmarshal unmarshalling urlset -usecase usecasebox +usecases usr utilruntime validatingwebhookconfigurations diff --git a/docs-new/docs/core-concepts/index.md b/docs-new/docs/core-concepts/index.md index e1bffa6a7f..47d1c0bf12 100644 --- a/docs-new/docs/core-concepts/index.md +++ b/docs-new/docs/core-concepts/index.md @@ -64,8 +64,8 @@ deployment durations and failures across multiple deployment strategies. [DORA metrics](../guides/dora.md) and exposes them as OpenTelemetry metrics out of the box. -* Reports traces and custom Keptn metrics from configured data providers - using OpenTelemetry. +* Uses OpenTelemetry to report traces and custom Keptn metrics + from all data providers that are configured in your cluster. * Enables monitoring of new logs from log monitoring solutions. @@ -83,7 +83,6 @@ to ensure that your deployments are observable. To learn more, see: * [Getting started with Keptn Observability](../getting-started/observability.md) -* [Standardize observability](usecase-observability.md/) * [DORA metrics](../guides/dora.md) User Guide * [OpenTelemetry observability](../guides/otel.md) User Guide @@ -133,5 +132,4 @@ For more information, see: * [Getting started with release lifecycle management](../getting-started/lifecycle-management.md) * [Deployment tasks](../guides/tasks.md) User Guide * [Evaluations](../guides/evaluations.md) User Guide -* [Manage release lifecycle](usecase-orchestrate.md) * [KeptnApp and KeptnWorkload resources](../components/lifecycle-operator/keptn-apps.md) diff --git a/docs-new/docs/core-concepts/usecase-observability.md b/docs-new/docs/core-concepts/usecase-observability.md deleted file mode 100644 index a30ef12224..0000000000 --- a/docs-new/docs/core-concepts/usecase-observability.md +++ /dev/null @@ -1,143 +0,0 @@ -# Standardize observability - -Keptn makes any Kubernetes deployment observable. -In other words, it creates a distributed, end-to-end trace -of everything Kubernetes does in the context of a Deployment. -It provides this information -for all applications running in your cluster, -and includes information about -everything Kubernetes does in the context of a deployment. -To do this, -Keptn introduces the concept of an `application`, -which is an abstraction that connects multiple -workloads that logically belong together, -even if they use different deployment strategies. - -This means that: - -- You can readily see why a deployment takes so long - or why it fails, even when using multiple deployment strategies. -- Keptn can capture DORA metrics and expose them as OpenTelemetry metrics - -The observability data is an amalgamation of the following: - -- DORA metrics are collected out of the box when Keptn is enabled -- OpenTelemetry runs traces that show - everything that happens in the Kubernetes cluster -- Custom Keptn metrics that you can use to monitor - information from all the data providers configured in your cluster - -All this information can be displayed with dashboard tools -such as Grafana. - -## Using this exercise - -This exercise shows how to standardize access -to the observability data for your cluster. -It is based on the -[simplenode-dev](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd) -example. - -This is the second of three exercises in the -[Introducing Keptn](index.md) -series: - -- In the - [Getting started with Keptn metrics](../getting-started/metrics.md) - exercise, you learn how to define and use Keptn metrics. - You may want to complete that exercise before doing this exercise - although that is not required. -- In - [Manage release lifecycle](usecase-orchestrate.md), - you learn how to implement - pre- and post-deployment tasks and evaluations - to orchestrate the flow of all the [workloads](https://kubernetes.io/docs/concepts/workloads/) - that are part of your `application`. - -This exercise shows how to standardize access -to the observability data for your cluster. - -If you are installing Keptn on an existing cluster -or on a local cluster you are creating for this exercise, -you need to do the following: - -1. Follow the instructions in - [Install and update](../installation/index.md) - to install and enable Keptn on your cluster. -1. Follow the instructions in - [Basic annotations](../guides/integrate.md#basic-annotations) - to integrate Keptn into your Kubernetes cluster - by applying basic annotations - to your [workload](https://kubernetes.io/docs/concepts/workloads/) resources. - and to create appropriate - [KeptnApp](../reference/crd-reference/app.md) - resources that aggregate - all the [workloads](https://kubernetes.io/docs/concepts/workloads/) for a logical deployment into a single resource. - -## DORA metrics - -DORA metrics are an industry-standard set of measurements -about your deployments. - -Keptn starts collecting these metrics -as soon as you annotate the `Deployment` resource. -See -[DORA metrics](../guides/dora.md) -for more details. - -## Using OpenTelemetry - -Keptn extends the Kubernetes -primitives to create OpenTelemetry data -that connects all your deployment and observability tools -without worrying about where it is stored and where it is managed. -OpenTelemetry traces collect data as Kubernetes is deploying the changes, -which allows you to trace everything done in the context of that deployment. - -- You must have an OpenTelemetry collector installed on your cluster. - See - [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) - for more information. -- Follow the instructions in - [OpenTelemetry observability](../guides/otel.md) - to configure where your OpenTelemetry data is sent. - This requires you to define a [KeptnConfig](../reference/crd-reference/config.md) resource - that defines the URL and port of the OpenTelemetry collector. - For our example, this is in the - [keptnconfig.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/setup/keptn/keptnconfig.yaml) - file. - -## Keptn metrics - -You can supplement the DORA Metrics and OpenTelemetry information -with information you explicitly define using Keptn metrics. -The -[Getting started with Keptn metrics](../getting-started/metrics.md) -exercise discusses how to define Keptn metrics. - -## View the results - -To start feeding observability data for your deployments -onto a dashboard of your choice: - -1. Modify either your `Deployment` or `KeptnApp` resource yaml file - to increment the version number -1. Commit that change to your repository. - -Note that, from the `KeptnApp` YAML file, -you can either increment the version number of the application -(which causes all [workloads](https://kubernetes.io/docs/concepts/workloads/) to be rerun and produce observability data) -or you can increment the version number of a single [workload](https://kubernetes.io/docs/concepts/workloads/), -(which causes just that [workload](https://kubernetes.io/docs/concepts/workloads/) -to be rerun and produce observability data). - -The videos that go with this exercise show how the -DORA, OpenTelemetry, and Keptn metrics information -appears on a Grafana dashboard with -[Jaeger](https://grafana.com/docs/grafana-cloud/data-configuration/metrics/prometheus-config-examples/the-jaeger-authors-jaeger/). - -If you also have the Jaeger extension for Grafana installed on your cluster, -you can view the full end-to-end trace for everything -that happens in your deployment. -For more information, see -[Monitoring Jaeger](https://www.jaegertracing.io/docs/1.45/monitoring/). diff --git a/docs-new/docs/core-concepts/usecase-orchestrate.md b/docs-new/docs/core-concepts/usecase-orchestrate.md deleted file mode 100644 index 15f33adcd3..0000000000 --- a/docs-new/docs/core-concepts/usecase-orchestrate.md +++ /dev/null @@ -1,178 +0,0 @@ -# Manage release lifecycle - -In this exercise, we will configure Keptn -to run deployment checks as part of your deployment. -Whether you are deploying your software with -Argo, Flux, another deployment engine, or even `kubectl apply`, -Keptn can do the following: - -* Pre-deploy: Validate external dependencies, - confirm that images are scanned, and so forth - -* Post-deploy: Execute tests, notify stakeholders, - promote to the next stage - -* Automatically validate against your SLO (Service Level Objectives) - -Keptn sits on top of the Kubernetes scheduler -and can do the following: - -* Trace the deployment from start to end -* Keptn is application aware, - so can extend the deployment with tasks and evaluations that - are run either before or after your whole application starts the deployment - or at the individual [workload](https://kubernetes.io/docs/concepts/workloads/) level. -* Validate any Keptn metric, - either pre- or post-deployment, - using the metrics from the Keptn Metrics Server introduced in - [Getting started with Keptn metrics](../getting-started/metrics.md). - -This means that you can be sure that the environment is healthy -and has adequate resources before you begin the deployment. -After the deployment succeeds, -use Keptn metrics to confirm that your deployed software is really healthy -- -not just that the pods are running but validate against SLOs -such as performance and user experience. -You can also check for new logs that came in from a log monitoring solution. - -## Using this exercise - -This exercise shows how to implement -pre- and post-deployment evaluations and tasks -for your application. -It is based on the -[simplenode-dev](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd) -example. - -The steps to implement pre- and post-deployment orchestration are: - -* [Using this exercise](#using-this-exercise) -* [Define evaluations to be performed pre- and post-deployment](#define-evaluations-to-be-performed-prepost-deployment) -* [Define tasks to be performed pre- and post-deployment](#define-tasks-to-be-performed-prepost-deployment) -* [Integrate evaluations and tasks into the cluster](#integrate-evaluations-and-tasks-into-the-cluster) - -This is the third of three exercises in the -[Introducing Keptn](index.md) -series. -You may want to complete the other exercises before doing this exercise -although that is not required: - -* In the - [Getting started with Keptn metrics](../getting-started/metrics.md) - exercise, you learn how to define and use Keptn metrics. -* In [Standardize observability](usecase-observability.md), - you learn how to standardize access - to the observability data for your cluster. - -If you are installing Keptn on an existing cluster -or in a local cluster you are creating for this exercise -and did not previously set up your cluster for the -[Standardize observability](usecase-observability.md) exercise, -you need to do the following: - -1. Follow the instructions in - [Install and update](../installation/index.md) - to install and enable Keptn on your cluster. -1. Follow the instructions in - [Annotate workload](../guides/integrate.md#basic-annotations) - to integrate Keptn into your Kubernetes cluster - by applying basic annotations to your `Deployment` resource. - This also creates appropriate - [KeptnApp](../reference/crd-reference/app.md) resources - which aggregate [workloads](https://kubernetes.io/docs/concepts/workloads/) that are combined into the released product, - regardless of the tools being used. - -## Define evaluations to be performed pre/post deployment - -An `evaluation` is a KeptnMetric that has a defined target value. -Evaluations are resources that are defined in a -[KeptnEvaluationDefinition](../reference/crd-reference/evaluationdefinition.md) -yaml file. -In our example, evaluations are defined in the -[keptn-evaluations.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/keptn-evaluations.yaml) -file. -For example, the definition of the `evaluate-dependencies` evaluation -looks like this: - -```yaml -apiVersion: lifecycle.keptn.sh/v1alpha3 -kind: KeptnEvaluationDefinition -metadata: - name: evaluate-dependencies - namespace: simplenode-dev -spec: - objectives: - - keptnMetricRef: - name: available-cpus - namespace: simplenode-dev - evaluationTarget: ">4" -``` - -You see that the `available-cpus` metric is defined in the -[keptn-metric.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/keptn-metric.yaml) -file. -The `evaluationTarget` is set to be `>4`, -so this evaluation makes sure that more than 4 CPUs are available. -You could include objectives and additional metrics in this evaluation. - -## Define tasks to be performed pre/post deployment - -Tasks are resources that are defined in a -[KeptnTaskDefinition](../reference/crd-reference/taskdefinition.md) -file. -In our example, the tasks are defined in the -[keptn-tasks.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/keptn-tasks.yaml) -file. -As an example, -we have a `notify` task that composes some Markdown text -to be sent as Slack notifications -The `KeptnTaskDefinition` looks like this: - -```yaml -apiVersion: lifecycle.keptn.sh/v1alpha3 -kind: KeptnTaskDefinition -metadata: - name: notify -spec: - function: - inline: - code: | - - secureParameters: - secret: slack-notification -``` - -The code to be executed is expressed as a -[Deno](https://deno.com) -script, which uses JavaScript syntax. -It can be embedded in the definition file -or pulled in from a remote webserver that is specified. -For this example, the code to be executed is embedded in this file -although, in practice, -this script would probably be located on a remote webserver. - -Note that, beginning with Keptn 0.8.0, -you can also use Python 3 to define your task, -or you can define a standard Kubernetes container -that uses the image, runner, and runtime dependencies that you choose. -For more information, see -[Working with Keptn tasks](../guides/tasks.md). - -You can view the actual JavaScript code for the task in the repository. -You see that "context" is important in this code. -This refers to the context in which this code executes -- -for which application, for which version, for which workload. - -Because the slack server that is required to execute this task -is protected by a secret, the task definition also specifies that secret. - -## Integrate evaluations and tasks into the cluster - -Follow the instructions in -[Annotate workload](../guides/integrate.md#prepost-deployment-checks) -to integrate the evaluations and tasks you defined -into the cluster -by applying annotations to the `Deployment` resource. -See the -[simplenode-dev-deployment.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/simplenode-dev-deployment.yaml) -file for an example. diff --git a/docs-new/docs/getting-started/metrics.md b/docs-new/docs/getting-started/metrics.md index 7decb6ec69..0b5f016861 100644 --- a/docs-new/docs/getting-started/metrics.md +++ b/docs-new/docs/getting-started/metrics.md @@ -38,22 +38,6 @@ or just look at it for examples as you implement the functionality "from scratch" on your local Kubernetes deployment cluster. -This is the first of three exercises in the -[Introducing Keptn](index.md) -series. -After completing this exercise, -you may want to do the other exercises: - -- In [Standardize observability](../core-concepts/usecase-observability.md), - you learn how to standardize access - to the observability data for your cluster. -- In - [Manage release lifecycle](../core-concepts/usecase-orchestrate.md), - you learn how to implement - pre- and post-deployment tasks and evaluations - to orchestrate the flow of all the [workloads](https://kubernetes.io/docs/concepts/workloads/) - that are part of your `application`. - The steps to implement metrics in an existing cluster are: 1. [Install Keptn](../installation/index.md) diff --git a/docs-new/docs/reference/crd-reference/app.md b/docs-new/docs/reference/crd-reference/app.md index d7ddfa688e..3f87d53a3f 100644 --- a/docs-new/docs/reference/crd-reference/app.md +++ b/docs-new/docs/reference/crd-reference/app.md @@ -170,6 +170,7 @@ spec: - [Working with tasks](../../guides/tasks.md) - [Architecture of KeptnWorkloads and KeptnTasks](../../components/lifecycle-operator/keptn-apps.md) - [Pre- and post-deployment tasks](../../guides/integrate.md#prepost-deployment-checks) -- [Orchestrate deployment checks](../../core-concepts/usecase-orchestrate.md) +- Getting started with + [Release Lifecycle Management](../../getting-started/lifecycle-management.md) - [Use Keptn automatic app discovery](../../guides/auto-app-discovery.md) - [Restart an Application Deployment](../../guides/restart-application-deployment.md) diff --git a/docs-new/docs/reference/crd-reference/taskdefinition.md b/docs-new/docs/reference/crd-reference/taskdefinition.md index 698d834bae..c53b5ebabe 100644 --- a/docs-new/docs/reference/crd-reference/taskdefinition.md +++ b/docs-new/docs/reference/crd-reference/taskdefinition.md @@ -607,5 +607,6 @@ This modifies the synopsis in the following ways: * [Working with tasks](../../guides/tasks.md) * [Pre- and post-deployment tasks](../../guides/integrate.md#prepost-deployment-checks) * [KeptnApp and KeptnWorkload resources](../../components/lifecycle-operator/keptn-apps.md). -* [Orchestrate deployment checks](../../core-concepts/usecase-orchestrate.md) +* Getting started with + [Release Lifecycle Management](../../getting-started/lifecycle-management.md) * [Executing sequential tasks](../../guides/tasks.md#executing-sequential-tasks) diff --git a/docs/content/en/_index.md b/docs/content/en/_index.md index 8ee4ef46fa..e182564270 100644 --- a/docs/content/en/_index.md +++ b/docs/content/en/_index.md @@ -46,9 +46,9 @@ cascade:
-## Use Cases +## Use cases -We extend the K8s APIs with the following Use Cases: +We extend the K8s APIs with the following use cases:
{{% blocks/feature icon="home homeobservability" title="Deployment Observability" %}} diff --git a/docs/content/en/docs/core-concepts/_index.md b/docs/content/en/docs/core-concepts/_index.md index 8bf618e732..36e6d2e4b7 100644 --- a/docs/content/en/docs/core-concepts/_index.md +++ b/docs/content/en/docs/core-concepts/_index.md @@ -1,6 +1,6 @@ --- title: Core Concepts -description: An introduction to Keptn and the usecases. +description: An introduction to Keptn and the use cases. weight: 10 --- @@ -68,8 +68,8 @@ deployment durations and failures across multiple deployment strategies. [DORA metrics](../guides/dora.md) and exposes them as OpenTelemetry metrics out of the box. -* Reports traces and custom Keptn metrics from configured data providers - using OpenTelemetry. +* Uses OpenTelemetry to Report traces and custom Keptn metrics + from all data providers that are configured in your cluster. * Enables monitoring of new logs from log monitoring solutions. @@ -87,7 +87,6 @@ to ensure that your deployments are observable. To learn more, see: * [Getting started with Keptn Observability](../getting-started/observability.md) -* [Standardize observability](usecase-observability.md/) * [DORA metrics](../guides/dora.md) User Guide * [OpenTelemetry observability](../guides/otel.md) User Guide @@ -137,5 +136,4 @@ For more information, see: * [Getting started with release lifecycle management](../getting-started/lifecycle-management.md) * [Deployment tasks](../guides/tasks.md) User Guide * [Evaluations](../guides/evaluations.md) User Guide -* [Manage release lifecycle](usecase-orchestrate.md) * [KeptnApp and KeptnWorkload resources](../components/lifecycle-operator/keptn-apps.md) diff --git a/docs/content/en/docs/core-concepts/usecase-observability.md b/docs/content/en/docs/core-concepts/usecase-observability.md deleted file mode 100644 index 0e88d53b7d..0000000000 --- a/docs/content/en/docs/core-concepts/usecase-observability.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: Standardize observability -description: How Keptn standardizes access to observability data for Kubernetes deployments -weight: 10 ---- - -Keptn makes any Kubernetes deployment observable. -In other words, it creates a distributed, end-to-end trace -of everything Kubernetes does in the context of a Deployment. -It provides this information -for all applications running in your cluster, -and includes information about -everything Kubernetes does in the context of a deployment. -To do this, -Keptn introduces the concept of an `application`, -which is an abstraction that connects multiple -workloads that logically belong together, -even if they use different deployment strategies. - -This means that: - -- You can readily see why a deployment takes so long - or why it fails, even when using multiple deployment strategies. -- Keptn can capture DORA metrics and expose them as OpenTelemetry metrics - -The observability data is an amalgamation of the following: - -- DORA metrics are collected out of the box when Keptn is enabled -- OpenTelemetry runs traces that show - everything that happens in the Kubernetes cluster -- Custom Keptn metrics that you can use to monitor - information from all the data providers configured in your cluster - -All this information can be displayed with dashboard tools -such as Grafana. - -## Using this exercise - -This exercise shows how to standardize access -to the observability data for your cluster. -It is based on the -[simplenode-dev](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd) -example. - -This is the second of three exercises in the -[Introducing Keptn](_index.md) -series: - -- In the - [Getting started with Keptn metrics](../getting-started/metrics.md) - exercise, you learn how to define and use Keptn metrics. - You may want to complete that exercise before doing this exercise - although that is not required. -- In - [Manage release lifecycle](usecase-orchestrate.md), - you learn how to implement - pre- and post-deployment tasks and evaluations - to orchestrate the flow of all the [workloads](https://kubernetes.io/docs/concepts/workloads/) - that are part of your `application`. - -This exercise shows how to standardize access -to the observability data for your cluster. - -If you are installing Keptn on an existing cluster -or on a local cluster you are creating for this exercise, -you need to do the following: - -1. Follow the instructions in - [Install and update](../installation) - to install and enable Keptn on your cluster. -1. Follow the instructions in - [Basic annotations](../guides/integrate.md#basic-annotations) - to integrate Keptn into your Kubernetes cluster - by applying basic annotations - to your [workload](https://kubernetes.io/docs/concepts/workloads/) resources. - and to create appropriate - [KeptnApp](../reference/crd-reference/app.md) - resources that aggregate - all the [workloads](https://kubernetes.io/docs/concepts/workloads/) for a logical deployment into a single resource. - -## DORA metrics - -DORA metrics are an industry-standard set of measurements -about your deployments. - -Keptn starts collecting these metrics -as soon as you annotate the `Deployment` resource. -See -[DORA metrics](../guides/dora.md) -for more details. - -## Using OpenTelemetry - -Keptn extends the Kubernetes -primitives to create OpenTelemetry data -that connects all your deployment and observability tools -without worrying about where it is stored and where it is managed. -OpenTelemetry traces collect data as Kubernetes is deploying the changes, -which allows you to trace everything done in the context of that deployment. - -- You must have an OpenTelemetry collector installed on your cluster. - See - [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) - for more information. -- Follow the instructions in - [OpenTelemetry observability](../guides/otel.md) - to configure where your OpenTelemetry data is sent. - This requires you to define a [KeptnConfig](../reference/crd-reference/config.md) resource - that defines the URL and port of the OpenTelemetry collector. - For our example, this is in the - [keptnconfig.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/setup/keptn/keptnconfig.yaml) - file. - -## Keptn metrics - -You can supplement the DORA Metrics and OpenTelemetry information -with information you explicitly define using Keptn metrics. -The -[Getting started with Keptn metrics](../getting-started/metrics.md) -exercise discusses how to define Keptn metrics. - -## View the results - -To start feeding observability data for your deployments -onto a dashboard of your choice: - -1. Modify either your `Deployment` or `KeptnApp` resource yaml file - to increment the version number -1. Commit that change to your repository. - -Note that, from the `KeptnApp` YAML file, -you can either increment the version number of the application -(which causes all [workloads](https://kubernetes.io/docs/concepts/workloads/) to be rerun and produce observability data) -or you can increment the version number of a single [workload](https://kubernetes.io/docs/concepts/workloads/), -(which causes just that [workload](https://kubernetes.io/docs/concepts/workloads/) -to be rerun and produce observability data). - -The videos that go with this exercise show how the -DORA, OpenTelemetry, and Keptn metrics information -appears on a Grafana dashboard with -[Jaeger](https://grafana.com/docs/grafana-cloud/data-configuration/metrics/prometheus-config-examples/the-jaeger-authors-jaeger/). - -If you also have the Jaeger extension for Grafana installed on your cluster, -you can view the full end-to-end trace for everything -that happens in your deployment. -For more information, see -[Monitoring Jaeger](https://www.jaegertracing.io/docs/1.45/monitoring/). diff --git a/docs/content/en/docs/core-concepts/usecase-orchestrate.md b/docs/content/en/docs/core-concepts/usecase-orchestrate.md deleted file mode 100644 index aa7eef70cf..0000000000 --- a/docs/content/en/docs/core-concepts/usecase-orchestrate.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: Manage release lifecycle -description: How Keptn orchestrates pre- and post-deployment evaluations and tasks -weight: 20 ---- - -In this exercise, we will configure Keptn -to run deployment checks as part of your deployment. -Whether you are deploying your software with -Argo, Flux, another deployment engine, or even `kubectl apply`, -Keptn can do the following: - -* Pre-deploy: Validate external dependencies, - confirm that images are scanned, and so forth - -* Post-deploy: Execute tests, notify stakeholders, - promote to the next stage - -* Automatically validate against your SLO (Service Level Objectives) - -Keptn sits on top of the Kubernetes scheduler -and can do the following: - -* Trace the deployment from start to end -* Keptn is application aware, - so can extend the deployment with tasks and evaluations that - are run either before or after your whole application starts the deployment - or at the individual [workload](https://kubernetes.io/docs/concepts/workloads/) level. -* Validate any Keptn metric, - either pre- or post-deployment, - using the metrics from the Keptn Metrics Server introduced in - [Getting started with Keptn metrics](../getting-started/metrics.md). - -This means that you can be sure that the environment is healthy -and has adequate resources before you begin the deployment. -After the deployment succeeds, -use Keptn metrics to confirm that your deployed software is really healthy -- -not just that the pods are running but validate against SLOs -such as performance and user experience. -You can also check for new logs that came in from a log monitoring solution. - -## Using this exercise - -This exercise shows how to implement -pre- and post-deployment evaluations and tasks -for your application. -It is based on the -[simplenode-dev](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd) -example. - -The steps to implement pre- and post-deployment orchestration are: - -* [Using this exercise](#using-this-exercise) -* [Define evaluations to be performed pre- and post-deployment](#define-evaluations-to-be-performed-pre--and-post-deployment) -* [Define tasks to be performed pre- and post-deployment](#define-tasks-to-be-performed-pre--and-post-deployment) -* [Integrate evaluations and tasks into the cluster](#integrate-evaluations-and-tasks-into-the-cluster) - -This is the third of three exercises in the -[Introducing Keptn](_index.md) -series. -You may want to complete the other exercises before doing this exercise -although that is not required: - -* In the - [Getting started with Keptn metrics](../getting-started/metrics.md) - exercise, you learn how to define and use Keptn metrics. -* In [Standardize observability](usecase-observability.md), - you learn how to standardize access - to the observability data for your cluster. - -If you are installing Keptn on an existing cluster -or in a local cluster you are creating for this exercise -and did not previously set up your cluster for the -[Standardize observability](usecase-observability.md) exercise, -you need to do the following: - -1. Follow the instructions in - [Install and update](../installation/_index.md) - to install and enable Keptn on your cluster. -1. Follow the instructions in - [Annotate workload](../guides/integrate.md#basic-annotations) - to integrate Keptn into your Kubernetes cluster - by applying basic annotations to your `Deployment` resource. - This also creates appropriate - [KeptnApp](../reference/crd-reference/app.md) resources - which aggregate [workloads](https://kubernetes.io/docs/concepts/workloads/) that are combined into the released product, - regardless of the tools being used. - -## Define evaluations to be performed pre- and post-deployment - -An `evaluation` is a KeptnMetric that has a defined target value. -Evaluations are resources that are defined in a -[KeptnEvaluationDefinition](../reference/crd-reference/evaluationdefinition.md) -yaml file. -In our example, evaluations are defined in the -[keptn-evaluations.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/keptn-evaluations.yaml) -file. -For example, the definition of the `evaluate-dependencies` evaluation -looks like this: - -```yaml -apiVersion: lifecycle.keptn.sh/v1alpha3 -kind: KeptnEvaluationDefinition -metadata: - name: evaluate-dependencies - namespace: simplenode-dev -spec: - objectives: - - keptnMetricRef: - name: available-cpus - namespace: simplenode-dev - evaluationTarget: ">4" -``` - -You see that the `available-cpus` metric is defined in the -[keptn-metric.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/keptn-metric.yaml) -file. -The `evaluationTarget` is set to be `>4`, -so this evaluation makes sure that more than 4 CPUs are available. -You could include objectives and additional metrics in this evaluation. - -## Define tasks to be performed pre- and post-deployment - -Tasks are resources that are defined in a -[KeptnTaskDefinition](../reference/crd-reference/taskdefinition.md) -file. -In our example, the tasks are defined in the -[keptn-tasks.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/keptn-tasks.yaml) -file. -As an example, -we have a `notify` task that composes some Markdown text -to be sent as Slack notifications -The `KeptnTaskDefinition` looks like this: - -```yaml -apiVersion: lifecycle.keptn.sh/v1alpha3 -kind: KeptnTaskDefinition -metadata: - name: notify -spec: - function: - inline: - code: | - - secureParameters: - secret: slack-notification -``` - -The code to be executed is expressed as a -[Deno](https://deno.com) -script, which uses JavaScript syntax. -It can be embedded in the definition file -or pulled in from a remote webserver that is specified. -For this example, the code to be executed is embedded in this file -although, in practice, -this script would probably be located on a remote webserver. - -Note that, beginning with Keptn 0.8.0, -you can also use Python 3 to define your task, -or you can define a standard Kubernetes container -that uses the image, runner, and runtime dependencies that you choose. -For more information, see -[Working with Keptn tasks](../guides/tasks.md). - -You can view the actual JavaScript code for the task in the repository. -You see that "context" is important in this code. -This refers to the context in which this code executes -- -for which application, for which version, for which workload. - -Because the slack server that is required to execute this task -is protected by a secret, the task definition also specifies that secret. - -## Integrate evaluations and tasks into the cluster - -Follow the instructions in -[Annotate workload](../guides/integrate.md#pre--and-post-deployment-checks) -to integrate the evaluations and tasks you defined -into the cluster -by applying annotations to the `Deployment` resource. -See the -[simplenode-dev-deployment.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/simplenode-dev-deployment.yaml) -file for an example. diff --git a/docs/content/en/docs/getting-started/metrics.md b/docs/content/en/docs/getting-started/metrics.md index 15512b46bb..ccddf94792 100644 --- a/docs/content/en/docs/getting-started/metrics.md +++ b/docs/content/en/docs/getting-started/metrics.md @@ -42,22 +42,6 @@ or just look at it for examples as you implement the functionality "from scratch" on your local Kubernetes deployment cluster. -This is the first of three exercises in the -[Introducing Keptn](_index.md) -series. -After completing this exercise, -you may want to do the other exercises: - -- In [Standardize observability](../core-concepts/usecase-observability.md), - you learn how to standardize access - to the observability data for your cluster. -- In - [Manage release lifecycle](../core-concepts/usecase-orchestrate.md), - you learn how to implement - pre- and post-deployment tasks and evaluations - to orchestrate the flow of all the [workloads](https://kubernetes.io/docs/concepts/workloads/) - that are part of your `application`. - The steps to implement metrics in an existing cluster are: 1. [Install Keptn](../installation/_index.md) diff --git a/docs/content/en/docs/guides/evaluations.md b/docs/content/en/docs/guides/evaluations.md index c114724c2c..a86f188833 100644 --- a/docs/content/en/docs/guides/evaluations.md +++ b/docs/content/en/docs/guides/evaluations.md @@ -4,6 +4,8 @@ description: Understand Keptn evaluations and how to use them weight: 700 --- +## KeptnEvaluationDefinition + A [KeptnEvaluationDefinition](../reference/crd-reference/evaluationdefinition.md) resource contains a list of `objectives`, @@ -26,6 +28,8 @@ This is defined in the example file: {{< embed path="/examples/sample-app/base/metric.yaml" >}} +## Run an evaluation + To run an evaluation on one of your [Workloads](https://kubernetes.io/docs/concepts/workloads/) ([Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/), diff --git a/docs/content/en/docs/reference/crd-reference/app.md b/docs/content/en/docs/reference/crd-reference/app.md index e4b2b614d2..7f8fb24588 100644 --- a/docs/content/en/docs/reference/crd-reference/app.md +++ b/docs/content/en/docs/reference/crd-reference/app.md @@ -173,6 +173,7 @@ spec: - [Working with tasks](../../guides/tasks.md) - [Architecture of KeptnWorkloads and KeptnTasks](../../components/lifecycle-operator/keptn-apps.md) - [Pre- and post-deployment tasks](../../guides/integrate.md#pre--and-post-deployment-checks) -- [Orchestrate deployment checks](../../core-concepts/usecase-orchestrate.md) +- Getting started with + [Release Lifecycle Management](../../getting-started/lifecycle-management.md) - [Use Keptn automatic app discovery](../../guides/auto-app-discovery.md) - [Restart an Application Deployment](../../guides/restart-application-deployment.md) diff --git a/docs/content/en/docs/reference/crd-reference/taskdefinition.md b/docs/content/en/docs/reference/crd-reference/taskdefinition.md index a4a63f9994..921b60abf4 100644 --- a/docs/content/en/docs/reference/crd-reference/taskdefinition.md +++ b/docs/content/en/docs/reference/crd-reference/taskdefinition.md @@ -611,5 +611,6 @@ This modifies the synopsis in the following ways: * [Working with tasks](../../guides/tasks.md) * [Pre- and post-deployment tasks](../../guides/integrate.md#pre--and-post-deployment-checks) * [KeptnApp and KeptnWorkload resources](../../components/lifecycle-operator/keptn-apps.md). -* [Orchestrate deployment checks](../../core-concepts/usecase-orchestrate.md) +* Getting started with + [Release Lifecycle Management](../../getting-started/lifecycle-management.md) * [Executing sequential tasks](../../guides/tasks.md#executing-sequential-tasks) diff --git a/mkdocs.yml b/mkdocs.yml index 85fcc14882..606e7c8560 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -65,8 +65,6 @@ nav: - docs/index.md - Core Concepts: - docs/core-concepts/index.md - - Standardize Observability: docs/core-concepts/usecase-observability.md - - Manage Release Lifecycle Observability: docs/core-concepts/usecase-orchestrate.md - Get Started: - docs/getting-started/index.md - Keptn Metrics: docs/getting-started/metrics.md