Files
K3S/addons/argocd/README.md
Sergey Antropoff 38aaadbfb1 docs: sync addon docs with explicit external/internal service modes
Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
2026-04-29 23:21:04 +03:00

170 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ArgoCD
GitOps-инструмент для непрерывного деплоя. Синхронизирует состояние кластера с Git-репозиторием. Устанавливается через Helm, поддерживает Ingress, TLS и интеграцию с Prometheus.
## Быстрый старт
```yaml
# group_vars/all/addons.yml
addon_argocd: true
```
```bash
make addon-argocd
```
## Параметры
| Переменная | Умолч. | Описание |
|---|---|---|
| `argocd_ingress_enabled` | `false` | Включить Ingress |
| `argocd_ingress_host` | `argocd.example.com` | Hostname |
| `argocd_ingress_tls` | `false` | TLS через cert-manager |
| `argocd_metrics_enabled` | `true` | Prometheus метрики |
| `argocd_redis_mode` | `auto` | `auto` \| `internal` \| `external_redis` |
```yaml
# group_vars/all/addons.yml
argocd_ingress_enabled: true
argocd_ingress_host: "argocd.example.com"
argocd_ingress_tls: true
```
## Режим Redis (встроенный или внешний)
Выбор задаётся переменной `argocd_redis_mode`:
- `auto` — внешний Redis при `addon_redis: true`, иначе встроенный Redis чарта;
- `internal` — всегда встроенный Redis;
- `external_redis` — всегда внешний Redis (например из addon `redis`).
## Первый вход
После установки Ansible выводит начальный пароль. Сменить:
```bash
argocd login argocd.example.com
argocd account update-password
```
Или получить начальный пароль вручную:
```bash
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath='{.data.password}' | base64 -d
```
## Создать приложение
### Через CLI
```bash
argocd app create my-app \
--repo https://github.com/org/repo.git \
--path k8s/ \
--dest-server https://kubernetes.default.svc \
--dest-namespace default \
--sync-policy automated
```
### Через манифест
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/org/repo.git
targetRevision: main
path: k8s/
destination:
server: https://kubernetes.default.svc
namespace: my-app
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
```
## ApplicationSet — деплой в несколько кластеров/окружений
```yaml
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: my-app-environments
namespace: argocd
spec:
generators:
- list:
elements:
- cluster: staging
url: https://staging-k8s:6443
- cluster: production
url: https://prod-k8s:6443
template:
metadata:
name: 'my-app-{{cluster}}'
spec:
source:
repoURL: https://github.com/org/repo.git
path: 'environments/{{cluster}}'
destination:
server: '{{url}}'
namespace: my-app
```
## Helm чарт через ArgoCD
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-helm-app
namespace: argocd
spec:
source:
repoURL: https://charts.example.com
chart: my-chart
targetRevision: "1.2.3"
helm:
values: |
replicaCount: 2
ingress:
enabled: true
host: app.example.com
destination:
server: https://kubernetes.default.svc
namespace: my-app
```
## Интеграция с Gitea/GitHub
В ArgoCD UI → Settings → Repositories → Connect Repo:
```yaml
# Или через Secret:
apiVersion: v1
kind: Secret
metadata:
name: gitea-repo
namespace: argocd
labels:
argocd.argoproj.io/secret-type: repository
stringData:
type: git
url: https://gitea.example.com/org/repo.git
username: gitea
password: "token-or-password"
```
## Официальные ресурсы
- Официальный сайт: [https://argo-cd.readthedocs.io/](https://argo-cd.readthedocs.io/)
- Официальная документация: [https://argo-cd.readthedocs.io/](https://argo-cd.readthedocs.io/)
- Версии Helm chart / ПО: [https://artifacthub.io/packages/helm/argo/argo-cd](https://artifacthub.io/packages/helm/argo/argo-cd)