Статус: Draft Дата: 2026-04-29
1. Создание Kubernetes-кластера
Intent:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Высокоуровневый DAG:
Stage contracts
| Stage | Requires | Produces |
|---|---|---|
| Validate inputs | intent, scenario template, organization policy | validated intent, normalized parameters |
| Validate nodes | compute nodes, SSH metadata, topology | linux.host, node_inventory, node eligibility evidence |
| Validate credentials | secret references, access policy | ssh.access, registry.access, credential evidence |
| Prepare network | node_inventory, firewall policy | host.network.ready, wireguard.mesh, network evidence |
| Install runtime | linux.host, ssh.access, registry.access | container.runtime.containerd, runtime evidence |
| Init control-plane | runtime, kubeadm config, network ready | kubernetes.api, kubeconfig.admin, join token |
| Install CNI | kubernetes.api, CNI manifest | kubernetes.network.ready, cni evidence |
| Join masters | kubernetes.api, join token, runtime | control_plane.nodes.joined |
| Join workers | kubernetes.api, join token, runtime | worker.nodes.joined |
| Verify cluster | kubernetes.api, joined nodes, CNI | kubernetes.cluster.ready, health evidence |
Пример job: init control-plane
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
2. Добавление worker-ноды
Intent:
1 2 3 4 5 | |
DAG:
Если kubeadm.join_token отсутствует или истек, control plane не должен падать без объяснения. Он может вставить job generate-join-token, потому что downstream job требует именно artifact kubeadm.join_token.
3. Установка Tempo с S3 dependency
Tempo не должен знать, что обязательно нужен MinIO. Он должен требовать capability object_storage.s3.
1 2 3 4 5 6 7 | |
Resolution:
Пользователь в simple mode видит:
1 2 3 4 | |
Advanced mode показывает полный capability graph и sub-operation.
4. Failed stage и AI PlanPatch
Сценарий: init-control-plane упал, потому что kubeadm не смог скачать images.
PlanPatch:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Важный принцип: AI не должен "просто выполнить команду". Он должен предложить структурированный patch к DAG, который можно проверить, отклонить или применить.
5. Ручное исправление
Сценарий: join-workers упал на worker-3, пользователь зашел по SSH, поправил DNS и перезапустил kubelet.
1 2 3 4 5 6 7 8 9 10 | |
После этого control plane выполняет verification:
6. Редактирование plan в advanced mode
Marketplace template:
1 2 3 4 5 6 7 8 9 | |
Пользовательская версия:
1 2 3 4 5 6 7 8 9 10 | |
Plan должен хранить отличия:
1 2 3 4 5 6 7 8 | |
7. Как это должно выглядеть пользователю
Simple mode:
1 2 3 4 5 6 | |
Advanced mode:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Обе оптики работают над одной operation model.