Skip to content

P0: Project scaffolding and foundations#6

Merged
chimerakang merged 2 commits into
mainfrom
feat/p0-scaffolding
Jun 18, 2026
Merged

P0: Project scaffolding and foundations#6
chimerakang merged 2 commits into
mainfrom
feat/p0-scaffolding

Conversation

@chimerakang

Copy link
Copy Markdown
Owner

Implements milestone P0 — Scaffolding & Foundations.

What's included

Issue Delivered
#1 Go module (github.com/chimerakang/macvz) + package layout; .editorconfig
#2 macvz-kubelet CLI: --config/--version flags, YAML config loader (pkg/config), klog logging
#3 runtime.Runtime interface + provider.Provider stub implementing virtual-kubelet node.PodLifecycleHandler (compile-time asserted)
#4 CI workflow on macos-15 (build / vet / test -race / golangci-lint)
#5 Makefile with ldflags version stamping; config.example.yaml

Verification (local)

  • go build ./..., go vet ./..., go test ./... — green
  • golangci-lint run (v2.10.1) — 0 issues
  • make build produces a stamped bin/macvz-kubelet; --version prints build metadata

Notable decision

virtual-kubelet v1.12.0 pins k8s.io v0.35.0 and requires Go 1.25 (issue #1 assumed 1.23+). Pinned the full matrix to avoid version skew between client-go and k8s.io/api. The go.mod go directive is 1.25.0; CI uses go-version-file: go.mod.

The provider depends only on the runtime.Runtime interface, never a concrete driver — keeping P1 (runtime impl) and P2 (provider logic) independently buildable.

🤖 Generated with Claude Code

chimerakang and others added 2 commits June 18, 2026 20:38
Implements milestone P0 (#1#5):
- Go module + package layout (cmd/macvz-kubelet, pkg/{runtime,provider,
  network,config,metrics}, internal/{types,version})
- CLI entrypoint with flags, YAML config loading, klog logging, --version
- runtime.Runtime interface + provider.Provider stub implementing
  virtual-kubelet node.PodLifecycleHandler (compile-time asserted)
- CI workflow (build/vet/test/lint) on macOS Apple Silicon runners
- Makefile with ldflags version stamping; example config

Pins virtual-kubelet v1.12.0 + k8s.io v0.35.0 (requires Go 1.25).

Closes #1
Closes #2
Closes #3
Closes #4
Closes #5

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
golangci-lint v1.64.8 (Go 1.24) cannot lint a go 1.25 module. Pin
golangci-lint-action@v7 + v2.10.1, add v2 config, gofmt struct alignment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@chimerakang chimerakang merged commit 91c52d1 into main Jun 18, 2026
2 checks passed
@chimerakang chimerakang deleted the feat/p0-scaffolding branch June 18, 2026 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant