Skip to content

feat(platform): lean system pool, fit the platform on one e2-medium when idle #208

Open

Description

@valentinalexeev-bot

🤖 AI agent: requested by the owner after the rc.4 bootstrap validation on a private GKE instance.

Problem

With every agent scaled to zero, the system pool still runs 2 × e2-medium (Spot), because the platform and the GKE add-ons together request about 1.7 CPU and one e2-medium offers about 940m. Measured on the instance (requests per node 793m and 900m, 85% and 96% of allocatable). Most of that is GKE add-ons agentdev does not use or use only in gateway ingress mode:

Add-on Request (measured) Used by agentdev?
Managed Prometheus (gmp-operator, collectors) collector on each node no (no reference in docs, Terraform or Ansible)
Filestore CSI (filestore-node on each node, lock-release controller) 25m + 160 MB per node no (PD only)
Monitoring components POD/DAEMONSET/DEPLOYMENT/STATEFULSET (kube-state-metrics) 105m + 130 MB no
httpLoadBalancing + Gateway API (l7-default-backend) small only with ingress.mode: gateway

Must stay: Cloud Logging SYSTEM_COMPONENTS and WORKLOADS (the persistence step 1 of security events, docs/security-model.md), Dataplane V2, PD CSI, Workload Identity, konnectivity.

Plan (two stacked PRs, a third in the deployment repo)

  1. Customisation points (non-breaking, defaults unchanged): Terraform inputs enable_managed_prometheus, enable_filestore_csi, monitoring_components, gateway_enabled. A deployment can then trim the cluster without patching the module.
  2. Lean defaults (on top of 1): Managed Prometheus and Filestore CSI off, monitoring components reduced to SYSTEM_COMPONENTS, Gateway and load balancer on only when public_hosts is set.
  3. A deployment repository sets the inputs for its instance (here valentinalexeev/agentdev-valabs).

Acceptance

  • On a live cluster with no public hosts, the platform fits on one e2-medium: the system pool autoscaler settles at 1 node with all agents at 0.
  • Cloud Logging still carries AGENTDEV_SECURITY_EVENT lines.
  • terraform validate passes; a plan on an existing instance shows in-place cluster updates only.

Questions

  1. Milestone for the lean defaults. Flipping defaults alters behaviour of existing instances, so under CLAUDE.md §7 it is a MAJOR change once 1.0.0 is tagged. Options: (a) land it in 1.0.0 (still rc), (b) wait for 2.0.0, (c) keep the defaults as they are and ship only the customisation points in 1.0.x/1.1.0. Proposal: (a) if the owner is willing to hold 1.0.0 for it, otherwise (c). Blocks the lean-defaults PR only.

Activity

  1. added
    AICreated by an AI agent
    needs-decisionWaits for an owner decision (question in a comment)
    clusterkind, gVisor, manifests
    on Nov 4, 2026
  2. added this to the 1.3.0 milestone on Nov 4, 2026
  3. changed the title [-]Lean system pool: fit the platform on one e2-medium when idle[/-] [+]feat(platform): lean system pool, fit the platform on one e2-medium when idle[/+] on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    AICreated by an AI agentclusterkind, gVisor, manifestsneeds-decisionWaits for an owner decision (question in a comment)

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions