47 lines
1.5 KiB
Rust
47 lines
1.5 KiB
Rust
use std::collections::btree_map::BTreeMap;
|
|
|
|
use k8s_openapi::api::core::v1::Secret;
|
|
use kube::core::params::ListParams;
|
|
|
|
mod sns;
|
|
|
|
const WIREGUARD_CONFIG: &str = "\
|
|
[Interface]
|
|
Address = 10.11.12.13/14
|
|
PrivateKey = UEdAkIaF80zhlOpgacOYL2UckrfCAWXfsDDSAAzNH3g=
|
|
|
|
[Peer]
|
|
PublicKey = zbeTpUFA014kvTezIEGBt4yi3BVocST9j1dBElp9liI=
|
|
PreSharedKey = V6hAm01dxv2ib8AML2dSyX68hlPZm8En+IXfsknK3Zc=
|
|
AllowedIPs = 0.0.0.0/0
|
|
Endpoint = wireguard.example.org:24680
|
|
";
|
|
|
|
async fn setup() {
|
|
let client = kube::Client::try_default().await.unwrap();
|
|
let secrets: kube::Api<Secret> = kube::Api::default_namespaced(client);
|
|
let lp =
|
|
ListParams::default().fields("type=dynk8s.du5t1n.me/wireguard-config");
|
|
secrets
|
|
.delete_collection(&Default::default(), &lp)
|
|
.await
|
|
.unwrap();
|
|
|
|
let mut labels = BTreeMap::<String, String>::new();
|
|
labels.insert(
|
|
"app.kubernetes.io/part-of".into(),
|
|
"dynk8s-provisioner".into(),
|
|
);
|
|
labels.insert("dynk8s.du5t1n.me/ec2-instance-id".into(), "".into());
|
|
let mut data = BTreeMap::<String, String>::new();
|
|
data.insert("wireguard-config".into(), WIREGUARD_CONFIG.into());
|
|
let mut secret = Secret::default();
|
|
secret.type_ = Some("dynk8s.du5t1n.me/wireguard-config".into());
|
|
secret.immutable = Some(true);
|
|
secret.metadata.generate_name = Some("wireguard-config-".into());
|
|
secret.metadata.labels = Some(labels);
|
|
secret.string_data = Some(data);
|
|
secrets.create(&Default::default(), &secret).await.unwrap();
|
|
}
|
|
|