container-superposition 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tool/commands/adopt.js +1 -1
- package/dist/tool/commands/adopt.js.map +1 -1
- package/dist/tool/commands/doctor.d.ts +1 -0
- package/dist/tool/commands/doctor.d.ts.map +1 -1
- package/dist/tool/commands/doctor.js +1370 -73
- package/dist/tool/commands/doctor.js.map +1 -1
- package/dist/tool/questionnaire/composer.d.ts +3 -1
- package/dist/tool/questionnaire/composer.d.ts.map +1 -1
- package/dist/tool/questionnaire/composer.js +87 -18
- package/dist/tool/questionnaire/composer.js.map +1 -1
- package/dist/tool/questionnaire/presets.d.ts.map +1 -1
- package/dist/tool/questionnaire/presets.js +1 -0
- package/dist/tool/questionnaire/presets.js.map +1 -1
- package/dist/tool/questionnaire/questionnaire.d.ts.map +1 -1
- package/dist/tool/questionnaire/questionnaire.js +3 -1
- package/dist/tool/questionnaire/questionnaire.js.map +1 -1
- package/dist/tool/schema/project-config.d.ts.map +1 -1
- package/dist/tool/schema/project-config.js +5 -1
- package/dist/tool/schema/project-config.js.map +1 -1
- package/dist/tool/schema/types.d.ts +4 -2
- package/dist/tool/schema/types.d.ts.map +1 -1
- package/docs/overlays.md +158 -147
- package/docs/specs/001-verbose-plan-graph/spec.md +5 -12
- package/docs/specs/002-superposition-config-file/spec.md +5 -12
- package/docs/specs/003-mkdocs2-overlay/spec.md +2 -9
- package/docs/specs/004-doctor-fix/spec.md +1 -8
- package/docs/specs/005-cuda-overlay/spec.md +2 -9
- package/docs/specs/006-rocm-overlay/spec.md +3 -10
- package/docs/specs/007-target-aware-generation/spec.md +4 -11
- package/docs/specs/008-project-file-canonical/spec.md +7 -8
- package/docs/specs/009-project-env/spec.md +3 -10
- package/docs/specs/010-compose-env-materialization/spec.md +3 -10
- package/docs/specs/011-overlay-parameters/spec.md +2 -9
- package/docs/specs/012-ollama-cli-overlay/spec.md +47 -0
- package/docs/specs/013-doctor-dependency-check/spec.md +250 -0
- package/docs/specs/014-doctor-compose-port-cross-validation/spec.md +276 -0
- package/docs/specs/015-doctor-env-example-drift/spec.md +248 -0
- package/docs/specs/016-doctor-reproducibility-check/spec.md +276 -0
- package/docs/specs/017-doctor-dry-run/spec.md +276 -0
- package/docs/specs/{007-init-project-file → 018-init-project-file}/spec.md +2 -9
- package/docs/specs/taxonomy.md +186 -0
- package/overlays/.presets/full-observability.yml +113 -0
- package/overlays/.presets/k8s-dev.yml +174 -0
- package/overlays/.presets/local-llm.yml +105 -0
- package/overlays/.presets/vector-ai.yml +150 -0
- package/overlays/.shared/vscode/js-ts-settings.json +19 -0
- package/overlays/.shared/vscode/markdown-extensions.json +8 -0
- package/overlays/alertmanager/devcontainer.patch.json +0 -1
- package/overlays/alertmanager/docker-compose.yml +8 -0
- package/overlays/alertmanager/overlay.yml +1 -0
- package/overlays/amp/devcontainer.patch.json +4 -1
- package/overlays/bun/devcontainer.patch.json +1 -10
- package/overlays/bun/overlay.yml +8 -1
- package/overlays/claude-code/devcontainer.patch.json +6 -1
- package/overlays/codex/devcontainer.patch.json +5 -0
- package/overlays/comfyui/docker-compose.yml +1 -0
- package/overlays/comfyui/overlay.yml +4 -0
- package/overlays/commitlint/devcontainer.patch.json +1 -6
- package/overlays/docker-sock/overlay.yml +1 -0
- package/overlays/dotnet/overlay.yml +4 -1
- package/overlays/fuseki/.env.example +5 -0
- package/overlays/fuseki/README.md +173 -0
- package/overlays/fuseki/devcontainer.patch.json +18 -0
- package/overlays/fuseki/docker-compose.yml +29 -0
- package/overlays/fuseki/overlay.yml +42 -0
- package/overlays/fuseki/verify.sh +58 -0
- package/overlays/gemini-cli/devcontainer.patch.json +4 -1
- package/overlays/go/overlay.yml +6 -1
- package/overlays/grafana/devcontainer.patch.json +0 -1
- package/overlays/grafana/docker-compose.yml +8 -2
- package/overlays/grafana/overlay.yml +6 -1
- package/overlays/jaeger/.env.example +11 -0
- package/overlays/jaeger/README.md +33 -4
- package/overlays/jaeger/devcontainer.patch.json +9 -1
- package/overlays/jaeger/docker-compose.yml +17 -0
- package/overlays/jaeger/overlay.yml +1 -12
- package/overlays/java/overlay.yml +6 -1
- package/overlays/jupyter/docker-compose.yml +1 -0
- package/overlays/jupyter/overlay.yml +1 -0
- package/overlays/keycloak/devcontainer.patch.json +0 -1
- package/overlays/keycloak/docker-compose.yml +1 -0
- package/overlays/keycloak/overlay.yml +15 -0
- package/overlays/localstack/docker-compose.yml +1 -0
- package/overlays/localstack/overlay.yml +19 -1
- package/overlays/loki/devcontainer.patch.json +0 -1
- package/overlays/loki/docker-compose.yml +8 -0
- package/overlays/loki/overlay.yml +1 -0
- package/overlays/mailpit/docker-compose.yml +1 -0
- package/overlays/mailpit/overlay.yml +1 -0
- package/overlays/minio/devcontainer.patch.json +1 -1
- package/overlays/minio/docker-compose.yml +1 -0
- package/overlays/minio/overlay.yml +23 -2
- package/overlays/mkdocs/devcontainer.patch.json +1 -5
- package/overlays/mkdocs/overlay.yml +3 -1
- package/overlays/mkdocs2/devcontainer.patch.json +1 -5
- package/overlays/mkdocs2/overlay.yml +2 -0
- package/overlays/mongodb/docker-compose.yml +2 -0
- package/overlays/mongodb/overlay.yml +26 -2
- package/overlays/mysql/docker-compose.yml +2 -0
- package/overlays/mysql/overlay.yml +36 -2
- package/overlays/nats/docker-compose.yml +1 -0
- package/overlays/nats/overlay.yml +18 -2
- package/overlays/nodejs/devcontainer.patch.json +1 -12
- package/overlays/nodejs/overlay.yml +8 -1
- package/overlays/ollama/README.md +4 -3
- package/overlays/ollama/docker-compose.yml +1 -0
- package/overlays/ollama/overlay.yml +6 -1
- package/overlays/ollama/verify.sh +5 -28
- package/overlays/ollama-cli/README.md +90 -0
- package/overlays/ollama-cli/devcontainer.patch.json +3 -0
- package/overlays/ollama-cli/overlay.yml +19 -0
- package/overlays/{ollama → ollama-cli}/setup.sh +7 -10
- package/overlays/ollama-cli/verify.sh +49 -0
- package/overlays/open-webui/docker-compose.yml +1 -0
- package/overlays/open-webui/overlay.yml +8 -1
- package/overlays/opencode/devcontainer.patch.json +4 -1
- package/overlays/otel-collector/README.md +4 -0
- package/overlays/otel-collector/devcontainer.patch.json +4 -1
- package/overlays/otel-collector/docker-compose.yml +8 -4
- package/overlays/otel-collector/overlay.yml +1 -0
- package/overlays/otel-demo-nodejs/devcontainer.patch.json +0 -1
- package/overlays/otel-demo-nodejs/docker-compose.yml +1 -0
- package/overlays/otel-demo-nodejs/overlay.yml +9 -1
- package/overlays/otel-demo-python/devcontainer.patch.json +0 -1
- package/overlays/otel-demo-python/docker-compose.yml +1 -0
- package/overlays/otel-demo-python/overlay.yml +6 -1
- package/overlays/pandoc/README.md +10 -0
- package/overlays/pandoc/devcontainer.patch.json +0 -5
- package/overlays/pandoc/overlay.yml +2 -0
- package/overlays/pandoc/setup.sh +10 -0
- package/overlays/pgvector/devcontainer.patch.json +11 -5
- package/overlays/pgvector/docker-compose.yml +1 -0
- package/overlays/pgvector/overlay.yml +3 -0
- package/overlays/playwright/devcontainer.patch.json +0 -5
- package/overlays/playwright/overlay.yml +2 -1
- package/overlays/postgres/docker-compose.yml +1 -0
- package/overlays/postgres/overlay.yml +4 -1
- package/overlays/pre-commit/devcontainer.patch.json +1 -7
- package/overlays/prometheus/devcontainer.patch.json +0 -1
- package/overlays/prometheus/docker-compose.yml +8 -0
- package/overlays/prometheus/overlay.yml +1 -0
- package/overlays/promtail/devcontainer.patch.json +1 -2
- package/overlays/promtail/docker-compose.yml +8 -0
- package/overlays/promtail/overlay.yml +1 -0
- package/overlays/qdrant/docker-compose.yml +1 -0
- package/overlays/qdrant/overlay.yml +5 -1
- package/overlays/rabbitmq/docker-compose.yml +1 -0
- package/overlays/rabbitmq/overlay.yml +25 -2
- package/overlays/redis/docker-compose.yml +7 -0
- package/overlays/redis/overlay.yml +15 -1
- package/overlays/redpanda/docker-compose.yml +1 -0
- package/overlays/redpanda/overlay.yml +15 -3
- package/overlays/rocm/overlay.yml +2 -1
- package/overlays/rust/overlay.yml +3 -1
- package/overlays/sqlserver/docker-compose.yml +1 -0
- package/overlays/sqlserver/overlay.yml +17 -0
- package/overlays/tempo/devcontainer.patch.json +0 -1
- package/overlays/tempo/docker-compose.yml +8 -0
- package/overlays/tempo/overlay.yml +1 -0
- package/overlays/windsurf-cli/devcontainer.patch.json +4 -1
- package/package.json +1 -1
- package/overlays/.shared/otel/otel-base-config.yaml +0 -30
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Feature Taxonomy
|
|
2
|
+
|
|
3
|
+
This index maps all specs to their feature categories. Maintained by the `tool-pm` agent — update whenever a new spec is added.
|
|
4
|
+
|
|
5
|
+
## Taxonomy categories
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
OVERLAY — Adding or modifying individual overlays
|
|
9
|
+
OVERLAY-NEW — New overlay
|
|
10
|
+
OVERLAY-ENRICH — Enriching an existing overlay
|
|
11
|
+
OVERLAY-FIX — Correctness fix to an overlay
|
|
12
|
+
|
|
13
|
+
PRESET — Preset bundles
|
|
14
|
+
PRESET-NEW — New preset
|
|
15
|
+
PRESET-ENRICH — Enriching an existing preset
|
|
16
|
+
|
|
17
|
+
COMPOSER — Core composition pipeline (composer.ts, merge logic, imports)
|
|
18
|
+
COMPOSER-FEAT — New composition behaviour
|
|
19
|
+
COMPOSER-FIX — Bug fix
|
|
20
|
+
|
|
21
|
+
SCHEMA — Overlay manifest schema, types, validation
|
|
22
|
+
SCHEMA-FIELD — New field in overlay.yml or related types
|
|
23
|
+
SCHEMA-VALID — New validation rule
|
|
24
|
+
|
|
25
|
+
CLI — Command-line interface (init, regen, adopt, doctor)
|
|
26
|
+
CLI-COMMAND — New command or subcommand
|
|
27
|
+
CLI-FLAG — New flag on existing command
|
|
28
|
+
CLI-UX — Interactive prompt or output improvement
|
|
29
|
+
|
|
30
|
+
QUESTIONNAIRE — Overlay selection logic
|
|
31
|
+
QUEST-SECTION — New questionnaire section
|
|
32
|
+
QUEST-LOGIC — Selection / dependency resolution logic
|
|
33
|
+
|
|
34
|
+
DOCS — Documentation
|
|
35
|
+
DOCS-SPEC — Spec meta
|
|
36
|
+
DOCS-GUIDE — Developer or user guide
|
|
37
|
+
DOCS-API — Generated reference
|
|
38
|
+
|
|
39
|
+
INFRA — Project infrastructure (tests, CI, tooling)
|
|
40
|
+
INFRA-TEST — Test coverage
|
|
41
|
+
INFRA-LINT — Lint / formatter
|
|
42
|
+
INFRA-BUILD — Build system
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## OVERLAY — Individual overlays
|
|
48
|
+
|
|
49
|
+
### OVERLAY-NEW
|
|
50
|
+
|
|
51
|
+
| Spec | Title | Status |
|
|
52
|
+
| -------------------------------------------------------- | ------------------------------------- | ------ |
|
|
53
|
+
| [003-mkdocs2-overlay](003-mkdocs2-overlay/spec.md) | MkDocs 2.x Overlay | Final |
|
|
54
|
+
| [005-cuda-overlay](005-cuda-overlay/spec.md) | CUDA (NVIDIA GPU) Overlay | Final |
|
|
55
|
+
| [006-rocm-overlay](006-rocm-overlay/spec.md) | ROCm (AMD GPU) Overlay | Final |
|
|
56
|
+
| [012-ollama-cli-overlay](012-ollama-cli-overlay/spec.md) | Split Ollama Service and CLI Overlays | Final |
|
|
57
|
+
|
|
58
|
+
### OVERLAY-ENRICH
|
|
59
|
+
|
|
60
|
+
_No specs yet._
|
|
61
|
+
|
|
62
|
+
### OVERLAY-FIX
|
|
63
|
+
|
|
64
|
+
_No specs yet._
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## PRESET — Preset bundles
|
|
69
|
+
|
|
70
|
+
### PRESET-NEW
|
|
71
|
+
|
|
72
|
+
_No specs yet._
|
|
73
|
+
|
|
74
|
+
### PRESET-ENRICH
|
|
75
|
+
|
|
76
|
+
_No specs yet._
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## COMPOSER — Composition pipeline
|
|
81
|
+
|
|
82
|
+
### COMPOSER-FEAT
|
|
83
|
+
|
|
84
|
+
| Spec | Title | Status |
|
|
85
|
+
| -------------------------------------------------------------------------- | --------------------------------------------------- | -------- |
|
|
86
|
+
| [010-compose-env-materialization](010-compose-env-materialization/spec.md) | Compose Env Materialization and Env Template Naming | Approved |
|
|
87
|
+
|
|
88
|
+
### COMPOSER-FIX
|
|
89
|
+
|
|
90
|
+
_No specs yet._
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## SCHEMA — Overlay manifest schema
|
|
95
|
+
|
|
96
|
+
### SCHEMA-FIELD
|
|
97
|
+
|
|
98
|
+
| Spec | Title | Status |
|
|
99
|
+
| -------------------------------------------------------- | ----------------------------------------- | ------ |
|
|
100
|
+
| [011-overlay-parameters](011-overlay-parameters/spec.md) | Overlay Parameters with Safe Substitution | Final |
|
|
101
|
+
|
|
102
|
+
### SCHEMA-VALID
|
|
103
|
+
|
|
104
|
+
_No specs yet._
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## CLI — Command-line interface
|
|
109
|
+
|
|
110
|
+
### CLI-COMMAND
|
|
111
|
+
|
|
112
|
+
| Spec | Title | Status |
|
|
113
|
+
| ---------------------------------------- | ---------------------------------------- | ------ |
|
|
114
|
+
| [004-doctor-fix](004-doctor-fix/spec.md) | `doctor --fix` — Interactive Auto-Repair | Final |
|
|
115
|
+
|
|
116
|
+
### CLI-FLAG
|
|
117
|
+
|
|
118
|
+
| Spec | Title | Status |
|
|
119
|
+
| ------------------------------------------------------------------ | ----------------------------- | ------ |
|
|
120
|
+
| [007-target-aware-generation](007-target-aware-generation/spec.md) | Target-Aware Generation | Final |
|
|
121
|
+
| [017-doctor-dry-run](017-doctor-dry-run/spec.md) | Doctor `--fix --dry-run` Flag | Draft |
|
|
122
|
+
|
|
123
|
+
### CLI-UX
|
|
124
|
+
|
|
125
|
+
| Spec | Title | Status |
|
|
126
|
+
| -------------------------------------------------------------------------------------------- | ------------------------------------------ | ------ |
|
|
127
|
+
| [001-verbose-plan-graph](001-verbose-plan-graph/spec.md) | Verbose Plan Graph | Final |
|
|
128
|
+
| [013-doctor-dependency-check](013-doctor-dependency-check/spec.md) | Doctor Overlay Dependency Resolution Check | Draft |
|
|
129
|
+
| [014-doctor-compose-port-cross-validation](014-doctor-compose-port-cross-validation/spec.md) | Doctor Compose / Port Cross-Validation | Draft |
|
|
130
|
+
| [015-doctor-env-example-drift](015-doctor-env-example-drift/spec.md) | Doctor `.env.example` Drift Detection | Draft |
|
|
131
|
+
| [016-doctor-reproducibility-check](016-doctor-reproducibility-check/spec.md) | Doctor Reproducibility Check | Draft |
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## QUESTIONNAIRE — Overlay selection
|
|
136
|
+
|
|
137
|
+
### QUEST-SECTION
|
|
138
|
+
|
|
139
|
+
_No specs yet._
|
|
140
|
+
|
|
141
|
+
### QUEST-LOGIC
|
|
142
|
+
|
|
143
|
+
_No specs yet._
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## DOCS — Documentation
|
|
148
|
+
|
|
149
|
+
### DOCS-SPEC
|
|
150
|
+
|
|
151
|
+
_No specs yet._
|
|
152
|
+
|
|
153
|
+
### DOCS-GUIDE
|
|
154
|
+
|
|
155
|
+
_No specs yet._
|
|
156
|
+
|
|
157
|
+
### DOCS-API
|
|
158
|
+
|
|
159
|
+
_No specs yet._
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## INFRA — Project infrastructure
|
|
164
|
+
|
|
165
|
+
### INFRA-TEST
|
|
166
|
+
|
|
167
|
+
_No specs yet._
|
|
168
|
+
|
|
169
|
+
### INFRA-LINT
|
|
170
|
+
|
|
171
|
+
_No specs yet._
|
|
172
|
+
|
|
173
|
+
### INFRA-BUILD
|
|
174
|
+
|
|
175
|
+
_No specs yet._
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## PROJECT — Project-level configuration
|
|
180
|
+
|
|
181
|
+
| Spec | Title | Status |
|
|
182
|
+
| ---------------------------------------------------------------------- | ------------------------------------------- | -------- |
|
|
183
|
+
| [002-superposition-config-file](002-superposition-config-file/spec.md) | Project Configuration File | Final |
|
|
184
|
+
| [008-project-file-canonical](008-project-file-canonical/spec.md) | Project File Canonical Form | Approved |
|
|
185
|
+
| [009-project-env](009-project-env/spec.md) | Unified Project-Level Environment Variables | Approved |
|
|
186
|
+
| [018-init-project-file](018-init-project-file/spec.md) | `init --project-file` | Final |
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Full Observability Stack Preset
|
|
2
|
+
# Complete metrics, logs, traces, and alerting for any project
|
|
3
|
+
|
|
4
|
+
id: full-observability
|
|
5
|
+
name: Full Observability Stack
|
|
6
|
+
description: Prometheus, Grafana, Loki, Jaeger/Tempo, OpenTelemetry Collector, Alertmanager, and Promtail — bolt-on monitoring for any project
|
|
7
|
+
type: meta
|
|
8
|
+
category: preset
|
|
9
|
+
supports: [compose] # Requires Docker Compose for all sidecar services
|
|
10
|
+
tags: [preset, observability, monitoring, metrics, logging, tracing, prometheus, grafana, loki]
|
|
11
|
+
|
|
12
|
+
selects:
|
|
13
|
+
required:
|
|
14
|
+
- prometheus
|
|
15
|
+
- grafana
|
|
16
|
+
- loki
|
|
17
|
+
- otel-collector
|
|
18
|
+
- alertmanager
|
|
19
|
+
- promtail
|
|
20
|
+
|
|
21
|
+
userChoice: {}
|
|
22
|
+
|
|
23
|
+
parameters:
|
|
24
|
+
tracing:
|
|
25
|
+
description: 'Distributed tracing backend'
|
|
26
|
+
default: jaeger
|
|
27
|
+
options:
|
|
28
|
+
- id: jaeger
|
|
29
|
+
overlays: [jaeger]
|
|
30
|
+
description: 'Jaeger — battle-tested, native OTLP support, built-in UI'
|
|
31
|
+
- id: tempo
|
|
32
|
+
overlays: [tempo]
|
|
33
|
+
description: 'Grafana Tempo — stores traces in object storage, integrates with Grafana'
|
|
34
|
+
- id: both
|
|
35
|
+
overlays: [jaeger, tempo]
|
|
36
|
+
description: 'Both Jaeger and Tempo (useful for migration)'
|
|
37
|
+
- id: none
|
|
38
|
+
overlays: []
|
|
39
|
+
description: 'No tracing backend — collector still accepts spans'
|
|
40
|
+
|
|
41
|
+
glueConfig:
|
|
42
|
+
environment:
|
|
43
|
+
OTEL_EXPORTER_OTLP_ENDPOINT: 'http://otel-collector:4317'
|
|
44
|
+
OTEL_METRICS_EXPORTER: 'otlp'
|
|
45
|
+
OTEL_TRACES_EXPORTER: 'otlp'
|
|
46
|
+
OTEL_LOGS_EXPORTER: 'otlp'
|
|
47
|
+
|
|
48
|
+
portMappings:
|
|
49
|
+
grafana: 3000
|
|
50
|
+
prometheus: 9090
|
|
51
|
+
jaeger-ui: 16686
|
|
52
|
+
alertmanager: 9093
|
|
53
|
+
otel-grpc: 4317
|
|
54
|
+
otel-http: 4318
|
|
55
|
+
|
|
56
|
+
readme: |
|
|
57
|
+
## Full Observability Stack
|
|
58
|
+
|
|
59
|
+
This devcontainer adds a complete observability platform alongside your existing services.
|
|
60
|
+
|
|
61
|
+
### Services
|
|
62
|
+
|
|
63
|
+
| Service | Port | Purpose |
|
|
64
|
+
|---------|------|---------|
|
|
65
|
+
| Grafana | 3000 | Unified dashboards (metrics + logs + traces) |
|
|
66
|
+
| Prometheus | 9090 | Metrics collection and storage |
|
|
67
|
+
| Loki | 3100 | Log aggregation |
|
|
68
|
+
| Promtail | — | Log shipping agent (reads container logs) |
|
|
69
|
+
| OTel Collector | 4317 / 4318 | Telemetry pipeline (gRPC / HTTP) |
|
|
70
|
+
| Alertmanager | 9093 | Alert routing and silencing |
|
|
71
|
+
| Jaeger / Tempo | 16686 | Distributed tracing UI / backend |
|
|
72
|
+
|
|
73
|
+
### Access
|
|
74
|
+
|
|
75
|
+
- **Grafana**: http://localhost:3000 — default login `admin` / `admin`
|
|
76
|
+
- **Prometheus**: http://localhost:9090
|
|
77
|
+
- **Alertmanager**: http://localhost:9093
|
|
78
|
+
- **Jaeger UI** _(if selected)_: http://localhost:16686
|
|
79
|
+
|
|
80
|
+
### Instrumenting Your Application
|
|
81
|
+
|
|
82
|
+
Configure your service to send telemetry to the OTel Collector:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Already set in your environment:
|
|
86
|
+
OTEL_EXPORTER_OTLP_ENDPOINT="http://otel-collector:4317"
|
|
87
|
+
OTEL_METRICS_EXPORTER="otlp"
|
|
88
|
+
OTEL_TRACES_EXPORTER="otlp"
|
|
89
|
+
OTEL_LOGS_EXPORTER="otlp"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Install the OpenTelemetry SDK for your language, then traces and metrics
|
|
93
|
+
will flow automatically: App → OTel Collector → Jaeger / Prometheus / Loki.
|
|
94
|
+
|
|
95
|
+
### Grafana Datasources
|
|
96
|
+
|
|
97
|
+
The following datasources are pre-configured in Grafana:
|
|
98
|
+
|
|
99
|
+
- Prometheus (metrics)
|
|
100
|
+
- Loki (logs)
|
|
101
|
+
- Jaeger or Tempo (traces, if selected)
|
|
102
|
+
|
|
103
|
+
### Alertmanager
|
|
104
|
+
|
|
105
|
+
Add alert rules to Prometheus by creating a `prometheus-rules.yml` file
|
|
106
|
+
and mounting it into the Prometheus service, or use the Grafana alerting UI.
|
|
107
|
+
|
|
108
|
+
### Next Steps
|
|
109
|
+
|
|
110
|
+
- Browse the Grafana Explore tab to query logs and traces
|
|
111
|
+
- Import community dashboards from grafana.com/grafana/dashboards
|
|
112
|
+
- Configure Alertmanager routes in `.devcontainer/alertmanager.yml`
|
|
113
|
+
- Add your service's metrics endpoint to `prometheus-scrape-configs.yml`
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Kubernetes Development Preset
|
|
2
|
+
# Local Kubernetes cluster + dev loop tooling, language-agnostic
|
|
3
|
+
|
|
4
|
+
id: k8s-dev
|
|
5
|
+
name: Kubernetes Development
|
|
6
|
+
description: Local Kubernetes cluster with fast inner-loop tooling — choose your cluster provider and dev-loop tool
|
|
7
|
+
type: meta
|
|
8
|
+
category: preset
|
|
9
|
+
supports: [] # Works with both plain and compose
|
|
10
|
+
tags: [preset, kubernetes, k8s, kind, k3d, skaffold, tilt, devloop, kubectl, helm]
|
|
11
|
+
|
|
12
|
+
selects:
|
|
13
|
+
required:
|
|
14
|
+
- kubectl-helm
|
|
15
|
+
- docker-in-docker
|
|
16
|
+
- modern-cli-tools
|
|
17
|
+
|
|
18
|
+
userChoice: {}
|
|
19
|
+
|
|
20
|
+
parameters:
|
|
21
|
+
cluster:
|
|
22
|
+
description: 'Local Kubernetes cluster provider'
|
|
23
|
+
default: k3d
|
|
24
|
+
options:
|
|
25
|
+
- id: k3d
|
|
26
|
+
overlays: [k3d]
|
|
27
|
+
description: 'k3d (k3s in Docker) — fastest startup, lowest memory, ideal for CI'
|
|
28
|
+
- id: kind
|
|
29
|
+
overlays: [kind]
|
|
30
|
+
description: 'kind (Kubernetes in Docker) — official CNCF tool, most compatible'
|
|
31
|
+
|
|
32
|
+
devloop:
|
|
33
|
+
description: 'Inner-loop dev tool (watch → build → deploy on save)'
|
|
34
|
+
default: tilt
|
|
35
|
+
options:
|
|
36
|
+
- id: tilt
|
|
37
|
+
overlays: [tilt]
|
|
38
|
+
description: 'Tilt — live UI, smart rebuilds, port-forward management'
|
|
39
|
+
- id: skaffold
|
|
40
|
+
overlays: [skaffold]
|
|
41
|
+
description: 'Skaffold — declarative YAML, CI-compatible, multi-deployer support'
|
|
42
|
+
- id: none
|
|
43
|
+
overlays: []
|
|
44
|
+
description: 'No dev-loop tool — use kubectl directly'
|
|
45
|
+
|
|
46
|
+
glueConfig:
|
|
47
|
+
environment:
|
|
48
|
+
KUBECONFIG: '/home/vscode/.kube/config'
|
|
49
|
+
KUBECTL_CONTEXT: 'local'
|
|
50
|
+
|
|
51
|
+
portMappings:
|
|
52
|
+
app: 8080
|
|
53
|
+
tilt-ui: 10350
|
|
54
|
+
|
|
55
|
+
readme: |
|
|
56
|
+
## Kubernetes Development Stack
|
|
57
|
+
|
|
58
|
+
This devcontainer provides a complete local Kubernetes development environment.
|
|
59
|
+
|
|
60
|
+
### Tools
|
|
61
|
+
|
|
62
|
+
| Tool | Purpose |
|
|
63
|
+
|------|---------|
|
|
64
|
+
| kubectl + Helm | Kubernetes CLI and package manager |
|
|
65
|
+
| docker-in-docker | Run Docker inside the devcontainer to build images |
|
|
66
|
+
| k3d / kind | Provision a local Kubernetes cluster |
|
|
67
|
+
| Tilt / Skaffold | Watch → build → deploy inner loop |
|
|
68
|
+
| Modern CLI tools | `jq`, `yq`, `bat`, `fd`, `rg` for working with manifests |
|
|
69
|
+
|
|
70
|
+
### Cluster Management
|
|
71
|
+
|
|
72
|
+
#### k3d (default)
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Create cluster
|
|
76
|
+
k3d cluster create dev --port "8080:80@loadbalancer"
|
|
77
|
+
|
|
78
|
+
# List clusters
|
|
79
|
+
k3d cluster list
|
|
80
|
+
|
|
81
|
+
# Delete cluster
|
|
82
|
+
k3d cluster delete dev
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
#### kind
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Create cluster
|
|
89
|
+
kind create cluster --name dev
|
|
90
|
+
|
|
91
|
+
# List clusters
|
|
92
|
+
kind get clusters
|
|
93
|
+
|
|
94
|
+
# Delete cluster
|
|
95
|
+
kind delete cluster --name dev
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Inner-Loop Workflow
|
|
99
|
+
|
|
100
|
+
#### Tilt
|
|
101
|
+
|
|
102
|
+
Create a `Tiltfile` in your project root:
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
# Tiltfile
|
|
106
|
+
docker_build('my-app', '.')
|
|
107
|
+
k8s_yaml('k8s/')
|
|
108
|
+
k8s_resource('my-app', port_forwards=8080)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Then run:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
tilt up
|
|
115
|
+
# Open http://localhost:10350 for the Tilt UI
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
#### Skaffold
|
|
119
|
+
|
|
120
|
+
Create a `skaffold.yaml` in your project root:
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
apiVersion: skaffold/v4beta11
|
|
124
|
+
kind: Config
|
|
125
|
+
build:
|
|
126
|
+
artifacts:
|
|
127
|
+
- image: my-app
|
|
128
|
+
manifests:
|
|
129
|
+
rawYaml:
|
|
130
|
+
- k8s/*.yaml
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Then run:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
skaffold dev
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Helm Quick Start
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Add a chart repository
|
|
143
|
+
helm repo add bitnami https://charts.bitnami.com/bitnami
|
|
144
|
+
helm repo update
|
|
145
|
+
|
|
146
|
+
# Install a chart
|
|
147
|
+
helm install my-release bitnami/postgresql
|
|
148
|
+
|
|
149
|
+
# Upgrade
|
|
150
|
+
helm upgrade my-release bitnami/postgresql --set auth.password=secret
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### kubectl Tips
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Watch all resources
|
|
157
|
+
kubectl get all -A -w
|
|
158
|
+
|
|
159
|
+
# Port-forward a service
|
|
160
|
+
kubectl port-forward svc/my-app 8080:80
|
|
161
|
+
|
|
162
|
+
# Inspect manifest with yq
|
|
163
|
+
kubectl get deployment my-app -o yaml | yq '.spec.template.spec.containers[0]'
|
|
164
|
+
|
|
165
|
+
# Live logs
|
|
166
|
+
kubectl logs -f -l app=my-app
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Next Steps
|
|
170
|
+
|
|
171
|
+
- Add a language overlay (`nodejs`, `go`, `python`, etc.) for your application runtime
|
|
172
|
+
- Add the `k8s-operator-dev` preset if you are building Kubernetes operators
|
|
173
|
+
- Configure image registry credentials for pushing built images
|
|
174
|
+
- Add Prometheus + Grafana overlays for in-cluster monitoring
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Local LLM Stack Preset
|
|
2
|
+
# Run local language models with a browser chat UI
|
|
3
|
+
|
|
4
|
+
id: local-llm
|
|
5
|
+
name: Local LLM Stack
|
|
6
|
+
description: Local inference with Ollama and Open WebUI — pull any model and chat without an API key
|
|
7
|
+
type: meta
|
|
8
|
+
category: preset
|
|
9
|
+
supports: [compose] # Requires Docker Compose for Ollama service
|
|
10
|
+
tags: [preset, ai, llm, ollama, open-webui, local-inference]
|
|
11
|
+
|
|
12
|
+
selects:
|
|
13
|
+
required:
|
|
14
|
+
- ollama
|
|
15
|
+
- ollama-cli
|
|
16
|
+
- open-webui
|
|
17
|
+
|
|
18
|
+
userChoice: {}
|
|
19
|
+
|
|
20
|
+
parameters:
|
|
21
|
+
gpu:
|
|
22
|
+
description: 'GPU acceleration (optional — CPU works without it)'
|
|
23
|
+
default: none
|
|
24
|
+
options:
|
|
25
|
+
- id: none
|
|
26
|
+
overlays: []
|
|
27
|
+
description: 'CPU only — works on any machine, slower for large models'
|
|
28
|
+
- id: nvidia
|
|
29
|
+
overlays: [cuda]
|
|
30
|
+
description: 'Nvidia GPU via CUDA'
|
|
31
|
+
- id: amd
|
|
32
|
+
overlays: [rocm]
|
|
33
|
+
description: 'AMD GPU via ROCm'
|
|
34
|
+
|
|
35
|
+
glueConfig:
|
|
36
|
+
environment:
|
|
37
|
+
OLLAMA_HOST: 'http://ollama:11434'
|
|
38
|
+
|
|
39
|
+
portMappings:
|
|
40
|
+
ollama-api: 11434
|
|
41
|
+
open-webui: 3000
|
|
42
|
+
|
|
43
|
+
readme: |
|
|
44
|
+
## Local LLM Stack
|
|
45
|
+
|
|
46
|
+
This devcontainer runs a full local LLM environment — no API key required.
|
|
47
|
+
|
|
48
|
+
### Services
|
|
49
|
+
|
|
50
|
+
- **Ollama** — LLM runtime serving models on port 11434
|
|
51
|
+
- **Open WebUI** — Browser-based chat UI at http://localhost:3000
|
|
52
|
+
- **ollama-cli** — `ollama` command available in the terminal
|
|
53
|
+
|
|
54
|
+
### Quick Start
|
|
55
|
+
|
|
56
|
+
1. Open http://localhost:3000 in your browser
|
|
57
|
+
2. Sign up with any email (local only — no data leaves your machine)
|
|
58
|
+
3. Pull a model via the terminal or the UI:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Pull a model
|
|
62
|
+
ollama pull llama3.2
|
|
63
|
+
|
|
64
|
+
# Run interactively in the terminal
|
|
65
|
+
ollama run llama3.2
|
|
66
|
+
|
|
67
|
+
# List pulled models
|
|
68
|
+
ollama list
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Recommended Models
|
|
72
|
+
|
|
73
|
+
| Model | Size | Use case |
|
|
74
|
+
|-------|------|----------|
|
|
75
|
+
| `llama3.2` | 2–8 B | General purpose, fast |
|
|
76
|
+
| `mistral` | 7 B | Strong reasoning |
|
|
77
|
+
| `codellama` | 7–34 B | Code generation |
|
|
78
|
+
| `nomic-embed-text` | 137 M | Embeddings for RAG |
|
|
79
|
+
| `phi4` | 14 B | Microsoft research model |
|
|
80
|
+
|
|
81
|
+
### Using the API
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Chat completion
|
|
85
|
+
curl http://localhost:11434/api/chat -d '{
|
|
86
|
+
"model": "llama3.2",
|
|
87
|
+
"messages": [{"role": "user", "content": "Hello!"}]
|
|
88
|
+
}'
|
|
89
|
+
|
|
90
|
+
# Generate embeddings
|
|
91
|
+
curl http://localhost:11434/api/embeddings -d '{
|
|
92
|
+
"model": "nomic-embed-text",
|
|
93
|
+
"prompt": "Hello world"
|
|
94
|
+
}'
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### GPU Acceleration
|
|
98
|
+
|
|
99
|
+
If you selected a GPU option, ensure the relevant drivers are installed on the host.
|
|
100
|
+
CPU-only mode works on any machine — expect ~10–30 tokens/sec for 7 B models.
|
|
101
|
+
|
|
102
|
+
### Next Steps
|
|
103
|
+
|
|
104
|
+
- Add the `qdrant` overlay and `vector-ai` preset for a full RAG pipeline
|
|
105
|
+
- Add the `python` overlay to build LLM-powered apps
|