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
[4/n] [omicron-package] add and use target presets (#7288)
The overall goal of this change is to ensure that all release-related
configuration is present in `package-manifest.toml`. This will allow
linting and SBOM
generation based on this config, rather than the knowledge being
scattered
across omicron-package and the releng tool.
Copy file name to clipboardExpand all lines: docs/how-to-run.adoc
+41-10Lines changed: 41 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -332,57 +332,88 @@ In some configurations (not the one described here), it may be necessary to upda
332
332
333
333
The `omicron-package` tool builds Omicron and bundles all required files into _packages_ that can be copied to another system (if necessary) and installed there. This tool acts on `package-manifest.toml`, which describes the contents of the packages.
334
334
335
-
Packages have a notion of "build targets", which are used to select between different variants of certain components. A build target is composed of an image type, a machine type, and a switch type:
335
+
Packages have a notion of "build targets", which are used to select between different variants of certain components. For example, the Sled Agent can be built for a real Oxide system, for a standalone Gimlet, or for a non-Gimlet system. This choice is represented by the `--machine` setting here:
336
336
337
337
[source,console]
338
338
----
339
-
$ cargo run --release --bin omicron-package -- target create -h
The preset to use as part of the build (use `dev` for development).
349
+
350
+
Presets are defined in the `target.preset` section of the config. The other configurations are layered on top of
351
+
the preset.
352
+
347
353
-i, --image <IMAGE>
348
-
[default: standard]
354
+
The image to use for the target.
355
+
356
+
If specified, this configuration is layered on top of the preset.
349
357
350
358
Possible values:
351
359
- standard: A typical host OS image
352
360
- trampoline: A recovery host OS image, intended to bootstrap a Standard image
353
361
354
362
-m, --machine <MACHINE>
363
+
The kind of machine to build for
364
+
355
365
Possible values:
356
366
- gimlet: Use sled agent configuration for a Gimlet
357
367
- gimlet-standalone: Use sled agent configuration for a Gimlet running in isolation
358
368
- non-gimlet: Use sled agent configuration for a device emulating a Gimlet
359
369
360
370
-s, --switch <SWITCH>
371
+
The switch to use for the target
372
+
361
373
Possible values:
362
374
- asic: Use the "real" Dendrite, that attempts to interact with the Tofino
363
375
- stub: Use a "stub" Dendrite that does not require any real hardware
364
376
- softnpu: Use a "softnpu" Dendrite that uses the SoftNPU asic emulator
365
377
366
378
-r, --rack-topology <RACK_TOPOLOGY>
379
+
Specify whether nexus will run in a single-sled or multi-sled environment.
380
+
381
+
Set single-sled for dev purposes when you're running a single sled-agent. Set multi-sled if you're running with
382
+
multiple sleds. Currently this only affects the crucible disk allocation strategy- VM disks will require 3
383
+
distinct sleds with `multi-sled`, which will fail in a single-sled environment. `single-sled` relaxes this
384
+
requirement.
385
+
367
386
Possible values:
368
387
- multi-sled: Use configurations suitable for a multi-sled deployment, such as dogfood and production racks
369
388
- single-sled: Use configurations suitable for a single-sled deployment, such as CI and dev machines
370
389
390
+
-c, --clickhouse-topology <CLICKHOUSE_TOPOLOGY>
391
+
Specify whether clickhouse will be deployed as a replicated cluster or single-node configuration.
392
+
393
+
Replicated cluster configuration is an experimental feature to be used only for testing.
394
+
395
+
Possible values:
396
+
- replicated-cluster: Use configurations suitable for a replicated ClickHouse cluster deployment
397
+
- single-node: Use configurations suitable for a single-node ClickHouse deployment
398
+
371
399
-h, --help
372
400
Print help (see a summary with '-h')
373
-
374
401
----
375
402
376
-
To set up a build target for a non-Gimlet machine with simulated (but fully functional) external networking, you would run:
403
+
Setting up a target is typically done by selecting a **preset**. Presets are defined in `package-manifest.toml` under `[target.preset]`.
404
+
405
+
For development purposes, the recommended preset is `dev`. This preset sets up a build target for a non-Gimlet machine with simulated (but fully functional) external networking:
377
406
378
407
[source,console]
379
408
----
380
-
$ cargo run --release --bin omicron-package -- -t default target create -i standard -m non-gimlet -s softnpu -r single-sled
409
+
$ cargo run --release --bin omicron-package -- -t default target create -p dev
0 commit comments