//! *dynk8s-provisioner* Integration Tests //! //! Create the test resources: //! //! ```sh //! kubectl apply -f tests/setup.yaml //! ``` //! //! Generate a kubeconfig for the test service account: //! //! ```sh //! sh tests/genkubeconfig.sh > kubeconfig //! ``` //! //! Run the tests: //! //! ```sh //! KUBECONFIG=${PWD}/kubeconfig cargo test //! ``` 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 = 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::::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::::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(); }