diff --git a/.github/workflows/functions.yaml b/.github/workflows/functions.yaml index 7d809102e8..9531b0c81d 100644 --- a/.github/workflows/functions.yaml +++ b/.github/workflows/functions.yaml @@ -77,14 +77,6 @@ jobs: - name: Run Unit Tests run: make test - - uses: codecov/codecov-action@v5 - with: - files: ./coverage.txt - flags: unit ${{ matrix.os }} - fail_ci_if_error: true - verbose: true - token: ${{ secrets.CODECOV_TOKEN }} - # -------------- # TEMPLATE TESTS # -------------- @@ -161,6 +153,8 @@ jobs: - name: Install Binaries run: ./hack/binaries.sh + - name: Configure IPv6 + run: ./hack/configure-nat64.sh - name: Allocate Cluster run: ./hack/cluster.sh - name: Start Local Registry @@ -175,14 +169,6 @@ jobs: - name: Run Integration Tests run: make test-integration - - uses: codecov/codecov-action@v5 - with: - files: ./coverage.txt - flags: integration - fail_ci_if_error: true - verbose: true - token: ${{ secrets.CODECOV_TOKEN }} - # Preserve Cluster Logs - name: Dump Cluster Logs if: always() @@ -221,6 +207,8 @@ jobs: - name: Install Binaries run: ./hack/binaries.sh + - name: Configure IPv6 + run: ./hack/configure-nat64.sh - name: Allocate Cluster run: ./hack/cluster.sh - name: Start Local Registry @@ -231,14 +219,6 @@ jobs: - name: Run Basic E2E Tests (core, metadata, remote) run: make test-e2e - - uses: codecov/codecov-action@v5 - with: - files: ./coverage.txt - flags: e2e - fail_ci_if_error: true - verbose: true - token: ${{ secrets.CODECOV_TOKEN }} - # Preserve Cluster Logs - name: Dump Cluster Logs if: always() @@ -286,6 +266,8 @@ jobs: - name: Install Binaries run: ./hack/binaries.sh + - name: Configure IPv6 + run: ./hack/configure-nat64.sh - name: Allocate Cluster run: ./hack/cluster.sh - name: Start Local Registry @@ -294,14 +276,6 @@ jobs: - name: Run E2E Podman Tests run: make test-e2e-podman - - uses: codecov/codecov-action@v5 - with: - files: ./coverage.txt - flags: e2e - fail_ci_if_error: true - verbose: true - token: ${{ secrets.CODECOV_TOKEN }} - # Preserve Cluster Logs - name: Dump Cluster Logs if: always() @@ -373,6 +347,8 @@ jobs: # Allocate Cluster - name: Install Binaries run: ./hack/binaries.sh + - name: Configure IPv6 + run: ./hack/configure-nat64.sh - name: Allocate Cluster run: ./hack/cluster.sh - name: Start Local Registry @@ -383,15 +359,6 @@ jobs: - name: Run Test - ${{ matrix.runtime }} run: make test-e2e-matrix - # Coverage and Logs - - uses: codecov/codecov-action@v5 - with: - files: ./coverage.txt - flags: e2e ${{ matrix.runtime }} - fail_ci_if_error: true - verbose: true - token: ${{ secrets.CODECOV_TOKEN }} - # Preserve Cluster Logs - name: Dump Cluster Logs if: always() @@ -429,6 +396,8 @@ jobs: - name: Install Binaries run: ./hack/binaries.sh + - name: Configure IPv6 + run: ./hack/configure-nat64.sh - name: Allocate Cluster run: ./hack/cluster.sh - name: Start Local Registry @@ -439,14 +408,6 @@ jobs: - name: Run Config CI E2E Tests run: make test-e2e-config-ci - - uses: codecov/codecov-action@v5 - with: - files: ./coverage.txt - flags: e2e-config-ci - fail_ci_if_error: true - verbose: true - token: ${{ secrets.CODECOV_TOKEN }} - # Preserve Cluster Logs - name: Dump Cluster Logs if: always() diff --git a/.github/workflows/test-podman-next.yaml b/.github/workflows/test-podman-next.yaml index 38a77aeb2d..7f19ed9a97 100644 --- a/.github/workflows/test-podman-next.yaml +++ b/.github/workflows/test-podman-next.yaml @@ -35,6 +35,8 @@ jobs: - uses: knative/actions/setup-go@main - name: Install Binaries run: ./hack/binaries.sh + - name: Configure IPv6 + run: ./hack/configure-nat64.sh - name: Allocate Cluster run: ./hack/cluster.sh - name: Local Registry diff --git a/hack/binaries.sh b/hack/binaries.sh index 1b1b313c23..69d558390b 100755 --- a/hack/binaries.sh +++ b/hack/binaries.sh @@ -28,7 +28,7 @@ install_binaries() { local kubectl_version=1.33.1 local kind_version=0.31.0 - local dapr_version=1.16.0 + local dapr_version=1.17.1 local helm_version=3.18.0 local stern_version=1.32.0 local kn_version=1.18.0 diff --git a/hack/cluster.sh b/hack/cluster.sh index 296ab0f4c5..9b769a44be 100755 --- a/hack/cluster.sh +++ b/hack/cluster.sh @@ -108,16 +108,29 @@ kubernetes() { cat < Unbound (dns64-synthall) -> AAAA 64:ff9b:: +# IPv6 packet to 64:ff9b::/96 -> TAYGA -> IPv4 -> internet +# + +set -o errexit +set -o nounset +set -o pipefail + +source "$(cd "$(dirname "$0")" && pwd)/common.sh" + +readonly NAT64_PREFIX="64:ff9b::/96" +readonly TAYGA_IPV4="192.168.255.1" +readonly TAYGA_IPV6="fd00:64:64::1" +readonly TAYGA_POOL="192.168.255.0/24" +readonly TAYGA_DEV="nat64" + +main() { + echo "${blue}Configuring DNS64 + NAT64${reset}" + + local upstream_dns + upstream_dns="$(get_upstream_dns)" + echo "Upstream DNS: ${upstream_dns}" + + install_packages + configure_dns64 "${upstream_dns}" + configure_nat64 + verify + + echo "${green}✅ DNS64 + NAT64${reset}" +} + +get_upstream_dns() { + local dns="" + if [[ -f /run/systemd/resolve/resolv.conf ]]; then + dns="$(awk '/^nameserver/ { print $2; exit }' /run/systemd/resolve/resolv.conf)" + fi + if [[ -z "${dns}" ]]; then + dns="8.8.8.8" + fi + echo "${dns}" +} + +install_packages() { + echo "${blue}Installing unbound and tayga${reset}" + sudo apt-get update -qq + sudo apt-get install -y -qq unbound tayga +} + +configure_dns64() { + local upstream_dns="$1" + + echo "${blue}Configuring Unbound (DNS64)${reset}" + + # Stop systemd-resolved so we can take over port 53 + sudo systemctl stop systemd-resolved || true + sudo systemctl disable systemd-resolved || true + + # Point the system resolver at our local Unbound + sudo tee /etc/resolv.conf > /dev/null < /dev/null < /dev/null < ${aaaa}" + + # Verify NAT64 connectivity + if ! curl -6 --max-time 10 -sSf -o /dev/null https://github.com; then + echo "${red}NAT64 verification failed: cannot reach github.com over IPv6${reset}" + exit 1 + fi + echo "NAT64 OK: curl -6 github.com succeeded" +} + +main "$@"