You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**macOS and Windows as the host.** The stack needs a Linux machine with KVM
91
+
and a 4 KiB-page kernel, x86-64 or arm64. On Apple silicon that is a Linux
92
+
VM with nested virtualization (M3 or newer, macOS 15 or newer). arm64 is
93
+
verified end to end on bare metal and needs kernel 6.10 or newer; the
94
+
Compose guide's Requirements say why.
95
+
-**Container-Optimized OS.** The machine needs apt, a writable `/etc` and
96
+
glibc 2.34 or newer.
97
+
-**No dashboard.** Only the SDK and API paths are covered.
98
+
-**No wildcard DNS and no TLS.**
196
99
197
-
###Developing
100
+
## Developing
198
101
199
102
`make` is a developer convenience; the operator path is only `docker compose`,
200
103
`terraform` or `kubectl`.
201
104
202
-
| Target | What it does |
203
-
|--------|--------------|
204
-
|`make images`| build the three stack images locally under their pinned tags |
205
-
|`make lint`| render the compose file and the kustomization, validate the Vector config and the Terraform module, shellcheck the scripts and the tests|
206
-
|`make test`| run the bats suite in `tests/`|
207
-
|`make stores-check`| the store-level integration check|
208
-
|`make sync-configs`|re-inline the two configs into the compose file|
105
+
-`make images` builds the 3 stack images locally under their pinned tags.
106
+
-`make lint` renders the compose file and the kustomization, validates the
107
+
Vector config and the Terraform module, and shellchecks the scripts and the
108
+
tests.
109
+
-`make test`runs the bats suite in `tests/`.
110
+
-`make stores-check`runs the store-level integration check.
111
+
-`make sync-configs` re-inlines the 2 configs into the compose file.
209
112
210
-
`make lint` wants `shellcheck`, `terraform` (1.7.5 or newer; `terraform init`
211
-
downloads the google and random providers, so network) and `kubectl` (for
212
-
`kubectl kustomize`); `make test` wants `bats` plus `kubectl`, which
213
-
`tests/kubernetes.bats` renders the manifest with. `tests/terraform.bats`
214
-
reads the module's files as text and needs no terraform. Both also need a
215
-
working Docker daemon with the compose plugin and `jq` on `PATH`, because
216
-
`make lint` renders `compose/compose.yaml` and validates the Vector config
217
-
with the Vector image (`make vector-validate`), and
218
-
`tests/inline-configs.bats` diffs the rendered inline configs against the
219
-
copies under `compose/config/`.
220
-
`tests/vector-rows.bats` replays the fixture log lines in
221
-
`tests/fixtures/vector/` through the shipped Vector config with that image,
222
-
`compose/scripts/dev/vector-testconfig.py` swapping only the source for stdin
223
-
and the sink for a JSON console, and asserts the `sandbox_logs` row each
224
-
becomes or that it is dropped; it needs Docker, python3 and `jq` as well.
113
+
What each target needs, and when the stack images have to be rebuilt, is in
114
+
[Developing](docs/REFERENCE.md#developing).
225
115
226
-
After editing `compose/config/vector/vector.toml` or
227
-
`compose/config/clickhouse/config.xml`, run `make sync-configs` (python3): it
228
-
rewrites the inline copies in `compose/compose.yaml` and the
229
-
`VECTOR_CONFIG_SHA256` and `CLICKHOUSE_CONFIG_SHA256` stamps that make Compose
230
-
recreate the container on a config change, which it does not do for inline
231
-
`configs:` content on its own. `tests/config-hashes.bats` fails until the
232
-
stamps match.
233
-
234
-
`make stores-check` runs what CI's stores job runs: both stores, their
235
-
migrators, the seed, and the assertions that the seed wrote the team API key
236
-
file, that the seeded row hashes that key, and that both migration ledgers
237
-
landed. It wants Docker, network access and the images from `make images`,
238
-
takes about a minute and needs no KVM, and it deliberately leaves the
239
-
containers up so a failure can be inspected, so finish with
240
-
`docker compose --project-directory compose down -v`.
241
-
242
-
The scripts under `compose/scripts/` and `compose/scripts/node/` travel inside
243
-
the two stack images that carry them, and the compose file mounts nothing from
244
-
the repository, so after editing either directory run `make images` before the
245
-
next start, or the stack silently keeps running the old code. Without `make`,
246
-
this is the `images` target (its `$$` becomes a single `$` outside of make):
247
-
248
-
```bash
249
-
set -a;. ./compose/.env;set +a
250
-
docker buildx bake --load \
251
-
--set "*.platform=linux/$(docker version -f '{{.Server.Arch}}')" \
0 commit comments