diff --git a/.github/mlc_config.json b/.github/mlc_config.json index 5d95147e65..0678933407 100644 --- a/.github/mlc_config.json +++ b/.github/mlc_config.json @@ -5,6 +5,9 @@ }, { "pattern": "^/images/why-keptn" + }, + { + "pattern": "^../assets/" } ], "timeout": "20s", diff --git a/docs/content/en/docs/architecture/cert-manager.md b/docs/content/en/docs/architecture/cert-manager.md index d216053005..d557e5df59 100644 --- a/docs/content/en/docs/architecture/cert-manager.md +++ b/docs/content/en/docs/architecture/cert-manager.md @@ -11,7 +11,7 @@ hidechildren: false # this flag hides all sub-pages in the sidebar-multicard.htm The Keptn Cert Manager automatically configures TLS certificates to [secure communication with the Kubernetes API](https://kubernetes.io/docs/concepts/security/controlling-access/#transport-security). You can instead -[configure Keptn to use cert-manager.io](../operate/cert-manager.md) +[use cert-manager.io](../operate/cert-manager.md) for this purpose. Keptn includes a Mutating Webhook diff --git a/docs/content/en/docs/architecture/components/lifecycle-operator/_index.md b/docs/content/en/docs/architecture/components/lifecycle-operator.md similarity index 100% rename from docs/content/en/docs/architecture/components/lifecycle-operator/_index.md rename to docs/content/en/docs/architecture/components/lifecycle-operator.md diff --git a/docs/content/en/docs/architecture/components/metrics-operator/_index.md b/docs/content/en/docs/architecture/components/metrics-operator.md similarity index 89% rename from docs/content/en/docs/architecture/components/metrics-operator/_index.md rename to docs/content/en/docs/architecture/components/metrics-operator.md index 96babc68ef..c24e566f57 100644 --- a/docs/content/en/docs/architecture/components/metrics-operator/_index.md +++ b/docs/content/en/docs/architecture/components/metrics-operator.md @@ -27,7 +27,7 @@ so they are compatible with the Kubernetes (HPA), which enables the horizontal scaling of workloads based on metrics collected from multiple observability platforms. See -[Using the HorizontalPodAutoscaler](../../../implementing/evaluatemetrics.md/#using-the-horizontalpodautoscaler) +[Using the HorizontalPodAutoscaler](../../implementing/evaluatemetrics.md/#using-the-horizontalpodautoscaler) for instructions. The Metrics Operator consists of the following components: @@ -54,18 +54,18 @@ which can be used to gain insight into the behavior and performance of applications running on a Kubernetes cluster. The **Metrics controller** fetches metrics from an SLI provider. -The controller reconciles a [`KeptnMetric`](../../../yaml-crd-ref/metric.md) +The controller reconciles a [`KeptnMetric`](../../yaml-crd-ref/metric.md) resource and updates its status with the metric value provided by the selected metric provider. Each `KeptnMetric` is identified by `name` and is associated with an instance of an observability platform that is defined in a -[KeptnMetricsProvider](../../../yaml-crd-ref/metricsprovider.md) +[KeptnMetricsProvider](../../yaml-crd-ref/metricsprovider.md) resource. The steps in which the controller fetches metrics are given below: -1. When a [`KeptnMetric`](../../../yaml-crd-ref/metric.md) +1. When a [`KeptnMetric`](../../yaml-crd-ref/metric.md) resource is found or modified, the controller checks whether the metric has been updated within the interval that is defined in the `spec.fetchintervalseconds` field. @@ -85,7 +85,7 @@ The steps in which the controller fetches metrics are given below: in the `status` field of the `KeptnMetric` object. * If the evaluation fails, the error and reason is written to the - [KeptnMetricStatus](../../../crd-ref/metrics/v1alpha3/#keptnmetricstatus) + [KeptnMetricStatus](../../crd-ref/metrics/v1alpha3/#keptnmetricstatus) resource. The error is described in both human-readable language and as raw data to help identify the source of the problem diff --git a/docs/content/en/docs/architecture/components/scheduler/_index.md b/docs/content/en/docs/architecture/components/scheduler.md similarity index 97% rename from docs/content/en/docs/architecture/components/scheduler/_index.md rename to docs/content/en/docs/architecture/components/scheduler.md index 233e39a3d0..1599b2c4f8 100644 --- a/docs/content/en/docs/architecture/components/scheduler/_index.md +++ b/docs/content/en/docs/architecture/components/scheduler.md @@ -23,7 +23,7 @@ to gate Pods until the required deployment checks pass. When you apply a workload to a K8s cluster, the Mutating Webhook checks each Pod for annotations to see if it is annotated with -[Keptn specific annotations](../../../implementing/integrate/#basic-annotations). +[Keptn specific annotations](../../implementing/integrate/_index.md#basic-annotations). If the annotations are present, the Webhook adds a gate to the Pod called `keptn-prechecks-gate`. This spec tells the Kubernetes scheduling framework to wait for the Keptn checks before assigning the pod to a node. @@ -64,7 +64,7 @@ a [Permit plugin](https://kubernetes.io/docs/concepts/scheduling-eviction/schedu ### How does the Keptn Scheduler works Firstly the Mutating Webhook checks for annotations on Pods to see if it is annotated with -[Keptn specific annotations](../../../implementing/integrate/#basic-annotations). +[Keptn specific annotations](../../implementing/integrate/#basic-annotations). If the annotations are present, the Webhook assigns the **Keptn Scheduler** to the Pod. This ensures that the Keptn Scheduler only gets Pods that have been annotated for it. A Pod `test-pod` modified by the Mutating Webhook looks as follows: diff --git a/docs/content/en/docs/architecture/keptn-apps/_index.md b/docs/content/en/docs/architecture/keptn-apps.md similarity index 92% rename from docs/content/en/docs/architecture/keptn-apps/_index.md rename to docs/content/en/docs/architecture/keptn-apps.md index 99ce89c8e7..5aec265a2b 100644 --- a/docs/content/en/docs/architecture/keptn-apps/_index.md +++ b/docs/content/en/docs/architecture/keptn-apps.md @@ -8,7 +8,7 @@ weight: 50 ## Keptn Workloads A -[KeptnWorkload](../../crd-ref/lifecycle/v1alpha3/#keptnworkload) +[KeptnWorkload](../crd-ref/lifecycle/v1alpha3/#keptnworkload) resource augments a Kubernetes [Workload](https://kubernetes.io/docs/concepts/workloads/) with the ability to handle extra phases. @@ -31,7 +31,7 @@ as soon as the workload manifest is applied. ## Keptn Applications -A [KeptnApp](../../yaml-crd-ref/app.md) +A [KeptnApp](../yaml-crd-ref/app.md) resource combines multiple Kubernetes [workloads](https://kubernetes.io/docs/concepts/workloads/) into a single entity @@ -64,12 +64,12 @@ plus specific tasks and evaluations that you define for the `KeptnApp` resource itself: * The annotations described in - [Basic annotations](../../implementing/integrate/#basic-annotations) + [Basic annotations](../implementing/integrate/#basic-annotations) are used to automatically generate `KeptnApp` resources that contain the identifications required to run the Keptn observability features. * You must manually add the annotations described in - [Pre- and post-deployment checks](../../implementing/integrate/#pre--and-post-deployment-checks) + [Pre- and post-deployment checks](../implementing/integrate/#pre--and-post-deployment-checks) to the basic `KeptnApp` manifest to define the evaluations and tasks you want to run pre- and post-deployment. @@ -86,12 +86,12 @@ The timeout is provided because it may take some time to apply all `KeptnWorkload` resources to the cluster. This interval can be modified for the cluster by changing the value of the `keptnAppCreationRequestTimeoutSeconds` field in the -[KeptnConfig](../../yaml-crd-ref/config.md) +[KeptnConfig](../yaml-crd-ref/config.md) resource. ## How basic annotations are implemented -The [Basic annotations](../../implementing/integrate/#basic-annotations) +The [Basic annotations](../implementing/integrate/#basic-annotations) page gives instructions for applying the annotations or labels that identify the pods that Keptn should manage. @@ -108,7 +108,7 @@ In other words: again first in the annotations, then in the labels. Keptn automatically generates appropriate -[KeptnApp](../../yaml-crd-ref/app.md) +[KeptnApp](../yaml-crd-ref/app.md) resources that are used for observability, based on whether the `keptn.sh/app` or `app.kubernetes.io/part-of` annotation/label is populated: diff --git a/docs/content/en/docs/getting-started/observability/assets/deploymenttrace.png b/docs/content/en/docs/getting-started/assets/deploymenttrace.png similarity index 100% rename from docs/content/en/docs/getting-started/observability/assets/deploymenttrace.png rename to docs/content/en/docs/getting-started/assets/deploymenttrace.png diff --git a/docs/content/en/docs/getting-started/observability/assets/grafana.png b/docs/content/en/docs/getting-started/assets/grafana.png similarity index 100% rename from docs/content/en/docs/getting-started/observability/assets/grafana.png rename to docs/content/en/docs/getting-started/assets/grafana.png diff --git a/docs/content/en/docs/getting-started/observability/assets/install01.png b/docs/content/en/docs/getting-started/assets/install01.png similarity index 100% rename from docs/content/en/docs/getting-started/observability/assets/install01.png rename to docs/content/en/docs/getting-started/assets/install01.png diff --git a/docs/content/en/docs/getting-started/observability/assets/install02.png b/docs/content/en/docs/getting-started/assets/install02.png similarity index 100% rename from docs/content/en/docs/getting-started/observability/assets/install02.png rename to docs/content/en/docs/getting-started/assets/install02.png diff --git a/docs/content/en/docs/getting-started/observability/assets/keptnapplications.png b/docs/content/en/docs/getting-started/assets/keptnapplications.png similarity index 100% rename from docs/content/en/docs/getting-started/observability/assets/keptnapplications.png rename to docs/content/en/docs/getting-started/assets/keptnapplications.png diff --git a/docs/content/en/docs/getting-started/observability/assets/keptnprommetrics.png b/docs/content/en/docs/getting-started/assets/keptnprommetrics.png similarity index 100% rename from docs/content/en/docs/getting-started/observability/assets/keptnprommetrics.png rename to docs/content/en/docs/getting-started/assets/keptnprommetrics.png diff --git a/docs/content/en/docs/getting-started/observability/assets/nginx.png b/docs/content/en/docs/getting-started/assets/nginx.png similarity index 100% rename from docs/content/en/docs/getting-started/observability/assets/nginx.png rename to docs/content/en/docs/getting-started/assets/nginx.png diff --git a/docs/content/en/docs/getting-started/observability/assets/podtatohead.png b/docs/content/en/docs/getting-started/assets/podtatohead.png similarity index 100% rename from docs/content/en/docs/getting-started/observability/assets/podtatohead.png rename to docs/content/en/docs/getting-started/assets/podtatohead.png diff --git a/docs/content/en/docs/getting-started/observability/assets/trace-failed.png b/docs/content/en/docs/getting-started/assets/trace-failed.png similarity index 100% rename from docs/content/en/docs/getting-started/observability/assets/trace-failed.png rename to docs/content/en/docs/getting-started/assets/trace-failed.png diff --git a/docs/content/en/docs/getting-started/tasks/_index.md b/docs/content/en/docs/getting-started/lifecycle-management.md similarity index 92% rename from docs/content/en/docs/getting-started/tasks/_index.md rename to docs/content/en/docs/getting-started/lifecycle-management.md index 7e1293b218..111b748826 100644 --- a/docs/content/en/docs/getting-started/tasks/_index.md +++ b/docs/content/en/docs/getting-started/lifecycle-management.md @@ -11,7 +11,7 @@ to make them more robust. This tutorial introduces these tools. > This tutorial assumes you have already completed the -[Getting started with Keptn Observability](../../getting-started/) +[Getting started with Keptn Observability](../getting-started/) exercise. > Please ensure you've finished that before attempting this guide. @@ -23,7 +23,7 @@ When Keptn is successfully monitoring your deployments, it can also run arbitrar - post-deployment (after the post is scheduled) > Pre and post deployments can also run on a KeptnApp level. -> See [annotations to KeptnApp](../../implementing/integrate/_index.md#annotations-to-keptnapp) +> See [annotations to KeptnApp](../implementing/integrate/_index.md#annotations-to-keptnapp) ## Prerequisites: Deploy webhook sink @@ -140,7 +140,7 @@ The webhook sync should show this: ![webhook sync](../assets/webhook.site.3.png) -Incidentally, this is exactly how you can use Keptn with [applications deployed outside of Kubernetes](../../implementing/tasks-non-k8s-apps.md). +Incidentally, this is exactly how you can use Keptn with [applications deployed outside of Kubernetes](../implementing/tasks-non-k8s-apps.md). > Note: If you want to trigger this multiple times, you must change the KeptnTask name. > @@ -150,7 +150,7 @@ Incidentally, this is exactly how you can use Keptn with [applications deployed Annotate the demo application `Deployment` manifest to have Keptn automatically trigger the task after every deployment. -Recall the `Deployment` from the [Observability](../../getting-started/observability/_index.md#step-3-deploy-demo-application) +Recall the `Deployment` from the [Observability](../getting-started/observability.md#step-3-deploy-demo-application) Getting started guide. Add a new label so the `labels` section looks like this: @@ -219,7 +219,7 @@ Do this by using the `keptn.sh/pre-deployment-tasks` label. ## Further Information There is a lot more you can do with KeptnTasks. -See [pre and post deployment checks page](../../implementing/integrate#pre--and-post-deployment-checks) to find out more. +See [pre and post deployment checks page](../implementing/integrate#pre--and-post-deployment-checks) to find out more. ## What's next? diff --git a/docs/content/en/docs/getting-started/usecase_metrics.md b/docs/content/en/docs/getting-started/metrics.md similarity index 99% rename from docs/content/en/docs/getting-started/usecase_metrics.md rename to docs/content/en/docs/getting-started/metrics.md index ba238fe025..e8c3569bf2 100644 --- a/docs/content/en/docs/getting-started/usecase_metrics.md +++ b/docs/content/en/docs/getting-started/metrics.md @@ -286,6 +286,6 @@ for detailed information. To learn more about the Keptn Metrics Server, see: - Architecture: - [Keptn Metrics Operator](../architecture/components/metrics-operator/_index.md) + [Keptn Metrics Operator](../architecture/components/metrics-operator.md) - More information about implementing Keptn Metrics: [Keptn Metrics](../implementing/evaluatemetrics.md) diff --git a/docs/content/en/docs/getting-started/observability/_index.md b/docs/content/en/docs/getting-started/observability.md similarity index 95% rename from docs/content/en/docs/getting-started/observability/_index.md rename to docs/content/en/docs/getting-started/observability.md index 6b54a8e90c..8b29c360fd 100644 --- a/docs/content/en/docs/getting-started/observability/_index.md +++ b/docs/content/en/docs/getting-started/observability.md @@ -29,7 +29,7 @@ The following is an imperative walkthrough. By the end of this page, here is what will be built. The system will be built in stages. -![system overview](assets/install01.png) +![system overview](../assets/install01.png) ## The Basics: A Deployment, Keptn and DORA Metrics @@ -42,7 +42,7 @@ Keptn will monitor the deployment and generate: - An OpenTelemetry trace per deployment - DORA metrics -![the basics](assets/install02.png) +![the basics](../assets/install02.png) Notice though that the metrics and traces have nowhere to go. That will be fixed in a subsequent step. @@ -234,7 +234,7 @@ Open a browser window and go to `http://localhost:8080` You should see the "Welcome to nginx" page. -![nginx demo app](assets/nginx.png) +![nginx demo app](../assets/nginx.png) ## Step 6: View DORA Metrics @@ -257,7 +257,7 @@ Open a new terminal window to continue. - Access metrics in Prometheus format on `http://localhost:2222/metrics` - Look for metrics starting with `keptn_` -![keptn prometheus metrics](assets/keptnprommetrics.png) +![keptn prometheus metrics](../assets/keptnprommetrics.png) Keptn emits various metrics about the state of your system. These metrics can then be visualised in Grafana. @@ -283,7 +283,7 @@ So let's install new Observability components to help us: Scrape metrics from the above DORA metrics endpoint & forward to Prometheus - [Grafana](https://grafana.com) (and some prebuilt dashboards): Visualise the data -![add observability](assets/install01.png) +![add observability](../assets/install01.png) ## Step 8: Install Cert Manager @@ -470,9 +470,9 @@ This signals that the deployment was successful and the pod is running. View the Keptn Applications Dashboard and you should see the DORA metrics and an OpenTelemetry trace: -![keptn applications dashboard](assets/keptnapplications.png) +![keptn applications dashboard](../assets/keptnapplications.png) -![deployment trace](assets/deploymenttrace.png) +![deployment trace](../assets/deploymenttrace.png) ## Step 14: More control over KeptnApp @@ -525,7 +525,7 @@ spec: that failed to deploy, perhaps because a `preDeploymentEvaluation` or `preDeploymentTask` failed. See - [Restart an Application Deployment](../../implementing/restart-application-deployment/) + [Restart an Application Deployment](../implementing/restart-application-deployment/) for a longer discussion of this. - **workloads** - **name** - name of this Kubernetes @@ -545,23 +545,23 @@ If used, these fields must be populated manually: - **preDeploymentTasks** -- list each task to be run as part of the pre-deployment stage. Task names must match the value of the `metadata.name` field - for the associated [KeptnTaskDefinition](../../yaml-crd-ref/taskdefinition.md) resource. + for the associated [KeptnTaskDefinition](../yaml-crd-ref/taskdefinition.md) resource. - **postDeploymentTasks** -- list each task to be run as part of the post-deployment stage. Task names must match the value of the `metadata.name` field for the associated - [KeptnTaskDefinition](../../yaml-crd-ref/taskdefinition.md) + [KeptnTaskDefinition](../yaml-crd-ref/taskdefinition.md) resource. - **preDeploymentEvaluations** -- list each evaluation to be run as part of the pre-deployment stage. Evaluation names must match the value of the `metadata.name` field for the associated - [KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md) + [KeptnEvaluationDefinition](../yaml-crd-ref/evaluationdefinition.md) resource. - **postDeploymentEvaluations** -- list each evaluation to be run as part of the post-deployment stage. Evaluation names must match the value of the `metadata.name` field - for the associated [KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md) + for the associated [KeptnEvaluationDefinition](../yaml-crd-ref/evaluationdefinition.md) resource. ## Example @@ -589,10 +589,10 @@ You may have noticed that the `KeptnApp` Custom Resources are created automatica However, you can override this automatic behaviour by creating a custom `KeptnApp` CRD. In this way, you are in full control of what constitutes a Keptn Application. -See [KeptnApp Reference page](../../yaml-crd-ref/app.md) for more information. +See [KeptnApp Reference page](../yaml-crd-ref/app.md) for more information. ## What's next? Keptn can run pre and post deployment tasks and SLO evaluations automatically. -Continue the Keptn learning journey by [adding deployment tasks](../../implementing/tasks). +Continue the Keptn learning journey by [adding deployment tasks](../implementing/tasks). diff --git a/docs/content/en/docs/implementing/evaluatemetrics.md b/docs/content/en/docs/implementing/evaluatemetrics.md index a02d633d94..e474c902bb 100644 --- a/docs/content/en/docs/implementing/evaluatemetrics.md +++ b/docs/content/en/docs/implementing/evaluatemetrics.md @@ -17,7 +17,7 @@ or another standard dashboard application that you configure or can be retrieved using standard Kubernetes commands. For an introduction to Keptn metrics, see -[Getting started with Keptn metrics](../getting-started/usecase_metrics.md). +[Getting started with Keptn metrics](../getting-started/metrics.md). ## Keptn metric basics diff --git a/docs/content/en/docs/implementing/integrate/_index.md b/docs/content/en/docs/implementing/integrate/_index.md index 9163b344bc..e4f449af05 100644 --- a/docs/content/en/docs/implementing/integrate/_index.md +++ b/docs/content/en/docs/implementing/integrate/_index.md @@ -122,7 +122,7 @@ annotation/label is populated: but not the combined workloads that constitute your deployed application. See -[Keptn Applications and Keptn Workloads](../../architecture/keptn-apps/) +[Keptn Applications and Keptn Workloads](../../architecture/keptn-apps.md) for architectural information about how `KeptnApp` and `KeptnWorkloads` are implemented. diff --git a/docs/content/en/docs/implementing/slo/_index.md b/docs/content/en/docs/implementing/slo/_index.md index b8867bec6d..17ce34794f 100644 --- a/docs/content/en/docs/implementing/slo/_index.md +++ b/docs/content/en/docs/implementing/slo/_index.md @@ -35,7 +35,7 @@ For more information,see: * [SLO converter](https://github.com/keptn/lifecycle-toolkit/blob/main/metrics-operator/converter/slo_converter.md#slo-converter) * [SLI converter](https://github.com/keptn/lifecycle-toolkit/blob/main/metrics-operator/converter/sli_converter.md#sli-converter) -* [Migrate Quality Gates](../../migrate/metrics-observe/) +* [Migrate Quality Gates](../../migrate/metrics-observe.md) The Analysis result is exposed as an OpenTelemetry metric and can be displayed on dashboard tools, such as Grafana. diff --git a/docs/content/en/docs/install/install.md b/docs/content/en/docs/install/install.md index 62ba2ef0cc..dce1392be6 100644 --- a/docs/content/en/docs/install/install.md +++ b/docs/content/en/docs/install/install.md @@ -34,7 +34,7 @@ You are then ready to Keptn running on Kubernetes versions 1.26 and older uses a custom -[scheduler](../architecture/components/scheduler/), +[scheduler](../architecture/components/scheduler.md), so it does not work with [Virtual Kubernetes Clusters](https://www.vcluster.com/) ("vClusters") out of the box. @@ -42,7 +42,7 @@ This is also an issue if the `schedulingGatesEnabled` Helm chart value is set to `false` for Kubernetes version 1.27 and later. See -[Keptn integration with Scheduling](../architecture/components/scheduler/) +[Keptn integration with Scheduling](../architecture/components/scheduler.md) for details. To solve this problem: diff --git a/docs/content/en/docs/install/reqs.md b/docs/content/en/docs/install/reqs.md index d6c843692a..fe0160ccd4 100644 --- a/docs/content/en/docs/install/reqs.md +++ b/docs/content/en/docs/install/reqs.md @@ -31,7 +31,7 @@ implemented using [Kubernetes scheduling gates](https://kubernetes.io/docs/concepts/scheduling-eviction/pod-scheduling-readiness/), unless the `schedulingGatesEnabled` Helm value is set to `false`. See -[Keptn integration with Scheduling](../architecture/components/scheduler/) +[Keptn integration with Scheduling](../architecture/components/scheduler.md) for details. If Keptn is installed on a [vCluster](https://www.vcluster.com/) with diff --git a/docs/content/en/docs/troubleshooting.md b/docs/content/en/docs/install/troubleshooting.md similarity index 100% rename from docs/content/en/docs/troubleshooting.md rename to docs/content/en/docs/install/troubleshooting.md diff --git a/docs/content/en/docs/intro/_index.md b/docs/content/en/docs/intro/_index.md index 66facf09b3..daf32f5016 100644 --- a/docs/content/en/docs/intro/_index.md +++ b/docs/content/en/docs/intro/_index.md @@ -47,7 +47,7 @@ simplifying configuration and integration into a single set of metrics. To learn more, see: -* [Getting started with Keptn metrics](../getting-started/usecase_metrics.md) +* [Getting started with Keptn metrics](../getting-started/metrics.md) * [Keptn Metrics](../implementing/evaluatemetrics.md) User Guide ## Observability @@ -86,7 +86,7 @@ to ensure that your deployments are observable. To learn more, see: -* [Getting started with Keptn Observability](../getting-started/observability) +* [Getting started with Keptn Observability](../getting-started/observability.md) * [Standardize observability](usecase-observability.md/) * [DORA metrics](../implementing/dora) User Guide * [OpenTelemetry observability](../implementing/otel.md) User Guide @@ -134,8 +134,8 @@ or a which is a single, cohesive unit that groups multiple [workloads](https://kubernetes.io/docs/concepts/workloads/). For more information, see: -* [Getting started with release lifecycle management](../getting-started/tasks/) +* [Getting started with release lifecycle management](../getting-started/lifecycle-management.md) * [Deployment tasks](../implementing/tasks) User Guide * [Evaluations](../implementing/evaluations.md) User Guide * [Manage release lifecycle](usecase-orchestrate.md) -* [KeptnApp and KeptnWorkload resources](../architecture/keptn-apps) +* [KeptnApp and KeptnWorkload resources](../architecture/keptn-apps.md) diff --git a/docs/content/en/docs/intro/usecase-observability.md b/docs/content/en/docs/intro/usecase-observability.md index 492469ac8f..af289bf731 100644 --- a/docs/content/en/docs/intro/usecase-observability.md +++ b/docs/content/en/docs/intro/usecase-observability.md @@ -47,7 +47,7 @@ This is the second of three exercises in the series: - In the - [Getting started with Keptn metrics](../getting-started/usecase_metrics.md) + [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. @@ -116,7 +116,7 @@ which allows you to trace everything done in the context of that deployment. 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/usecase_metrics.md) +[Getting started with Keptn metrics](../getting-started/metrics.md) exercise discusses how to define Keptn metrics. ## View the results diff --git a/docs/content/en/docs/intro/usecase-orchestrate.md b/docs/content/en/docs/intro/usecase-orchestrate.md index 685f4fbcb9..045f44f57d 100644 --- a/docs/content/en/docs/intro/usecase-orchestrate.md +++ b/docs/content/en/docs/intro/usecase-orchestrate.md @@ -29,7 +29,7 @@ and can do the following: * 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/usecase_metrics.md). + [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. @@ -62,7 +62,7 @@ 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/usecase_metrics.md) + [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 diff --git a/docs/content/en/docs/migrate/metrics-observe/_index.md b/docs/content/en/docs/migrate/metrics-observe.md similarity index 92% rename from docs/content/en/docs/migrate/metrics-observe/_index.md rename to docs/content/en/docs/migrate/metrics-observe.md index dc4fce4fd5..3c54831987 100644 --- a/docs/content/en/docs/migrate/metrics-observe/_index.md +++ b/docs/content/en/docs/migrate/metrics-observe.md @@ -7,23 +7,23 @@ weight: 40 The SLIs and SLOs used for Keptn v1 quality gates can be ported to appropriate Keptn facilities: -* [Keptn Metrics](../../implementing/evaluatemetrics.md/) +* [Keptn Metrics](../implementing/evaluatemetrics.md/) allow you to define and view metrics from multiple data sources in your Kubernetes cluster. * Use - [Keptn Evaluations](../../implementing/evaluations.md) + [Keptn Evaluations](../implementing/evaluations.md) to do a simple evaluation of the metrics data you capture. To implement this, transfer the information from the Keptn v1 [sli.yaml](https://keptn.sh/docs/1.0.x/reference/files/sli/) and [slo.yaml](https://keptn.sh/docs/1.0.x/reference/files/slo/) files into - [KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md) + [KeptnEvaluationDefinition](../yaml-crd-ref/evaluationdefinition.md) resources. * Keptn v1 calculations that use weighting and scoring can be converted to use the - [Keptn Analysis](../../implementing/slo) + [Keptn Analysis](../implementing/slo) feature. Tools are provided to help with this conversion; see below. @@ -31,8 +31,8 @@ appropriate Keptn facilities: By default, Keptn includes additional observability features that are not included in Keptn v1: -* [DORA metrics](../../implementing/dora) -* [OpenTelemetry observability](../../implementing/otel.md) +* [DORA metrics](../implementing/dora) +* [OpenTelemetry observability](../implementing/otel.md) ## Paradigm changes @@ -43,7 +43,7 @@ differs from that of Keptn v1 quality gates: using Helm charts and standard practices. * Keptn supports multiple instances of multiple data providers. * You must populate a - [KeptnMetricsProvider](../../yaml-crd-ref/metricsprovider.md) resource + [KeptnMetricsProvider](../yaml-crd-ref/metricsprovider.md) resource for each instance of each data provider. This resource specifies the URL and namespace for the data provider and gives it a unique `name` that can be referenced @@ -57,17 +57,17 @@ differs from that of Keptn v1 quality gates: ## Transfer Keptn v1 SLIs/SLOs to evaluation resources Simple comparisons of data can be implemented as -[Keptn Evaluations](../../implementing/evaluations.md). +[Keptn Evaluations](../implementing/evaluations.md). To implement this: * Transfer the information from the Keptn v1 [sli.yaml](https://keptn.sh/docs/1.0.x/reference/files/sli/) files into - [KeptnMetric](../../yaml-crd-ref/metric.md) resources + [KeptnMetric](../yaml-crd-ref/metric.md) resources * Transfer the information from the Keptn v1 [slo.yaml](https://keptn.sh/docs/1.0.x/reference/files/slo/) files into - [KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md) + [KeptnEvaluationDefinition](../yaml-crd-ref/evaluationdefinition.md) resources. ## Convert Keptn v1 SLIs/SLOs to Analysis resources @@ -96,7 +96,7 @@ The process is: The following command sequence converts a Keptn v1 [sli.yaml](https://keptn.sh/docs/1.0.x/reference/files/sli/) file to a Keptn - [AnalysisValueTemplate](../../yaml-crd-ref/analysisvaluetemplate.md) + [AnalysisValueTemplate](../yaml-crd-ref/analysisvaluetemplate.md) resource: ```shell @@ -139,7 +139,7 @@ The process is: The process of converting the Keptn v1 [slo.yaml](https://keptn.sh/docs/1.0.x/reference/files/slo/) files to - [AnalysisDefinition](../../yaml-crd-ref/analysisdefinition.md) + [AnalysisDefinition](../yaml-crd-ref/analysisdefinition.md) resources is similar to the process of converting the SLIs. Use the following command sequence: @@ -167,7 +167,7 @@ The process is: 1. Create a `KeptnMetricsProvider` resource - A [KeptnMetricsProvider](../../yaml-crd-ref/metricsprovider.md) + A [KeptnMetricsProvider](../yaml-crd-ref/metricsprovider.md) resource configures the data provider from which the values for the `AnalysisValueTemplate` resource are fetched. This same resource is used for any metrics and evaluations you are using. @@ -187,7 +187,7 @@ The process is: Create a yaml file (such as `analysis-instance.yaml`) to populate the - [Analysis](../../yaml-crd-ref/analysis.md) + [Analysis](../yaml-crd-ref/analysis.md) resource that defines the specific analysis you want to run. Specify the following: diff --git a/docs/content/en/docs/migrate/strategy/_index.md b/docs/content/en/docs/migrate/strategy.md similarity index 87% rename from docs/content/en/docs/migrate/strategy/_index.md rename to docs/content/en/docs/migrate/strategy.md index f5086627e1..095fabe2e5 100644 --- a/docs/content/en/docs/migrate/strategy/_index.md +++ b/docs/content/en/docs/migrate/strategy.md @@ -14,11 +14,11 @@ and questions that you have. Before you begin the migration project, we suggest that you run through the exercises in -[Getting started](../../getting-started/) +[Getting started](../getting-started/) to familiarize yourself with how Keptn works. When you are ready to begin the migration, follow the instructions in -[Installation and upgrade](../../install) +[Installation and upgrade](../install) to set up your Kubernetes cluster and install Keptn on it. @@ -44,11 +44,11 @@ Some key points: [shipyard.yaml](https://keptn.sh/docs/1.0.x/reference/files/shipyard/) file as Keptn v1 does. * See the - [CRD Reference](../../yaml-crd-ref) + [CRD Reference](../yaml-crd-ref) section for pages that describe the Keptn manifests that you populate manually for Keptn. * See the - [API Reference](../../crd-ref) + [API Reference](../crd-ref) for a comprehensive reference to all resources defined for Keptn. @@ -61,7 +61,7 @@ Some key points: the user-defined requirements. * Keptn operates on a - [KeptnApp](../../yaml-crd-ref/app.md) + [KeptnApp](../yaml-crd-ref/app.md) resource that is an amalgamation of multiple Kubernetes workloads, which together comprise the released application. @@ -93,7 +93,7 @@ Some key points: For in-depth information about Keptn components and how they work, see the -[Architecture](../../architecture) +[Architecture](../architecture) section. ## Disposition of Keptn v1 components in Keptn @@ -138,10 +138,10 @@ and translate that into an appropriate resource. The closest analogy is a Kubernetes [workload](https://kubernetes.io/docs/concepts/workloads/) but some services may be translated into -[KeptnTaskDefinition](../../yaml-crd-ref/app.md) +[KeptnTaskDefinition](../yaml-crd-ref/app.md) or other resources. See -[Working with Keptn tasks](../../implementing/tasks/) +[Working with Keptn tasks](../implementing/tasks/) for more information. For example: @@ -169,7 +169,7 @@ when architecting the migration: * A **deployment stage** -- may define sequences of tasks that should be translated into - [KeptnTaskDefinition](../../yaml-crd-ref/taskdefinition.md) + [KeptnTaskDefinition](../yaml-crd-ref/taskdefinition.md) resources that are executed pre- and post-deployment * A **testing stage** may define sequences of tasks that should be translated into `KeptnTaskDefinition` resources @@ -198,7 +198,7 @@ In this way, you can define arbitrary sequences of any tasks at any length and also link (or chain) sequences together to form (primitive) workflows. When migrating, these sequences of tasks can often be translated into -[KeptnTaskDefinition](../../yaml-crd-ref/taskdefinition.md) +[KeptnTaskDefinition](../yaml-crd-ref/taskdefinition.md) resources that are defined to run either pre- or post-deployment of the pod-scheduling phase. @@ -232,13 +232,13 @@ that is appropriate for the activity: or [DaemonSets](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/), workload. You can code - [KeptnTaskDefinition](../../yaml-crd-ref/taskdefinition.md) + [KeptnTaskDefinition](../yaml-crd-ref/taskdefinition.md) and - [KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md) + [KeptnEvaluationDefinition](../yaml-crd-ref/evaluationdefinition.md) resources that are configured to run either pre- or post-deployment tasks * An **evaluation task** becomes a - [KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md) + [KeptnEvaluationDefinition](../yaml-crd-ref/evaluationdefinition.md) resource. * All other standard tasks (**action**, **approval**, **get-action**, **rollback**, @@ -270,7 +270,7 @@ such as Prometheus, Dynatrace, or Datadog, which is configured as a Keptn integration. When migrating to Keptn, you need to define a -[KeptnMetricsProvider](../../yaml-crd-ref/metricsprovider.md) +[KeptnMetricsProvider](../yaml-crd-ref/metricsprovider.md) resource for the data provider(s) you are using. Note that Keptn allows you to support multiple data providers and multiple instances of each data provider for your SLIs @@ -279,22 +279,22 @@ whereas Keptn v1 only allows you to use one SLI per project. The queries defined for the Keptn v1 SLIs should be translated into an appropriate Keptn resource: -* [KeptnMetric](../../yaml-crd-ref/metric.md) +* [KeptnMetric](../yaml-crd-ref/metric.md) resources to do - [evaluations](../../implementing/evaluations.md) + [evaluations](../implementing/evaluations.md) with - [KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md) + [KeptnEvaluationDefinition](../yaml-crd-ref/evaluationdefinition.md) resources. -* [AnalysisValueTemplate](../../yaml-crd-ref/analysisvaluetemplate.md) +* [AnalysisValueTemplate](../yaml-crd-ref/analysisvaluetemplate.md) resources to do - [analyses](../../implementing/slo) + [analyses](../implementing/slo) with - [AnalysisDefinition](../../yaml-crd-ref/analysisdefinition.md) + [AnalysisDefinition](../yaml-crd-ref/analysisdefinition.md) resources. Tools are provided to convert Keptn v1 SLIs and SLOs to Keptn resources; see - [Convert Keptn v1 SLIs/SLOs to Analysis resources](../metrics-observe/#convert-keptn-v1-slisslos-to-analysis-resources) + [Convert Keptn v1 SLIs/SLOs to Analysis resources](./metrics-observe.md#convert-keptn-v1-slisslos-to-analysis-resources) for more information. ### SLOs @@ -304,21 +304,21 @@ Keptn v1 can be implemented on Keptn as evaluations or analyses: * Simple evaluations of an SLI can be implemented as - [Evaluations](../../implementing/evaluations.md) + [Evaluations](../implementing/evaluations.md) which are defined as - [KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md) + [KeptnEvaluationDefinition](../yaml-crd-ref/evaluationdefinition.md) resources. * Complex analyses that use weighting and scoring and analyze the value over a specified time frame can be implemented as - [Analyses](../../implementing/slo) + [Analyses](../implementing/slo) that are defined in - [AnalysisDefinition](../../yaml-crd-ref/analysisdefinition.md) + [AnalysisDefinition](../yaml-crd-ref/analysisdefinition.md) resources. Tools are provided to convert Keptn v1 SLIs and SLOs to Keptn resources; see - [Convert Keptn v1 SLIs/SLOs to Analysis resources](../metrics-observe/#convert-keptn-v1-slisslos-to-analysis-resources) + [Convert Keptn v1 SLIs/SLOs to Analysis resources](./metrics-observe.md#convert-keptn-v1-slisslos-to-analysis-resources) for more information. ### Remediation @@ -339,7 +339,7 @@ but it does provide limited "Day 2" facilities: and automatically add those resources to your configuration based on the `ReplicaSet` resources you have defined. See - [Using the HorizontalPodAutoscaler](../../implementing/evaluatemetrics.md/#using-the-horizontalpodautoscaler) + [Using the HorizontalPodAutoscaler](../implementing/evaluatemetrics.md/#using-the-horizontalpodautoscaler) for more information. ### Integrations and services in JES @@ -349,7 +349,7 @@ Most functionality coded using the Keptn v1 (Job Executor Service) facility can simply be moved into a `KeptnTaskDefinition` resource that uses the -[container-runtime runner](../../yaml-crd-ref/taskdefinition.md/#synopsis-for-container-runtime). +[container-runtime runner](../yaml-crd-ref/taskdefinition.md/#synopsis-for-container-runtime). If the JES container code is written in JavaScript or TypeScript, you may be able to use the `deno-runtime` runner. If the JES container code is written in Python 3, diff --git a/docs/content/en/docs/yaml-crd-ref/app.md b/docs/content/en/docs/yaml-crd-ref/app.md index 632203c50d..9e06a18c43 100644 --- a/docs/content/en/docs/yaml-crd-ref/app.md +++ b/docs/content/en/docs/yaml-crd-ref/app.md @@ -171,7 +171,7 @@ spec: - [KeptnTaskDefinition](taskdefinition.md) - [KeptnEvaluationDefinition](evaluationdefinition.md) - [Working with tasks](../implementing/tasks) -- [Architecture of KeptnWorkloads and KeptnTasks](../architecture/keptn-apps/) +- [Architecture of KeptnWorkloads and KeptnTasks](../architecture/keptn-apps.md) - [Pre- and post-deployment tasks](../implementing/integrate/#pre--and-post-deployment-checks) - [Orchestrate deployment checks](../intro/usecase-orchestrate.md) - [Use Keptn automatic app discovery](../implementing/integrate/#use-keptn-automatic-app-discovery) diff --git a/docs/content/en/docs/yaml-crd-ref/metric.md b/docs/content/en/docs/yaml-crd-ref/metric.md index 8681acff81..ba3dacee28 100644 --- a/docs/content/en/docs/yaml-crd-ref/metric.md +++ b/docs/content/en/docs/yaml-crd-ref/metric.md @@ -156,5 +156,5 @@ spec: * [KeptnEvaluationDefinition](evaluationdefinition.md) * [KeptnMetricsProvider](metricsprovider.md) * Implementing [Keptn Metrics](../implementing/evaluatemetrics.md) -* [Getting started with Keptn metrics](../getting-started/usecase_metrics.md) -* Architecture of the [Keptn Metrics Operator](../architecture/components/metrics-operator/_index.md) +* [Getting started with Keptn metrics](../getting-started/metrics.md) +* Architecture of the [Keptn Metrics Operator](../architecture/components/metrics-operator.md) diff --git a/docs/content/en/docs/yaml-crd-ref/taskdefinition.md b/docs/content/en/docs/yaml-crd-ref/taskdefinition.md index fd5f677e51..a5e4ea097a 100644 --- a/docs/content/en/docs/yaml-crd-ref/taskdefinition.md +++ b/docs/content/en/docs/yaml-crd-ref/taskdefinition.md @@ -610,6 +610,6 @@ This modifies the synopsis in the following ways: * [KeptnApp](app.md) * [Working with tasks](../implementing/tasks) * [Pre- and post-deployment tasks](../implementing/integrate/#pre--and-post-deployment-checks) -* [KeptnApp and KeptnWorkload resources](../architecture/keptn-apps/). +* [KeptnApp and KeptnWorkload resources](../architecture/keptn-apps.md). * [Orchestrate deployment checks](../intro/usecase-orchestrate.md) * [Executing sequential tasks](../implementing/tasks/#executing-sequential-tasks)