[DO-1690] Add docs (!143)

[DO-1690]

Co-authored-by: denis.patrakeev <denis.patrakeev@avroid.tech>
Reviewed-on: https://git.avroid.tech/K8s/k8s-configs/pulls/143
Reviewed-by: Rustam Tagaev <rustam.tagaev@avroid.team>
This commit is contained in:
Denis Patrakeev
2025-03-14 15:18:29 +03:00
parent 23896dc0f7
commit f58e21de72

View File

@@ -1,6 +1,59 @@
# k8s-configs # Репозиторий с конфигурациями приложений, которые деплоятся на кластера K8s
## Настройка внешних секретов ## Структура каталогов в репозитории
```bash
├── clusters # каталог содержащий директории с кластерами
│ ├── k8s-avroid-office.prod.local # имя промышленного кластера
│ │ └── namespaces # каталог с директориями namespace, создаваемых в кластере k8s
│ │ ├── argocd # namespace для РУЧНОГО деплоя ArgoCD
│ │ │ ├── argo-cd # ArgoCD
│ │ │ ├── argocd-apps # мета-приложения ArgoCD Bootstrapping
│ │ │ ├── argocd-namespace.yaml # манифест namespace
│ │ │ └── README.md # порядок деплоя ArgoCD
│ │ │
│ │ ├── example # пример namespace
│ │ │ ├── <ПРИЛОЖЕНИЕ/СЕРВИС>
│ │ │ └── example.yaml # манифест namespace
│ │ │
│ │ ├── <NAMESPACE> # namespace для ручного или автоматического деплоя ArgoCD
│ │ │ ├── .rbac # манифесты различных политик или секретов
│ │ │ ├── app1 # приложение 1
│ │ │ ├── app2 # приложение 2
│ │ │ ├── ...
│ │ │ ├── appN # приложение N
│ │ │ └── <NAMESPACE>.yaml # манифест namespace
│ │ │
│ │ ├── kube-prometheus-stack # отдельный namespace cо стеком kube-prometheus-stack для мониторинга всего кластера
│ │ │
│ │ ├── jenkins-builds # отдельный namespace интеграции с промышленным Jenkins
│ │ │
│ │ ├── huawei-csi # отдельный namespace для Huawei CSI для интеграции с СХД
│ │ │
│ │ └── vault-infra # отдельный namespace для Bank Vault для интеграции HashiCorp Vault
│ │
│ ├── ... # имя промышленного кластера
│ │
│ └── <КЛАСТЕР_K8S_N> # имя промышленного кластера
└── README.md # этот файл
```
## ArgoCD. Автоматизация развёртывания сервисов
ArgoCD настроен таким образом, что он смотрит на `master`-ветку этого репозитория и, в зависимости от инстанса,
обрабатывает только файлы попадающие под вот такую маску:
```bash
Обрабатываемые файлы:
clusters/<КЛАСТЕР_K8S>/namespaces/*/argocd-apps-*.yaml
Исключение:
clusters/<КЛАСТЕР_K8S>/namespaces/{argocd/*,example/*,vault-infra/*}
```
## Настройка внешних секретов из HashiCorp Vault с помощью Bank Vaults
[Ссылка на офф. доку](https://bank-vaults.dev) [Ссылка на офф. доку](https://bank-vaults.dev)
@@ -61,7 +114,7 @@ kubectl apply -f vault-service-account.yaml
Простой пример для тестирования - в логах вы увидите свой секрет Простой пример для тестирования - в логах вы увидите свой секрет
```yaml ```bash
kubectl apply -f - <<"EOF" kubectl apply -f - <<"EOF"
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
@@ -131,7 +184,6 @@ data:
EOH EOH
destination = "/vault/secrets/config.yaml" # тут указан конечный файл конфигурации вашего приложения destination = "/vault/secrets/config.yaml" # тут указан конечный файл конфигурации вашего приложения
} }
EOF
--- ---
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
@@ -146,6 +198,7 @@ metadata:
type: Opaque type: Opaque
data: data:
FOO_1: dmF1bHQ6c2FuZGJveC9kYXRhL2s4cy92YXVsdC10ZXN0I0ZPTw== FOO_1: dmF1bHQ6c2FuZGJveC9kYXRhL2s4cy92YXVsdC10ZXN0I0ZPTw==
EOF
``` ```
В секрете строку с адресом секрета Bank Vault необходимо преобразовать в base64, это делается следующим образом: В секрете строку с адресом секрета Bank Vault необходимо преобразовать в base64, это делается следующим образом: