Skip to main content

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}