wick_config/config/common/
host_definition.rs

1#![allow(missing_docs)] // delete when we move away from the `property` crate.
2use std::net::Ipv4Addr;
3
4use crate::config;
5
6#[derive(Debug, Clone, Default, derive_builder::Builder, property::Property, serde::Serialize)]
7#[property(get(public), set(public), mut(public, suffix = "_mut"))]
8#[builder(setter(into))]
9#[must_use]
10/// Configuration options for the host to use at startup.
11pub struct HostConfig {
12  /// Flag to allow/disallow `:latest` tags for OCI artifacts.
13  #[builder(default)]
14  pub(crate) allow_latest: bool,
15
16  /// The list of registries to connect via HTTP rather than HTTPS.
17  #[builder(default)]
18  #[serde(skip_serializing_if = "Vec::is_empty")]
19  pub(crate) insecure_registries: Vec<String>,
20
21  /// Configuration for the GRPC server.
22  #[builder(setter(strip_option), default)]
23  #[serde(skip_serializing_if = "Option::is_none")]
24  pub(crate) rpc: Option<HttpConfig>,
25}
26
27#[derive(Debug, Default, Clone, derive_builder::Builder, property::Property, serde::Serialize)]
28#[builder(setter(into))]
29#[property(get(public), set(private), mut(public, suffix = "_mut"))]
30/// Configuration for HTTP/S servers.
31pub struct HttpConfig {
32  /// Enable/disable the server.
33  #[builder(default)]
34  pub(crate) enabled: bool,
35
36  /// The port to bind to.
37  #[builder(default)]
38  #[serde(skip_serializing_if = "Option::is_none")]
39  pub(crate) port: Option<u16>,
40
41  /// The address to bind to.
42  #[builder(default)]
43  #[serde(skip_serializing_if = "Option::is_none")]
44  pub(crate) address: Option<Ipv4Addr>,
45
46  /// Path to pem file for TLS.
47  #[builder(default)]
48  #[serde(skip_serializing_if = "Option::is_none")]
49  pub(crate) pem: Option<config::AssetReference>,
50
51  /// Path to key file for TLS.
52  #[builder(default)]
53  #[serde(skip_serializing_if = "Option::is_none")]
54  pub(crate) key: Option<config::AssetReference>,
55
56  /// Path to CA file.
57  #[builder(default)]
58  #[serde(skip_serializing_if = "Option::is_none")]
59  pub(crate) ca: Option<config::AssetReference>,
60}