Skip to content

Commit

Permalink
Merge branch 'main' into i-makeev/distroless
Browse files Browse the repository at this point in the history
  • Loading branch information
Ranger-X committed Nov 18, 2024
2 parents 19e1a3d + 5069896 commit ccb263f
Show file tree
Hide file tree
Showing 13 changed files with 330 additions and 166 deletions.
1 change: 1 addition & 0 deletions crds/replicatedstoragebackup.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ metadata:
labels:
heritage: deckhouse
module: storage
backup.deckhouse.io/cluster-config: "true"
spec:
group: storage.deckhouse.io
scope: Cluster
Expand Down
1 change: 1 addition & 0 deletions crds/replicatedstorageclass.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ metadata:
labels:
heritage: deckhouse
module: storage
backup.deckhouse.io/cluster-config: "true"
spec:
group: storage.deckhouse.io
scope: Cluster
Expand Down
1 change: 1 addition & 0 deletions crds/replicatedstoragepool.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ metadata:
labels:
heritage: deckhouse
module: storage
backup.deckhouse.io/cluster-config: "true"
spec:
group: storage.deckhouse.io
scope: Cluster
Expand Down
8 changes: 6 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -265,13 +265,17 @@ kubectl get sc replicated-storage-class

## System requirements and recommendations

