Skip to content

Commit b576ee3

Browse files
committed
Initial encrypted mesh support
Signed-off-by: Chris Porter <[email protected]>
1 parent 96aff63 commit b576ee3

File tree

20 files changed

+1054
-16
lines changed

20 files changed

+1054
-16
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ rstest = "0.17"
5353
serde = { version = "1.0", features = ["derive"] }
5454
serde_with = { version = "1.11.0", features = ["base64"] }
5555
serde_json = "1.0"
56+
serde_yml = "0.0.11"
5657
serial_test = "3"
5758
sha2 = "0.10.7"
5859
strum = { version = "0.26", features = ["derive"] }

confidential-data-hub/example.config.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,13 @@
2424
"skip_proxy_ips": "192.168.0.1,localhost",
2525
"extra_root_certificates": "-----BEGIN CERTIFICATE-----\nMIIFTDCCAvugAwIBAgIBADBGBgkqhkiG9w0BAQowOaAPMA0GCWCGSAFlAwQCAgUA\noRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAgUAogMCATCjAwIBATB7MRQwEgYD\nVQQLDAtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxFDASBgNVBAcMC1NhbnRhIENs\nYXJhMQswCQYDVQQIDAJDQTEfMB0GA1UECgwWQWR2YW5jZWQgTWljcm8gRGV2aWNl\nczESMBAGA1UEAwwJU0VWLU1pbGFuMB4XDTIzMDEyNDE3NTgyNloXDTMwMDEyNDE3\nNTgyNlowejEUMBIGA1UECwwLRW5naW5lZXJpbmcxCzAJBgNVBAYTAlVTMRQwEgYD\nVQQHDAtTYW50YSBDbGFyYTELMAkGA1UECAwCQ0ExHzAdBgNVBAoMFkFkdmFuY2Vk\nIE1pY3JvIERldmljZXMxETAPBgNVBAMMCFNFVi1WQ0VLMHYwEAYHKoZIzj0CAQYF\nK4EEACIDYgAExmG1ZbuoAQK93USRyZQcsyobfbaAEoKEELf/jK39cOVJt1t4s83W\nXM3rqIbS7qHUHQw/FGyOvdaEUs5+wwxpCWfDnmJMAQ+ctgZqgDEKh1NqlOuuKcKq\n2YAWE5cTH7sHo4IBFjCCARIwEAYJKwYBBAGceAEBBAMCAQAwFwYJKwYBBAGceAEC\nBAoWCE1pbGFuLUIwMBEGCisGAQQBnHgBAwEEAwIBAzARBgorBgEEAZx4AQMCBAMC\nAQAwEQYKKwYBBAGceAEDBAQDAgEAMBEGCisGAQQBnHgBAwUEAwIBADARBgorBgEE\nAZx4AQMGBAMCAQAwEQYKKwYBBAGceAEDBwQDAgEAMBEGCisGAQQBnHgBAwMEAwIB\nCDARBgorBgEEAZx4AQMIBAMCAXMwTQYJKwYBBAGceAEEBEDDhCejDUx6+dlvehW5\ncmmCWmTLdqI1L/1dGBFdia1HP46MC82aXZKGYSutSq37RCYgWjueT+qCMBE1oXDk\nd1JOMEYGCSqGSIb3DQEBCjA5oA8wDQYJYIZIAWUDBAICBQChHDAaBgkqhkiG9w0B\nAQgwDQYJYIZIAWUDBAICBQCiAwIBMKMDAgEBA4ICAQACgCai9x8DAWzX/2IelNWm\nituEBSiq9C9eDnBEckQYikAhPasfagnoWFAtKu/ZWTKHi+BMbhKwswBS8W0G1ywi\ncUWGlzigI4tdxxf1YBJyCoTSNssSbKmIh5jemBfrvIBo1yEd+e56ZJMdhN8e+xWU\nbvovUC2/7Dl76fzAaACLSorZUv5XPJwKXwEOHo7FIcREjoZn+fKjJTnmdXce0LD6\n9RHr+r+ceyE79gmK31bI9DYiJoL4LeGdXZ3gMOVDR1OnDos5lOBcV+quJ6JujpgH\nd9g3Sa7Du7pusD9Fdap98ocZslRfFjFi//2YdVM4MKbq6IwpYNB+2PCEKNC7SfbO\nNgZYJuPZnM/wViES/cP7MZNJ1KUKBI9yh6TmlSsZZOclGJvrOsBZimTXpATjdNMt\ncluKwqAUUzYQmU7bf2TMdOXyA9iH5wIpj1kWGE1VuFADTKILkTc6LzLzOWCofLxf\nonhTtSDtzIv/uel547GZqq+rVRvmIieEuEvDETwuookfV6qu3D/9KuSr9xiznmEg\nxynud/f525jppJMcD/ofbQxUZuGKvb3f3zy+aLxqidoX7gca2Xd9jyUy5Y/83+ZN\nbz4PZx81UJzXVI9ABEh8/xilATh1ZxOePTBJjN7lgr0lXtKYjV/43yyxgUYrXNZS\noLSG2dLCK9mjjraPjau34Q==\n-----END CERTIFICATE-----",
2626
"work_dir": "/run/image-rs"
27+
},
28+
"overlay_network": {
29+
"enable": "true",
30+
"nebula": {
31+
"lighthouse_pub_ip": "127.0.0.1",
32+
"lighthouse_overlay_ip": "192.168.100.100",
33+
"overlay_netmask": "255.255.255.0"
34+
}
2735
}
2836
}

