{ "_комментарий": "Профиль контура: всё, что зависит от конкретной инсталляции. Значения здесь — ПРИМЕР. Для реального контура скопируйте файл, подставьте настоящие имена и держите копию вне репозитория.", "model": { "name": "СДЕ Sarex — типовой контур (пример)", "purpose": "Технологический слой типового контура. Имена кластера, узлов, доменов и реестра заменены на примеры. Прикладной слой присутствует только как потребители технологических сервисов — межсервисные связи приложений моделируются отдельно." }, "cluster": { "name": "Кластер k8s-prod", "doc": "clusters//kustomization.yaml. Развёртывание через FluxCD v2 (GitOps)." }, "software": [ { "id": "ss-istio-gw", "name": "Istio Ingress Gateway", "doc": "Ingress-контроллер, публикует контур наружу через NodePort." }, { "id": "ss-istio-mesh", "name": "Istio Service Mesh", "doc": "chart istio-config-contour. Gateway, VirtualService, RequestAuthentication." }, { "id": "ss-certmanager", "name": "cert-manager", "doc": "Выпуск сертификатов. В примере — самоподписанный ClusterIssuer, wildcard на домен контура." }, { "id": "ss-zitadel", "name": "Zitadel", "doc": "chart idp-contour, ns zitadel. Основной поставщик идентичности." }, { "id": "ss-vault", "name": "Vault + Agent Injector", "doc": "chart vault-contour, ns vault. Единственный механизм доставки секретов, путь secrets/data/apps//postgres." }, { "id": "ss-postgres", "name": "PostgreSQL", "doc": "chart postgresql-contour, ns postgresql. PVC на сетевом хранилище." }, { "id": "ss-redis", "name": "Redis", "doc": "Разворачивается не во всех контурах и не для всех приложений." }, { "id": "ss-kafka", "name": "Kafka", "doc": "chart kafka-contour, ns kafka." }, { "id": "ss-rabbit", "name": "RabbitMQ", "doc": "chart rabbitmq-contour, ns rabbitmq." }, { "id": "ss-camunda", "name": "Camunda Platform", "doc": "chart camunda-contour, ns camunda. В этом примере потребителей не показано." } ], "camunda_sub": ["Zeebe", "Zeebe Gateway", "Operate", "Tasklist", "Optimize", "Identity", "Connectors"], "external": [ { "id": "nd-s3", "name": "s3.example.com — объектное хранилище", "doc": "Внешнее по отношению к кластеру.", "realizes": "ts-object" }, { "id": "nd-nfs", "name": "Сетевое хранилище (StorageClass)", "doc": "Класс хранения для PVC.", "serves": "ss-postgres" }, { "id": "nd-gitea", "name": "Git-сервер контура", "doc": "Источник манифестов для Flux.", "serves": "cluster" }, { "id": "nd-cr", "name": "registry.example.com", "doc": "Реестр Helm-чартов (OCI) и образов контейнеров.", "serves": "cluster", "artifacts": [ { "id": "ar-charts", "name": "Helm-чарты (OCI)" }, { "id": "ar-images", "name": "Образы контейнеров" } ] } ], "frontend_node": { "id": "nd-frontend", "name": "frontend-node-01", "doc": "Выделенный узел, к которому ingress-gateway прибит через nodeSelector.", "assigned_to": "ss-istio-gw" }, "services": [ { "id": "ts-ingress", "name": "Маршрутизация HTTPS-трафика", "realizers": ["ss-istio-gw", "ss-istio-mesh"], "key": "istio" }, { "id": "ts-tls", "name": "Выпуск TLS-сертификатов", "realizers": ["ss-certmanager"], "key": null, "serves_software": "ss-istio-gw" }, { "id": "ts-oidc", "name": "Аутентификация OIDC", "realizers": ["ss-zitadel"], "key": "oidc" }, { "id": "ts-secrets", "name": "Управление секретами", "realizers": ["ss-vault"], "key": "vault" }, { "id": "ts-rdbms", "name": "Реляционное хранилище", "realizers": ["ss-postgres"], "key": "postgres" }, { "id": "ts-cache", "name": "Кэш", "realizers": ["ss-redis"], "key": "redis" }, { "id": "ts-events", "name": "Событийная шина", "realizers": ["ss-kafka"], "key": "kafka" }, { "id": "ts-amqp", "name": "Очередь сообщений AMQP", "realizers": ["ss-rabbit"], "key": "rabbitmq" }, { "id": "ts-bpmn", "name": "Оркестрация процессов BPMN", "realizers": ["ss-camunda"], "key": "camunda" }, { "id": "ts-object", "name": "Объектное хранилище", "realizers": ["nd-s3"], "key": "s3" } ] }