Commit Graph
7371 Commits
Author SHA1 Message Date
levaliciousandClaude Opus 5.5 8018ea4bf9 lb: keep the client's address past weave's masquerade
images / images (push) Successful in 19m13s
Weave's expose rule (nat WEAVE: ! -s <alloc> -d <alloc> -j MASQUERADE)
masquerades everything entering the pod network from outside unless it is
for a local pod (weaver-no-masq-local). Live on the SG cluster a pod on
another node than the holder saw the holder's bridge address instead of
the client's. A new chain, REWEAVE-LB-POST, hooked first in nat
POSTROUTING, lets a connection we DNATed to a held address leave the nat
table with its source untouched; one that comes from a pod (hairpin) is
masqueraded to the holder instead, so its reply returns through the
holder's conntrack.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UHXzGrsxfkGk8LmwrBbHNZ
2026-10-13 13:30:08 -04:00
levaliciousandClaude Opus 5.5 ef50dc921f lb: DNAT rules carry their protocol; end-to-end test against a cluster
images / images (push) Successful in 14m35s
iptables refuses a DNAT to ip:port unless the same rule names the
protocol, so every per-port chain's DNAT now has -p. Live on the SG
cluster the first sync (no endpoints yet) applied; every later one failed
with "Need TCP, UDP, SCTP or DCCP with port specification" and left the
chains empty. The unit test now rejects any DNAT line without its
protocol; the rendered nat and mangle payloads were also checked with the
nodes' own iptables-restore --test (nf_tables).

reweave/test/lb/run.sh is the end-to-end test: from outside, both a pod on
the holder and one on another node see the client's own address; status
is [{ip, ipMode: Proxy}] and kube-proxy has nothing for the address; a pod
on a third node reaches it; an unheld address clears the status and stops
the forward; deleting the Services removes the holder's chains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UHXzGrsxfkGk8LmwrBbHNZ
2026-10-13 13:10:49 -04:00
levaliciousandClaude Opus 5.5 9bc3415111 lb: LoadBalancer Services from addresses nodes hold, client address kept
images / images (push) Successful in 14m46s
A Service of type LoadBalancer with loadBalancerClass
reweave.levk.dev/node-address names its address in spec.loadBalancerIP.
Each node's weave-npc publishes the IPv4 addresses on its host interfaces
and its weave bridge (Node annotations reweave.levk.dev/addresses and
reweave.levk.dev/weave). The one node that holds a Service's address is
its holder: it alone writes status.loadBalancer (ipMode Proxy, so
kube-proxy installs nothing for the address) and DNATs the address's ports
to ready endpoints (EndpointSlices), without SNAT, from nat PREROUTING
ahead of kube-proxy. Every other node marks the connections the holder
forwards to its pods (new, from the holder's bridge MAC, from outside the
pod network) and routes their replies back to the holder's bridge through
a per-holder policy rule and table, so the holder's conntrack undoes the
DNAT and the reply leaves from the address the client connected to.

Fail closed: an address no node holds, or that several nodes hold, is
served by no node, and its status is cleared (by its holder, or by the
first node by name if none holds it). Compute is the policy as a pure
function; Datapath replaces exactly the chains it owns with
iptables-restore --noflush and keeps its rules and tables exact.

weave-npc runs it unless --lb=false; the ClusterRole gains services
(watch), services/status (patch), endpointslices (watch), nodes (patch).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UHXzGrsxfkGk8LmwrBbHNZ
2026-10-13 12:45:54 -04:00
levaliciousandClaude Opus 5.5 4cf88d674c ci: check out the tools submodule
images / images (push) Successful in 17m51s
reweave/build's `make all` also builds tools/runner from the tools
submodule (weaveworks/build-tools); run 7 compiled every weave binary and
then stopped there. Fetched from upstream for now, like the build's other
fetches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UHXzGrsxfkGk8LmwrBbHNZ
2026-10-12 17:42:52 -04:00
levaliciousandClaude Opus 5.5 5ae90e4796 build: take bullseye and buster packages from archive.debian.org
images / images (push) Failing after 9m40s
Debian has archived both: buster is gone from deb.debian.org and
bullseye's security pool there now 404s on packages its index still
lists (run 6: xz-utils, dpkg-dev, libdpkg-perl). archive.debian.org
serves both releases, including libpcap 1.8.1-6+deb10u1 for the static
link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UHXzGrsxfkGk8LmwrBbHNZ
2026-10-12 17:32:28 -04:00
levaliciousandClaude Opus 5.5 8d36dc2f9b ci: push images as the reweave-ci bot
images / images (push) Failing after 20s
Gitea's registry refuses the job token (no package scope at login), so log
in as reweave-ci with the org secret REGISTRY_TOKEN, and drop the
packages permission that had no effect.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UHXzGrsxfkGk8LmwrBbHNZ
2026-10-12 17:18:15 -04:00
levaliciousandClaude Opus 5.5 6260533b6d ci: build weave-kube and weave-npc, push to this Gitea's registry
images / images (push) Failing after 17s
A Gitea Actions workflow that builds the two images the cluster runs from
reweave/build/Dockerfile (linux/amd64 only) and pushes them to
git.levk.dev/reweave/{weave-kube,weave-npc}, tagged with the full commit
SHA so a tag never changes meaning. It stops at the push; rollout is the
CD side's job. Build-time fetches (base images, apt/apk, Go modules) stay
external for now and are to be peeled out once self-deploy works.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UHXzGrsxfkGk8LmwrBbHNZ
2026-10-12 17:12:04 -04:00
Raj Chaudhuri 60b710c6a8 Scan results on 2025-09-16 2025-09-16 19:17:09 +05:30
Raj Chaudhuri 8397222003 Add release v2.9.0 v2.9.0 2024-12-22 20:54:31 +05:30
Raj Chaudhuri 999aeb7d0b Made changes to assume iptables-nft as the default backend for iptables, and provisioned for changing to legacy mode if required 2024-12-22 18:56:07 +05:30
Raj Chaudhuri 9057156d28 Upgraded two dependencies based on scan results 2024-12-22 18:01:42 +05:30
Raj Chaudhuri 2c67714a03 Scan results on 2024-12-22 2024-12-22 17:41:31 +05:30
Raj Chaudhuri 84afe28bee Add release v2.8.10 v2.8.10 2024-10-17 17:25:04 +05:30
Raj Chaudhuri 6512da7cc1 Go version upgraded to 1.23.1 2024-10-17 14:41:56 +05:30
Raj Chaudhuri fab7297623 Scan results on 2024-10-17 2024-10-17 13:03:20 +05:30
Raj Chaudhuri ca2ba767d9 Alpine base image upgraded to 3.20.3 2024-10-17 12:16:12 +05:30
Raj Chaudhuri f32a2a6955 Scan results on 2024-10-16 2024-10-16 10:10:51 +05:30
Raj Chaudhuri 463c7af871 Add release v2.8.9 v2.8.9 2024-08-09 13:22:24 +05:30
Raj Chaudhuri 981196a5e8 Updated a dependency, Go version and Alpine base image 2024-08-09 12:49:30 +05:30
Raj Chaudhuri ae5d4624b2 Scan results on 2024-08-09 2024-08-09 10:17:47 +05:30
Raj Chaudhuri 8f85c320af Scan results on 2024-07-30 2024-07-30 13:03:21 +05:30
Raj Chaudhuri 32ad2a1b02 Documentation updates 2024-07-19 08:54:16 +05:30
Raj Chaudhuri b0477a25ff Add release v2.8.8 v2.8.8 2024-06-19 12:27:48 +05:30
Raj Chaudhuri 81117751ca Alpine base image upgraded 2024-06-18 16:05:07 +05:30
Raj Chaudhuri 8cfc740455 Scan results on 2024-06-18 2024-06-18 11:05:59 +05:30
Raj Chaudhuri 525d517fe1 Add release v2.8.7 v2.8.7 2024-05-05 11:28:31 +05:30
Raj Chaudhuri a3d5e0710e Removed ppc64le and s390x arch support
A crucial dependency does not support them any more
2024-05-05 10:52:45 +05:30
Raj Chaudhuri 3fd1ae5bb3 Upgraded a dependency
Details in reweave/CHANGELOG.md
2024-05-04 16:10:28 +05:30
Raj Chaudhuri f8d0d8e82b Scan results on 2024-05-04 2024-05-04 15:18:21 +05:30
Raj Chaudhuri 46cf7c460e Documentation corrections 2024-04-10 16:06:14 +05:30
Raj Chaudhuri afd62f23e5 Corrected plugin publish tool 2024-04-10 15:10:45 +05:30
Raj Chaudhuri e42bc298a4 Add release v2.8.6 v2.8.6 2024-04-10 14:23:57 +05:30
Raj Chaudhuri 78f596fbda Provisioned for Docker V2 plugin on multiple architectures, blocked CHECKPOINT, updated docs 2024-04-09 19:01:34 +05:30
Raj Chaudhuri c3cc2107c6 Add release 2.8.5 v2.8.5 2024-04-06 09:05:57 +05:30
Raj Chaudhuri ac180cfc10 Upgraded dependency
- Details in reweave/CHANGELOG.md
2024-04-05 20:19:51 +05:30
Raj Chaudhuri ff91a56fc4 Scan results on 2024-03-30 2024-03-30 10:17:47 +05:30
Raj Chaudhuri c3afe55262 Add release v2.8.4 v2.8.4 2024-03-20 12:15:25 +05:30
Raj Chaudhuri 8c148120fe Upgraded dependency, modified scan process
- Details in reweave/CHANGELOG.md
2024-03-19 10:32:22 +05:30
Raj Chaudhuri c1993b9df0 Scan results on 2024-03-19 2024-03-19 09:15:40 +05:30
Raj Chaudhuri a0ee8250aa Updated internal CHANGELOG 2024-03-19 08:34:54 +05:30
Raj Chaudhuri e2db8a25bd Added documentation website content, and a workflow to publish it to GitHub Pages
* Copied, rearranged and modified the contents of the old site directory for Jekyll static site generator, into the website directory
* Added some Jekyll-specific things for looks, including:
  * _config.yaml, Gemfile.* and 404.html files
  * _data, _layouts and assets directories and their content
