Skip to content

Commit

Permalink
fixed doc links (#919)
Browse files Browse the repository at this point in the history
  • Loading branch information
unmarshall authored Nov 13, 2024
1 parent 1af5ea3 commit 3611836
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 12 deletions.
2 changes: 1 addition & 1 deletion docs/deployment/configure-etcd-druid.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,5 +88,5 @@ Following set of flags configures the reconcilers running within etcd-druid. To

| Flag | Description | Default |
| ------------------- | ------------------------------------------------------------ | ------- |
| feature-gates | A set of key=value pairs that describe feature gates for alpha/experimental features. Please check [feature-gates](https://github.com/gardener/etcd-druid/blob/55efca1c8f6c852b0a4e97f08488ffec2eed0e68/docs/deployment/feature-gates.md) for more information. | "" |
| feature-gates | A set of key=value pairs that describe feature gates for alpha/experimental features. Please check [feature-gates](feature-gates.md) for more information. | "" |
| disable-lease-cache | Disable cache for lease.coordination.k8s.io resources. | false |
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@ export KUBECONFIG=$PWD/hack/kind/kubeconfig

Prior to deploying `etcd-druid`, it can be configured via CLI-args and environment variables.

* To configure CLI args you can modify [`charts/druid/values.yaml`](https://github.com/gardener/etcd-druid/blob/3383e0219a6c21c6ef1d5610db964cc3524807c8/charts/druid/values.yaml). For e.g. if you wish to `auto-reconcile` any change done to `Etcd` CR then you should set `enableEtcdSpecAutoReconcile` to true. By default this will be switched off.
* To configure CLI args you can modify [`charts/druid/values.yaml`](https://github.com/gardener/etcd-druid/blob/master/charts/druid/values.yaml). For e.g. if you wish to `auto-reconcile` any change done to `Etcd` CR then you should set `enableEtcdSpecAutoReconcile` to true. By default this will be switched off.
* `DRUID_E2E_TEST=true` : sets specific configuration for etcd-druid for optimal e2e test runs, like a lower sync period for the etcd controller.

### Deploying etcd-druid

Any variant of `make deploy-*` command uses [helm](https://helm.sh/) and [skaffold](https://skaffold.dev/) to build and deploy `etcd-druid` to the target Kubernetes cluster. In addition to deploying `etcd-druid` it will also install the [Etcd CRD](https://github.com/gardener/etcd-druid/blob/3383e0219a6c21c6ef1d5610db964cc3524807c8/config/crd/bases/crd-druid.gardener.cloud_etcds.yaml) and [EtcdCopyBackupTask CRD](https://github.com/gardener/etcd-druid/blob/3383e0219a6c21c6ef1d5610db964cc3524807c8/config/crd/bases/crd-druid.gardener.cloud_etcdcopybackupstasks.yaml).
Any variant of `make deploy-*` command uses [helm](https://helm.sh/) and [skaffold](https://skaffold.dev/) to build and deploy `etcd-druid` to the target Kubernetes cluster. In addition to deploying `etcd-druid` it will also install the [Etcd CRD](https://github.com/gardener/etcd-druid/blob/master/config/crd/bases/crd-druid.gardener.cloud_etcds.yaml) and [EtcdCopyBackupTask CRD](https://github.com/gardener/etcd-druid/blob/master/config/crd/bases/crd-druid.gardener.cloud_etcdcopybackupstasks.yaml).

#### Regular mode

Expand Down Expand Up @@ -84,7 +84,7 @@ This means that when a goroutine is paused on a breakpoint, then all the other g
!!! info
This section is ***Optional*** and is only meant to describe steps to deploy a local object store which can be used for testing and development. If you either do not wish to enable backups or you wish to use remote (infra-provider-specific) object store then this section can be skipped.

An `Etcd` cluster provisioned via etcd-druid provides a capability to take regular delta and full snapshots which are stored in an object store. You can enable this functionality by ensuring that you fill in [spec.backup.store](https://github.com/gardener/etcd-druid/blob/3383e0219a6c21c6ef1d5610db964cc3524807c8/config/samples/druid_v1alpha1_etcd.yaml#L49-L54) section of the `Etcd` CR.
An `Etcd` cluster provisioned via etcd-druid provides a capability to take regular delta and full snapshots which are stored in an object store. You can enable this functionality by ensuring that you fill in [spec.backup.store](https://github.com/gardener/etcd-druid/blob/master/config/samples/druid_v1alpha1_etcd.yaml#L49-L54) section of the `Etcd` CR.

| Backup Store Variant | Setup Guide |
| ----------------------------- | ---------------------------------------------------------- |
Expand All @@ -109,7 +109,7 @@ kubectl apply -f <path/to/secret>

## 04-Preparing Etcd CR

Choose an appropriate variant of `Etcd` CR from [samples directory](../../../config/samples/).
Choose an appropriate variant of `Etcd` CR from [samples directory](https://github.com/gardener/etcd-druid/tree/master/config/samples).

If you wish to enable functionality to backup delta & full snapshots then uncomment `spec.backup.store` section.

Expand Down Expand Up @@ -151,7 +151,7 @@ We adhere to a naming convention for all resources that are provisioned for an `

### Verify Etcd Pods' Functionality

`etcd-wrapper` uses a [distroless](https://github.com/GoogleContainerTools/distroless) image, which lacks a shell. To interact with etcd, use an [Ephemeral container](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) as a debug container. Refer to this [documentation](https://github.com/gardener/etcd-wrapper/blob/9040608291c17799ab33012efce628645c3eeedd/docs/deployment/ops.md#operations--debugging) for building and using an ephemeral container which gets attached to the `etcd-wrapper` pod.
`etcd-wrapper` uses a [distroless](https://github.com/GoogleContainerTools/distroless) image, which lacks a shell. To interact with etcd, use an [Ephemeral container](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) as a debug container. Refer to this [documentation](https://github.com/gardener/etcd-wrapper/blob/master/docs/deployment/ops.md#operations--debugging) for building and using an ephemeral container which gets attached to the `etcd-wrapper` pod.

```bash
# Put a key-value pair into the etcd
Expand Down
2 changes: 1 addition & 1 deletion docs/development/controllers.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Once the manager is `Start()`ed, all the controllers that are *registered* with

Each controller is built using a controller builder, configured with details such as the type of object being reconciled, owned objects whose owner object is reconciled, event filters (predicates), etc. `Predicates` are filters which allow controllers to filter which type of events the controller should respond to and which ones to ignore.

The logic relevant to the controller manager like the creation of the controller manager and registering each of the controllers with the manager, is contained in [`internal/manager/manager.go`](../../internal/manager/manager.go).
The logic relevant to the controller manager like the creation of the controller manager and registering each of the controllers with the manager, is contained in [`internal/manager/manager.go`](https://github.com/gardener/etcd-druid/blob/master/internal/manager/manager.go).

## Etcd Controller

Expand Down
8 changes: 4 additions & 4 deletions docs/usage/managing-etcd-clusters.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Create an Etcd Cluster

Creating an `Etcd` cluster can be done either by explicitly creating a manifest file or it can also be done programmatically. You can refer to and/or modify any [sample](../../config/samples/) `Etcd` manifest to create an etcd cluster. In order to programmatically create an `Etcd` cluster you can refer to the `Golang` [API](../../api/v1alpha1/) to create an `Etcd` custom resource and using a [k8s client](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/client#Client) you can apply an instance of a `Etcd` custom resource targetting any namespace in a k8s cluster.
Creating an `Etcd` cluster can be done either by explicitly creating a manifest file or it can also be done programmatically. You can refer to and/or modify any [sample](https://github.com/gardener/etcd-druid/tree/master/config/samples) `Etcd` manifest to create an etcd cluster. In order to programmatically create an `Etcd` cluster you can refer to the `Golang` [API](https://github.com/gardener/etcd-druid/tree/master/api) to create an `Etcd` custom resource and using a [k8s client](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/client#Client) you can apply an instance of a `Etcd` custom resource targetting any namespace in a k8s cluster.

Prior to `v0.23.0` version of etcd-druid, after creating an `Etcd` custom resource, you will have to annotate the resource with `gardener.cloud/operation=reconcile` in order to trigger a reconciliation for the newly created `Etcd` resource. Post `v0.23.0` version of etcd-druid, there is no longer any need to explicitly trigger reconciliations for creating new `Etcd` clusters.

Expand Down Expand Up @@ -69,10 +69,10 @@ This option is sometimes recommeded as you would like avoid auto-reconciliation

## Overwrite Container OCI Images

To find out image versions of `etcd-backup-restore` and `etcd-wrapper` used by a specific version of `etcd-druid` one way is look for the image versions in [images.yaml](https://github.com/gardener/etcd-druid/blob/1007780853d5282e615db401db58e823de3c1944/internal/images/images.yaml). There are times that you might wish to override these images that come bundled with `etcd-druid`. There are two ways in which you can do that:
To find out image versions of `etcd-backup-restore` and `etcd-wrapper` used by a specific version of `etcd-druid` one way is look for the image versions in [images.yaml](https://github.com/gardener/etcd-druid/blob/master/internal/images/images.yaml). There are times that you might wish to override these images that come bundled with `etcd-druid`. There are two ways in which you can do that:

**Option #1**
We leverage [Overwrite ImageVector](https://github.com/gardener/gardener/blob/75c8f652fd31319608ac73257d587c3d31a9cc8f/docs/deployment/image_vector.md#overwriting-image-vector) facility provided by [gardener](https://github.com/gardener/gardener/). This capability can be used without bringing in gardener as well. To illustrate this in context of `etcd-druid` you will create a `ConfigMap` with the following content:
We leverage [Overwrite ImageVector](https://github.com/gardener/gardener/blob/master/docs/deployment/image_vector.md#overwriting-image-vector) facility provided by [gardener](https://github.com/gardener/gardener/). This capability can be used without bringing in gardener as well. To illustrate this in context of `etcd-druid` you will create a `ConfigMap` with the following content:

```yaml
apiVersion: v1
Expand All @@ -96,7 +96,7 @@ data:
tag: "v<custom-tag>"
```
You can use [images.yaml](https://github.com/gardener/etcd-druid/blob/1007780853d5282e615db401db58e823de3c1944/internal/images/images.yaml) as a reference to create the overwrite images YAML `ConfigMap`.
You can use [images.yaml](https://github.com/gardener/etcd-druid/blob/master/internal/images/images.yaml) as a reference to create the overwrite images YAML `ConfigMap`.

Edit the `etcd-druid` `Deployment` with:

Expand Down
2 changes: 1 addition & 1 deletion docs/usage/recovering-etcd-clusters.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ In case the quorum is lost due to hardware failures or disk corruption etc, auto

At present, recovery from a permanent quorum loss is achieved by manually executing the steps listed in this section.

> **Note:** In the near future etcd-druid will offer capability to automate the recovery from a permanent quorum loss via [Out-Of-Band Operator Tasks](https://github.com/gardener/etcd-druid/blob/90995898b231a49a8f211e85160600e9e6019fe0/docs/proposals/05-etcd-operator-tasks.md#recovery-from-permanent-quorum-loss). An operator only needs to ascertain that there is a permanent quorum loss and the etcd-cluster is beyond auto-recovery. Once that is established then an operator can invoke a task whose status an operator can check.
> **Note:** In the near future etcd-druid will offer capability to automate the recovery from a permanent quorum loss via [Out-Of-Band Operator Tasks](../proposals/05-etcd-operator-tasks.md). An operator only needs to ascertain that there is a permanent quorum loss and the etcd-cluster is beyond auto-recovery. Once that is established then an operator can invoke a task whose status an operator can check.
!!! warning
Please note that manually restoring etcd can result in data loss. This guide is the last resort to bring an Etcd cluster up and running again.
Expand Down

0 comments on commit 3611836

Please sign in to comment.