Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package flannel for openSUSE:Factory checked in at 2026-06-09 14:21:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/flannel (Old) and /work/SRC/openSUSE:Factory/.flannel.new.2375 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "flannel" Tue Jun 9 14:21:44 2026 rev:29 rq:1357997 version:0.28.5 Changes: -------- --- /work/SRC/openSUSE:Factory/flannel/flannel.changes 2026-04-16 17:26:48.083015416 +0200 +++ /work/SRC/openSUSE:Factory/.flannel.new.2375/flannel.changes 2026-06-09 14:25:47.710188490 +0200 @@ -1,0 +2,26 @@ +Mon Jun 8 07:37:06 UTC 2026 - Priyanka Saggu <[email protected]> + +- Update to version 0.28.5: + * Bump docker/login-action from 4.1.0 to 4.2.0 + * Bump docker/setup-qemu-action from 4.0.0 to 4.1.0 + * Bump docker/metadata-action from 6.0.0 to 6.1.0 + * Bump github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common (#2456) + * Bump the etcd group with 4 updates (#2455), includes fix for CVE-2026-44283 (bsc#1265337) + * Bump github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common (#2448) + * Bump golang.org/x/sys in the other-go-modules group (#2449) + * Bump docker/build-push-action from 7.1.0 to 7.2.0 (#2451) + * Bump golangci/golangci-lint-action from 9.2.0 to 9.2.1 (#2453) + * Bump github/codeql-action from 4.35.3 to 4.36.0 (#2450) + * Update iptables-wrapper to v3 to fix zombie child process + * Bump docker/setup-buildx-action from 4.0.0 to 4.1.0 + * Bump github/codeql-action from 4.35.2 to 4.35.3 (#2441) + * Bump aquasecurity/trivy-action from 0.35.0 to 0.36.0 (#2436) + * fix(vxlan): drop slices, use scalar IPs for v4/v6 (review feedback) + * fix(vxlan): guard ifaceAddrsV6[0] on IPv4-only setups + * Bump the tencent group with 2 updates (#2430) + * BUmp k8s deps to v0.33.11 (#2432) + * Bump github/codeql-action from 4.35.1 to 4.35.2 (#2431) + * Fail early in e2e tests and remove unnecessary step (#2429) + * Bump actions/upload-artifact from 7.0.0 to 7.0.1 (#2421) + +------------------------------------------------------------------- Old: ---- flannel-0.28.4.tar.gz New: ---- flannel-0.28.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ flannel.spec ++++++ --- /var/tmp/diff_new_pack.z8qH4E/_old 2026-06-09 14:25:50.018283893 +0200 +++ /var/tmp/diff_new_pack.z8qH4E/_new 2026-06-09 14:25:50.022284058 +0200 @@ -24,7 +24,7 @@ %define flannel_container_path registry.opensuse.org/kubic/flannel Name: flannel -Version: 0.28.4 +Version: 0.28.5 Release: 0 Summary: An etcd backed network fabric for containers License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.z8qH4E/_old 2026-06-09 14:25:50.078286374 +0200 +++ /var/tmp/diff_new_pack.z8qH4E/_new 2026-06-09 14:25:50.082286538 +0200 @@ -5,7 +5,7 @@ <param name="exclude">.git</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> - <param name="revision">v0.28.4</param> + <param name="revision">v0.28.5</param> <param name="changesgenerate">enable</param> </service> <service name="tar" mode="disabled"/> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.z8qH4E/_old 2026-06-09 14:25:50.106287531 +0200 +++ /var/tmp/diff_new_pack.z8qH4E/_new 2026-06-09 14:25:50.114287861 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/flannel-io/flannel.git</param> - <param name="changesrevision">3adfe3e04407869b9f84be0a68a6cebb73df9c6e</param></service></servicedata> + <param name="changesrevision">d47fd8e5f1c93fe7fd80cb06d7fc41ac502e2376</param></service></servicedata> (No newline at EOF) ++++++ flannel-0.28.4.tar.gz -> flannel-0.28.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/.github/workflows/build.yaml new/flannel-0.28.5/.github/workflows/build.yaml --- old/flannel-0.28.4/.github/workflows/build.yaml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/.github/workflows/build.yaml 2026-06-04 17:51:08.000000000 +0200 @@ -30,11 +30,11 @@ run: go mod vendor - name: Set up Docker Buildx - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd #v4.0.0 + uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 #v4.1.0 - name: Docker meta id: meta - uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf #v6.0.0 + uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 #v6.1.0 with: images: ${{ env.REPOSITORY }} flavor: latest=false @@ -42,7 +42,7 @@ type=ref, event=branch - name: Build multi-arch Docker image - uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f #v6.15.0 + uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf #v6.15.0 with: context: . file: images/Dockerfile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/.github/workflows/codeql-analysis.yml new/flannel-0.28.5/.github/workflows/codeql-analysis.yml --- old/flannel-0.28.4/.github/workflows/codeql-analysis.yml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/.github/workflows/codeql-analysis.yml 2026-06-04 17:51:08.000000000 +0200 @@ -51,7 +51,7 @@ # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@c10b8064de6f491fea524254123dbe5e09572f13 #v4.35.1 + uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa #v4.36.0 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -74,4 +74,4 @@ make dist/flanneld - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@c10b8064de6f491fea524254123dbe5e09572f13 #v4.35.1 + uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa #v4.36.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/.github/workflows/golangci-lint.yaml new/flannel-0.28.5/.github/workflows/golangci-lint.yaml --- old/flannel-0.28.4/.github/workflows/golangci-lint.yaml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/.github/workflows/golangci-lint.yaml 2026-06-04 17:51:08.000000000 +0200 @@ -19,7 +19,7 @@ go-version: "1.25" cache: false - name: golangci-lint - uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 #v9.2.0 + uses: golangci/golangci-lint-action@82606bf257cbaff209d206a39f5134f0cfbfd2ee #v9.2.1 with: version: v2.7.2 args: "--timeout=5m" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/.github/workflows/k3s-e2eTests.yml new/flannel-0.28.5/.github/workflows/k3s-e2eTests.yml --- old/flannel-0.28.4/.github/workflows/k3s-e2eTests.yml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/.github/workflows/k3s-e2eTests.yml 2026-06-04 17:51:08.000000000 +0200 @@ -26,8 +26,5 @@ - name: set up modules run: sudo modprobe br_netfilter overlay - - name: build flannel image - run: make image - - name: run e2e tests with k3s run: make k3s-e2e-test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/.github/workflows/release.yml new/flannel-0.28.5/.github/workflows/release.yml --- old/flannel-0.28.4/.github/workflows/release.yml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/.github/workflows/release.yml 2026-06-04 17:51:08.000000000 +0200 @@ -37,14 +37,14 @@ run: go mod vendor - name: Set up QEMU - uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a #v4.0.0 + uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 #v4.1.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd #v4.0.0 + uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 #v4.1.0 - name: Docker meta id: meta - uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf #v6.0.0 + uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 #v6.1.0 with: images: ${{ env.REPOSITORY }} flavor: latest=false @@ -53,14 +53,14 @@ - name: Log in to Docker Hub if: github.repository_owner == 'flannel-io' && success() - uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 #v4.1.0 + uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee #v4.2.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push Docker image if: github.repository_owner == 'flannel-io' && success() - uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f #v7.1.0 + uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf #v7.2.0 with: context: . file: images/Dockerfile @@ -93,13 +93,13 @@ run: go mod vendor - name: Set up QEMU - uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a #v4.0.0 + uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 #v4.1.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd #v4.0.0 + uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 #v4.1.0 - name: Log in to the Container registry - uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 #v4.1.0 + uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee #v4.2.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -107,13 +107,13 @@ - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf #v6.0.0 + uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 #v6.1.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Build and push Docker image id: push - uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f #v7.1.0 + uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf #v7.2.0 with: context: . file: images/Dockerfile @@ -152,7 +152,7 @@ run: go mod vendor - name: Set up QEMU - uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a #v4.0.0 + uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 #v4.1.0 - name: Build release artifacts run: make release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/.github/workflows/scorecard.yml new/flannel-0.28.5/.github/workflows/scorecard.yml --- old/flannel-0.28.4/.github/workflows/scorecard.yml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/.github/workflows/scorecard.yml 2026-06-04 17:51:08.000000000 +0200 @@ -64,7 +64,7 @@ # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: SARIF file path: results.sarif @@ -73,6 +73,6 @@ # Upload the results to GitHub's code scanning dashboard (optional). # Commenting out will disable upload of results to your repo's Code Scanning dashboard - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1 + uses: github/codeql-action/upload-sarif@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0 with: sarif_file: results.sarif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/.github/workflows/trivy.yml new/flannel-0.28.5/.github/workflows/trivy.yml --- old/flannel-0.28.4/.github/workflows/trivy.yml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/.github/workflows/trivy.yml 2026-06-04 17:51:08.000000000 +0200 @@ -40,7 +40,7 @@ ARCH=amd64 TAG=${{ github.sha }} make image - name: Run Trivy vulnerability scanner in tarball mode - uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 #v0.35.0 + uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25 #v0.36.0 with: input: ./dist/flanneld-${{ github.sha }}-amd64.docker severity: 'CRITICAL,HIGH' @@ -48,6 +48,6 @@ output: 'trivy-results.sarif' - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 + uses: github/codeql-action/upload-sarif@7211b7c8077ea37d8641b6271f6a365a22a5fbfa with: sarif_file: 'trivy-results.sarif' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/CLAUDE.md new/flannel-0.28.5/CLAUDE.md --- old/flannel-0.28.4/CLAUDE.md 1970-01-01 01:00:00.000000000 +0100 +++ new/flannel-0.28.5/CLAUDE.md 2026-06-04 17:51:08.000000000 +0200 @@ -0,0 +1,171 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +Flannel is a network fabric for Kubernetes that provides layer 3 IPv4 networking between nodes in a cluster. The main binary is `flanneld`, which runs on each host and allocates subnet leases from a larger preconfigured address space. + +## Development Commands + +### Building + +Build for amd64 (in Docker container): +```bash +make dist/flanneld-amd64 +``` + +Build for specific architecture: +```bash +ARCH=arm64 make dist/flanneld-arm64 +ARCH=s390x make dist/flanneld-s390x +``` + +Build multi-arch image: +```bash +make buildx-create-builder # One-time setup +make build-multi-arch +``` + +Build natively (requires CGO for amd64): +```bash +CGO_ENABLED=1 make dist/flanneld +``` + +### Testing + +Run all tests (includes license check, gofmt, unit tests, e2e tests): +```bash +make test +``` + +Run unit tests only: +```bash +make unit-test +``` + +Run e2e tests: +```bash +make e2e-test +``` + +Run tests for specific packages: +```bash +TEST_PACKAGES="pkg/ip pkg/subnet" make unit-test +``` + +Check formatting: +```bash +make gofmt +``` + +Verify go modules: +```bash +make verify-modules +``` + +Update dependencies: +```bash +make deps # runs go mod tidy && go mod vendor +``` + +### Local Development + +Install binary locally (for quick iteration): +```bash +make install +``` + +## Architecture + +### Core Components + +**main.go**: Entry point that: +- Parses command-line flags (etcd endpoints, kube config, interface selection, etc.) +- Initializes the subnet manager (etcd or kube) +- Starts the backend network +- Manages traffic rules (iptables/nftables) + +**Backend System** (`pkg/backend/`): +Backends are registered via init() and implement the network encapsulation layer: +- `vxlan`: VXLAN encapsulation (recommended, default port 8472) +- `host-gw`: Direct IP routes via layer 2 +- `wireguard`: WireGuard encrypted tunnels +- `ipsec`: IPsec encrypted tunnels with strongSwan +- `udp`: Simple UDP encapsulation (debug only) +- `ipip`: IP-in-IP encapsulation +- `tencentvpc`: Tencent Cloud VPC integration +- `alloc`: Experimental allocation-only backend +- `extension`: External backend plugin support + +Backends are imported with blank identifier in main.go to trigger registration: +```go +_ "github.com/flannel-io/flannel/pkg/backend/vxlan" +``` + +**Subnet Managers** (`pkg/subnet/`): +Two implementations for storing/retrieving network configuration: +- `etcd`: Uses etcd v3 as datastore (standalone deployments) +- `kube`: Uses Kubernetes API as datastore (kube subnet manager mode, no separate etcd needed) + +**Traffic Management** (`pkg/trafficmngr/`): +Manages forwarding rules and masquerading using either iptables or nftables. + +### Package Structure + +- `pkg/ip`: IP address utilities and subnet operations +- `pkg/ipmatch`: IP address matching and selection (interface selection logic) +- `pkg/lease`: Subnet lease management +- `pkg/routing`: Route table management +- `pkg/ns`: Network namespace utilities +- `pkg/version`: Version information + +### Build Architecture + +**CGO_ENABLED**: Set to 1 for amd64 (enables UDP backend), 0 for other architectures. + +**Cross-compilation**: Uses Docker with golang:1.25 image and qemu-user-static for cross-arch builds. + +**Version embedding**: Git tag/commit is embedded via ldflags: +``` +-ldflags '-X github.com/flannel-io/flannel/pkg/version.Version=$(TAG)' +``` + +### Testing Strategy + +**Unit tests**: Run in Docker with NET_ADMIN and SYS_ADMIN capabilities to test network operations and namespace creation. + +**E2E tests**: Use bash_unit framework with Docker Compose. Build test images with `dist/flanneld-e2e-$(TAG)-$(ARCH).docker` target. + +**Functional tests**: Located in `dist/functional-test.sh` and `dist/functional-test-k8s.sh`. + +## Key Configuration + +**Go version**: 1.25 (see Makefile GO_VERSION) + +**Supported architectures**: amd64, arm, arm64, s390x, ppc64le, riscv64 + +**Container registry**: quay.io/coreos/flannel (override with REGISTRY env var) + +**Default test packages**: +``` +pkg/ip pkg/subnet pkg/subnet/etcd pkg/subnet/kube pkg/trafficmngr pkg/backend +``` + +## Release Process + +See `Documentation/building.md` for full details. Key steps: + +1. Create and push a git tag +2. Run `make release` to build all architectures +3. Run `make release-manifest` to generate kube-flannel.yml +4. Run `make release-helm` to package Helm chart +5. Upload artifacts from `dist/` to GitHub release + +## Debugging + +**Interface selection**: Flannel selects interfaces via `-iface`, `-iface-regex`, or `-iface-can-reach` flags. Logic in `pkg/ipmatch`. + +**Backend issues**: Check backend-specific documentation in `Documentation/backends.md`. + +**Subnet conflicts**: Network configuration stored in etcd or Kubernetes configmap/node annotations (depending on subnet manager). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/Documentation/kube-flannel.yml new/flannel-0.28.5/Documentation/kube-flannel.yml --- old/flannel-0.28.4/Documentation/kube-flannel.yml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/Documentation/kube-flannel.yml 2026-06-04 17:51:08.000000000 +0200 @@ -144,7 +144,7 @@ - name: cni-plugin mountPath: /opt/cni/bin - name: install-cni - image: ghcr.io/flannel-io/flannel:v0.28.4 + image: ghcr.io/flannel-io/flannel:v0.28.5 command: - cp args: @@ -158,7 +158,7 @@ mountPath: /etc/kube-flannel/ containers: - name: kube-flannel - image: ghcr.io/flannel-io/flannel:v0.28.4 + image: ghcr.io/flannel-io/flannel:v0.28.5 command: - /opt/bin/flanneld args: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/Documentation/kustomization/kube-flannel/kube-flannel.yml new/flannel-0.28.5/Documentation/kustomization/kube-flannel/kube-flannel.yml --- old/flannel-0.28.4/Documentation/kustomization/kube-flannel/kube-flannel.yml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/Documentation/kustomization/kube-flannel/kube-flannel.yml 2026-06-04 17:51:08.000000000 +0200 @@ -135,7 +135,7 @@ - name: cni-plugin mountPath: /opt/cni/bin - name: install-cni - image: ghcr.io/flannel-io/flannel:v0.28.4 + image: ghcr.io/flannel-io/flannel:v0.28.5 command: - cp args: @@ -149,7 +149,7 @@ mountPath: /etc/kube-flannel/ containers: - name: kube-flannel - image: ghcr.io/flannel-io/flannel:v0.28.4 + image: ghcr.io/flannel-io/flannel:v0.28.5 command: - /opt/bin/flanneld args: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/Documentation/kustomization/kube-flannel/kustomization.yaml new/flannel-0.28.5/Documentation/kustomization/kube-flannel/kustomization.yaml --- old/flannel-0.28.4/Documentation/kustomization/kube-flannel/kustomization.yaml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/Documentation/kustomization/kube-flannel/kustomization.yaml 2026-06-04 17:51:08.000000000 +0200 @@ -6,4 +6,4 @@ - kube-flannel.yml images: - name: ghcr.io/flannel-io/flannel - newTag: v0.28.4 + newTag: v0.28.5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/Makefile new/flannel-0.28.5/Makefile --- old/flannel-0.28.4/Makefile 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/Makefile 2026-06-04 17:51:08.000000000 +0200 @@ -111,13 +111,15 @@ golang:$(GO_VERSION) \ /bin/bash -c 'cd /go/src/github.com/flannel-io/flannel && go test -v -cover -timeout 5m $(TEST_PACKAGES_EXPANDED)' -e2e-test: bash_unit dist/flanneld-e2e-$(TAG)-$(ARCH).docker +e2e-test: bash_unit dist/flanneld-$(TAG)-$(ARCH).docker $(MAKE) -C images/iperf3 ARCH=$(ARCH) FLANNEL_DOCKER_IMAGE=$(REGISTRY):$(TAG)-$(ARCH) ./bash_unit dist/functional-test.sh FLANNEL_DOCKER_IMAGE=$(REGISTRY):$(TAG)-$(ARCH) ./bash_unit dist/functional-test-k8s.sh -k3s-e2e-test: bash_unit dist/flanneld-e2e-$(TAG)-$(ARCH).docker - $(MAKE) -C images/iperf3 ARCH=$(ARCH) +k3s-e2e-test: bash_unit dist/flanneld-$(TAG)-$(ARCH).docker + @echo "Building iperf3 image for $(ARCH)..." + $(MAKE) -C images/iperf3 ARCH=$(ARCH) || { echo "ERROR: Failed to build iperf3 image for $(ARCH)"; exit 1; } + @echo "Running k3s e2e tests..." ./bash_unit ./e2e/run-e2e-tests.sh cover: @@ -157,21 +159,6 @@ wget https://raw.githubusercontent.com/pgrange/bash_unit/$(BASH_UNIT_VERSION)/bash_unit chmod +x bash_unit -# This will build flannel natively using golang image -dist/flanneld-e2e-$(TAG)-$(ARCH).docker: -ifneq ($(ARCH),amd64) - $(MAKE) dist/qemu-$(ARCH)-static -endif - # valid values for ARCH are [amd64 arm arm64 ppc64le s390x riscv64] - docker run --rm -e GOARM=$(GOARM) -e CGO_ENABLED=$(CGO_ENABLED) -e GOCACHE=/go \ - -u $(shell id -u):$(shell id -g) \ - -v $(CURDIR):/go/src/github.com/flannel-io/flannel:ro \ - -v $(CURDIR)/dist:/go/src/github.com/flannel-io/flannel/dist \ - golang:$(GO_VERSION) /bin/bash -c '\ - cd /go/src/github.com/flannel-io/flannel && \ - make -e dist/flanneld && \ - mv dist/flanneld dist/flanneld-$(ARCH)' - docker build -f images/Dockerfile --platform=$(ARCH) --build-arg TAG=$(TAG) -t $(REGISTRY):$(TAG)-$(ARCH) . # Make a release after creating a tag # To build cross platform Docker images, the qemu-static binaries are needed. On ubuntu "apt-get install qemu-user-static" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/chart/kube-flannel/Chart.yaml new/flannel-0.28.5/chart/kube-flannel/Chart.yaml --- old/flannel-0.28.4/chart/kube-flannel/Chart.yaml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/chart/kube-flannel/Chart.yaml 2026-06-04 17:51:08.000000000 +0200 @@ -1,9 +1,9 @@ apiVersion: v1 -appVersion: v0.28.4 +appVersion: v0.28.5 description: Install Flannel Network Plugin. keywords: - Flannel name: flannel sources: - https://github.com/flannel-io/flannel -version: v0.28.4 +version: v0.28.5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/chart/kube-flannel/values.yaml new/flannel-0.28.5/chart/kube-flannel/values.yaml --- old/flannel-0.28.4/chart/kube-flannel/values.yaml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/chart/kube-flannel/values.yaml 2026-06-04 17:51:08.000000000 +0200 @@ -12,7 +12,7 @@ # kube-flannel image image: repository: ghcr.io/flannel-io/flannel - tag: v0.28.4 + tag: v0.28.5 flannel_cni: image: repository: ghcr.io/flannel-io/flannel-cni-plugin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/e2e/Dockerfile new/flannel-0.28.5/e2e/Dockerfile --- old/flannel-0.28.4/e2e/Dockerfile 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/e2e/Dockerfile 2026-06-04 17:51:08.000000000 +0200 @@ -5,7 +5,7 @@ ARG ARCH ARG K3S_VERSION="v1.34.6+k3s1" ARG CNI_VERSION="v1.9.1" -RUN set -x \ +RUN set -e -x \ && zypper -n in \ ca-certificates \ curl \ @@ -25,13 +25,14 @@ *) echo "unsupported ARCH: ${ARCH}" >&2; exit 1 ;; \ esac \ && curl -fsSL "https://github.com/rancher/k3s/releases/download/${K3S_VERSION}/${K3S_BIN}" -o /bin/k3s \ - && printf '%s %s\n' "${K3S_SHA256}" "/bin/k3s" | sha256sum -c - \ + && { printf '%s %s\n' "${K3S_SHA256}" "/bin/k3s" | sha256sum -c - || { echo "ERROR: K3S checksum verification failed for ${ARCH}. Expected: ${K3S_SHA256}"; exit 1; }; } \ && chmod +x /bin/k3s \ && ln -s /bin/k3s /bin/kubectl \ && ln -s /bin/k3s /bin/ctr \ && k3s --version #install cni plugins manually since we will only install flannel later -RUN mkdir -p /opt/cni/bin \ +RUN set -e -x \ + && mkdir -p /opt/cni/bin \ && CNI_TGZ="cni-plugins-linux-${ARCH}-${CNI_VERSION}.tgz" \ && case "${ARCH}" in \ amd64) CNI_SHA256="b98f74a0f8522f0a83867178729c1aa70f2158f90c45a2ca8fa791db1c76b303" ;; \ @@ -40,7 +41,7 @@ *) echo "unsupported ARCH for CNI plugins: ${ARCH}" >&2; exit 1 ;; \ esac \ && curl -fsSL "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/${CNI_TGZ}" -o "/tmp/${CNI_TGZ}" \ - && printf '%s %s\n' "${CNI_SHA256}" "/tmp/${CNI_TGZ}" | sha256sum -c - \ + && { printf '%s %s\n' "${CNI_SHA256}" "/tmp/${CNI_TGZ}" | sha256sum -c - || { echo "ERROR: CNI plugins checksum verification failed for ${ARCH}. Expected: ${CNI_SHA256}"; exit 1; }; } \ && tar -xzf "/tmp/${CNI_TGZ}" -C /opt/cni/bin \ && rm -f "/tmp/${CNI_TGZ}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/e2e/docker-compose.yml new/flannel-0.28.5/e2e/docker-compose.yml --- old/flannel-0.28.4/e2e/docker-compose.yml 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/e2e/docker-compose.yml 2026-06-04 17:51:08.000000000 +0200 @@ -1,11 +1,8 @@ -version: "3.7" - volumes: kubeconfig: name: e2e-local-kubeconfig services: - leader: container_name: local-leader image: "e2e/cluster/local/k3s" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/e2e/run-e2e-tests.sh new/flannel-0.28.5/e2e/run-e2e-tests.sh --- old/flannel-0.28.4/e2e/run-e2e-tests.sh 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/e2e/run-e2e-tests.sh 2026-06-04 17:51:08.000000000 +0200 @@ -18,6 +18,12 @@ cp $(dirname $0)/../dist/${FLANNEL_IMAGE_FILE}.docker $(dirname $0)/scratch/${FLANNEL_IMAGE_FILE}.tar $(dirname $0)/download-kubectl.sh + + # build docker compose images before running any tests; a failure here + # causes bash_unit to abort the entire test suite immediately + pushd $(dirname $0) > /dev/null + docker compose build || { popd > /dev/null; return 1; } + popd > /dev/null } create_test_pod() { @@ -164,7 +170,7 @@ setup() { # start k3s cluster echo "starting k3s cluster..." - docker compose up -d + docker compose up --detach --wait --wait-timeout 300 # get kubeconfig for the k3s cluster echo "waiting for kubeconfig to be available..." ./get-kubeconfig.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/go.mod new/flannel-0.28.5/go.mod --- old/flannel-0.28.4/go.mod 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/go.mod 2026-06-04 17:51:08.000000000 +0200 @@ -18,21 +18,21 @@ github.com/vishvananda/netlink v1.3.1 github.com/vishvananda/netns v0.0.5 go.uber.org/zap v1.27.0 // indirect - golang.org/x/net v0.51.0 // indirect + golang.org/x/net v0.52.0 // indirect golang.org/x/oauth2 v0.34.0 // indirect golang.org/x/time v0.9.0 // indirect golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 // indirect golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230429144221-925a1e7659e6 - k8s.io/api v0.32.10 - k8s.io/apimachinery v0.32.10 - k8s.io/client-go v0.32.10 + k8s.io/api v0.33.11 + k8s.io/apimachinery v0.33.11 + k8s.io/client-go v0.33.11 k8s.io/klog/v2 v2.140.0 ) require ( github.com/avast/retry-go/v4 v4.7.0 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.79 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.3.75 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.108 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.3.83 golang.org/x/sync v0.20.0 sigs.k8s.io/knftables v0.0.18 ) @@ -58,9 +58,9 @@ github.com/go-openapi/swag v0.23.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.2 // indirect github.com/google/btree v1.1.3 // indirect - github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/gnostic-models v0.6.9 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/gorilla/websocket v1.5.0 // indirect + github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 // indirect github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 // indirect @@ -86,9 +86,9 @@ github.com/x448/float16 v0.8.4 // indirect github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect go.etcd.io/bbolt v1.4.3 // indirect - go.etcd.io/etcd/etcdctl/v3 v3.6.10 // indirect - go.etcd.io/etcd/pkg/v3 v3.6.10 // indirect - go.etcd.io/etcd/server/v3 v3.6.10 // indirect + go.etcd.io/etcd/etcdctl/v3 v3.6.12 // indirect + go.etcd.io/etcd/pkg/v3 v3.6.12 // indirect + go.etcd.io/etcd/server/v3 v3.6.12 // indirect go.etcd.io/gofail v0.2.0 // indirect go.etcd.io/raft/v3 v3.6.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect @@ -106,6 +106,7 @@ gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect + sigs.k8s.io/randfill v1.0.0 // indirect ) require ( @@ -116,7 +117,6 @@ github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-cmp v0.7.0 // indirect - github.com/google/gofuzz v1.2.0 // indirect github.com/josharian/native v1.1.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mdlayher/genetlink v1.3.2 // indirect @@ -126,21 +126,21 @@ github.com/modern-go/reflect2 v1.0.2 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/spf13/pflag v1.0.10 // indirect - go.etcd.io/etcd/api/v3 v3.6.10 - go.etcd.io/etcd/client/pkg/v3 v3.6.10 - go.etcd.io/etcd/client/v3 v3.6.10 - go.etcd.io/etcd/tests/v3 v3.6.10 + go.etcd.io/etcd/api/v3 v3.6.12 + go.etcd.io/etcd/client/pkg/v3 v3.6.12 + go.etcd.io/etcd/client/v3 v3.6.12 + go.etcd.io/etcd/tests/v3 v3.6.12 go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.48.0 // indirect - golang.org/x/sys v0.43.0 - golang.org/x/term v0.40.0 // indirect - golang.org/x/text v0.35.0 // indirect + golang.org/x/crypto v0.49.0 // indirect + golang.org/x/sys v0.45.0 + golang.org/x/term v0.41.0 // indirect + golang.org/x/text v0.36.0 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.10 // indirect gopkg.in/inf.v0 v0.9.1 // indirect - k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect + k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/go.sum new/flannel-0.28.5/go.sum --- old/flannel-0.28.4/go.sum 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/go.sum 2026-06-04 17:51:08.000000000 +0200 @@ -106,8 +106,8 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= +github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -118,15 +118,13 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6 h1:EEHtgt9IwisQ2AZ4pIsMjahcegHh6rmhqxzIRQIyepY= github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6/go.mod h1:I6V7YzU0XDpsHqbsyrghnFZLO1gwK6NPTNvmetQIk9U= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= @@ -230,6 +228,8 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -239,11 +239,11 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.75/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.79 h1:aaoqy0ytb/Bz64eMgEC9x5BfXshdbeLBPMUNDNUIB2U= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.79/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.3.75 h1:gMx3xndNBHpP05a+M4lBEvkg06kC4QTu13od2lovalk= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.3.75/go.mod h1:HXcM6wR6/adIVQq3Y8Itam22+DLADZQsDOgxHUmCH9g= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.83/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.108 h1:hvsGIT99NEIw/M/d0SM3ahPXLTdlKdMeiZaX023sYoM= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.108/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.3.83 h1:ie9YH+k8r+pgZMmexGHPQVxpqjqHqb6aNLwEQ0grnWQ= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.3.83/go.mod h1:YEf1XryuGZaXip8sc2zUzFn2H81aIOqh2I7vBlEXVFk= github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA= github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/vishvananda/netlink v1.3.1 h1:3AEMt62VKqz90r0tmNhog0r/PpWKmrEShJU0wJW6bV0= @@ -258,20 +258,20 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.4.3 h1:dEadXpI6G79deX5prL3QRNP6JB8UxVkqo4UPnHaNXJo= go.etcd.io/bbolt v1.4.3/go.mod h1:tKQlpPaYCVFctUIgFKFnAlvbmB3tpy1vkTnDWohtc0E= -go.etcd.io/etcd/api/v3 v3.6.10 h1:jlwjtELjA8yi2VWpOFH+0w0lGr3K6mVDyn0RDB9aaAY= -go.etcd.io/etcd/api/v3 v3.6.10/go.mod h1:pdV4VeFmvhdNjB4LWRkC8ReLyRBAxUOze3GarMhE2sk= -go.etcd.io/etcd/client/pkg/v3 v3.6.10 h1:tBT7podcPhuVbCVkAEzx8bC5I+aqxfLwBN8/As1arrA= -go.etcd.io/etcd/client/pkg/v3 v3.6.10/go.mod h1:WEy3PpwbbEBVRdh1NVJYsuUe/8eyI21PNJRazeD8z/Y= -go.etcd.io/etcd/client/v3 v3.6.10 h1:J598zJ+C/ZPvImypmq5waj84+bovePrlZERHklf34y0= -go.etcd.io/etcd/client/v3 v3.6.10/go.mod h1:iHhUDUcEwaKs1YFq3MgmI9U4zhTVasp/vgdVbFf1RS8= -go.etcd.io/etcd/etcdctl/v3 v3.6.10 h1:RhfYvcUvdTc/QNNL1eybEkjnbP2ruQ7XWO0sKlmxKiA= -go.etcd.io/etcd/etcdctl/v3 v3.6.10/go.mod h1:9xB17S5NBs3ll105od6Clzqda4hEEuxjML+7QP4+Tpw= -go.etcd.io/etcd/pkg/v3 v3.6.10 h1:17TwO17SkbgIBCloGRikqVy/HdPbeXX4zPAlzRZbzDw= -go.etcd.io/etcd/pkg/v3 v3.6.10/go.mod h1:UfjvwrKPZVnmpKD3UZKQpC7kMLsSIGlQjIVFGRXI6eo= -go.etcd.io/etcd/server/v3 v3.6.10 h1:MfnewdUHfYUr7ytYKuYQb2WWxTstGj70Vx7nM8e2rVs= -go.etcd.io/etcd/server/v3 v3.6.10/go.mod h1:dWedTPxlXqd9P4pxgqjSb2NwcqobmumsMWLOf4Z+OTY= -go.etcd.io/etcd/tests/v3 v3.6.10 h1:IrLwCQewMjCIdlAayGnpK2MRaK82hhAwfGBJQY8edLc= -go.etcd.io/etcd/tests/v3 v3.6.10/go.mod h1:2OORym/0N2A9edu14BrR3x8lBgKvpiUiAIMqYibLJ7E= +go.etcd.io/etcd/api/v3 v3.6.12 h1:OLOZUKEuAA36TR48F0cIaa8FdzrWygjyfrJxXg4iDgs= +go.etcd.io/etcd/api/v3 v3.6.12/go.mod h1:p14EIQXHbuOQbVvL/WEes5uqKnxP9AgKJgpjbMVvzvE= +go.etcd.io/etcd/client/pkg/v3 v3.6.12 h1:36zzB+pQOdHbhN+kH2iJz/K8bJn0ZLtLfPPO7jozTDo= +go.etcd.io/etcd/client/pkg/v3 v3.6.12/go.mod h1:hh2+ZXtfLzs3o6mn92ntgNPBrTJJOvXqICM5g3L3DMY= +go.etcd.io/etcd/client/v3 v3.6.12 h1:kMSP6JcPZMqSJiX+TXdUIBU/4eXEZWBAaui4VihMbIc= +go.etcd.io/etcd/client/v3 v3.6.12/go.mod h1:CMs6fJWYiZQk4ytFjd4lE1diOvvRMmtbbn/alZXd3dQ= +go.etcd.io/etcd/etcdctl/v3 v3.6.12 h1:76ZC8YRa2DKLIjrDOKcQxC9+Tptlw2ZB3ZU52kiJjfU= +go.etcd.io/etcd/etcdctl/v3 v3.6.12/go.mod h1:umvLlTUPlOAXGXtnH7HnOOIxKv4VtSn3giKIANnPZos= +go.etcd.io/etcd/pkg/v3 v3.6.12 h1:rewjbWPC/H5GHK0yxPbU0lzdFdQR9RlpZL7XmLYm2BE= +go.etcd.io/etcd/pkg/v3 v3.6.12/go.mod h1:qDFIetmpC8TTZfkZkDzpNrXtVqVsyYumRWNPFXFhcpQ= +go.etcd.io/etcd/server/v3 v3.6.12 h1:PAcIHCcTjPM1sbePiu7fCzNKQvOBFEaGnu2JFhgaGJQ= +go.etcd.io/etcd/server/v3 v3.6.12/go.mod h1:iiREo2DGRVjtiAjQeA3LQyYCk6YDFo3uS30/vImHdtk= +go.etcd.io/etcd/tests/v3 v3.6.12 h1:4wIhw0O/X5iv+c0wesshrVytfSxxqKCd5RGIuzLbF88= +go.etcd.io/etcd/tests/v3 v3.6.12/go.mod h1:bCdQ46Cw+OhSpVQGRkJjefnah3NeEmUYmd7EeI1+FOc= go.etcd.io/gofail v0.2.0 h1:p19drv16FKK345a09a1iubchlw/vmRuksmRzgBIGjcA= go.etcd.io/gofail v0.2.0/go.mod h1:nL3ILMGfkXTekKI3clMBNazKnjUZjYLKmBHzsVAnC1o= go.etcd.io/raft/v3 v3.6.0 h1:5NtvbDVYpnfZWcIHgGRk9DyzkBIXOi8j+DDp1IcnUWQ= @@ -314,8 +314,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= -golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= +golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= +golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -332,8 +332,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= -golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= +golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= +golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw= golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= @@ -353,14 +353,14 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= -golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg= -golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU= +golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= -golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= +golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= +golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -371,8 +371,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k= -golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0= +golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= +golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -427,23 +427,26 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.32.10 h1:ocp4turNfa1V40TuBW/LuA17TeXG9g/GI2ebg0KxBNk= -k8s.io/api v0.32.10/go.mod h1:AsMsc4b6TuampYqgMEGSv0HBFpRS4BlKTXAVCAa7oF4= -k8s.io/apimachinery v0.32.10 h1:SAg2kUPLYRcBJQj66oniP1BnXSqw+l1GvJFsJlBmVvQ= -k8s.io/apimachinery v0.32.10/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/client-go v0.32.10 h1:MFmIjsKtcnn7mStjrJG1ZW2WzLsKKn6ZtL9hHM/W0xU= -k8s.io/client-go v0.32.10/go.mod h1:qJy/Ws3zSwnu/nD75D+/of1uxbwWHxrYT5P3FuobVLI= +k8s.io/api v0.33.11 h1:y9m+f9jXmuRkzWpkzTPlKchyGS+MVae6N75+zSZ/Qso= +k8s.io/api v0.33.11/go.mod h1:vLVGVpO6mWKOd2VIc9lpDV0xZsFlwrciwKNOthJzjI8= +k8s.io/apimachinery v0.33.11 h1:Hqnqx0agdSL2ziJ9piIxYlOT9KWnsTqNAD+M3U53oTM= +k8s.io/apimachinery v0.33.11/go.mod h1:a8VYBaEU2Z6n2IxTG2Hs6WX5i0wQFPGyl4YFab4kn90= +k8s.io/client-go v0.33.11 h1:dDOVyh2WwOs7xkzhEdeFP7lOGKDfwjcmprAEieKnXlY= +k8s.io/client-go v0.33.11/go.mod h1:mWAyqJ8A/GgiuMYO8W6z5RhhaJvFSBa9qvo/Su01wOI= k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= +k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4= +k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= sigs.k8s.io/knftables v0.0.18 h1:6Duvmu0s/HwGifKrtl6G3AyAPYlWiZqTgS8bkVMiyaE= sigs.k8s.io/knftables v0.0.18/go.mod h1:f/5ZLKYEUPUhVjUCg6l80ACdL7CIIyeL0DxfgojGRTk= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= +sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc= +sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/images/Dockerfile new/flannel-0.28.5/images/Dockerfile --- old/flannel-0.28.4/images/Dockerfile 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/images/Dockerfile 2026-06-04 17:51:08.000000000 +0200 @@ -28,7 +28,7 @@ make dist/flanneld RUN git clone https://github.com/kubernetes-sigs/iptables-wrappers.git /iptables-wrapper WORKDIR /iptables-wrapper -RUN git checkout 5792812d9e5a5bb7f22d79d557bbfeece253343d +RUN git checkout bfef9e5087a198b50a4124bb9ce9d2c7c99025dd RUN export GOOS=$(xx-info os) &&\ export GOARCH=$(xx-info arch) &&\ export ARCH=$(xx-info arch) &&\ @@ -40,12 +40,11 @@ RUN apk add wireguard-tools --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community COPY --from=flannel-builder /build/dist/flanneld /opt/bin/flanneld COPY dist/mk-docker-opts.sh /opt/bin/ -COPY --from=flannel-builder /iptables-wrapper/iptables-wrapper-installer.sh / -COPY --from=flannel-builder /iptables-wrapper/bin/iptables-wrapper / +COPY --from=flannel-builder /iptables-wrapper/bin/iptables-wrapper /usr/sbin # check manually that iptables-legacy and iptables-nft are present since # iptables-wrapper-installer.sh sanity check doesn't work for multi-arch build RUN which iptables-legacy && which iptables-nft -RUN /iptables-wrapper-installer.sh --no-sanity-check +RUN /usr/sbin/iptables-wrapper install ENTRYPOINT ["/opt/bin/flanneld"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/images/iperf3/Makefile new/flannel-0.28.5/images/iperf3/Makefile --- old/flannel-0.28.4/images/iperf3/Makefile 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/images/iperf3/Makefile 2026-06-04 17:51:08.000000000 +0200 @@ -5,18 +5,24 @@ TEMP_DIR := $(shell mktemp -d) ifeq ($(ARCH),amd64) - BASEIMAGE=amd64/alpine:3.16 + BASEIMAGE=amd64/alpine:3.22.4 endif ifeq ($(ARCH),arm64) - BASEIMAGE=arm64v8/alpine:3.16 + BASEIMAGE=arm64v8/alpine:3.22.4 endif ifeq ($(ARCH),ppc64le) - BASEIMAGE=ppc64le/alpine:3.16 + BASEIMAGE=ppc64le/alpine:3.22.4 endif +.PHONY: all container + all: container container: - cp ./* $(TEMP_DIR) - cd $(TEMP_DIR) && sed -i 's|BASEIMAGE|$(BASEIMAGE)|g' Dockerfile - docker build --pull -t $(IPERF_IMG) -f $(TEMP_DIR)/Dockerfile $(TEMP_DIR) + @echo "Copying files to $(TEMP_DIR)..." + @cp ./* $(TEMP_DIR) || { echo "ERROR: Failed to copy files"; exit 1; } + @echo "Preparing Dockerfile..." + @cd $(TEMP_DIR) && sed -i 's|BASEIMAGE|$(BASEIMAGE)|g' Dockerfile || { echo "ERROR: Failed to prepare Dockerfile"; exit 1; } + @echo "Building iperf3 container image..." + @docker build --pull -t $(IPERF_IMG) -f $(TEMP_DIR)/Dockerfile $(TEMP_DIR) || { echo "ERROR: Docker build failed for iperf3"; exit 1; } + @echo "Successfully built iperf3 image: $(IPERF_IMG)" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flannel-0.28.4/pkg/backend/vxlan/vxlan_network.go new/flannel-0.28.5/pkg/backend/vxlan/vxlan_network.go --- old/flannel-0.28.4/pkg/backend/vxlan/vxlan_network.go 2026-04-15 20:21:46.000000000 +0200 +++ new/flannel-0.28.5/pkg/backend/vxlan/vxlan_network.go 2026-06-04 17:51:08.000000000 +0200 @@ -183,38 +183,43 @@ continue } - var ifaceAddrs, ifaceAddrsV6 []net.IP + var ifaceAddr, ifaceAddrV6 net.IP if config.EnableIPv4 { - ifaceAddrs, err = ip.GetInterfaceIP4Addrs(extIface) + addrs, err := ip.GetInterfaceIP4Addrs(extIface) if err != nil { log.Errorf("error getting IPv4 addresses for %s: %v", extIface.Name, err) retryAfterBackoff(&backoff, maxBackoff) continue } - if len(ifaceAddrs) == 0 { + if len(addrs) == 0 { log.Warningf("no IPv4 addresses found for interface %s, retrying", extIface.Name) retryAfterBackoff(&backoff, maxBackoff) continue } + ifaceAddr = addrs[0] } if config.EnableIPv6 { - ifaceAddrsV6, err = ip.GetInterfaceIP6Addrs(extIface) + addrs, err := ip.GetInterfaceIP6Addrs(extIface) if err != nil { log.Errorf("error getting IPv6 addresses for %s: %v", extIface.Name, err) retryAfterBackoff(&backoff, maxBackoff) continue } - if len(ifaceAddrsV6) == 0 { + if len(addrs) == 0 { log.Warningf("no IPv6 addresses found for interface %s, retrying", extIface.Name) retryAfterBackoff(&backoff, maxBackoff) continue } + ifaceAddrV6 = addrs[0] } - // Create the VXLAN device - dev, v6Dev, err := createVXLANDevice(ctx, config, cfg, nw.subnetMgr, extIface.Index, ifaceAddrs[0], ifaceAddrsV6[0]) + // Create the VXLAN device. ifaceAddr / ifaceAddrV6 stay nil + // when their family is disabled, so the v4-only and v6-only + // paths see the same shape: createVXLANDevice already gates + // the v4 / v6 code paths on config.EnableIPv4 / EnableIPv6. + dev, v6Dev, err := createVXLANDevice(ctx, config, cfg, nw.subnetMgr, extIface.Index, ifaceAddr, ifaceAddrV6) if err != nil { log.Errorf("failed to create vxlan device: %v", err) retryAfterBackoff(&backoff, maxBackoff) ++++++ flannel.obsinfo ++++++ --- /var/tmp/diff_new_pack.z8qH4E/_old 2026-06-09 14:25:50.474302743 +0200 +++ /var/tmp/diff_new_pack.z8qH4E/_new 2026-06-09 14:25:50.482303073 +0200 @@ -1,5 +1,5 @@ name: flannel -version: 0.28.4 -mtime: 1776277306 -commit: 3adfe3e04407869b9f84be0a68a6cebb73df9c6e +version: 0.28.5 +mtime: 1780588268 +commit: d47fd8e5f1c93fe7fd80cb06d7fc41ac502e2376 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/flannel/vendor.tar.gz /work/SRC/openSUSE:Factory/.flannel.new.2375/vendor.tar.gz differ: char 14, line 1