* Added .github/workflows/github-pages-publish.yml workflow
2024-03-18 20:37:53 +05:30
Raj Chaudhuri 92779f3e57 Moved old artifacts that are no longer used to 'original' directory 2024-03-18 20:04:17 +05:30
Raj Chaudhuri b46c77461d Updated CNI conflist file content, and ensured correct version stamping 2024-03-18 09:07:38 +05:30
Raj Chaudhuri bcab10a478 When publishing images, the :latest tag will not be applied if the current tag includes -beta 2024-03-17 16:39:48 +05:30
Raj Chaudhuri 664e361ab4 In alpine base image, changed default iptables backend to legacy for backward compatibility 2024-03-17 09:23:53 +05:30
Raj Chaudhuri d08787902a Add release v2.8.3 v2.8.3 2024-03-08 00:03:10 +05:30
Raj Chaudhuri a752f65658 All images other than V2 docker plugin added to scan process 2024-03-07 23:09:03 +05:30
Raj Chaudhuri e50040883f Docker API client version bumped to 1.24 everywhere 2024-03-07 19:27:12 +05:30
Raj Chaudhuri 55a46992d4 Release 2.8.2 cosmetic corrections
Minor mistakes in README.md and the scan report corrected.
2024-03-04 00:52:48 +05:30
Raj Chaudhuri 7b087168cf Add release v2.8.2 v2.8.2 2024-03-03 23:24:00 +05:30