Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: unify styling of implementing folder #2398

Merged
merged 8 commits into from
Nov 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ you also see the `runtimes` directory.
This defines the runners that you can use when defining
tasks to be run either pre- or post-deployment.
These are discussed in
[Runners and containers](../../../docs/implementing/tasks/#runners-and-containers).
[Runners and containers](../../../docs/implementing/tasks.md#runners-and-containers).

## Install software

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
4 changes: 2 additions & 2 deletions docs/content/en/docs/architecture/components/scheduler.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/_index.md#basic-annotations).
[Keptn specific annotations](../../implementing/integrate.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.
Expand Down Expand Up @@ -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.md#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:
Expand Down
6 changes: 3 additions & 3 deletions docs/content/en/docs/architecture/keptn-apps.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.md#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.md#pre--and-post-deployment-checks)
to the basic `KeptnApp` manifest to define
the evaluations and tasks you want to run pre- and post-deployment.

Expand All @@ -91,7 +91,7 @@ resource.

## How basic annotations are implemented

The [Basic annotations](../implementing/integrate/#basic-annotations)
The [Basic annotations](../implementing/integrate.md#basic-annotations)
page gives instructions for applying the annotations or labels
that identify the pods that Keptn should manage.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.md#annotations-to-keptnapp)

## Prerequisites: Deploy webhook sink

Expand Down Expand Up @@ -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.md#pre--and-post-deployment-checks) to find out more.

## What's next?

Expand Down
4 changes: 2 additions & 2 deletions docs/content/en/docs/getting-started/observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.md)
for a longer discussion of this.
- **workloads**
- **name** - name of this Kubernetes
Expand Down Expand Up @@ -595,4 +595,4 @@ See [KeptnApp Reference page](../yaml-crd-ref/app.md) for more information.

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.md).
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ weight: 500
---

After you have successfully rolled out your application by following
the instructions in the [integration guide](../integrate),
the instructions in the [integration guide](./integrate.md),
Keptn also assists you with day 2 operations for your application.

Tasks that fall under this category include:

* Updating the version of one or more [workloads](https://kubernetes.io/docs/concepts/workloads/)
that are part of the same application
* Adding a new [workload](https://kubernetes.io/docs/concepts/workloads/) to an existing application
* Monitoring the health of your application using `KeptnMetrics`, as described [here](../evaluatemetrics.md)
* Monitoring the health of your application using `KeptnMetrics`, as described [here](./evaluatemetrics.md)
* Optimizing the resource usage of your applications by integrating
`KeptnMetrics` into a
[HorizontalPodAutoscaler (HPA)](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/),
as described [here](../evaluatemetrics.md/#using-the-horizontalpodautoscaler)
as described [here](./evaluatemetrics.md/#using-the-horizontalpodautoscaler)

## Updating Workload Versions

Expand Down Expand Up @@ -46,7 +46,7 @@ let's assume the following example, including
a [workload](https://kubernetes.io/docs/concepts/workloads/) called `podtato-head-frontend` that includes a pre-task and
a pre-evaluation.

{{< embed path="/docs/content/en/docs/implementing/day-2-operations/assets/deployment-initial.yaml" >}}
{{< docsembed path="content/en/docs/implementing/assets/deployment-initial.yaml" >}}

Now, let's assume that the configuration of that [workload](https://kubernetes.io/docs/concepts/workloads/) needs to be changed.
In this example we assume that the image of that [workload](https://kubernetes.io/docs/concepts/workloads/)
Expand All @@ -59,7 +59,7 @@ of the result of any task or evaluation, e.g., when the previously used image ha
and the image must be updated as quickly as possible.
To do that, change `podtato-head-frontend` as follows:

{{< embed path="/docs/content/en/docs/implementing/day-2-operations/assets/deployment-new-image.yaml" >}}
{{< docsembed path="content/en/docs/implementing/assets/deployment-new-image.yaml" >}}

* **Update the configuration *and* the version label:**
Doing so causes the `KeptnWorkload` that is associated
Expand All @@ -68,7 +68,7 @@ and therefore the pre-task `my-task` and pre-evaluation `my-evaluation`
are executed before the updated pods are scheduled.
In this case, the deployment should be changed as follows:

{{< embed path="/docs/content/en/docs/implementing/day-2-operations/assets/deployment-new-image-and-version.yaml" >}}
{{< docsembed path="content/en/docs/implementing/assets/deployment-new-image-and-version.yaml" >}}

If you have defined the related `KeptnApp` resource yourself,
this must also be updated to refer to the updated `KeptnWorkload`.
Expand All @@ -77,14 +77,14 @@ this updated deployment is not able to progress otherwise.
Therefore, make sure that the version of `podtato-head-frontend`
is updated accordingly:

{{< embed path="/docs/content/en/docs/implementing/day-2-operations/assets/app-updated-version.yaml" >}}
{{< docsembed path="content/en/docs/implementing/assets/app-updated-version.yaml" >}}

Updating the `KeptnApp` also causes all pre-/post-tasks/evaluations
of the `KeptnApp` to be executed again.
In this example, this means that the tasks `wait-for-prometheus`,
and `post-deployment-loadtests` will run again.

If you are using the [automatic app discovery](../integrate#use-keptn-automatic-app-discovery),
If you are using the [automatic app discovery](./integrate.md#use-keptn-automatic-app-discovery),
you do not need to update the `KeptnApp` resource.
Keptn will take care of that for you.

Expand Down Expand Up @@ -133,7 +133,7 @@ For example, to add the deployment `podtato-head-left-leg` to the
`podtato-head` application, the configuration for that new deployment
would look like this, with the required label being set:

{{< embed path="/docs/content/en/docs/implementing/day-2-operations/assets/new-deployment.yaml" >}}
{{< docsembed path="content/en/docs/implementing/assets/new-deployment.yaml" >}}

The `KeptnApp`, if defined by the user, should contain the
reference to the newly added [workload](https://kubernetes.io/docs/concepts/workloads/).
Expand All @@ -142,7 +142,7 @@ progress if it is not part of a `KeptnApp`.
For automatically discovered apps this is done
automatically.

{{< embed path="/docs/content/en/docs/implementing/day-2-operations/assets/app-with-new-workload.yaml" >}}
{{< docsembed path="content/en/docs/implementing/assets/app-with-new-workload.yaml" >}}

After applying the updated manifests, you can monitor the status
of the application and related [workloads](https://kubernetes.io/docs/concepts/workloads/) using the following commands:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ DORA metrics provide information such as:

Keptn starts collecting these metrics
as soon as you apply
[basic annotations](../integrate/#basic-annotations)
[basic annotations](./integrate.md#basic-annotations)
to the
[Workload](https://kubernetes.io/docs/concepts/workloads/)
resources
Expand Down Expand Up @@ -59,4 +59,4 @@ DORA metrics are also displayed on Grafana
or whatever dashboard application you choose.
For example:

![DORA metrics](assets/dynatrace_dora_dashboard.png)
![DORA metrics](../assets/dynatrace_dora_dashboard.png)
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/content/en/docs/implementing/evaluatemetrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ To configure a data provider into your Keptn cluster:

1. Create a secret if your data provider uses one.
See
[Create secret text](../implementing/tasks/#create-secret-text).
[Create secret text](./tasks.md#create-secret-text).
1. Install and configure each instance of each data provider
into your Keptn cluster,
following the instructions provided by the data source provider.
Expand Down
2 changes: 1 addition & 1 deletion docs/content/en/docs/implementing/evaluations.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ you must:
pre- and post-deployment evaluations for the `KeptnApp` itself.

See
[Pre- and post-deployment checks](../implementing/integrate/#pre--and-post-deployment-checks)
[Pre- and post-deployment checks](./integrate.md#pre--and-post-deployment-checks)
for details.

Note the following:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ to identify the workloads of interest.
To integrate Keptn with your applications:

* You must first
[install](../../install/install.md)
[install](../install/install.md)
and
[enable](../../install/install.md//#enable-keptn-for-your-cluster)
[enable](../install/install.md//#enable-keptn-for-your-cluster)
Keptn.
* Annotate or label your workloads
with either Keptn or Kubernetes keys.
Expand All @@ -33,9 +33,9 @@ with either Keptn or Kubernetes keys.
are required only for the Release lifecycle management feature.

Keptn uses these annotations to the Kubernetes workloads to create the
[KeptnWorkload](../../crd-ref/lifecycle/v1alpha3/#keptnworkload)
[KeptnWorkload](../crd-ref/lifecycle/v1alpha3/#keptnworkload)
and
[KeptnApp](../../yaml-crd-ref/app.md)
[KeptnApp](../yaml-crd-ref/app.md)
resources that it uses to provide observability
and release lifecycle management.

Expand All @@ -62,9 +62,9 @@ resources in the namespaces where Keptn is enabled.
If Keptn finds any of these resources and the resource has either
the `keptn.sh` or the `kubernetes` annotations/labels,
it creates appropriate
[KeptnWorkload](../../crd-ref/lifecycle/v1alpha3/#keptnworkload)
[KeptnWorkload](../crd-ref/lifecycle/v1alpha3/#keptnworkload)
and
[KeptnApp](../../yaml-crd-ref/app.md)
[KeptnApp](../yaml-crd-ref/app.md)
resources for the version it detects.

The basic keptn.sh keys that can be used for annotations or labels are:
Expand All @@ -89,7 +89,7 @@ These keys are defined as:

* `keptn.sh/workload` or `app.kubernetes.io/name`: Determines the name
of the generated
[KeptnWorkload](../../crd-ref/lifecycle/v1alpha3/#keptnworkload)
[KeptnWorkload](../crd-ref/lifecycle/v1alpha3/#keptnworkload)
resource.
* `keptn.sh/version` or `app.kubernetes.io/version`:
Determines the version of the `KeptnWorkload`
Expand All @@ -104,7 +104,7 @@ These keys are defined as:
are consolidated into the same `KeptnApp` resource.

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:
Expand All @@ -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.md)
[Keptn Applications and Keptn Workloads](../architecture/keptn-apps.md)
for architectural information about how `KeptnApp` and `KeptnWorkloads`
are implemented.

Expand Down Expand Up @@ -173,19 +173,19 @@ that handles pre- and post-deployment evaluations and tasks,
do the following:

* Define the
[KeptnMetric](../../yaml-crd-ref/metric.md)
[KeptnMetric](../yaml-crd-ref/metric.md)
and
[KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md)
[KeptnEvaluationDefinition](../yaml-crd-ref/evaluationdefinition.md)
resources for each evaluation you want.
A `KeptnEvaluationDefinition` compares the value
of a `KeptnMetric` to the threshold that is specified.
* You will also need to define the necessary
[KeptnMetricsProvider](../../yaml-crd-ref/metricsprovider.md)
[KeptnMetricsProvider](../yaml-crd-ref/metricsprovider.md)
and
resource for each instance of each data source
used for the `KeptnEvaluationDefinition` resources you define.
* Define a
[KeptnTaskDefinition](../../yaml-crd-ref/taskdefinition.md)
[KeptnTaskDefinition](../yaml-crd-ref/taskdefinition.md)
resource for each task you want to execute.
`KeptnTaskDefinition` resources contain re-usable "functions"
that can execute before and after the deployment.
Expand All @@ -195,7 +195,7 @@ do the following:
The deployment is kept in a pending state
until the infrastructure is capable of accepting deployments again.
See
[Working with Keptn tasks](../tasks)
[Working with Keptn tasks](./tasks.md)
for more information.
* Annotate your [Workloads](https://kubernetes.io/docs/concepts/workloads/)
[Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/),
Expand All @@ -205,7 +205,7 @@ do the following:
to include each evaluation and task you want run
for specific workloads.
* Manually edit all
[KeptnApp](../../yaml-crd-ref/app.md) resources
[KeptnApp](../yaml-crd-ref/app.md) resources
to specify evaluations and tasks to be run for the `KeptnApp` itself.

### Annotations to KeptnApp
Expand All @@ -228,7 +228,7 @@ keptn.sh/post-deployment-tasks: <`TaskDefinition`-name>
The value of these annotations corresponds to the name of
Keptn [resources](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)
called
[KeptnTaskDefinition](../../yaml-crd-ref/taskdefinition.md)
[KeptnTaskDefinition](../yaml-crd-ref/taskdefinition.md)
resources
These resources contain re-usable "functions"
that can execute before and after the deployment.
Expand Down Expand Up @@ -350,7 +350,7 @@ you get observability of your application's deployments
by using the OpenTelemetry tracing features
that are provided by Keptn:

![Application deployment trace](assets/trace.png)
![Application deployment trace](../assets/trace.png)

## Example of pre- and post-deployment actions

Expand Down
4 changes: 2 additions & 2 deletions docs/content/en/docs/implementing/otel.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ DORA metrics provide information such as:

Keptn starts collecting these metrics
as soon as you apply
[basic annotations](integrate/#basic-annotations)
[basic annotations](./integrate.md#basic-annotations)
to the [workload](https://kubernetes.io/docs/concepts/workloads/).
Metrics are collected only for the resources
that are annotated.
Expand Down Expand Up @@ -140,7 +140,7 @@ you must have the following on your cluster:
To integrate OpenTelemetry into Keptn:

- Apply
[basic annotations](../implementing/integrate/#basic-annotations)
[basic annotations](./integrate.md#basic-annotations)
for your `Deployment` resource
to integrate Keptn into your Kubernetes cluster.
- To expose OpenTelemetry metrics,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ weight: 100
hidechildren: false # this flag hides all sub-pages in the sidebar-multicard.html
---

A [KeptnApp](../../yaml-crd-ref/app.md) can fail
A [KeptnApp](../yaml-crd-ref/app.md) can fail
because of an unsuccessful pre-deployment evaluation
or pre-deployment task.
For example, this happens if the target value of a
[KeptnEvaluationDefinition](../../yaml-crd-ref/evaluationdefinition.md)
[KeptnEvaluationDefinition](../yaml-crd-ref/evaluationdefinition.md)
resource is misconfigured
or a pre-deployment evaluation checks the wrong URL.

Expand Down
Loading