airlock/config.rs
1use std::path::PathBuf;
2
3/// Millstone configuration.
4#[derive(Clone)]
5pub struct MillstoneConfig {
6 /// Container image to use.
7 ///
8 /// This must be a valid image reference -- `millstone:x.y.z`, `registry.ddbuild.io/saluki/millstone:x.y.z`, etc --
9 /// to an image containing the `millstone` binary.
10 pub image: String,
11
12 /// Path to the millstone binary.
13 ///
14 /// Defaults to `/usr/local/bin/millstone`.
15 pub binary_path: Option<String>,
16
17 /// Path to the millstone configuration file to use.
18 ///
19 /// This file is mapped into the millstone container and so it must exist on the system where this command is run
20 /// from.
21 pub config_path: PathBuf,
22}
23
24/// datadog-intake configuration.
25#[derive(Clone)]
26pub struct DatadogIntakeConfig {
27 /// Container image to use.
28 ///
29 /// This must be a valid image reference -- `datadog-intake:x.y.z`,
30 /// `registry.ddbuild.io/saluki/datadog-intake:x.y.z`, etc -- to an image containing the `datadog-intake` binary.
31 pub image: String,
32
33 /// Path to the datadog-intake binary.
34 ///
35 /// Defaults to `/usr/local/bin/datadog-intake`.
36 pub binary_path: Option<String>,
37}
38
39/// Target configuration.
40#[derive(Clone)]
41pub struct TargetConfig {
42 /// Container image to use.
43 ///
44 /// This must be a valid image reference -- `agent-data-plane:x.y.z`,
45 /// `registry.ddbuild.io/saluki/agent-data-plane:x.y.z`, etc -- to an image containing the `agent-data-plane`
46 /// binary.
47 pub image: String,
48
49 /// Entrypoint to execute.
50 pub entrypoint: Vec<String>,
51
52 /// Command to run.
53 pub command: Vec<String>,
54
55 /// Additional environment variables to be passed into the target container.
56 ///
57 /// These should be in the form of `KEY=VALUE`.
58 pub additional_env_vars: Vec<String>,
59}