docs: полная документация проекта — docs/ и README.md для каждого аддона

- README.md: перепиcан как компактный обзор (98 строк) с навигацией по docs/
- docs/: 13 файлов — getting-started, architecture, configuration, addons,
  storage, security, cicd, observability, networking, operations,
  make-reference, molecule-testing, troubleshooting
- addons/*/README.md: 31 новый файл — описание, параметры, примеры кода
  для каждого из 34 аддонов (vault и external-secrets уже существовали)
This commit is contained in:
Sergey Antropoff
2026-04-26 00:22:06 +03:00
parent 1080e6a792
commit eccc1c2a01
45 changed files with 5838 additions and 1670 deletions

View File

@@ -0,0 +1,78 @@
# CSI GlusterFS
CSI-драйвер для подключения внешнего GlusterFS кластера к Kubernetes через Heketi REST API. Предоставляет динамическое provisioning PVC на базе GlusterFS.
**Требует** предварительно настроенного внешнего GlusterFS кластера с Heketi.
## Быстрый старт
```yaml
# group_vars/all/addons.yml
addon_csi_glusterfs: true
csi_glusterfs_heketi_url: "http://192.168.1.20:8080"
csi_glusterfs_cluster_id: "" # heketi-cli cluster list
```
Секрет в `vault.yml`:
```yaml
vault_glusterfs_heketi_secret: "heketi-admin-password"
```
```bash
make addon-csi-glusterfs
```
## Параметры
| Переменная | Умолч. | Описание |
|---|---|---|
| `csi_glusterfs_heketi_url` | `http://heketi.glusterfs.local:8080` | Heketi API URL |
| `csi_glusterfs_heketi_user` | `admin` | Пользователь Heketi |
| `csi_glusterfs_cluster_id` | `""` | ID кластера Heketi |
| `csi_glusterfs_volume_type` | `replicate:3` | Тип тома GlusterFS |
| `csi_glusterfs_storage_class_name` | `glusterfs` | Имя StorageClass |
| `csi_glusterfs_reclaim_policy` | `Delete` | Delete \| Retain |
## Типы томов
```yaml
csi_glusterfs_volume_type: "replicate:3" # 3 реплики (prod)
csi_glusterfs_volume_type: "none" # без реплик (dev)
csi_glusterfs_volume_type: "disperse:4:2" # erasure coding 4+2
```
## Прямые endpoints без Heketi
```yaml
csi_glusterfs_endpoints:
- name: "gluster01"
ip: "192.168.1.10"
- name: "gluster02"
ip: "192.168.1.11"
- name: "gluster03"
ip: "192.168.1.12"
```
## Использование в PVC
```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gluster-data
spec:
accessModes: [ReadWriteMany]
storageClassName: glusterfs
resources:
requests:
storage: 10Gi
```
## Получить Cluster ID из Heketi
```bash
heketi-cli --server http://192.168.1.20:8080 \
--user admin --secret "password" \
cluster list
```