Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
492eb6c
feat: implement federated deployment scheduling across POP cells
scotwells May 20, 2026
400144d
feat: add kustomize overlays for federated deployment to staging and …
scotwells May 26, 2026
0f69956
feat: replace cert-manager certificate resources with CSI volume moun…
scotwells May 26, 2026
a11861e
feat: remove webhook CA injection — Milo trusts the cert issuer directly
scotwells May 26, 2026
721e5a9
feat: make CSI webhook cert component generic, patch issuer per overlay
scotwells May 26, 2026
1b42ba5
fix: simplify WD status aggregation to pass through single member status
scotwells May 26, 2026
7116d78
refactor: move webhook cert issuer patch to infra repo
scotwells May 26, 2026
cbd64ab
fix: repair dev and single-cluster overlays after certmanager base re…
scotwells May 26, 2026
dfb266a
fix: only run WorkloadReconciler on management cluster
scotwells May 26, 2026
85d5281
fix: reduce cyclomatic complexity of main by extracting loadServerConfig
scotwells May 27, 2026
079a282
fix: forward Extra claims in network SubjectAccessReview
scotwells May 27, 2026
fba4f68
fix: move metricRules from billing to quota in ServiceConfiguration
scotwells May 27, 2026
c27ad39
feat: Route ResourceClaims to Milo project control planes
scotwells May 27, 2026
d184d1a
fix: add missing quota metrics to ServiceConfiguration
scotwells May 27, 2026
33eeb95
fix: default controller flags to false, move clusterName validation t…
scotwells May 27, 2026
15fe991
fix: correctly remove clusterName validation from initializeClusterDi…
scotwells May 27, 2026
ecc0f49
fix: grant compute-manager namespace read/write in Karmada downstream…
scotwells May 28, 2026
586bc4f
feat: switch to LocationBinding for location discovery and availability
scotwells May 28, 2026
cd007e4
fix: add RBAC for networking.datumapis.com and quota.miloapis.com res…
scotwells May 28, 2026
b896d12
refactor: rename downstream-kubeconfig flag to upstream-kubeconfig
scotwells May 28, 2026
7e90f65
fix: bump milo to feat/upgrade-controller-runtime-v0.23-clean for Pro…
scotwells May 28, 2026
1d1760e
fix: repair cell-controller instance reconciler wiring in main.go
scotwells May 28, 2026
5c04e29
feat: add quota client support for single-tenant cell mode
scotwells May 28, 2026
81e73c3
ci: bump Go version to 1.25 to match go.mod requirement
scotwells May 28, 2026
bed3d12
ci: bump golangci-lint to v2.2.2 for Go 1.25 compatibility
scotwells May 28, 2026
0d26598
ci: bump golangci-lint to v2.12.2 (latest, built with Go 1.25)
scotwells May 28, 2026
951d022
fix: write instance back to Karmada on every reconcile, not just on s…
scotwells May 28, 2026
3ac5115
fix: skip upstream write-back when spec, labels, and status are uncha…
scotwells May 28, 2026
c15161e
refactor: rename writeBackToDownstream -> writeBackToUpstream
scotwells May 28, 2026
385b974
refactor: rename DownstreamClient -> UpstreamClient across all contro…
scotwells May 28, 2026
a5916b9
fix: remove clusterName requirement in Milo mode for management plane
scotwells May 28, 2026
9cee4fa
feat: wire cell-mode quota enforcement and remove vendored deps
scotwells May 28, 2026
da63916
fix: treat missing quota kubeconfig file as quota-disabled rather tha…
scotwells May 28, 2026
9b36548
fix: mark compute-quota-credentials secret volume as optional
scotwells May 28, 2026
72a51ad
fix: instance reconcile hangs on cluster-scoped Namespace informer wh…
scotwells May 28, 2026
b662eb9
fix: projectIDForInstance reads wrong label — use upstream-cluster-na…
scotwells May 28, 2026
1a5b05d
fix: wrong claim namespace and resourceRef cause quota POST 403 in si…
scotwells May 28, 2026
aca19a6
fix(lint): resolve gofmt, lll, and reduce gocyclo introduced by quota…
scotwells May 29, 2026
71fc7f2
feat: declare datum-managed supported location class for compute
scotwells May 29, 2026
5486adf
fix(lint): go fully green — migrate webhook to non-deprecated APIs an…
scotwells May 29, 2026
426d547
fix(lint): resolve goconst/prealloc CI failures and add error-returni…
scotwells May 29, 2026
e3e31d0
fix(quota): harden quota failure modes — fail-loud startup, fail-clos…
scotwells May 29, 2026
97f2165
fix(lint): nolint GetEventRecorderFor — new events API has incompatib…
scotwells May 29, 2026
c1c6261
Merge pull request #118 from datum-cloud/fix/instance-namespace-infor…
scotwells May 29, 2026
6ae41d4
fix: fail loud on missing federation kubeconfig; rename to Federation…
scotwells May 29, 2026
553af62
Merge pull request #120 from datum-cloud/fix/mgmt-controller-fail-loud
scotwells May 29, 2026
5024b97
feat: add NetworkingIntegration feature gate to bypass VPC/NSO on edg…
scotwells May 29, 2026
70579e3
Merge pull request #121 from datum-cloud/feat/networking-feature-flag
scotwells May 29, 2026
77610b8
feat(config): wire feature gates through FEATURE_GATES env var in bas…
scotwells May 29, 2026
cd052a6
Merge pull request #122 from datum-cloud/feat/feature-gates-env-var
scotwells May 29, 2026
9392a3c
feat: implement datumctl compute CLI plugin
scotwells May 22, 2026
0f4a88e
fix: use default namespace and correct instance type in compute commands
scotwells May 22, 2026
fd50779
fix: remove datumctl SDK dependency and fix CI Go version
scotwells May 22, 2026
acf5a2f
feat: add datumctl plugin SDK and upgrade controller-runtime to v0.23.3
scotwells May 22, 2026
3d28d08
fix: resolve golangci-lint issues surfaced by v2.12.2 upgrade
scotwells May 22, 2026
3590106
fix: address remaining lint issues missed in previous pass
scotwells May 22, 2026
65b8f86
fix: suppress errcheck for CLI output and resolve remaining lint issues
scotwells May 22, 2026
3c274e6
feat: add shell autocompletion for workload-name arguments
scotwells May 22, 2026
77bae17
feat: surface flags on plain Tab for deploy command
scotwells May 26, 2026
9c2e9df
feat: make CSI webhook cert component generic, patch issuer per overlay
scotwells May 26, 2026
e03d15f
refactor: move webhook cert issuer patch to infra repo
scotwells May 26, 2026
bfe3f44
feat: add util.PrintJSON/PrintYAML helpers and completion functions
scotwells May 27, 2026
f772863
feat: add -o table|wide|json|yaml to instances and quota commands
scotwells May 27, 2026
c5ff3aa
feat: add workloads command group and remove status command
scotwells May 27, 2026
886e8db
fix: replace interface{} with any in printer helpers
scotwells May 27, 2026
ba48aa1
fix: address code review findings in workloads and instances commands
scotwells May 27, 2026
ac044f7
feat: add network preflight check with interactive create prompt
scotwells May 28, 2026
d8486ec
feat: add entitlement check and rewrite quota against AllowanceBucket…
scotwells May 28, 2026
4f0cd81
feat: rewrite entitlement check with typed client-go watch
scotwells May 28, 2026
42f2dd7
feat: register networking scheme in datumctl compute client
scotwells May 29, 2026
e604260
refactor: remove client-side revision history from compute CLI
scotwells May 29, 2026
4aa7d40
fix: pin network-services-operator and milo deps to match federated-s…
scotwells May 29, 2026
8c15212
fix: restore ValidateCreate and truncated webhook body lost in rebase…
scotwells May 29, 2026
8059396
fix: Carry workload linking labels through instance write-back
scotwells May 29, 2026
2a97077
feat(api): add Command and Args fields to SandboxContainer
scotwells May 29, 2026
4ed7bb7
fix(lint): replace "d1-standard-2" literals with testInstanceType con…
scotwells May 29, 2026
fa711b9
Merge pull request #125 from datum-cloud/feat/sandbox-container-comma…
scotwells May 29, 2026
dd3421a
feat: stamp self-describing labels and location on instances
scotwells May 29, 2026
3574861
fix: Resolve instance projection owner by workload deployment name
scotwells May 29, 2026
94ad201
fix: backfill controller labels on existing instances
scotwells May 29, 2026
82955e2
fix: remove Quota scheduling gate in the same reconcile pass as statu…
scotwells May 29, 2026
291f5a4
feat: Read instance city and workload from labels in CLI
scotwells May 29, 2026
69c7ff5
fix: wait for instances to be ready before reporting rollout complete
scotwells Jun 1, 2026
f5a25aa
Merge branch 'feat/federated-deployment-scheduling' into feat/datumct…
scotwells Jun 1, 2026
685e353
chore: ignore goreleaser dist output and local plugin binary
scotwells Jun 1, 2026
8e94e20
feat(cli): surface blocking reason+message from readiness conditions
scotwells Jun 2, 2026
c3111a3
fix(cli): translate ProgrammingInProgress to human-readable network p…
scotwells Jun 2, 2026
d2ad7e5
fix(cli): human-friendly instance status labels for failure states
scotwells Jun 3, 2026
4cc6f07
fix(cli): use canonical compute.datumapis.com/restartedAt for restart
scotwells Jun 3, 2026
135681b
feat(cli): add UP-TO-DATE column to compute workloads
scotwells Jun 4, 2026
8a357fd
refactor(api,cli)!: rename Instance "Running" condition to "Available"
scotwells Jun 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '~1.24.0'
go-version-file: 'go.mod'