confidential-data-hub/example.config.toml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,4 +176,26 @@ oLSG2dLCK9mjjraPjau34Q==
176176
# The path to store the pulled image layer data.
177177
#
178178
# This value defaults to `/run/image-rs/`.
179-
work_dir = "/run/image-rs"
179+
work_dir = "/run/image-rs"
180+
181+
182+
# (Optional) Overlay network-related configuration
183+
# If enabled, overlay_network.nebula (and all its fields) are required
184+
[overlay_network]
185+
186+
# Set enable to true to enable the overlay network
187+
enable = "true"
188+
189+
[overlay_network.nebula]
190+
# The public IP address of the lighthouse (localhost just used as an example
191+
# here).
192+
lighthouse_pub_ip = "127.0.0.1"
193+
194+
# The (internal/private) IP address of the lighthouse.
195+
# This MUST match the IP address (i.e. the internal/overlay/vpn IP address)
196+
# assigned to the lighthouse.
197+
lighthouse_overlay_ip = "192.168.100.100"
198+
199+
# The netmask of the overlay network. The provided example is a /24 network,
200+
# allowing for 256 pods in the network.
201+
overlay_netmask = "255.255.255.0"

confidential-data-hub/hub/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ env_logger = { workspace = true, optional = true }
4545
image-rs = { path = "../../image-rs", default-features = false, features = ["kata-cc-rustls-tls"] }
4646
kms = { path = "../kms", default-features = false }
4747
log.workspace = true
48+
nix = { workspace = true, features = ["net"] }
49+
overlay_network.path = "../overlay-network"
4850
prost = { workspace = true, optional = true }
4951
protobuf = { workspace = true, optional = true }
5052
rand.workspace = true
@@ -102,3 +104,6 @@ grpc = ["prost", "tonic", "tonic-build", "tokio/signal"]
102104

103105
# for secret_cli
104106
cli = ["clap/derive", "tokio/rt-multi-thread", "tokio/sync", "tokio/macros"]
107+
108+
# support overlay network
109+
overlay-network = []

confidential-data-hub/hub/protos/api.proto

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ message ImagePullResponse {
4242
string manifest_digest = 1;
4343
}
4444

45+
message InitOverlayNetworkRequest {
46+
string pod_name = 1;
47+
string lighthouse_pub_ip = 2;
48+
}
49+
50+
message InitOverlayNetworkResponse {
51+
int32 return_code = 1;
52+
}
53+
4554
service SealedSecretService {
4655
rpc UnsealSecret(UnsealSecretInput) returns (UnsealSecretOutput) {};
4756
}
@@ -56,4 +65,8 @@ service SecureMountService {
5665

5766
service ImagePullService {
5867
rpc PullImage(ImagePullRequest) returns (ImagePullResponse) {};
59-
}
68+
}
69+
70+
service OverlayNetworkService {
71+
rpc InitOverlayNetwork(InitOverlayNetworkRequest) returns (InitOverlayNetworkResponse) {};
72+
}

confidential-data-hub/hub/src/api.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,10 @@ pub trait DataHub {
3232

3333
/// Pull image of image url (reference), and place the merged layers in the `bundle_path/rootfs`
3434
async fn pull_image(&self, _image_url: &str, _bundle_path: &str) -> Result<String>;
35+
36+
/// Initialize the overlay network
37+
async fn init_overlay_network(
38+
&self,
39+
pod_name: String,
40+
) -> Result<()>;
3541
}

0 commit comments

Comments
 (0)