### Requirements
### Requirements
(Applies for signle-zone and multi-zone deployments)
- Stock kernels shipped with the [supported distributions](https://deckhouse.io/documentation/v1/supported_versions.html#linux).
- High-speed 10Gbps network.
- High-speed 10Gbps network or more.
- Network latency between nodes must be between 0.5ms - 1ms in order to achive highest performance
- Do not use another SDS (Software defined storage) to provide disks to our SDS.

### Recommendations

- Avoid using RAID. The reasons are detailed in the [FAQ](./faq.html#why-is-it-not-recommended-to-use-raid-for-disks-that-are-used-by-the-sds-replicated-volume-module).

- Use local physical disks. The reasons are detailed in the [FAQ](./faq.html#why-do-you-recommend-using-local-disks-and-not-nas).

- In order for cluster to be operational, but with performance degradation, network latency should not be higher than 20ms between nodes
6 changes: 5 additions & 1 deletion docs/README_RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -268,12 +268,16 @@ kubectl get sc replicated-storage-class
## Системные требования и рекомендации

### Требования
(Применительно как к однозональным кластерам, так и к кластерам с использованием нескольких зон доступности)
- Использование стоковых ядер, поставляемых вместе с [поддерживаемыми дистрибутивами](https://deckhouse.ru/documentation/v1/supported_versions.html#linux);
- Использование сети 10Gbps.
- Использование сети 10Gbps и выше.
- Сетевая задержка между узлами должна быть от 0.5мс до 1мс для достижения максимальной производительности
- Не использовать другой SDS (Software defined storage) для предоставления дисков нашему SDS

### Рекомендации

- Не использовать RAID. Причины подробнее раскрыты в нашем [FAQ](./faq.html#почему-не-рекомендуется-использовать-raid-для-дисков-которые-используются-модулем-sds-replicated-volume).

- Использовать локальные "железные" диски. Причины подробнее раскрыты в нашем [FAQ](./faq.html#почему-вы-рекомендуете-использовать-локальные-диски-не-nas).

- Для штатного функционирования кластера, но с деградацией производительности, сетевая задержка не должна превышать 20мс между узлами.
14 changes: 6 additions & 8 deletions docs/USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,19 +56,17 @@ spec:
thinPoolName: thin-pool
```
> **Caution!** All `LVMVolumeGroup` resources in the `spec` of the `ReplicatedStoragePool` resource must reside on different nodes. (You may not refer to multiple `LVMVolumeGroup` resources located on the same node).
Before working with `LINSTOR`, the controller will validate the provided configuration. If an error is detected, it will report the cause of the error.

The `sds-replicated-volume-controller` will then process the `ReplicatedStoragePool` resource defined by the user and create the corresponding `Storage Pool` in the `Linstor` backend.
Invalid `Storage Pools` will not be created in `LINSTOR`.

> The name of the `Storage Pool` being created will match the name of the created `ReplicatedStoragePool` resource.
>
> The `Storage Pool` will be created on the nodes defined in the LVMVolumeGroup resources.
For all `LVMVolumeGroup` resources in the `spec` of the `ReplicatedStoragePool` resource the following rules must be met:
- They must reside on different nodes. You may not refer to multiple `LVMVolumeGroup` resources located on the same node.
- All nodes should be of type other than `CloudEphemeral` (see [Node types](https://deckhouse.io/products/kubernetes-platform/documentation/v1/modules/040-node-manager/#node-types))

Information about the controller's progress and results is available in the `status` field of the created `ReplicatedStoragePool` resource.

> Before working with `LINSTOR`, the controller will validate the provided configuration. If an error is detected, it will report the cause of the error.
>
> Invalid `Storage Pools` will not be created in `LINSTOR`.
The `sds-replicated-volume-controller` will then process the `ReplicatedStoragePool` resource defined by the user and create the corresponding `Storage Pool` in the `Linstor` backend. The name of the `Storage Pool` being created will match the name of the created `ReplicatedStoragePool` resource. The `Storage Pool` will be created on the nodes defined in the LVMVolumeGroup resources.

#### Updating the `ReplicatedStoragePool` resource

Expand Down
14 changes: 6 additions & 8 deletions docs/USAGE_RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,19 +56,17 @@ spec:
thinPoolName: thin-pool
```
> Внимание! Все ресурсы `LVMVolumeGroup`, указанные в `spec` ресурса `ReplicatedStoragePool`, должны быть на разных узлах. (Запрещено указывать несколько ресурсов `LVMVolumeGroup`, которые расположены на одном и том же узле).
Перед фактической работой с `LINSTOR` контроллер провалидирует предоставленную ему конфигурацию и в случае ошибки предоставит информацию о причинах неудачи.

Результатом обработки ресурса `ReplicatedStoragePool` станет создание необходимого `Storage Pool` в бэкенде `LINSTOR`.
Невалидные `Storage Pool`'ы не будут созданы в `LINSTOR`.

> Имя созданного `Storage Pool` будет соответствовать имени созданного ресурса `ReplicatedStoragePool`.
>
> Узлы, на которых будет создан `Storage Pool`, будут взяты из ресурсов LVMVolumeGroup.
Для всех ресурсов `LVMVolumeGroup`, указанных в `spec` ресурса `ReplicatedStoragePool` должны быть соблюдены следующие правила:
- Они должны быть на разных узлах. Запрещено указывать несколько ресурсов `LVMVolumeGroup`, которые расположены на одном и том же узле.
- Все узлы должны иметь тип отличный от `CloudEphemeral` (см. [Типы узлов](https://deckhouse.ru/products/kubernetes-platform/documentation/v1/modules/040-node-manager/#%D1%82%D0%B8%D0%BF%D1%8B-%D1%83%D0%B7%D0%BB%D0%BE%D0%B2))

Информацию о ходе работы контроллера и ее результатах можно посмотреть в поле `status` созданного ресурса `ReplicatedStoragePool`.

> Перед фактической работой с `LINSTOR` контроллер провалидирует предоставленную ему конфигурацию и в случае ошибки предоставит информацию о причинах неудачи.
>
> Невалидные `Storage Pool'ы` не будут созданы в `LINSTOR`.
Результатом обработки ресурса `ReplicatedStoragePool` станет создание необходимого `Storage Pool` в бэкенде `LINSTOR`. Имя созданного `Storage Pool` будет соответствовать имени созданного ресурса `ReplicatedStoragePool`. Узлы, на которых будет создан `Storage Pool`, будут взяты из ресурсов LVMVolumeGroup.

#### Обновление ресурса `ReplicatedStoragePool`

Expand Down
6 changes: 0 additions & 6 deletions images/sds-replicated-volume-controller/src/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/deckhouse/sds-node-configurator/api v0.0.0-20240805103635-969dc811217b h1:EYmHWTWcWMpyxJGZK05ZxlIFnh9s66DRrxLw/LNb/xw=
github.com/deckhouse/sds-node-configurator/api v0.0.0-20240805103635-969dc811217b/go.mod h1:H71+9G0Jr46Qs0BA3z3/xt0h9lbnJnCEYcaCJCWFBf0=
github.com/deckhouse/sds-node-configurator/api v0.0.0-20240919102704-a035b4a92e77 h1:Y3vswUk/rnCpkZzWBk+Mlr9LtMg6EI5LkQ4GvgHCslI=
github.com/deckhouse/sds-node-configurator/api v0.0.0-20240919102704-a035b4a92e77/go.mod h1:H71+9G0Jr46Qs0BA3z3/xt0h9lbnJnCEYcaCJCWFBf0=
github.com/deckhouse/sds-node-configurator/api v0.0.0-20240925090458-249de2896583 h1:HQd5YFQqoHj/CQwBKFCyuVCQmNV0PdML8QJiyDka4fQ=
github.com/deckhouse/sds-node-configurator/api v0.0.0-20240925090458-249de2896583/go.mod h1:H71+9G0Jr46Qs0BA3z3/xt0h9lbnJnCEYcaCJCWFBf0=
github.com/deckhouse/sds-replicated-volume/api v0.0.0-20240812165341-a73e664454b9 h1:keKcnq6do7yxGZHeNERhhx3dH1/wQmj+x5vxcWH3CcI=
github.com/deckhouse/sds-replicated-volume/api v0.0.0-20240812165341-a73e664454b9/go.mod h1:6yz0RtbkLVJtK2DeuvgfaqBZRl5V5ax1WsfPF5pbnvo=
github.com/donovanhide/eventsource v0.0.0-20210830082556-c59027999da0 h1:C7t6eeMaEQVy6e8CarIhscYQlNmw5e3G36y7l7Y21Ao=
github.com/donovanhide/eventsource v0.0.0-20210830082556-c59027999da0/go.mod h1:56wL82FO0bfMU5RvfXoIwSOP2ggqqxT+tAfNEIyxuHw=
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package controller_test

import (
"context"
"slices"
"testing"

. "github.com/LINBIT/golinstor/client"
Expand All @@ -37,7 +38,7 @@ import (
)

const (
testNamespaceConst = "test-namespace"
testNamespaceConst = ""
testNameForAnnotationTests = "rsc-test-annotation"
)

Expand Down Expand Up @@ -227,6 +228,7 @@ func getAndValidateSC(ctx context.Context, cl client.Client, replicatedSC srv.Re
Expect(*storageClass.AllowVolumeExpansion).To(BeTrue())
Expect(*storageClass.VolumeBindingMode).To(Equal(volumeBindingMode))
Expect(*storageClass.ReclaimPolicy).To(Equal(corev1.PersistentVolumeReclaimPolicy(replicatedSC.Spec.ReclaimPolicy)))
Expect(slices.Contains(storageClass.ObjectMeta.Finalizers, controller.StorageClassFinalizerName)).To(BeTrue())

return storageClass
}
Expand Down
Loading

0 comments on commit ccb263f

Please sign in to comment.