- name: Run linter
uses: golangci/golangci-lint-action@v8
with:
version: v2.1.5
version: v2.12.2
3 changes: 3 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
secrets: inherit

publish-kustomize-bundles:
needs: publish-container-image
permissions:
id-token: write
contents: read
Expand All @@ -26,4 +27,6 @@ jobs:
with:
bundle-name: ghcr.io/datum-cloud/compute-kustomize
bundle-path: config
image-name: ghcr.io/datum-cloud/compute
image-overlays: config/base/manager
secrets: inherit
2 changes: 1 addition & 1 deletion .github/workflows/test-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '~1.24.0'
go-version-file: 'go.mod'

- name: Install the latest version of kind
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '~1.24.0'
go-version-file: 'go.mod'

- name: Running Tests
run: |
Expand Down
13 changes: 11 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Dependency directories (remove the comment below to include it)
# vendor/
# Dependency directories
vendor/

# Go workspace file
go.work
Expand All @@ -25,3 +25,12 @@ go.work.sum
.env

bin/

# Local e2e environment artefacts (Kind kubeconfigs, etc.)
tmp/

# GoReleaser build output
dist/

# Local datumctl plugin build binary
/datumctl-compute
13 changes: 13 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,19 @@ linters:
- dupl
- lll
path: internal/*
# field.ErrorList{} is the idiomatic Kubernetes validation init pattern;
# preallocating requires knowing the error count in advance which is not
# possible in recursive validation helpers.
- linters:
- prealloc
path: internal/validation/
# Test helpers that build slices via append are clearer without prealloc.
- linters:
- prealloc
path: internal/controller/instancecontrol/
- linters:
- errcheck
path: internal/cmd/.*
paths:
- third_party$
- builtin$
Expand Down
51 changes: 51 additions & 0 deletions .goreleaser-plugin.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
version: 2

project_name: datumctl-compute

before:
hooks:
- go mod tidy

builds:
- id: datumctl-compute
binary: datumctl-compute
main: ./cmd/datumctl-compute
env:
- CGO_ENABLED=0
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm64
ldflags:
- "-X main.version=v{{.Version}}"

archives:
- id: datumctl-compute
builds:
- datumctl-compute
format: tar.gz
name_template: >-
{{ .ProjectName }}_
{{- title .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}v{{ .Arm }}{{ end }}
format_overrides:
- goos: windows
format: zip

checksum:
name_template: "checksums.txt"

changelog:
sort: asc
filters:
exclude:
- "^docs:"
- "^test:"
- "^chore:"
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ KUSTOMIZE_VERSION ?= v5.5.0
CONTROLLER_TOOLS_VERSION ?= v0.16.4
DEFAULTER_GEN_VERSION ?= v0.32.3
ENVTEST_VERSION ?= release-0.19
GOLANGCI_LINT_VERSION ?= v2.1.5
GOLANGCI_LINT_VERSION ?= v2.12.2

# renovate: datasource=go depName=fybrik.io/crdoc
CRDOC_VERSION ?= v0.6.4
Expand Down
Loading
Loading