Skip to content

v0.35.0

Latest

Choose a tag to compare

@vvoytovych vvoytovych released this 03 Nov 14:11
202bbf0

Deleting a network now gives up the interfaces its locations kept for it, a network's internet access can be set per network, and network load balancers can share an address, serve UDP port ranges and appear in the portal. Shared listeners, UDP ranges, IPv4 addresses and the enforcement of internet access stay off until a deployment turns them on.

Important

Before you upgrade a cell: it needs Galactic v0.8.1 or newer. With networkLoadBalancer.enabled, the cell controller manager watches NetworkServiceAddress, and it exits if that CRD is missing.

Order: upgrade the cells and edges first, then the hub. A hub that marks a deleting network's contexts before a cell's CRD has networkDeleting loses the mark there, and the network waits, as it did before this release.

The Network webhook is new: mnetwork-v1alpha.kb.io has failurePolicy: Fail. A deployment that repoints each webhook's service must add it, or every Network create and update is refused.

Features

  • Deleting a network gives up its kept interfaces. The hub marks each location's context, the location deletes the interfaces it kept, and the presence ends once the location holds none. A network that only leaves a location keeps them, and an interface a claim holds is never touched. (#828, #831, #833, #844, #846)
  • Internet access per network. A cell writes a Galactic traffic policy and binding for each interface. Existing networks are stamped with the default, on, so no running workload loses access. (#477)
  • Network load balancers: shared listeners, UDP ranges and IPv4. Each is off until configured. (#779, #766)
  • Network load balancers in the portal. (#812, #809, #827)
  • A cell can fence off unikernel agent ports. Off until a cell sets galactic.hypervisorHostOnlyPorts. (#797)
  • The datum-networking Claude Code plugin. (#784, #796, #798)

Fixes

  • A context whose network has DNS turned off settles. In a location with an internal-DNS region, the project reconciler stamped the region annotation and cleared it again on every reconcile, and each write started the next one. It now decides that DNS is off first. Also in v0.34.2. (#847)
  • A load balancer gets its address right away, and no longer waits on a once-a-minute check. (#813)
  • A network's edits reach its locations under cluster sharding, within seconds through the hub, and within a minute at worst. (#783, #793, #794)
  • A rebuilt interface keeps its attachment identity. (#824)
  • Fewer write conflicts in replication, network presence and load balancer status. (#780, #781, #810)
  • A Gateway reports Domain quota exhaustion on its listeners. (#782)
  • Controller health alerts run as written and name their owner, and a new warning covers errors that hold for a day. (#776, #778)
  • A replica can skip changes for projects it does not own. Off by default. (#748)

Dependencies and build

Note

Turning a network's internet access off drops its live connections once nodes enforce the policy, because policy tracks no connection state.

Changelog

  • 85689c4 Merge branch 'main' into claude/project-thread-sxmmfe
  • ff399fe Merge branch 'main' into fix/presence-reconciles-every-presence-on-start
  • 3ead544 Merge pull request #477 from datum-cloud/feat/internet-egress-controllers
  • fb28dab Merge pull request #711 from datum-cloud/claude/project-thread-4mpadv
  • c25949d Merge pull request #748 from datum-cloud/fix/hub-events-owned-only
  • 4ae66bf Merge pull request #766 from datum-cloud/feat/nlb-ipv4
  • fbefcd3 Merge pull request #776 from datum-cloud/fix/controller-health-canonical
  • 3f5507f Merge pull request #778 from datum-cloud/fix/controller-health-owner-join
  • 665813e Merge pull request #779 from datum-cloud/codex/nlb-shared-ranges
  • f966974 Merge pull request #780 from datum-cloud/codex/networkpresence-status-conflicts
  • 971fb21 Merge pull request #781 from datum-cloud/codex/gateway-replication-patch
  • 7f9c596 Merge pull request #782 from datum-cloud/codex/gateway-domain-quota-status
  • ee9896b Merge pull request #783 from datum-cloud/claude/project-thread-jzzzqw
  • f2aa33f Merge pull request #784 from datum-cloud/claude/project-thread-wrkew9
  • e8a9de9 Merge pull request #786 from datum-cloud/ci/actions-v1.24.0
  • 64b37bd Merge pull request #787 from datum-cloud/renovate/go-go.etcd.io-etcd-client-pkg-v3-vulnerability
  • 3898573 Merge pull request #788 from datum-cloud/renovate/go-github.com-google-cel-go-vulnerability
  • 520de0f Merge pull request #789 from datum-cloud/renovate/go-golang.org-x-net-vulnerability
  • 5b79d82 Merge pull request #791 from datum-cloud/renovate/node.js
  • e7fea45 Merge pull request #792 from datum-cloud/renovate/major-node.js
  • 5d5f834 Merge pull request #793 from datum-cloud/claude/project-thread-jzzzqw
  • 4862adf Merge pull request #794 from datum-cloud/claude/project-thread-jzzzqw
  • 1376653 Merge pull request #796 from datum-cloud/claude/project-thread-wrkew9-signed
  • 92b349b Merge pull request #797 from datum-cloud/claude/project-thread-hpazsb
  • b7eb99d Merge pull request #798 from datum-cloud/claude/project-thread-wrkew9-v011-signed
  • e37c0b7 Merge pull request #809 from datum-cloud/kevwilliams/angelshark
  • 02a432a Merge pull request #810 from datum-cloud/codex/nlb-status-conflicts
  • 38dd6c6 Merge pull request #812 from datum-cloud/feat/nlb-empty-state
  • c2442c8 Merge pull request #813 from datum-cloud/claude/project-thread-sxmmfe
  • 4e2146f Merge pull request #817 from datum-cloud/renovate/actions-checkout-7.x
  • 329be3d Merge pull request #818 from datum-cloud/renovate/actions-setup-go-7.x
  • c90d11f Merge pull request #820 from datum-cloud/renovate/typescript-7.x
  • 640a24d Merge pull request #821 from datum-cloud/notice-drop-versions
  • 0f0cd5e Merge pull request #823 from datum-cloud/renovate/datum-cloud-actions-1.x
  • 2b0630a Merge pull request #824 from datum-cloud/fix/issue-822
  • 8a8a8c5 Merge pull request #826 from datum-cloud/chore/go-1.27-toolchain
  • 47c8bf4 Merge pull request #827 from datum-cloud/fix/nlb-list-layout
  • fff7034 Merge pull request #828 from datum-cloud/fix/network-deletion-releases-kept-interfaces
  • e1f44d5 Merge pull request #831 from datum-cloud/fix/mark-only-the-deleted-networks-contexts
  • f73dbdd Merge pull request #833 from datum-cloud/fix/kept-interface-served-location
  • 80a9735 Merge pull request #836 from datum-cloud/ci/required-ci-check
  • 72b06d9 Merge pull request #838 from datum-cloud/renovate/arduino-setup-task-3.x
  • 7f62586 Merge pull request #839 from datum-cloud/renovate/azure-setup-helm-5.x
  • 876ee35 Merge pull request #841 from datum-cloud/renovate/golangci-golangci-lint-action-9.x
  • d80150e Merge pull request #844 from datum-cloud/fix/presence-reconciles-every-presence-on-start
  • df47bf8 Merge pull request #845 from datum-cloud/ci/test-timeout-25m
  • 202bbf0 Merge pull request #846 from datum-cloud/fix/presence-hears-network-deletion-at-once
  • 23342fd Merge pull request #847 from datum-cloud/fix/internal-dns-disabled-region-loop
  • 4326827 Merge remote-tracking branch 'origin/main' into notice-drop-versions
  • 7cdf5b8 Merge remote-tracking branch 'origin/main' into renovate/go-golang.org-x-net-vulnerability
  • b9a2281 build: pin Galactic shared NLB implementation
  • def6b62 chore(deps): regenerate NOTICE after golang.org/x/net bump
  • db50d29 chore(deps): update actions/checkout action to v7
  • babc518 chore(deps): update actions/setup-go action to v7
  • 031d2a9 chore(deps): update arduino/setup-task action to v3
  • f849eed chore(deps): update azure/setup-helm action to v5
  • 07eb5ca chore(deps): update datum-cloud/actions action to v1.26.0
  • 09a215c chore(deps): update dependency typescript to v7
  • 0de4aaf chore(deps): update golangci/golangci-lint-action action to v9
  • f5fe204 chore(deps): update module go.etcd.io/etcd/client/pkg/v3 to v3.6.14 [security]
  • c62717c chore(deps): update node.js to v26
  • a05d435 chore(deps): update node.js to v26.13.0
  • 67b6342 ci: Give the test run 25 minutes until the suite is split
  • cec2efa ci: Move shared workflows to actions v1.24.0
  • 49d8930 ci: Require a build and unit test check
  • 0478621 feat: Add UDP ports to the create-service dialog
  • 5906742 feat: Add an internet access switch to networks
  • 4eafb05 feat: Add shared NLB addresses and UDP ranges
  • 4dc72c6 feat: Enforce a network's internet access per interface
  • 744029a feat: Let a network context say its network is being deleted
  • ce5f559 feat: Serve IPv4 on network load balancers
  • 00fe18d feat: Warn a controller's team when its errors hold for a day
  • 761187f feat: add the datum-networking Claude Code plugin
  • bc12760 feat: create an NLB with its first listener
  • 3d6172f feat: edit and delete an NLB's listeners
  • 62e5b05 feat: fence off unikernel agent ports via galactic
  • c650bdb feat: list NLBs in a project
  • 3a54c12 feat: match an NLB's pages to compute's and the portal's styles
  • 881e303 feat: run datum-mcp from the datum-cloud base plugin
  • a1c8386 feat: show an NLB's overview and add listeners to it
  • 6c9bcc5 feat: show an empty state when a project has no NLB yet
  • d19c10a feat: show hostnames and simplify an NLB's overview
  • 1ec120f fix(deps): update module github.com/google/cel-go to v0.30.0 [security]
  • 7b32a26 fix(deps): update module golang.org/x/net to v0.62.0 [security]
  • 63166d1 fix: Bring a presence that waits to end back within the resync
  • b690f33 fix: Bring back every network presence when the controller starts
  • cf7fa8f fix: Drop events for clusters other replicas own
  • 252a129 fix: End a network presence only once its location holds none of its interfaces
  • 70bc634 fix: Fence NLB publication before IP release
  • 3df10be fix: Give up a kept interface when its network context is marked
  • 89643f8 fix: Hear a network's deletion at once where no binding declares it
  • 32b99a6 fix: Join each controller-health alert's owner from the platform's map
  • 07e051c fix: Keep attachment identity across interface rebuild
  • 5599d1e fix: Leave a network's presences to the presence controller when it is deleted
  • 329c258 fix: Let a context settle when its network's DNS is off
  • aaf8d0f fix: Mark a deleting network's contexts from the presence controller
  • 66f059a fix: Mark only the contexts of the network deleted
  • efb4a03 fix: Name a cell's network contexts from the location it serves
  • cc6b812 fix: Name the missing class when NLB IPAM is unset
  • 93bf824 fix: Page on a controller stall as production does, per deployment
  • c771d3d fix: Read a network's deletion from the network the context names
  • 85d9e68 fix: Refuse a claim on a network that is being deleted
  • bab55fa fix: Refuse to adopt a context marked for an earlier network of the same name
  • e201df5 fix: Resync network presences so edits reach locations
  • 9107a64 fix: Retain NLB coordination through transitions
  • e1b5c8f fix: Stop NOTICE going stale on every bump
  • 7150cb5 fix: align NLB and VPC list layout with ALB
  • ae62ccd fix: assign NLB addresses when dependencies change
  • 8421bc2 fix: drop NLB periodic resync in favor of events
  • 5355f30 fix: fence NLB allocation retirement across cell handoffs
  • 0745706 fix: let site-triage read DNS zones and records
  • facd515 fix: limit site-triage to read-only tools
  • 902982b fix: merge main and update Galactic pin
  • cf14119 fix: patch network presence status without metadata conflicts
  • bf87f94 fix: patch replicated resources without conflicting on downstream writes
  • ca88049 fix: pin Galactic review fixes
  • 31be02b fix: reconcile shared NLB with IPv4
  • e5f45ce fix: report gateway domain quota exhaustion as listener status
  • 7297a06 fix: resolve shared NLB CI regressions
  • 89afa63 fix: retry NLB status conflicts from live state
  • 1b600a6 fix: retry pending IPAM claims via queue backoff
  • 1f58a2e fix: signal network presences through the hub
  • d1f00e9 perf: signal network presences on spec changes only
  • e0fc18e refactor: Encode upstream cluster label in one place
  • 4d1d14d style: gofmt load balancer controller