Commit Graph

2524 Commits

Author SHA1 Message Date
joshsiv-mulga 5ff0fa452c refactor: localize ecr repository projection 2026-10-01 14:55:41 +10:00
joshsiv-mulga 452005583c docs: record ecr domain migration sequence 2026-10-01 14:50:00 +10:00
joshsiv-mulga 474c073167 refactor: move ecr auth bridge to domain 2026-10-01 14:48:07 +10:00
joshsiv-mulga 5e7311eb25 refactor: move ecr registry adapter to domain 2026-10-01 14:45:31 +10:00
joshsiv-mulga 51b5c55b95 refactor: move ecr aws actions to domain 2026-10-01 14:42:37 +10:00
joshsiv-mulga 93084043a9 refactor: move ecr resource owner to domain 2026-10-01 14:35:36 +10:00
joshsiv-mulga a010f731e0 docs: record bootstrap configuration relocation 2026-10-01 14:28:38 +10:00
joshsiv-mulga f119229861 refactor: move root configuration to bootstrap 2026-10-01 14:23:56 +10:00
joshsiv-mulga 6057d2f880 docs: record provider adapter relocations 2026-10-01 14:17:33 +10:00
joshsiv-mulga dbc62562c8 refactor: move object storage adapter to providers 2026-10-01 14:16:25 +10:00
joshsiv-mulga 61cf833aa4 refactor: move exoscale client to cloud providers 2026-10-01 14:09:08 +10:00
joshsiv-mulga 08d9507701 refactor: localize qmp collector metrics 2026-10-01 14:06:10 +10:00
joshsiv-mulga b975f1ba9d refactor: make legacy EBS messaging explicit 2026-10-01 14:02:02 +10:00
joshsiv-mulga 3f91a3dbcd Merge remote-tracking branch 'origin/dev' into refactor/spinifex-package-boundaries
# Conflicts:
#	spinifex/daemon/daemon.go
#	spinifex/foundation/aws/arn/arn.go
#	spinifex/foundation/aws/arn/arn_test.go
#	spinifex/foundation/state/kvlease/bucket.go
#	spinifex/foundation/state/kvlease/bucket_test.go
#	spinifex/foundation/state/kvstore/wait.go
#	spinifex/foundation/state/kvstore/wait_test.go
#	spinifex/foundation/state/kvutil/bucket_creation_invariants_test.go
#	spinifex/foundation/state/kvutil/export_test.go
#	spinifex/foundation/state/kvutil/kvutil.go
#	spinifex/foundation/state/kvutil/kvutil_test.go
#	spinifex/foundation/state/kvutil/replicas.go
#	spinifex/foundation/state/kvutil/replicas_health_test.go
#	spinifex/foundation/state/kvutil/replicas_test.go
#	spinifex/foundation/state/kvutil/state_test.go
#	spinifex/gateway/auth.go
#	spinifex/gateway/bedrock/logging.go
#	spinifex/gateway/ec2_authz_test.go
#	spinifex/gateway/ecrapi/authz.go
#	spinifex/gateway/eks.go
#	spinifex/gateway/gateway_test.go
#	spinifex/handlers/ec2/eigw/service_impl.go
#	spinifex/handlers/ec2/igw/service_impl.go
#	spinifex/handlers/ec2/instance/service_impl.go
#	spinifex/handlers/ec2/launchtemplate/service_impl_test.go
#	spinifex/handlers/ec2/placementgroup/service_impl.go
#	spinifex/handlers/ec2/placementgroup/service_impl_test.go
#	spinifex/handlers/ec2/routetable/service_impl.go
#	spinifex/handlers/ec2/spotinstance/service_impl.go
#	spinifex/handlers/ec2/volume/service_impl.go
#	spinifex/handlers/ec2/vpc/eni.go
#	spinifex/handlers/ec2/vpc/security_group.go
#	spinifex/handlers/ec2/vpc/service_impl.go
#	spinifex/handlers/ecs/tags.go
#	spinifex/handlers/eks/k3s_ha_control_plane.go
#	spinifex/handlers/iam/groups.go
#	spinifex/handlers/iam/retry.go
#	spinifex/handlers/rds/subnetgroup_test.go
#	spinifex/handlers/sts/assume_role.go
#	spinifex/ingress/aws/query/parser_fuzz_test.go
#	spinifex/runtime/compute/cache/cache_test.go
#	spinifex/runtime/roles/nats/servername.go
#	spinifex/services/awsgw/awsgw.go
#	spinifex/services/viperblockd/volume_dirty.go
#	spinifex/utils/account.go
2026-10-01 13:31:45 +10:00
joshsiv-mulga 0b82e14049 refactor: establish legacy Viperblockd sync contract 2026-10-01 12:12:01 +10:00
Julian Sommer 04c80f3897 feat(iam): supply aws:CurrentTime and aws:EpochTime and accept the date operators (#1147) 2026-10-01 12:11:35 +10:00
joshsiv-mulga 94a6e7af25 refactor: establish legacy Viperblockd config contract 2026-10-01 11:57:31 +10:00
Julian Sommer 211e2b8cfc feat(iam): accept Null and IfExists condition operators at the write path (#1145) 2026-10-01 11:28:44 +10:00
Julian Sommer 74243730fa fix(iam): resolve policy and instance-profile ARNs against the stored ARN (#1144) 2026-10-01 11:13:30 +10:00
Julian Sommer 2230e92ec2 feat(iam): accept negated, case-insensitive and NotIpAddress condition operators (#1143) 2026-10-01 10:49:51 +10:00
Julian Sommer c7513c0394 fix: flaky test 2026-10-01 10:18:04 +10:00
Julian Sommer c782585352 feat(iam): accept NotAction and NotResource on identity policies (#1142) 2026-10-01 10:09:39 +10:00
Julian Sommer c98715f7a3 feat: supply iam:PassedToService on PassRole checks (#1141) 2026-10-01 09:24:46 +10:00
joshsiv-mulga adb55de33e refactor: localize Viperblockd NBD transport 2026-10-01 08:43:20 +10:00
joshsiv-mulga f4cb550c94 refactor: localize GP3 volume policy 2026-10-01 08:33:41 +10:00
joshsiv-mulga 08bd335f0a refactor: establish node status contract 2026-10-01 08:22:26 +10:00
Ben Duncan 14ba518186 feat: source=exoscale external pool allocating Elastic IPs through the exo CLI (#1140)
* docs: add work-in-progress Exoscale integration guide with stack diagrams

* feat: source=exoscale external pool allocating Elastic IPs through the exo CLI

* docs: rewrite the Exoscale guide as a short end-user install, and test the exo fake, store and wiring
2026-09-30 15:08:26 -05:00
joshsiv-mulga 4b35a2a33d refactor: establish node VM inventory contract 2026-09-30 16:27:39 +10:00
Julian Sommer 36d5788923 fix: require iam:PassRole for EKS cluster and node roles (#1139) 2026-09-30 16:22:16 +10:00
joshsiv-mulga 78fd017e03 refactor: establish telemetry sidecar contract 2026-09-30 16:05:35 +10:00
joshsiv-mulga 5d88a33998 refactor: establish operator storage contract 2026-09-30 15:56:13 +10:00
joshsiv-mulga 53a6147178 refactor: localize cluster config hash input 2026-09-30 15:49:07 +10:00
joshsiv-mulga 6d6275e78d refactor: establish cluster health contract 2026-09-30 15:43:34 +10:00
Julian Sommer dc636cac63 fix: cut fixed waits from viperblockd and cmd tests 2026-09-30 15:42:48 +10:00
Julian Sommer 8a1045b4e7 fix: ack vpc.delete-nat in tests so teardown doesn't wait out the 15 s request timeout 2026-09-30 15:37:40 +10:00
joshsiv-mulga b49e55a586 refactor: establish cluster discovery contract 2026-09-30 15:35:33 +10:00
joshsiv-mulga c239fd8973 refactor: colocate ENI allocation with VM runtime 2026-09-30 15:26:40 +10:00
Julian Sommer 51d855aa80 refactor: remove spx service stop/status and narrow service.Service to Start (#1138) 2026-09-30 15:18:49 +10:00
joshsiv-mulga 60c9ed47d7 refactor: establish IGW projection contract 2026-09-30 15:18:20 +10:00
joshsiv-mulga ef22698f65 docs: record package-boundary contracts 2026-09-30 15:08:17 +10:00
joshsiv-mulga aa0c36ff4e refactor: establish EC2 command contract 2026-09-30 14:46:31 +10:00
Julian Sommer a06eccfdab test: fuzz awsec2query parser and add make fuzz
Fuzz QueryParamsToStruct over query bodies decoded into EC2, ELBv2 and RDS
inputs: no panic, list entries bounded by MaxSliceLen and the input size, and
an entry past the first gap never changes the parse. make fuzz runs every
Fuzz* target for FUZZTIME each.
2026-09-30 14:35:48 +10:00
Julian Sommer 520b2d1689 fix: refuse request bodies the authz gate and handler would read differently
bodyscope lower-cased names with strings.ToLower and decoded into a map, while
handlers decode with encoding/json. A non-ASCII name that encoding/json folds
onto an ASCII field (repoſitoryName), or a repeated name whose later value is
null or an object, let the gate authorize one resource while the handler acted
on another. Parse now decodes with encoding/json/v2, which refuses repeated
names, and refuses non-ASCII names; both yield ErrAmbiguousBody.

FuzzGateMatchesHandler checks, for every identifier the ECR, ECS, EKS, ACM and
Bedrock resolvers read, that the gate and a handler-shaped decode agree.
2026-09-30 14:17:46 +10:00
Julian Sommer 7bbf78df78 chore: cleanup preflight 2026-09-30 13:52:47 +10:00
Julian Sommer 2b4ddad78a chore: drop dead and redundant nolint directives
Removes directives for linters that are not enabled (noctx, exhaustive,
deadcode) and gosec suppressions already covered by config exclusions.
Tags ochrevector QueryResult and Filter with their existing field names
so musttag passes without changing the NATS wire format, and bounds the
RDS window slot conversion instead of suppressing G115.
2026-09-30 13:46:11 +10:00
Julian Sommer 39fdd132ee fix: verify cluster CA on peer and predastore readiness probes
Peer /health and predastore readiness probes skipped TLS verification.
Both now trust the cluster CA (nats.cacert) that issues every node's server
cert. A node without the CA stops peer probing, leaving peers reachable,
and reports predastore not ready.
2026-09-30 13:43:22 +10:00
Julian Sommer 524a7a519f chore: centralise arn splitting 2026-09-30 12:30:25 +10:00
Julian Sommer a3ea962d1e chore: shared e2e ssh harness 2026-09-30 12:21:57 +10:00
Julian Sommer 5f21fd27e3 chore: inline more 2026-09-30 12:01:21 +10:00
Julian Sommer 1344a8e3ca chore: inline function wrappers 2026-09-30 11:55:40 +10:00