diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2303cf87b34..41580025adc 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -63,7 +63,7 @@ jobs: uses: docker/build-push-action@v3 with: context: . - tag: test + tags: test file: mirrord-agent/Dockerfile outputs: type=docker,dest=/tmp/test.tar cache-from: type=gha @@ -145,6 +145,8 @@ jobs: - uses: Swatinem/rust-cache@v1 with: key: ubuntu-latest + cache-on-failure: true + - uses: actions/setup-node@v3 with: node-version: 14 @@ -163,19 +165,57 @@ jobs: with: name: test path: /tmp - - name: load image - run: docker load --input /tmp/test.tar - - run: docker image tag $(docker images | awk '{print $3}' | awk 'NR==2') test:latest - - run: minikube image load test:latest + - run: minikube image load /tmp/test.tar - name: cargo test run: cargo test -p tests - name: switch minikube runtime run: | minikube delete minikube start --container-runtime=docker - minikube image load test:latest + minikube image load /tmp/test.tar - name: test with docker runtime run: cargo test -p tests - name: Collect logs if: ${{ failure() }} - run: for FILE in $(docker exec minikube ls /var/log/containers); do docker exec minikube cat /var/log/containers/$FILE; done \ No newline at end of file + run: for FILE in $(docker exec minikube ls /var/log/containers); do docker exec minikube cat /var/log/containers/$FILE; done + + e2e_macos: + runs-on: macos-latest + name: e2e macOS + needs: [build_mirrord, test_agent_image] + env: + MIRRORD_AGENT_RUST_LOG: "warn,mirrord=debug" + USE_MINIKUBE: "true" + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + components: rustfmt + - uses: Swatinem/rust-cache@v1 + with: + key: macos-latest + cache-on-failure: true + - uses: actions/setup-node@v3 + with: + node-version: 14 + - run: npm install express + - uses: actions/setup-python@v3 + - run: pip3 install flask + - name: setup cluster requirements + run: brew install hyperkit docker minikube + - name: start minikube + run: minikube start --driver=hyperkit --container-runtime=docker + - name: download image + uses: actions/download-artifact@v2 + with: + name: test + path: /tmp + - name: load image + run: minikube image load /tmp/test.tar + - name: cargo test + run: cargo test -p tests + - name: Collect logs + if: ${{ failure() }} + run: docker logs $(docker ps -a | grep mirrord-agent | grep -v pause | head -n 1| cut -d' ' -f1) \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index a85048dd490..e4d9b0f7e8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,11 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how ### Changed - Refactor e2e, enable only Node HTTP mirroring test. +- E2E: add macOS to E2E, support using minikube by env var. +- E2E: Skip loading to docker before loading to minikube (load directly to minikube..) +### Fixed +- Support connections that start with tcp flags in addition to Syn (on macOS CI we saw CWR + NS) ## 2.3.1 diff --git a/Cargo.lock b/Cargo.lock index a99b6976a7c..12c025d02e6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -314,9 +314,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.6" +version = "3.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1fe12880bae935d142c8702d500c63a4e8634b6c3c57ad72bf978fc7b6249a" +checksum = "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83" dependencies = [ "atty", "bitflags", @@ -331,9 +331,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.2.6" +version = "3.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6db9e867166a43a53f7199b5e4d1f522a1e5bd626654be263c999ce59df39a" +checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -344,9 +344,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87eba3c8c7f42ef17f6c659fc7416d0f4758cd3e58861ee63c5fa4a4dde649e4" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" dependencies = [ "os_str_bytes", ] @@ -391,9 +391,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "5999502d32b9c48d492abe66392408144895020ec4709e549e840799f3bb74c0" dependencies = [ "generic-array", "typenum", @@ -529,9 +529,9 @@ checksum = "140206b78fb2bc3edbcfc9b5ccbd0b30699cfe8d348b8b31b330e47df5291a5a" [[package]] name = "either" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" [[package]] name = "encoding_rs" @@ -617,14 +617,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c" +checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" dependencies = [ "cfg-if", "libc", "redox_syscall", - "winapi", + "windows-sys", ] [[package]] @@ -1104,23 +1104,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "k8s-openapi" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0489fc937cc7616a9abfa61bf39c250d7e32e1325ef028c8d9278dd24ea395b3" -dependencies = [ - "base64", - "bytes", - "chrono", - "http", - "percent-encoding", - "serde", - "serde-value", - "serde_json", - "url", -] - [[package]] name = "k8s-openapi" version = "0.15.0" @@ -1138,68 +1121,17 @@ dependencies = [ "url", ] -[[package]] -name = "kube" -version = "0.71.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "342744dfeb81fe186b84f485b33f12c6a15d3396987d933b06a566a3db52ca38" -dependencies = [ - "k8s-openapi 0.14.0", - "kube-client 0.71.0", - "kube-core 0.71.0", - "kube-derive 0.71.0", - "kube-runtime 0.71.0", -] - [[package]] name = "kube" version = "0.73.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f68b954ea9ad888de953fb1488bd8f377c4c78d82d4642efa5925189210b50b7" dependencies = [ - "k8s-openapi 0.15.0", - "kube-client 0.73.1", - "kube-core 0.73.1", - "kube-derive 0.73.1", - "kube-runtime 0.73.1", -] - -[[package]] -name = "kube-client" -version = "0.71.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f69a504997799340408635d6e351afb8aab2c34ca3165e162f41b3b34a69a79" -dependencies = [ - "base64", - "bytes", - "chrono", - "dirs-next", - "either", - "futures", - "http", - "http-body", - "hyper", - "hyper-rustls", - "hyper-timeout", - "jsonpath_lib", - "k8s-openapi 0.14.0", - "kube-core 0.71.0", - "pem", - "pin-project", - "rand 0.8.5", - "rustls", - "rustls-pemfile 0.3.0", - "secrecy", - "serde", - "serde_json", - "serde_yaml", - "thiserror", - "tokio", - "tokio-tungstenite", - "tokio-util 0.7.3", - "tower", - "tower-http 0.2.5", - "tracing", + "k8s-openapi", + "kube-client", + "kube-core", + "kube-derive", + "kube-runtime", ] [[package]] @@ -1220,13 +1152,13 @@ dependencies = [ "hyper-rustls", "hyper-timeout", "jsonpath_lib", - "k8s-openapi 0.15.0", - "kube-core 0.73.1", + "k8s-openapi", + "kube-core", "pem", "pin-project", "rand 0.8.5", "rustls", - "rustls-pemfile 1.0.0", + "rustls-pemfile", "secrecy", "serde", "serde_json", @@ -1236,28 +1168,10 @@ dependencies = [ "tokio-tungstenite", "tokio-util 0.7.3", "tower", - "tower-http 0.3.4", + "tower-http", "tracing", ] -[[package]] -name = "kube-core" -version = "0.71.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a247487699941baaf93438d65b12d4e32450bea849d619d19ed394e8a4a645" -dependencies = [ - "chrono", - "form_urlencoded", - "http", - "json-patch", - "k8s-openapi 0.14.0", - "once_cell", - "schemars", - "serde", - "serde_json", - "thiserror", -] - [[package]] name = "kube-core" version = "0.73.1" @@ -1268,7 +1182,7 @@ dependencies = [ "form_urlencoded", "http", "json-patch", - "k8s-openapi 0.15.0", + "k8s-openapi", "once_cell", "schemars", "serde", @@ -1276,19 +1190,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "kube-derive" -version = "0.71.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "203f7c5acf9d0dfb0b08d44ec1d66ace3d1dfe0cdd82e65e274f3f96615d666c" -dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "serde_json", - "syn", -] - [[package]] name = "kube-derive" version = "0.73.1" @@ -1302,30 +1203,6 @@ dependencies = [ "syn", ] -[[package]] -name = "kube-runtime" -version = "0.71.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02ea50e6ed56578e1d1d02548901b12fe6d3edbf110269a396955e285d487973" -dependencies = [ - "ahash", - "backoff", - "derivative", - "futures", - "json-patch", - "k8s-openapi 0.14.0", - "kube-client 0.71.0", - "parking_lot", - "pin-project", - "serde", - "serde_json", - "smallvec", - "thiserror", - "tokio", - "tokio-util 0.7.3", - "tracing", -] - [[package]] name = "kube-runtime" version = "0.73.1" @@ -1337,8 +1214,8 @@ dependencies = [ "derivative", "futures", "json-patch", - "k8s-openapi 0.15.0", - "kube-client 0.73.1", + "k8s-openapi", + "kube-client", "parking_lot", "pin-project", "serde", @@ -1390,9 +1267,9 @@ dependencies = [ [[package]] name = "linked-hash-map" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "lock_api" @@ -1477,7 +1354,7 @@ name = "mirrord" version = "2.3.1" dependencies = [ "anyhow", - "clap 3.2.6", + "clap 3.2.8", "exec", "mirrord-layer", "reqwest", @@ -1492,7 +1369,7 @@ version = "2.3.1" dependencies = [ "actix-codec", "bollard", - "clap 3.2.6", + "clap 3.2.8", "containerd-client", "futures", "mirrord-protocol", @@ -1519,14 +1396,14 @@ dependencies = [ "anyhow", "async-trait", "bytes", - "clap 3.2.6", + "clap 3.2.8", "ctor", "envconfig", "errno", "frida-gum", "futures", - "k8s-openapi 0.15.0", - "kube 0.73.1", + "k8s-openapi", + "kube", "libc", "mirrord-protocol", "multi-map", @@ -1870,18 +1747,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" dependencies = [ "proc-macro2", "quote", @@ -2278,9 +2155,9 @@ dependencies = [ [[package]] name = "rstest" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fcf8fa7e9f3b396a5967d7455c057532a81be5114c81d5b02fae9a1f8e21d7" +checksum = "e9c9dc66cc29792b663ffb5269be669f1613664e69ad56441fdb895c2347b930" dependencies = [ "futures", "futures-timer", @@ -2319,7 +2196,7 @@ dependencies = [ [[package]] name = "rustls" version = "0.20.6" -source = "git+https://github.com/rustls/rustls#c85651398865a44fe163003c3eec79a3af914362" +source = "git+https://github.com/rustls/rustls#0053c4d59be76b5d424582ca576d1b98942fdd60" dependencies = [ "log", "ring", @@ -2334,20 +2211,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.0", + "rustls-pemfile", "schannel", "security-framework", ] -[[package]] -name = "rustls-pemfile" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" -dependencies = [ - "base64", -] - [[package]] name = "rustls-pemfile" version = "1.0.0" @@ -2455,15 +2323,15 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.10" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41d061efea015927ac527063765e73601444cdc344ba855bc7bd44578b25e1c" +checksum = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1" [[package]] name = "serde" -version = "1.0.137" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47" dependencies = [ "serde_derive", ] @@ -2480,9 +2348,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c" dependencies = [ "proc-macro2", "quote", @@ -2502,9 +2370,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" dependencies = [ "indexmap", "itoa", @@ -2601,9 +2469,9 @@ checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "smallvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "socket2" @@ -2700,11 +2568,9 @@ version = "0.1.0" dependencies = [ "futures", "futures-util", - "k8s-openapi 0.14.0", - "kube 0.71.0", - "lazy_static", + "k8s-openapi", + "kube", "mirrord", - "nix", "rand 0.8.5", "reqwest", "rstest", @@ -2951,26 +2817,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tower-http" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8" -dependencies = [ - "base64", - "bitflags", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "pin-project-lite", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "tower-http" version = "0.3.4" @@ -3018,9 +2864,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" dependencies = [ "proc-macro2", "quote", @@ -3029,9 +2875,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7709595b8878a4965ce5e87ebf880a7d39c9afc6837721b21a5a816a8117d921" +checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" dependencies = [ "once_cell", "valuable", @@ -3060,13 +2906,13 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.11" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc28f93baff38037f64e6f43d34cfa1605f27a49c34e8a04c5e78b0babf2596" +checksum = "3a713421342a5a666b7577783721d3117f1b69a393df803ee17bb73b1e122a59" dependencies = [ "ansi_term", - "lazy_static", "matchers", + "once_cell", "regex", "sharded-slab", "smallvec", @@ -3130,9 +2976,9 @@ checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" dependencies = [ "tinyvec", ] @@ -3446,6 +3292,6 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.5.5" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94693807d016b2f2d2e14420eb3bfcca689311ff775dcf113d74ea624b7cdf07" +checksum = "20b578acffd8516a6c3f2a1bdefc1ec37e547bb4e0fb8b6b01a4cafc886b4442" diff --git a/Cargo.toml b/Cargo.toml index 804b2e37401..d3e12cde8d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,6 +37,9 @@ tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } futures = "0.3" thiserror = "1" +k8s-openapi = { version = "0.15", features = ["v1_22"] } +reqwest = { version = "0.11", features = ["blocking"] } +kube = { version = "0.73", default-features = false, features = ["runtime", "derive", "client", "ws", "rustls-tls"] } # latest commits on rustls suppress certificate verification # https://github.com/rustls/rustls/pull/1032 diff --git a/mirrord-agent/src/sniffer.rs b/mirrord-agent/src/sniffer.rs index 931924200c8..df83cdda962 100644 --- a/mirrord-agent/src/sniffer.rs +++ b/mirrord-agent/src/sniffer.rs @@ -87,7 +87,7 @@ struct TCPSession { type TCPSessionMap = HashMap; fn is_new_connection(flags: u16) -> bool { - flags == TcpFlags::SYN + 0 != (flags & TcpFlags::SYN) && 0 == (flags & (TcpFlags::ACK | TcpFlags::RST | TcpFlags::FIN)) } fn is_closed_connection(flags: u16) -> bool { @@ -437,7 +437,7 @@ impl TCPConnectionSniffer { } async fn handle_packet(&mut self, eth_packet: Vec) -> Result<(), AgentError> { - debug!("handle_packet -> handling eth_packet {:#?}", eth_packet); + debug!("handle_packet -> handling eth_packet"); let (identifier, tcp_packet) = match get_tcp_packet(eth_packet) { Some(res) => res, diff --git a/mirrord-cli/Cargo.toml b/mirrord-cli/Cargo.toml index 855559231d4..80dbaa854e1 100644 --- a/mirrord-cli/Cargo.toml +++ b/mirrord-cli/Cargo.toml @@ -23,7 +23,7 @@ tracing.workspace = true tracing-subscriber.workspace = true exec = "0.3" anyhow.workspace = true -reqwest = { version = "0.11", features = ["blocking"] } +reqwest.workspace = true semver = "1" [build-dependencies] diff --git a/mirrord-layer/Cargo.toml b/mirrord-layer/Cargo.toml index beded14ba25..a79aefd8f21 100644 --- a/mirrord-layer/Cargo.toml +++ b/mirrord-layer/Cargo.toml @@ -26,8 +26,8 @@ tracing-subscriber.workspace = true frida-gum = {version = "0.6", features = ["auto-download"]} futures.workspace = true clap.workspace = true -k8s-openapi = { version = "0.15", features = ["v1_22"] } -kube = { version = "0.73", default-features = false, features = ["runtime", "derive", "client", "ws", "rustls-tls"] } +k8s-openapi.workspace = true +kube.workspace = true tokio.workspace = true serde_json.workspace = true diff --git a/tests/Cargo.toml b/tests/Cargo.toml index b2924485e74..f6c871b3fbe 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -1,3 +1,5 @@ +cargo-features = ["workspace-inheritance"] + [package] name = "tests" version = "0.1.0" @@ -9,18 +11,16 @@ path = "src/sanity.rs" doctest = false [dependencies] -k8s-openapi = { version = "0.14.0", features = ["v1_22"] } -kube = { version = "0.71.0", default-features = false, features = ["runtime", "derive", "client", "ws", "rustls-tls"] } -reqwest = "0.11.10" -tokio = { version = "1", features = ["macros"] } -serde_json = "1.0.79" +k8s-openapi.workspace = true +kube.workspace = true +reqwest.workspace = true +tokio.workspace = true +serde_json.workspace = true mirrord = { artifact = "bin", bin = true, path = "../mirrord-cli" } -serde = "1.0.137" -futures = "0.3.21" -lazy_static = "1.4.0" -nix = "0.24.1" +serde = "1" +futures.workspace = true rstest = "*" -tokio-util = "*" +tokio-util = "0.7" rand = "*" futures-util = "*" tempdir = "*" \ No newline at end of file diff --git a/tests/src/sanity.rs b/tests/src/sanity.rs index 2777100b41b..92cfe2d4eef 100644 --- a/tests/src/sanity.rs +++ b/tests/src/sanity.rs @@ -384,8 +384,17 @@ mod tests { #[cfg(target_os = "macos")] fn resolve_node_host() -> String { - // We assume it's Docker for Mac - "127.0.0.1".to_string() + if std::env::var("USE_MINIKUBE").is_ok() { + let output = std::process::Command::new("minikube") + .arg("ip") + .output() + .unwrap() + .stdout; + String::from_utf8_lossy(&output).to_string() + } else { + // We assume it's Docker for Mac + "127.0.0.1".to_string() + } } #[cfg(target_os = "linux")] @@ -487,7 +496,7 @@ mod tests { let mut process = application .run(&service.pod_name, Some(&service.namespace), None) .await; - process.wait_for_line(Duration::from_secs(10), "Server listening on port 80"); + process.wait_for_line(Duration::from_secs(30), "Server listening on port 80"); send_requests(&url).await; timeout(Duration::from_secs(40), process.child.wait()) .await