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    /// Path to the datadog-intake configuration file to use.
39    ///
40    /// This file is mapped into the datadog-intake container and so it must exist on the system where this command is run
41    /// from.
42    pub config_path: PathBuf,
43}
44
45/// Target configuration.
46#[derive(Clone)]
47pub struct TargetConfig {
48    /// Container image to use.
49    ///
50    /// This must be a valid image reference -- `agent-data-plane:x.y.z`,
51    /// `registry.ddbuild.io/saluki/agent-data-plane:x.y.z`, etc -- to an image containing the `agent-data-plane`
52    /// binary.
53    pub image: String,
54
55    /// Entrypoint to execute.
56    pub entrypoint: Vec<String>,
57
58    /// Command to run.
59    pub command: Vec<String>,
60
61    /// Additional environment variables to be passed into the target container.
62    ///
63    /// These should be in the form of `KEY=VALUE`.
64    pub additional_env_vars: Vec<String>,
65}