From 1eda748dd4deed4ba75880623a1303582efece1c Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Mon, 22 May 2023 23:59:50 -0700 Subject: [PATCH 01/33] final polish of getting started guides Signed-off-by: Meg McRoberts --- .../content/en/docs/getting-started/_index.md | 33 ++++++++++--- .../en/docs/getting-started/metrics/_index.md | 4 +- .../getting-started/observability/_index.md | 46 +++++++++++-------- .../getting-started/orchestrate/_index.md | 11 ++--- docs/content/en/docs/install/install.md | 9 ++++ 5 files changed, 68 insertions(+), 35 deletions(-) diff --git a/docs/content/en/docs/getting-started/_index.md b/docs/content/en/docs/getting-started/_index.md index 2f6b5ad331..fe7b98a587 100644 --- a/docs/content/en/docs/getting-started/_index.md +++ b/docs/content/en/docs/getting-started/_index.md @@ -13,17 +13,36 @@ This section provides excercises to introduce you to the Keptn Lifecycle Toolkit. Choose the exercise that interest you the most. -The [Introducing Keptn Lifecycle Toolkit](https://youtu.be/449HAFYkUlY) -video discusses three common use cases for the Lifecycle Toolkit +## Introducing the Keptn Lifecycle Toolkit + +This exercise introduces three common use cases for the Lifecycle Toolkit and walks you through the implementation process for each. -The following exercises provide more detailed instructions -for implementing these use cases: +We recommend that you do all three exercises in order +but you can do any of the independently. * [Getting started with Keptn metrics](metrics) * [Standardize access to observability data](observability) -* [Orchestrate deployment checks](orchestrate) +* [Manage the release cycle](orchestrate) + +These exercises are based on the +[simplenode-dev](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd) +example. +You can clone that repo to access it locally +or just look at it for examples +as you implement the functionality "from scratch" +on your local Kubernetes deployment cluster. +The +[README](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/setup/observability/README.md) +file for that repo contains useful information. + +Two videos are available +to walk you through this exercise if you prefer: + +- [Introducing Keptn Lifecycle Toolkit](https://youtu.be/449HAFYkUlY) +- [Use SLOs and get DORA the Native K8s way!](https://www.youtube.com/watch?v=zeEC0475SOU) If you prefer, [Getting started with Lifecycle Toolkit](generic-gs) -provides an exercise that introduces you to -all the things KLT can do. +provides a more detailed exercise +for managing the release lifecycle +with pre- and post-deployment evaluations and tasks diff --git a/docs/content/en/docs/getting-started/metrics/_index.md b/docs/content/en/docs/getting-started/metrics/_index.md index 22b7388d6b..be6ec85317 100644 --- a/docs/content/en/docs/getting-started/metrics/_index.md +++ b/docs/content/en/docs/getting-started/metrics/_index.md @@ -1,6 +1,6 @@ --- -title: Getting started with Keptn metrics -description: Learn how Keptn metrics enhances your deployment +title: Custom Keptn metrics +description: Enhance your deployment with custom Keptn metrics weight: 25 --- diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index cccb7c8fbe..ed2498f3d5 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -1,17 +1,32 @@ --- -title: Standardize access to observability data -description: Learn how the Keptn Lifecycle Toolkit provides observability for Kubernetes deployments +title: Standardize observability +description: How the KLT standardizes access to observability data for Kubernetes deployments weight: 45 --- The Keptn Lifecycle Toolkit (KLT) makes any Kubernetes deployment observable. -You can readily see why a deployment takes so long or why it fails, -even when using multiple deployment tools. -Keptn introduces a concept of an application -which is an abstraction that connects multiple -Workloads belonging together. -In other words, KLT, creates a distributed end-to-end trace +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, +even if they use different tools. +This means that: + +- You can readily see why a deployment takes so long + or why it fails, even when using multiple deployment tools. +- KLT can capture metrics from multiple data sources + using multiple data platforms. + +To do this, +Keptn introduces the concept of an `application`, +which is an abstraction that connects multiple +Workloads that logically belong together. + +With KLT deployed on your cluster, +you can easily monitor what is happening +during a deployment into your Kuberenetes cluster, +and quickly get data to help you understand issues such as +why a deployment took so long or why it failed. The observability data is an amalgamation of the following: @@ -20,19 +35,9 @@ The observability data is an amalgamation of the following: - OpenTelemetry runs traces that show everything that happens in the Kubernetes cluster and can display this information with dashboard tools such as Grafana. -- Specific metrics that you can define to monitor +- Custom Keptn metrics that you can define to monitor information from all the data providers configured in your cluster. -The Keptn Lifecycle Toolkit can provide this information -for all applications running in your cluster, -even if they are using different deployment tools. -And it can capture metrics from multiple data sources -using multiple data platforms. -With KLT deployed on your cluster, -you can easily monitor what is happening during a deployment into your Kuberenetes cluster, -and quickly get data to help you understand issues such as -why a deployment took so long or why it failed. - ## Using this exercise This exercise shows how to standardize access @@ -111,7 +116,8 @@ To install and enable the Keptn Lifecycle Toolkit on your cluster: ## Integrate the Lifecycle Toolkit with your applications -The Keptn Lifecycle Toolkit sits in the scheduler +The Keptn Lifecycle Toolkit works +on top of the default scheduler for the cluster so it can trace all activities of all deployment workloads on the cluster, no matter what tool is used for the deployment. This same mechanism allows KLT to inject pre- and post-deployment checks diff --git a/docs/content/en/docs/getting-started/orchestrate/_index.md b/docs/content/en/docs/getting-started/orchestrate/_index.md index 4549f1f085..3641218b82 100644 --- a/docs/content/en/docs/getting-started/orchestrate/_index.md +++ b/docs/content/en/docs/getting-started/orchestrate/_index.md @@ -1,6 +1,6 @@ --- -title: Orchestrating pre- and post-deployment tasks and evaluations -description: Learn how the Keptn Lifecycle Toolkit can orchestrate deployment checks. +title: Manage release lifecycle +description: How KLT orchestrates pre- and post-deployment evaluations and tasks weight: 55 --- @@ -18,11 +18,10 @@ the Lifecycle Toolkit can do the following: * Automatically validate against your SLO (Service Level Objectives) -KLT sits in the Kubernetes scheduler and can trace the deployment -from start to end. +KLT sits on top of the Kubernetes scheduler +and can trace the deployment from start to end. KLT is also application aware, -so we can extend the deployment -with tasks and evaluations that +so we can extend the deployment with tasks and evaluations that are run either before or after your whole application starts the deployment or even at the individual workload level. You can also validate any metric, diff --git a/docs/content/en/docs/install/install.md b/docs/content/en/docs/install/install.md index 5b762e75a3..db4c1d5fe2 100644 --- a/docs/content/en/docs/install/install.md +++ b/docs/content/en/docs/install/install.md @@ -5,6 +5,15 @@ weight: 35 hidechildren: false # this flag hides all sub-pages in the sidebar-multicard.html --- +The Keptn Lifecycle Toolkit must be installed, enabled, and integrated +into each cluster you want to monitor; +it can not be installed in a separate cluster. +This is because KLT communicates with the Kubernetes scheduler +for tasks such as enforcing checks natively, +stopping a deployment from proceeding when criteria are not met, +and doing post-deployment evaluations, +and tracing all activities of all deployment workloads on the cluster. + Two methods are supported for installing the Keptn Lifecycle Toolkit (KLT): * Releases v0.7.0 and later can be installed using From f50cc871aa682075258f9a64c5228216e200e6cd Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 03:06:37 -0700 Subject: [PATCH 02/33] common installation instructions Signed-off-by: Meg McRoberts --- .../content/en/docs/getting-started/_index.md | 22 ++- .../getting-started/observability/_index.md | 174 ++++-------------- .../getting-started/orchestrate/_index.md | 167 +++++++---------- .../en/docs/implementing/integrate/_index.md | 80 +++++--- docs/content/en/docs/install/_index.md | 38 +++- docs/content/en/docs/install/install.md | 15 +- 6 files changed, 216 insertions(+), 280 deletions(-) diff --git a/docs/content/en/docs/getting-started/_index.md b/docs/content/en/docs/getting-started/_index.md index fe7b98a587..c94c97baec 100644 --- a/docs/content/en/docs/getting-started/_index.md +++ b/docs/content/en/docs/getting-started/_index.md @@ -33,16 +33,24 @@ as you implement the functionality "from scratch" on your local Kubernetes deployment cluster. The [README](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/setup/observability/README.md) -file for that repo contains useful information. +file for that repo contains additional information. + +You can run these exercises on an existing Kubernetes cluster +or you can create a new cluster. +For personal study and demonstrations, +these exercises run well on a local Kubernetes cluster. +See [Bring or Install a Kubernetes Cluster](../../install/k8s.md). Two videos are available -to walk you through this exercise if you prefer: +to introduce these exercises: + +* [Introducing Keptn Lifecycle Toolkit](https://youtu.be/449HAFYkUlY) +* [Use SLOs and get DORA the Native K8s way!](https://www.youtube.com/watch?v=zeEC0475SOU) -- [Introducing Keptn Lifecycle Toolkit](https://youtu.be/449HAFYkUlY) -- [Use SLOs and get DORA the Native K8s way!](https://www.youtube.com/watch?v=zeEC0475SOU) +## Getting started with Lifecycle Toolkit -If you prefer, +The [Getting started with Lifecycle Toolkit](generic-gs) -provides a more detailed exercise +exercise provides a more detailed exercise for managing the release lifecycle -with pre- and post-deployment evaluations and tasks +with pre- and post-deployment evaluations and tasks. diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index ed2498f3d5..d6c1684272 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -45,146 +45,51 @@ 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. -You can clone that repo to access it locally -or just look at it for examples -as you implement the functionality "from scratch" -on your local Kubernetes deployment cluster. -The -[README](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/setup/observability/README.md) -file for that repo contains useful information. - -Two videos are available -to walk you through this exercise if you prefer: -- [Introducing Keptn Lifecycle Toolkit](https://youtu.be/449HAFYkUlY) -- [Use SLOs and get DORA the Native K8s way!](https://www.youtube.com/watch?v=zeEC0475SOU) - -In the -[Getting started with Keptn metrics](../metrics) -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. +This is the second of three exercises in the +[Introducing the Keptn Lifecycle Toolkit](##introducing-the-keptn-lifecycle-toolkit) +series: + +- In the + [Getting started with Keptn metrics](../metrics) + 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](../orchestrate), + you learn how to implement + pre- and post-deployment tasks and evaluations + to orchestrate the flow of all the `workloads` + that are part of your `application`. This exercise shows how to standardize access to the observability data for your cluster. -The steps are: - -1. [Install and enable]( #install-and-enable-klt) - the Lifecycle Toolkit on your cluster -1. [Integrate the Lifecycle Toolkit with your applications](#integrate-the-lifecycle-toolkit-with-your-applications) -1. [DORA metrics](#dora-metrics) -1. [Using OpenTelemetry](#using-opentelemetry) -1. [Keptn metrics](#keptn-metrics) -1. [View the results](#view-the-results) -## Install and enable KLT +If you are installing the Keptn Lifecycle Toolkit on an existing cluster +or in a local cluster you are creating for this exercise, +you need to do the following: -To install and enable the Keptn Lifecycle Toolkit on your cluster: - -1. Be sure that your cluster includes the components discussed in - [Prepare your cluster for KLT](../../install/k8s.md/#prepare-your-cluster-for-klt) 1. Follow the instructions in - [Install the Keptn Lifecycle Toolkit](../../install/install.md/#use-helm-chart) - to install KLT on your cluster using the Helm chart - - If you installed KLT on your cluster for the - [Getting started with Keptn metrics](../metrics) - exercise, you do not need to re-install it for this exercise. - However, if you only installed the `metrics-operator` for that exercise, - you now need to install the full KLT. - + [Install and update](../../install) + to install and enable KLT on your cluster. 1. Follow the instructions in - [Enable KLT for your cluster](../../install/install.md/#enable-klt-for-your-cluster) - to enable KLT on your cluster - by annotating the `Namespace` resource.. - See the - [simplenode-dev-ns.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/simplenode-dev-ns.yaml) - file for an example - -1. Run the following command to ensure that your Kuberetes cluster - is ready to complete this exercise: - - ```shell - kubectl get pods -n keptn-lifecycle-toolkit-system - ``` - - You should see pods for the following components: - - certificate-operator (or another cert manager) - - lifecycle-operator - - scheduler - - metrics-operator - -## Integrate the Lifecycle Toolkit with your applications - -The Keptn Lifecycle Toolkit works -on top of the default scheduler for the cluster -so it can trace all activities of all deployment workloads on the cluster, -no matter what tool is used for the deployment. -This same mechanism allows KLT to inject pre- and post-deployment checks -into all deployment workloads; -we discuss this in another exercise. - -KLT uses metadata to identify the workloads of interest. -To integrate KLT with your applications, -you need to populate the metadata it needs. -This requires the following steps: - -- Define a Keptn application -- Annotate the `Deployment` resource to recognize your Keptn application - -### Define the Keptn application - -A Keptn application defines the workloads -to be included in your Keptn Application. -We will use the application discovery feature -to automatically generate a Keptn Application -that includes all workloads on the cluster, -regardless of the tools being used. - -A Keptn application aggregates multiple workloads -that belong to a logical app into a single -[KeptnApp](../../yaml-crd-ref/app.md) -resource. - -You can view a sample of this file in the -[keptn-app.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/keptn-app.yaml.tmp) -file. -You see the metadata that names this `KeptnApp` -and identifies the namespace where it lives: - -```yaml -metadata: - name: simpleapp - namespace: simplenode-dev -``` - -You can also see the `spec.workloads` list. -In this simple example, -we only have one workload defined -but most production apps will have multiple workloads defined. - -You can create the YAML file to define the resource manually -but the easier approach is to let KLT create this definition for you. -This requires that you annotate all your workloads -(`Deployments`, `Pods`, `StatefulSets`, `DaemonSets`, and `ReplicaSets` -as described in -[Use Keptn automatic app discovery](../../implementing/integrate/#use-keptn-automatic-app-discovery). - -### Annotate your Deployment resource - -Follow the instructions in -[Annotate workload](../../implementing/integrate/#basic-annotations) -to apply basic annotations to your `Deployment` resource. - -The -[simplenode-dev-deployment.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/simplenode-dev-deployment.yaml/) -file defines the `Deployment` resource for our example. -You see that the `metadata` specifies the same -`name` and `namespace` values defined in the `KeptnApp` resource. - -The example file also includes annotations for -pre- and post-deployment activities. -We will discuss those in a separate exercise. + [Integrate KLT with your applications](../../implementing/integrate) + to integrate KLT with your Kubernetes cluster: + + - Follow the instructions in + [Annotate workload](../../implementing/integrate/#basic-annotations) + to integrate the Lifecycle Toolkit into your Kubernetes cluster + by applying basic annotations to your `Deployment` resource. + - Follow the instructions in + [Define a Keptn application](../../implementing/integrate/#define-a-keptn-application) + to create a Keptn application that aggragates + all the `workloads` for your deployment into a single + [KeptnApp](../../yaml-crd-ref/app) resource + that includes all workloads on the cluster, + regardless of the tools being used. + For this exercise, we recommend that you + [Use Keptn automatic app discovery](../../implementing/integrate/#use-keptn-automatic-app-discovery) + to automatically generate a Keptn Application. ## DORA metrics @@ -247,11 +152,6 @@ which allows you to trace everything done in the context of that deployment. 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. -- Set the `EXPOSE_KEPTN_METRICS` environment variable - in the `metrics-operator` - -TODO: How to set this env variable in `metrics-operator` - or where is it set in the example? ## Keptn metrics diff --git a/docs/content/en/docs/getting-started/orchestrate/_index.md b/docs/content/en/docs/getting-started/orchestrate/_index.md index 3641218b82..54f6a3d6ee 100644 --- a/docs/content/en/docs/getting-started/orchestrate/_index.md +++ b/docs/content/en/docs/getting-started/orchestrate/_index.md @@ -19,15 +19,18 @@ the Lifecycle Toolkit can do the following: * Automatically validate against your SLO (Service Level Objectives) KLT sits on top of the Kubernetes scheduler -and can trace the deployment from start to end. -KLT is also application aware, -so we can extend the deployment with tasks and evaluations that -are run either before or after your whole application starts the deployment -or even at the individual workload level. -You can also validate any metric, -either pre- or post-deployment, -using the metrics from the Keptn Metrics Server introduced in -[Getting started with Keptn metrics](../metrics). +and can do the following: + +- Trace the deployment from start to end +- KLT 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 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](../metrics). + 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, @@ -38,102 +41,58 @@ You can also check for new logs that came in from a log monitoring solution. ## Using this exercise -This exercise is based on the +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. -You can clone that repo to access it locally -or just look at it for examples -as you implement the functionality "from scratch" -on your local Kubernetes deployment cluster. The steps to implement pre- and post-deployment orchestration are: -1. [Bring or create a Kubernetes cluster](../../install/k8s.md) -1. [Install the Keptn Lifecycle Toolkit and enable it](../../install/install.md) -1. [Integrate KLT with your cluster](../../implementing/integrate/) 1. [Define evaluations to be performed pre- and post-deployment](#define-evaluations-to-be-performed-pre--and-post-deployment) 1. [Define tasks to be performed pre- and post-deployment](#define-tasks-to-be-performed-pre--and-post-deployment) - -## Bring or create a Kubernetes deployment cluster - -You can run this exercise on an existing Kubernetes cluster -or you can create a new cluster. -For personal study and demonstrations, -this exercise runs well on a local Kubernetes cluster. -See [Bring or Install a Kubernetes Cluster](../../install/k8s.md). - -## Install KLT on your cluster - -Install the Keptn Lifecycle Toolkit on your cluster -by executing the following command sequence: - -```shell -helm repo add klt https://charts.lifecycle.keptn.sh -helm repo update -helm upgrade --install keptn klt/klt \ - -n keptn-lifecycle-toolkit-system --create-namespace --wait -``` - -See -[Install KLT](../../install/install.md) -for more information about installing the Lifecycle Toolkit. - -## Enable KLT for your cluster - -To enable KLT for your cluster, annotate the -[Namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) -resource -In this example, this is defined in the -[simplenode-dev-ns.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/simplenode-dev-ns.yaml) -file, which looks like this: - -```yaml -apiVersion: v1 -kind: Namespace -metadata: - name: simplenode-dev - annotations: - keptn.sh/lifecycle-toolkit: "enabled" -``` - -You see the annotation line that enables `lifecycle-toolkit`. -This line tells the webhook to handle the namespace - -## Integrate KLT with your cluster - -To integrate KLT with your cluster, annotate the Kubernetes -[Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) -resource. -In this example, this is defined in the -[simplenode-dev-deployment.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/simplenode-dev-deployment.yaml) -file, which includes the following lines: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: simplenode - namespace: simplenode-dev -... -template: - metadata: - labels: - app: simplenode - app.kubernetes.io/name: simplenodeservice - annotations: - # keptn.sh/app: simpleapp - keptn.sh/workload: simplenode - keptn.sh/version: 1.0.2 - keptn.sh/pre-deployment-evaluations: evaluate-dependencies - keptn.sh/pre-deployment-tasks: notify - keptn.sh/post-deployment-evaluations: evaluate-deployment - keptn.sh/post-deployment-tasks: notify -... -``` - -For more information about using annotations and labels -to integrate KLT into your deployment cluster, see -[Integrate KLT with your applications](../../implementing/integrate/_index.md). +1. [Integrate evaluations and tasks into the cluster](#integrate-evaluations-and-tasks-into-the-cluster) + +This is the third of three exercises in the +[Introducing the Keptn Lifecycle Toolkit](##introducing-the-keptn-lifecycle-toolkit) +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](../metrics) + exercise, you learn how to define and use Keptn metrics. +- In [Standardize observability](../observability), + you learn how to standardize access + to the observability data for your cluster. + +If you are installing the Keptn Lifecycle Toolkit 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](../observability) exercise, +you need to do the following: + +1. Follow the instructions in + [Install and update](../../install) + to install and enable KLT on your cluster. +1. Follow the instructions in + [Integrate KLT with your applications](../../implementing/integrate) + to integrate KLT with your Kubernetes cluster: + + - Follow the instructions in + [Annotate workload](../../implementing/integrate/#basic-annotations) + to integrate the Lifecycle Toolkit into your Kubernetes cluster + by applying basic annotations to your `Deployment` resource. + - Follow the instructions in + [Define a Keptn application](../../implementing/integrate/#define-a-keptn-application) + to create a + [KeptnApp](../../yaml-crd-ref/app) resource + that includes all workloads on the cluster, + regardless of the tools being used. + For this exercise, we recommend that you + [Use Keptn automatic app discovery](../../implementing/integrate/#use-keptn-automatic-app-discovery) + to automatically generate a Keptn Application. ## Define evaluations to be performed pre- and post-deployment @@ -213,3 +172,15 @@ 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](../../implementing/integrate/#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/implementing/integrate/_index.md b/docs/content/en/docs/implementing/integrate/_index.md index 800b504a50..ccc0d29110 100644 --- a/docs/content/en/docs/implementing/integrate/_index.md +++ b/docs/content/en/docs/implementing/integrate/_index.md @@ -7,44 +7,35 @@ weight: 45 hidechildren: false # this flag hides all sub-pages in the sidebar-multicard.html --- -Use Kubernetes annotations and labels -to integrate the Keptn Lifecycle Toolkit into your Kubernetes cluster. - -The Keptn Lifecycle Toolkit monitors resources +The Keptn Lifecycle Toolkit works +on top of the default scheduler for the cluster +so it can trace all activities of all deployment workloads on the cluster, +no matter what tool is used for the deployment. +This same mechanism allows KLT to inject pre- and post-deployment checks +into all deployment workloads. +KLT monitors resources that have been applied into the Kubernetes cluster and reacts if it finds a workload with special annotations/labels. -This is a four-step process: +The Keptn Lifecycle Toolkit uses metadata +to identify the workloads of interest. + +To integrate KLT with your applications, +you need to populate the metadata it needs +with either Keptn or Kubernetes annotations and labels. + +This is a requires two steps: -* [Enable the target namespace](#enable-target-namespace) * [Annotate your workload(s)](#annotate-workloads) * Define a Keptn application that references those workloads. You have two options: - * [Define Keptn resources](#define-keptn-custom-resources-for-the-application) + * [Define KeptnApp manually](#define-keptnapp-manually) for the application * [Use the Keptn automatic app discovery capability](#use-keptn-automatic-app-discovery) that enables the observability features provided by the Lifecycle Toolkit for existing applications, without requiring you to manually create any KeptnApp resources. -## Enable target namespace - -To enable the Keptn Lifecycle Controller in your cluster, -annotate the Kubernetes -[Namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/); -for example: - -```yaml -apiVersion: v1 -kind: Namespace -metadata: - name: simplenode-dev - annotations: - keptn.sh/lifecycle-toolkit: "enabled" -``` - -This annotation tells the webhook to handle the namespace. - ## Annotate workload(s) To annotate your @@ -64,6 +55,10 @@ If KLT finds any of hese resources and the resource has either the keptn.sh or the kubernetes recommended labels, it creates a `KeptnWorkload` resource for the version it detects. +> Note: Annotations are not required if you are only using the + `metrics-operator` component of KLT + to implement Keptn metrics. + ### Basic annotations The basic keptn.sh annotations are: @@ -145,6 +140,14 @@ the post-deployment checks start. ## Define a Keptn application +A Keptn application defines the workloads +to be included in your Keptn Application. +It does this by aggregating multiple workloads +that belong to a logical app into a single +[KeptnApp](../../yaml-crd-ref/app.md) +resource. + + You have two options: * Create a [KeptnApp](../../yaml-crd-ref/app.md) resource @@ -158,15 +161,36 @@ the post-deployment checks start. for existing applications, without requiring you to manually create any KeptnApp resources -### Define Keptn custom resources for the application +### Define KeptnApp manually -Manually create a YAML file for the +You can manually create a YAML file for the [KeptnApp](../../yaml-crd-ref/app.md) resource that references the workloads to be included along with any [KeptnTaskDefinition](../../yaml-crd-ref/taskdefinition.md) and [KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md) -resource that you want +resources that you want. + +See the +[keptn-app.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/keptn-app.yaml.tmp) +file for an example. +You see the `metadata` that names this `KeptnApp` +and identifies the namespace where it lives: + +```yaml +metadata: + name: simpleapp + namespace: simplenode-dev +``` + +You can also see the `spec.workloads` list +that defines the workloads to be included +and any pre-/post-deployment +tasks and evaluations to be performed. +In this simple example, +we only have one workload and one evaluation defined +but most production apps will have multiple workloads, +multiple tasks, and multiple evaluations defined. ### Use Keptn automatic app discovery diff --git a/docs/content/en/docs/install/_index.md b/docs/content/en/docs/install/_index.md index 5aa6ae0655..987b0f1f6a 100644 --- a/docs/content/en/docs/install/_index.md +++ b/docs/content/en/docs/install/_index.md @@ -1,14 +1,10 @@ --- -title: Installation +title: Installation and upgrade description: Learn how to install, configure, and upgrade the Keptn Lifecycle Toolkit weight: 15 hidechildren: false # this flag hides all sub-pages in the sidebar-multicard.html --- -> **Note** This section is under development. -All material presented here has been reviewed for accuracy -but the content is not yet complete. - This section provides details about how to install and configure the components of the Keptn Lifecycle Toolkit either as a local cluster you use for study, testing, and demonstrations @@ -17,13 +13,43 @@ The steps are: 1. Understand the [Software versions and resources](reqs.md) that are required. +1. Be sure that your cluster includes the components discussed in + [Prepare your cluster for KLT](../../install/k8s.md/#prepare-your-cluster-for-klt). 1. [Bring or create your Kubernetes cluster](k8s.md). 1. [Replace the default cert-manager](cert-manager.md) (optional). This step is only required if you want to replace the default KLT cert-manager with another cert-manager. 1. [Install the Keptn Lifecycle Toolkit](install.md). +1. [Enable KLT for your cluster](install.md/#enable-klt-for-your-cluster) 1. [Enable Keptn Lifecycle Toolkit](install.md/#enable-klt-for-your-cluster). - This step is not required if you only want to run Keptn Metrics. + This step is not required if you only want to run Keptn Metrics + but is required for all other KLT features. + +1. Run the following command to ensure that your Kuberetes cluster + is ready to implement the Lifecycle Toolkit: + + ```shell + kubectl get pods -n keptn-lifecycle-toolkit-system + ``` + + You should see pods for the following components: + - certificate-operator (or another cert manager) + - lifecycle-operator + - scheduler + - metrics-operator + +Unless you are only using the customized Keptn metrics feature, +you now need to: + +- Follow the instructions in + [Annotate workload](../../implementing/integrate/#basic-annotations) + to integrate the Lifecycle Toolkit into your Kubernetes cluster + by applying basic annotations to your `Deployment` resource. +- Follow the instructions in + [Define a Keptn application](../../implementing/integrate/#define-a-keptn-application) + to create a Keptn application that aggragates + all the `workloads` for your deployment into a single + [KeptnApp](../../yaml-crd-ref/app) resource. This section also includes: diff --git a/docs/content/en/docs/install/install.md b/docs/content/en/docs/install/install.md index db4c1d5fe2..96a8fb38ec 100644 --- a/docs/content/en/docs/install/install.md +++ b/docs/content/en/docs/install/install.md @@ -10,7 +10,7 @@ into each cluster you want to monitor; it can not be installed in a separate cluster. This is because KLT communicates with the Kubernetes scheduler for tasks such as enforcing checks natively, -stopping a deployment from proceeding when criteria are not met, +stopping a deployment from proceeding when criteria are not met, and doing post-deployment evaluations, and tracing all activities of all deployment workloads on the cluster. @@ -70,6 +70,11 @@ Some helpful hints: ### Modify Helm configuration options +Helm chart values can be modified before the installation. +This is useful if you want to install only the `metrics-operator` +rather than the full Toolkit +or if you need to change the size of the installation. + To modify configuration options, download a copy of the [helm/chart/values.yaml](https://github.com/keptn/lifecycle-toolkit/blob/main/helm/chart/values.yaml) file, modify some values, and use the modified file to install KLT: @@ -137,10 +142,11 @@ The Lifecycle Toolkit and its dependencies are now installed and ready to use. ## Enable KLT for your cluster -To enable KLT for your cluster, annotate the Kubernetes +To enable the Keptn Lifecycle Controller in your cluster, +annotate the Kubernetes [Namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) resource. -In this example, this is defined in the +For an example of this, see [simplenode-dev-ns.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/simplenode-dev-ns.yaml) file, which looks like this: @@ -154,4 +160,5 @@ metadata: ``` You see the annotation line `keptn.sh/lifecycle-toolkit: "enabled"`. -This line tells KLT to handle the namespace +This annotation tells the webhook to handle the namespace. + From 75598290cc99ae382c7a397fb7b50d54d07ff457 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 03:07:35 -0700 Subject: [PATCH 03/33] markdownlint-fix Signed-off-by: Meg McRoberts --- .../en/docs/getting-started/orchestrate/_index.md | 15 +++++++-------- .../en/docs/implementing/integrate/_index.md | 1 - docs/content/en/docs/install/install.md | 1 - 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/docs/content/en/docs/getting-started/orchestrate/_index.md b/docs/content/en/docs/getting-started/orchestrate/_index.md index 54f6a3d6ee..fcf290f54a 100644 --- a/docs/content/en/docs/getting-started/orchestrate/_index.md +++ b/docs/content/en/docs/getting-started/orchestrate/_index.md @@ -21,12 +21,12 @@ the Lifecycle Toolkit can do the following: KLT sits on top of the Kubernetes scheduler and can do the following: -- Trace the deployment from start to end -- KLT is application aware, +* Trace the deployment from start to end +* KLT 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 level. -- Validate any Keptn metric, +* Validate any Keptn metric, either pre- or post-deployment, using the metrics from the Keptn Metrics Server introduced in [Getting started with Keptn metrics](../metrics). @@ -60,10 +60,10 @@ series. You may want to complete the other exercises before doing this exercise although that is not required: -- In the +* In the [Getting started with Keptn metrics](../metrics) exercise, you learn how to define and use Keptn metrics. -- In [Standardize observability](../observability), +* In [Standardize observability](../observability), you learn how to standardize access to the observability data for your cluster. @@ -80,11 +80,11 @@ you need to do the following: [Integrate KLT with your applications](../../implementing/integrate) to integrate KLT with your Kubernetes cluster: - - Follow the instructions in + * Follow the instructions in [Annotate workload](../../implementing/integrate/#basic-annotations) to integrate the Lifecycle Toolkit into your Kubernetes cluster by applying basic annotations to your `Deployment` resource. - - Follow the instructions in + * Follow the instructions in [Define a Keptn application](../../implementing/integrate/#define-a-keptn-application) to create a [KeptnApp](../../yaml-crd-ref/app) resource @@ -183,4 +183,3 @@ 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/implementing/integrate/_index.md b/docs/content/en/docs/implementing/integrate/_index.md index ccc0d29110..25bd5ee6f9 100644 --- a/docs/content/en/docs/implementing/integrate/_index.md +++ b/docs/content/en/docs/implementing/integrate/_index.md @@ -147,7 +147,6 @@ that belong to a logical app into a single [KeptnApp](../../yaml-crd-ref/app.md) resource. - You have two options: * Create a [KeptnApp](../../yaml-crd-ref/app.md) resource diff --git a/docs/content/en/docs/install/install.md b/docs/content/en/docs/install/install.md index 96a8fb38ec..63448e2148 100644 --- a/docs/content/en/docs/install/install.md +++ b/docs/content/en/docs/install/install.md @@ -161,4 +161,3 @@ metadata: You see the annotation line `keptn.sh/lifecycle-toolkit: "enabled"`. This annotation tells the webhook to handle the namespace. - From a8fd5914771725e97caf6c20cf000b00b333b428 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 03:13:12 -0700 Subject: [PATCH 04/33] fix xref errors Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/observability/_index.md | 2 +- docs/content/en/docs/getting-started/orchestrate/_index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index d6c1684272..9ab8fd9ce9 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -47,7 +47,7 @@ It is based on the example. This is the second of three exercises in the -[Introducing the Keptn Lifecycle Toolkit](##introducing-the-keptn-lifecycle-toolkit) +[Introducing the Keptn Lifecycle Toolkit](../##introducing-the-keptn-lifecycle-toolkit) series: - In the diff --git a/docs/content/en/docs/getting-started/orchestrate/_index.md b/docs/content/en/docs/getting-started/orchestrate/_index.md index fcf290f54a..155c0c3ba7 100644 --- a/docs/content/en/docs/getting-started/orchestrate/_index.md +++ b/docs/content/en/docs/getting-started/orchestrate/_index.md @@ -55,7 +55,7 @@ The steps to implement pre- and post-deployment orchestration are: 1. [Integrate evaluations and tasks into the cluster](#integrate-evaluations-and-tasks-into-the-cluster) This is the third of three exercises in the -[Introducing the Keptn Lifecycle Toolkit](##introducing-the-keptn-lifecycle-toolkit) +[Introducing the Keptn Lifecycle Toolkit](../##introducing-the-keptn-lifecycle-toolkit) series. You may want to complete the other exercises before doing this exercise although that is not required: From 909b3e87a507102c0c1cee6ee5ebdd41af079cd7 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 03:27:46 -0700 Subject: [PATCH 05/33] fixes to otel page Signed-off-by: Meg McRoberts --- docs/content/en/docs/implementing/otel.md | 33 +++++++++++++++-------- docs/content/en/docs/install/k8s.md | 2 +- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/docs/content/en/docs/implementing/otel.md b/docs/content/en/docs/implementing/otel.md index 65d62e2d17..88037c198e 100644 --- a/docs/content/en/docs/implementing/otel.md +++ b/docs/content/en/docs/implementing/otel.md @@ -3,19 +3,30 @@ title: OpenTelemetry observability description: How to standardize access to OpenTelemetry observability data weight: 140 --- -## Using OpenTelemetry with Keptn metrics -Keptn metrics can be exposed as OpenTelemetry (OTel) metrics -via port `9999` of the KLT metrics-operator. +To access OpenTelemetry metrics with the Keptn Lifecycle Toolkit, +you must: + +- Install an OpenTelemetry collector on your cluster. + See + [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) + for more information. +- Apply + [basic annotations](../implementing/integrate/#basic-annotations) + for your `Deployment` resource + to integrate the Lifecycle Toolkit into your Kubernetes cluster. -To expose OTel metrics: +KLT begins to collect OpenTelemetry metrics +as soon as the `Deployment` resource +has the basic annotations to integrate KLT in the cluster. -* Be sure that the `EXPOSE_KEPTN_METRICS` environment variable - in the `metrics-operator` manifest is set to `true`, - which is the default value. -* Define a [KeptnConfig](../yaml-crd-ref/config.md) CRD - that has the `spec.OTelCollectorUrl` field populated - with the URL of the OpenTelemetry collector. +To expose OpenTelemetry metrics, +define a [KeptnConfig](../yaml-crd-ref/config.md) resource +that has the `spec.OTelCollectorUrl` field populated +with the URL of the OpenTelemetry collector. + +Keptn metrics can be exposed as OpenTelemetry (OTel) metrics +via port `9999` of the KLT metrics-operator. To access the metrics, use the following command: @@ -26,5 +37,5 @@ kubectl port-forward deployment/metrics-operator 9999 -n keptn-lifecycle-toolkit You can access the metrics from your browser at: `http://localhost:9999` For an introduction to using OpenTelemetry with Keptn metrics, see the -[Standardize access to observability data](../getting-started/observability) +[Standardize observability](../getting-started/observability) getting started guide. diff --git a/docs/content/en/docs/install/k8s.md b/docs/content/en/docs/install/k8s.md index 074d34028e..a1a5195fda 100644 --- a/docs/content/en/docs/install/k8s.md +++ b/docs/content/en/docs/install/k8s.md @@ -82,7 +82,7 @@ Your cluster should include the following: * If you want to use the standardized observability feature, install an OpenTelemetry collector on your cluster. - See + See [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) for more information. From e075859526b71e76ca03fe2b9a8729f71e666f72 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 05:56:00 -0700 Subject: [PATCH 06/33] Update docs/content/en/docs/getting-started/observability/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: odubajDT <93584209+odubajDT@users.noreply.github.com> Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/observability/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index 9ab8fd9ce9..b270c7bebd 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -35,7 +35,7 @@ The observability data is an amalgamation of the following: - OpenTelemetry runs traces that show everything that happens in the Kubernetes cluster and can display this information with dashboard tools such as Grafana. -- Custom Keptn metrics that you can define to monitor +- Custom Keptn metrics that you can use to monitor information from all the data providers configured in your cluster. ## Using this exercise From a70d6483188b57502f84a5a815ee790ca904421f Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 05:56:34 -0700 Subject: [PATCH 07/33] Update docs/content/en/docs/implementing/integrate/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Florian Bacher Signed-off-by: Meg McRoberts --- docs/content/en/docs/implementing/integrate/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/implementing/integrate/_index.md b/docs/content/en/docs/implementing/integrate/_index.md index 25bd5ee6f9..f9e0055daa 100644 --- a/docs/content/en/docs/implementing/integrate/_index.md +++ b/docs/content/en/docs/implementing/integrate/_index.md @@ -23,7 +23,7 @@ To integrate KLT with your applications, you need to populate the metadata it needs with either Keptn or Kubernetes annotations and labels. -This is a requires two steps: +This requires two steps: * [Annotate your workload(s)](#annotate-workloads) * Define a Keptn application that references those workloads. From 14b026925d2e7cc930cf2223a906efa332d6b90f Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 05:56:52 -0700 Subject: [PATCH 08/33] Update docs/content/en/docs/getting-started/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/_index.md b/docs/content/en/docs/getting-started/_index.md index c94c97baec..d64e831761 100644 --- a/docs/content/en/docs/getting-started/_index.md +++ b/docs/content/en/docs/getting-started/_index.md @@ -50,7 +50,7 @@ to introduce these exercises: ## Getting started with Lifecycle Toolkit The -[Getting started with Lifecycle Toolkit](generic-gs) +[KLT End-to-end exercise](generic-gs) exercise provides a more detailed exercise for managing the release lifecycle with pre- and post-deployment evaluations and tasks. From 7d6dcbb4ea32cc8e0b872487918e31509f6769b6 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 05:57:31 -0700 Subject: [PATCH 09/33] Update docs/content/en/docs/getting-started/observability/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/observability/_index.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index b270c7bebd..5bab90de4e 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -14,8 +14,7 @@ This means that: - You can readily see why a deployment takes so long or why it fails, even when using multiple deployment tools. -- KLT can capture metrics from multiple data sources - using multiple data platforms. +- KLT can capture DORA metrics and expose them as OpenTelemetry metrics To do this, Keptn introduces the concept of an `application`, From fe24b7be55c7187868e2f5265cd1b4801e93d130 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 05:58:19 -0700 Subject: [PATCH 10/33] Update docs/content/en/docs/getting-started/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: odubajDT <93584209+odubajDT@users.noreply.github.com> Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/_index.md b/docs/content/en/docs/getting-started/_index.md index d64e831761..d9cf921682 100644 --- a/docs/content/en/docs/getting-started/_index.md +++ b/docs/content/en/docs/getting-started/_index.md @@ -30,7 +30,7 @@ example. You can clone that repo to access it locally or just look at it for examples as you implement the functionality "from scratch" -on your local Kubernetes deployment cluster. +on your local Kubernetes cluster. The [README](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/setup/observability/README.md) file for that repo contains additional information. From 503f81a0f5038e6a09d827fbc238e87078341ef0 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 06:00:37 -0700 Subject: [PATCH 11/33] Update docs/content/en/docs/getting-started/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: odubajDT <93584209+odubajDT@users.noreply.github.com> Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/_index.md b/docs/content/en/docs/getting-started/_index.md index d9cf921682..6589ca181b 100644 --- a/docs/content/en/docs/getting-started/_index.md +++ b/docs/content/en/docs/getting-started/_index.md @@ -52,5 +52,5 @@ to introduce these exercises: The [KLT End-to-end exercise](generic-gs) exercise provides a more detailed exercise -for managing the release lifecycle +for managing the deployment lifecycle with pre- and post-deployment evaluations and tasks. From 5fa5fd6a28b3ef67d8f35c26afefb58f1f617d0b Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 06:01:13 -0700 Subject: [PATCH 12/33] Update docs/content/en/docs/getting-started/observability/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: odubajDT <93584209+odubajDT@users.noreply.github.com> Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/observability/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index 5bab90de4e..c640ed4e5b 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -9,7 +9,7 @@ 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, -even if they use different tools. +even if they use different deployment strategies. This means that: - You can readily see why a deployment takes so long From 4472eabb67831d1979b292dcf2637695d3a1880d Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 06:01:39 -0700 Subject: [PATCH 13/33] Update docs/content/en/docs/getting-started/observability/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: odubajDT <93584209+odubajDT@users.noreply.github.com> Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/observability/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index c640ed4e5b..5cd54fd27d 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -13,7 +13,7 @@ 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 tools. + or why it fails, even when using multiple deployment strategies. - KLT can capture DORA metrics and expose them as OpenTelemetry metrics To do this, From 79455ac4251d93a0446a1823ea632ce50def0d9a Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 06:04:05 -0700 Subject: [PATCH 14/33] Update docs/content/en/docs/getting-started/observability/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/observability/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index 5cd54fd27d..24bd7d45ea 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -46,7 +46,7 @@ It is based on the example. This is the second of three exercises in the -[Introducing the Keptn Lifecycle Toolkit](../##introducing-the-keptn-lifecycle-toolkit) +[Introducing the Keptn Lifecycle Toolkit](../#introducing-the-keptn-lifecycle-toolkit) series: - In the From 2b23f83c24212f24093974ddae0cdb66cae0379a Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 06:04:44 -0700 Subject: [PATCH 15/33] Update docs/content/en/docs/getting-started/observability/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: odubajDT <93584209+odubajDT@users.noreply.github.com> Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/observability/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index 24bd7d45ea..17fc0cc683 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -65,7 +65,7 @@ This exercise shows how to standardize access to the observability data for your cluster. If you are installing the Keptn Lifecycle Toolkit on an existing cluster -or in a local cluster you are creating for this exercise, +or on a local cluster you are creating for this exercise, you need to do the following: 1. Follow the instructions in From 5601b119020097598852623ffafb988f7db0895f Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 06:05:40 -0700 Subject: [PATCH 16/33] Update docs/content/en/docs/getting-started/orchestrate/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/orchestrate/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/orchestrate/_index.md b/docs/content/en/docs/getting-started/orchestrate/_index.md index 155c0c3ba7..75fcf9a160 100644 --- a/docs/content/en/docs/getting-started/orchestrate/_index.md +++ b/docs/content/en/docs/getting-started/orchestrate/_index.md @@ -55,7 +55,7 @@ The steps to implement pre- and post-deployment orchestration are: 1. [Integrate evaluations and tasks into the cluster](#integrate-evaluations-and-tasks-into-the-cluster) This is the third of three exercises in the -[Introducing the Keptn Lifecycle Toolkit](../##introducing-the-keptn-lifecycle-toolkit) +[Introducing the Keptn Lifecycle Toolkit](../#introducing-the-keptn-lifecycle-toolkit) series. You may want to complete the other exercises before doing this exercise although that is not required: From 64aba8df3e1de6cf1e37be8fd6bba76e40c5f7da Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 06:06:51 -0700 Subject: [PATCH 17/33] Update docs/content/en/docs/getting-started/orchestrate/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/orchestrate/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/orchestrate/_index.md b/docs/content/en/docs/getting-started/orchestrate/_index.md index 75fcf9a160..c3f2037bd9 100644 --- a/docs/content/en/docs/getting-started/orchestrate/_index.md +++ b/docs/content/en/docs/getting-started/orchestrate/_index.md @@ -87,7 +87,7 @@ you need to do the following: * Follow the instructions in [Define a Keptn application](../../implementing/integrate/#define-a-keptn-application) to create a - [KeptnApp](../../yaml-crd-ref/app) resource + [KeptnApp](../../yaml-crd-ref/app/) resource that includes all workloads on the cluster, regardless of the tools being used. For this exercise, we recommend that you From 4c26b7ba41c9d900d9f1162ba046c4344df2c791 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 06:07:46 -0700 Subject: [PATCH 18/33] Update docs/content/en/docs/implementing/integrate/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: odubajDT <93584209+odubajDT@users.noreply.github.com> Signed-off-by: Meg McRoberts --- docs/content/en/docs/implementing/integrate/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/implementing/integrate/_index.md b/docs/content/en/docs/implementing/integrate/_index.md index f9e0055daa..d674ecd612 100644 --- a/docs/content/en/docs/implementing/integrate/_index.md +++ b/docs/content/en/docs/implementing/integrate/_index.md @@ -57,7 +57,7 @@ it creates a `KeptnWorkload` resource for the version it detects. > Note: Annotations are not required if you are only using the `metrics-operator` component of KLT - to implement Keptn metrics. + to observe Keptn metrics. ### Basic annotations From 6995a7d023821b62e88089f89af9cae1e9697fa9 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Tue, 23 May 2023 06:09:20 -0700 Subject: [PATCH 19/33] Update docs/content/en/docs/install/install.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: odubajDT <93584209+odubajDT@users.noreply.github.com> Signed-off-by: Meg McRoberts --- docs/content/en/docs/install/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/install/install.md b/docs/content/en/docs/install/install.md index 63448e2148..faf7a88fe7 100644 --- a/docs/content/en/docs/install/install.md +++ b/docs/content/en/docs/install/install.md @@ -11,7 +11,7 @@ it can not be installed in a separate cluster. This is because KLT communicates with the Kubernetes scheduler for tasks such as enforcing checks natively, stopping a deployment from proceeding when criteria are not met, -and doing post-deployment evaluations, +doing post-deployment evaluations and tracing all activities of all deployment workloads on the cluster. Two methods are supported for installing the Keptn Lifecycle Toolkit (KLT): From 389584a5f9f5efbbbc1dc01b443166250570318f Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Wed, 24 May 2023 02:15:55 -0700 Subject: [PATCH 20/33] minor rewrites in response to comments Signed-off-by: Meg McRoberts --- .../content/en/docs/getting-started/_index.md | 13 ++---- .../en/docs/getting-started/metrics/_index.md | 36 +++++++++++----- .../getting-started/observability/_index.md | 41 +++++++++---------- 3 files changed, 48 insertions(+), 42 deletions(-) diff --git a/docs/content/en/docs/getting-started/_index.md b/docs/content/en/docs/getting-started/_index.md index 6589ca181b..f180f4d6c7 100644 --- a/docs/content/en/docs/getting-started/_index.md +++ b/docs/content/en/docs/getting-started/_index.md @@ -5,20 +5,16 @@ weight: 15 hidechildren: false # this flag hides all sub-pages in the sidebar-multicard.html --- -> **Note** -This section is under development. -We welcome your input!** - This section provides excercises to introduce you to the Keptn Lifecycle Toolkit. -Choose the exercise that interest you the most. +Choose the exercise that interests you the most. ## Introducing the Keptn Lifecycle Toolkit This exercise introduces three common use cases for the Lifecycle Toolkit and walks you through the implementation process for each. We recommend that you do all three exercises in order -but you can do any of the independently. +but you can do any of them independently. * [Getting started with Keptn metrics](metrics) * [Standardize access to observability data](observability) @@ -39,10 +35,9 @@ You can run these exercises on an existing Kubernetes cluster or you can create a new cluster. For personal study and demonstrations, these exercises run well on a local Kubernetes cluster. -See [Bring or Install a Kubernetes Cluster](../../install/k8s.md). +See [Create Local Kubernetes Cluster](../install/k8s/#create-local-kubernetes-cluster). -Two videos are available -to introduce these exercises: +Two videos are available to introduce these exercises: * [Introducing Keptn Lifecycle Toolkit](https://youtu.be/449HAFYkUlY) * [Use SLOs and get DORA the Native K8s way!](https://www.youtube.com/watch?v=zeEC0475SOU) diff --git a/docs/content/en/docs/getting-started/metrics/_index.md b/docs/content/en/docs/getting-started/metrics/_index.md index be6ec85317..76af7b4f27 100644 --- a/docs/content/en/docs/getting-started/metrics/_index.md +++ b/docs/content/en/docs/getting-started/metrics/_index.md @@ -5,17 +5,18 @@ weight: 25 --- The Keptn metrics component of the Keptn Lifecycle Toolkit -allow you to define any type of metric +allows you to define any type of metric from multiple instances of any type of data source in your Kubernetes cluster. You may have deployment tools like Argo, Flux, KEDA, HPA, or Keptn that need observability data to make automated decisions -such as whether a rollout is good, whether to scale up or down. +such as whether a rollout is good, or whether to scale up or down. + Your observability data may come from multiple observability solutions -- Prometheus, Dynatrace, Datadog and others -- -or data directly from your cloud provider such as AWS, Google, or Azure. - +or may be data that comes directly +from your cloud provider such as AWS, Google, or Azure. The Keptn Metrics Server unifies and standardizes access to all this data. Minimal configuration is required because the Keptn Lifecycle Toolkit hooks directly into Kubernetes primitives. @@ -39,6 +40,22 @@ 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 the Keptn Lifecycle Toolkit](../##introducing-the-keptn-lifecycle-toolkit) +series. +After completing this exercise, +you may want to do the other exercises: + +- In [Standardize observability](../observability), + you learn how to standardize access + to the observability data for your cluster. +- In + [Manage release lifecycle](../orchestrate), + you learn how to implement + pre- and post-deployment tasks and evaluations + to orchestrate the flow of all the `workloads` + that are part of your `application`. + The steps to implement metrics in an existing cluster are: 1. [Install the Keptn Lifecycle Toolkit](../../install/install.md) @@ -50,10 +67,6 @@ The steps to implement metrics in an existing cluster are: If you want to create your own cluster to run this exercise, follow the instructions in [Installation](../../install). -See the -[Introducing Keptn Lifecycle Toolkit](https://youtu.be/449HAFYkUlY) -video for a demonstration of this exercise. - ## Define metrics to use You need to define the external observability platforms @@ -170,10 +183,11 @@ Note the following: then apply all of them. - Each metric is assigned a unique `name`. - The value of the `spec.provider.name` field - must correspond to the name assigned in a + must correspond to the name assigned in the `metadata.name` field of a `KeptnMetricsProvider` resource. - Information is fetched in on a continuous basis -at a rate specified by the value of the `spec.fetchIntervalSeconds` field. + at a rate specified + by the value of the `spec.fetchIntervalSeconds` field. ### View available metrics @@ -257,7 +271,7 @@ You can also display the graphics using a dashboard such as Grafana. The Kubernetes HorizontalPodAutoscaler (HPA) uses metrics to provide autoscaling for the cluster. -HPA can retrieve KeptnMetrics and use it to implement HPA. +HPA can retrieve KeptnMetrics and use those metrics to implement HPA. See Using the [HorizontalPodAutoscaler](../../implementing/evaluatemetrics.md/#using-the-horizontalpodautoscaler) for detailed information. diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index 17fc0cc683..4ec230a1a8 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -9,33 +9,30 @@ 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, +of 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. - KLT can capture DORA metrics and expose them as OpenTelemetry metrics -To do this, -Keptn introduces the concept of an `application`, -which is an abstraction that connects multiple -Workloads that logically belong together. - -With KLT deployed on your cluster, -you can easily monitor what is happening -during a deployment into your Kuberenetes cluster, -and quickly get data to help you understand issues such as -why a deployment took so long or why it failed. - The observability data is an amalgamation of the following: - DORA metrics are collected out of the box when the Lifecycle Toolkit is enabled -- OpenTelemetry runs traces that show everything that happens in the Kubernetes cluster - and can display this information with dashboard tools - such as Grafana. +- 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. + 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 @@ -83,9 +80,7 @@ you need to do the following: [Define a Keptn application](../../implementing/integrate/#define-a-keptn-application) to create a Keptn application that aggragates all the `workloads` for your deployment into a single - [KeptnApp](../../yaml-crd-ref/app) resource - that includes all workloads on the cluster, - regardless of the tools being used. + [KeptnApp](../../yaml-crd-ref/app) resource. For this exercise, we recommend that you [Use Keptn automatic app discovery](../../implementing/integrate/#use-keptn-automatic-app-discovery) to automatically generate a Keptn Application. @@ -163,10 +158,12 @@ exercise discusses how to define Keptn metrics. ## View the results To start feeding observability data for your deployments -onto a dashboard of your choice, -modify either your `Deployment` or `KeptnApp` resource yaml file -to increment the version number -and commit that change to your repository. +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 to be rerun and produce observability data) From 823dc3d00814ef621f52a963d92355ce930e14a9 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Wed, 24 May 2023 02:28:35 -0700 Subject: [PATCH 21/33] fixed xref Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/metrics/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/metrics/_index.md b/docs/content/en/docs/getting-started/metrics/_index.md index 76af7b4f27..178cfcce6e 100644 --- a/docs/content/en/docs/getting-started/metrics/_index.md +++ b/docs/content/en/docs/getting-started/metrics/_index.md @@ -41,7 +41,7 @@ as you implement the functionality "from scratch" on your local Kubernetes deployment cluster. This is the first of three exercises in the -[Introducing the Keptn Lifecycle Toolkit](../##introducing-the-keptn-lifecycle-toolkit) +[Introducing the Keptn Lifecycle Toolkit](../#introducing-the-keptn-lifecycle-toolkit) series. After completing this exercise, you may want to do the other exercises: From e5fc5c327e384a4134cd3a8cbadeda62bd703ba1 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Wed, 24 May 2023 02:34:49 -0700 Subject: [PATCH 22/33] k8s.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/_index.md b/docs/content/en/docs/getting-started/_index.md index f180f4d6c7..f6ebc7704c 100644 --- a/docs/content/en/docs/getting-started/_index.md +++ b/docs/content/en/docs/getting-started/_index.md @@ -35,7 +35,7 @@ You can run these exercises on an existing Kubernetes cluster or you can create a new cluster. For personal study and demonstrations, these exercises run well on a local Kubernetes cluster. -See [Create Local Kubernetes Cluster](../install/k8s/#create-local-kubernetes-cluster). +See [Create Local Kubernetes Cluster](../install/k8s.md/#create-local-kubernetes-cluster). Two videos are available to introduce these exercises: From 69f28ac9308403429cf478ad669f1729bd5a9395 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Wed, 24 May 2023 22:28:32 -0700 Subject: [PATCH 23/33] little polishing Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Signed-off-by: Meg McRoberts --- .../en/docs/getting-started/metrics/_index.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/content/en/docs/getting-started/metrics/_index.md b/docs/content/en/docs/getting-started/metrics/_index.md index 178cfcce6e..edeac97ea5 100644 --- a/docs/content/en/docs/getting-started/metrics/_index.md +++ b/docs/content/en/docs/getting-started/metrics/_index.md @@ -4,7 +4,7 @@ description: Enhance your deployment with custom Keptn metrics weight: 25 --- -The Keptn metrics component of the Keptn Lifecycle Toolkit +The Custom Keptn metrics component of the Keptn Lifecycle Toolkit allows you to define any type of metric from multiple instances of any type of data source in your Kubernetes cluster. @@ -28,7 +28,9 @@ from Argo Rollouts, Flux, KEDA, and HPA. Each has plugins but it is difficult to maintain them, especially if you are using multiple tools, and multible observability platforms, -and multiple instance of some tools or observability platforms. +and multiple instances of some tools or observability platforms. +The Custom Keptn metrics feature unites all these metrics +integrates metrics from all these sources into a single set of metrics. ## Using this exercise @@ -59,7 +61,7 @@ you may want to do the other exercises: The steps to implement metrics in an existing cluster are: 1. [Install the Keptn Lifecycle Toolkit](../../install/install.md) -1. Configure metrics to use +1. Configure the metrics you want to use: - [Define metrics providers](#define-metrics-providers) - [Define KeptnMetric information](#define-keptnmetric-information) - [View available metrics](#view-available-metrics) @@ -92,11 +94,14 @@ You can specify a virtually unlimited number of providers, including multiple instances of each observability platform. Each one must be assigned a unique name, identified by the type of platform it is -and the URL. +and the URL of the target server. +If the target server is protected by a `secret`, +provide information about the token and key. > Note: The video and example application use an older syntax of the `KeptnMetricsProvider` and `KeptnMetric` resources. - The syntax shown in this document is correct for v0.7.1 and later. + The syntax shown in this document and the reference page + is correct for v0.7.1 and later. Definition of [dev-prometheus](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/keptn-prometheus-provider.yaml) @@ -265,7 +270,7 @@ $ kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta2/namespaces/simplenode-d } ``` -You can also display the graphics using a dashboard such as Grafana. +You can also display the metrics graphically using a dashboard such as Grafana. ## Implementing autoscaling with HPA From 496c35d425fe2543d25e5d8037a88be8bcc40073 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Wed, 24 May 2023 22:39:40 -0700 Subject: [PATCH 24/33] final polishing Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Signed-off-by: Meg McRoberts --- .../getting-started/observability/_index.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index 4ec230a1a8..0c117bd87a 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -9,7 +9,8 @@ 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, -of everything Kubernetes does in the context of a deployment. +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 @@ -70,7 +71,8 @@ you need to do the following: to install and enable KLT on your cluster. 1. Follow the instructions in [Integrate KLT with your applications](../../implementing/integrate) - to integrate KLT with your Kubernetes cluster: + to integrate KLT with your Kubernetes cluster. + This requires the following: - Follow the instructions in [Annotate workload](../../implementing/integrate/#basic-annotations) @@ -81,8 +83,8 @@ you need to do the following: to create a Keptn application that aggragates all the `workloads` for your deployment into a single [KeptnApp](../../yaml-crd-ref/app) resource. - For this exercise, we recommend that you - [Use Keptn automatic app discovery](../../implementing/integrate/#use-keptn-automatic-app-discovery) + For this exercise, we recommend that you use + [Keptn automatic app discovery](../../implementing/integrate/#use-keptn-automatic-app-discovery) to automatically generate a Keptn Application. ## DORA metrics @@ -141,7 +143,7 @@ which allows you to trace everything done in the context of that deployment. - Follow the instructions in [OpenTelemetry observability](../../implementing/otel.md) to configure where your OpenTelemetry data is sent. - - Define a [KeptnConfig](../../yaml-crd-ref/config.md) resource + This requires you to define a [KeptnConfig](../../yaml-crd-ref/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) @@ -168,15 +170,15 @@ Note that, from the `KeptnApp` YAML file, you can either increment the version number of the application (which causes all workloads to be rerun and produce observability data) or you can increment the version number of a single workload, -(which causes just that workload to be rerun and produce data). +(which causes just that workload 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 Jaeger extension for Grafana installed on your cluster, -you can view full end-to-end trace for everything +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/). From 8f17e0195f387b719ab8e7068ad12bc7a4537889 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Thu, 25 May 2023 00:06:01 -0700 Subject: [PATCH 25/33] Update docs/content/en/docs/install/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/install/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/install/_index.md b/docs/content/en/docs/install/_index.md index 987b0f1f6a..8f3bfe76c7 100644 --- a/docs/content/en/docs/install/_index.md +++ b/docs/content/en/docs/install/_index.md @@ -14,7 +14,7 @@ The steps are: 1. Understand the [Software versions and resources](reqs.md) that are required. 1. Be sure that your cluster includes the components discussed in - [Prepare your cluster for KLT](../../install/k8s.md/#prepare-your-cluster-for-klt). + [Prepare your cluster for KLT](k8s.md/#prepare-your-cluster-for-klt). 1. [Bring or create your Kubernetes cluster](k8s.md). 1. [Replace the default cert-manager](cert-manager.md) (optional). This step is only required if you want to replace From 0306c679ca16c4a0bb919c25b49946ac5a3c05d5 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Thu, 25 May 2023 00:08:56 -0700 Subject: [PATCH 26/33] Update docs/content/en/docs/install/_index.md Sighned-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/install/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/install/_index.md b/docs/content/en/docs/install/_index.md index 8f3bfe76c7..54f29ceea0 100644 --- a/docs/content/en/docs/install/_index.md +++ b/docs/content/en/docs/install/_index.md @@ -42,7 +42,7 @@ Unless you are only using the customized Keptn metrics feature, you now need to: - Follow the instructions in - [Annotate workload](../../implementing/integrate/#basic-annotations) + [Annotate workload](../implementing/integrate/#basic-annotations) to integrate the Lifecycle Toolkit into your Kubernetes cluster by applying basic annotations to your `Deployment` resource. - Follow the instructions in From 51c086c87e49c49e2307292411432e114c422b09 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Thu, 25 May 2023 00:12:51 -0700 Subject: [PATCH 27/33] Update docs/content/en/docs/install/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/install/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/install/_index.md b/docs/content/en/docs/install/_index.md index 54f29ceea0..8e8ad4b2e5 100644 --- a/docs/content/en/docs/install/_index.md +++ b/docs/content/en/docs/install/_index.md @@ -46,7 +46,7 @@ you now need to: to integrate the Lifecycle Toolkit into your Kubernetes cluster by applying basic annotations to your `Deployment` resource. - Follow the instructions in - [Define a Keptn application](../../implementing/integrate/#define-a-keptn-application) + [Define a Keptn application](../implementing/integrate/#define-a-keptn-application) to create a Keptn application that aggragates all the `workloads` for your deployment into a single [KeptnApp](../../yaml-crd-ref/app) resource. From 91538936696371efbae926b9488bf0a34024c5ad Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Thu, 25 May 2023 00:14:32 -0700 Subject: [PATCH 28/33] Update docs/content/en/docs/install/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/install/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/install/_index.md b/docs/content/en/docs/install/_index.md index 8e8ad4b2e5..95b2d6b5ca 100644 --- a/docs/content/en/docs/install/_index.md +++ b/docs/content/en/docs/install/_index.md @@ -49,7 +49,7 @@ you now need to: [Define a Keptn application](../implementing/integrate/#define-a-keptn-application) to create a Keptn application that aggragates all the `workloads` for your deployment into a single - [KeptnApp](../../yaml-crd-ref/app) resource. + [KeptnApp](../yaml-crd-ref/app/) resource. This section also includes: From d58a50b346159d5a6b9d5172fa9b35db42e6973c Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Thu, 25 May 2023 00:17:14 -0700 Subject: [PATCH 29/33] Update docs/content/en/docs/getting-started/observability/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/observability/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability/_index.md index 0c117bd87a..274dcb2d88 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability/_index.md @@ -82,7 +82,7 @@ you need to do the following: [Define a Keptn application](../../implementing/integrate/#define-a-keptn-application) to create a Keptn application that aggragates all the `workloads` for your deployment into a single - [KeptnApp](../../yaml-crd-ref/app) resource. + [KeptnApp](../../yaml-crd-ref/app.md) resource. For this exercise, we recommend that you use [Keptn automatic app discovery](../../implementing/integrate/#use-keptn-automatic-app-discovery) to automatically generate a Keptn Application. From d306ba571c57098c610f25edd7cde9bfe6b97fba Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Thu, 25 May 2023 00:18:25 -0700 Subject: [PATCH 30/33] Update docs/content/en/docs/getting-started/orchestrate/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/getting-started/orchestrate/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/getting-started/orchestrate/_index.md b/docs/content/en/docs/getting-started/orchestrate/_index.md index c3f2037bd9..c4ebafb1fa 100644 --- a/docs/content/en/docs/getting-started/orchestrate/_index.md +++ b/docs/content/en/docs/getting-started/orchestrate/_index.md @@ -87,7 +87,7 @@ you need to do the following: * Follow the instructions in [Define a Keptn application](../../implementing/integrate/#define-a-keptn-application) to create a - [KeptnApp](../../yaml-crd-ref/app/) resource + [KeptnApp](../../yaml-crd-ref/app.md) resource that includes all workloads on the cluster, regardless of the tools being used. For this exercise, we recommend that you From f600af8930fc3a01770ce77f9625aea1d73efe75 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Thu, 25 May 2023 00:19:45 -0700 Subject: [PATCH 31/33] Update docs/content/en/docs/install/install.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/install/install.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/content/en/docs/install/install.md b/docs/content/en/docs/install/install.md index faf7a88fe7..f021780190 100644 --- a/docs/content/en/docs/install/install.md +++ b/docs/content/en/docs/install/install.md @@ -6,8 +6,7 @@ hidechildren: false # this flag hides all sub-pages in the sidebar-multicard.htm --- The Keptn Lifecycle Toolkit must be installed, enabled, and integrated -into each cluster you want to monitor; -it can not be installed in a separate cluster. +into each cluster you want to monitor. This is because KLT communicates with the Kubernetes scheduler for tasks such as enforcing checks natively, stopping a deployment from proceeding when criteria are not met, From 6cad66e6428433291415cf6a40e3f340ab1d746b Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Thu, 25 May 2023 00:30:09 -0700 Subject: [PATCH 32/33] Update docs/content/en/docs/install/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/install/_index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/content/en/docs/install/_index.md b/docs/content/en/docs/install/_index.md index 95b2d6b5ca..e4a44d6d65 100644 --- a/docs/content/en/docs/install/_index.md +++ b/docs/content/en/docs/install/_index.md @@ -20,7 +20,6 @@ The steps are: This step is only required if you want to replace the default KLT cert-manager with another cert-manager. 1. [Install the Keptn Lifecycle Toolkit](install.md). -1. [Enable KLT for your cluster](install.md/#enable-klt-for-your-cluster) 1. [Enable Keptn Lifecycle Toolkit](install.md/#enable-klt-for-your-cluster). This step is not required if you only want to run Keptn Metrics but is required for all other KLT features. From f562853514ea3af0f718f58854e74735c99c8447 Mon Sep 17 00:00:00 2001 From: Meg McRoberts Date: Thu, 25 May 2023 00:31:24 -0700 Subject: [PATCH 33/33] Update docs/content/en/docs/install/_index.md Signed-off-by: Meg McRoberts meg.mcroberts@dynatrace.com Co-authored-by: Giovanni Liva Signed-off-by: Meg McRoberts --- docs/content/en/docs/install/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/docs/install/_index.md b/docs/content/en/docs/install/_index.md index e4a44d6d65..70c56ff443 100644 --- a/docs/content/en/docs/install/_index.md +++ b/docs/content/en/docs/install/_index.md @@ -48,7 +48,7 @@ you now need to: [Define a Keptn application](../implementing/integrate/#define-a-keptn-application) to create a Keptn application that aggragates all the `workloads` for your deployment into a single - [KeptnApp](../yaml-crd-ref/app/) resource. + [KeptnApp](../yaml-crd-ref/app.md) resource. This section also includes: