For the full migration guide see MIGRATION.md.
What's Changed
Breaking Changes
- fix(networking): inject cluster-id-bearing GCE tag so GKE auto-firewall rules cover karpenter nodes by @sleterrier in #314
- feat(gpu): add autoGPUTaint field to GCENodeClass by @dm3ch in #290
- feat(api): make imageSelectorTerms alias version pinning production-ready by @dm3ch in #327
- feat(gpu): add gpuDriverVersion field and gke-accelerator label injection by @dm3ch in #320
- feat(imagefamily): implement GKE release channel awareness by @dm3ch in #342
New Features
- feat(chart): add ServiceMonitor for Prometheus Operator scraping by @sleterrier in #317
- feat(instance): derive scheduling and SA from capacity type and GCENodeClass, not NodePool template by @dm3ch in #283
- feat: replace karpenter-managed bootstrap pools with pool discovery by @dm3ch in #263
- feat(iam): replace broad roles with minimal custom IAM role by @dm3ch in #358
- Add Confidential VM to index page feature lists by @promptless-for-oss in #422
- feat: set GKE disk type labels on Karpenter nodes by @dm3ch in #404
Bug Fixes
- fix(cloudprovider): handle empty providerID in Delete by @sleterrier in #335
- fix: replace deprecated swag.String/StringValue with lo.ToPtr/FromPtr by @dm3ch in #344
- fix(ci): add --devel to helm search/pull to preserve pre-release chart versions by @dm3ch in #339
- fix(helm): allow global key in values schema for subchart usage by @cacarico in #359
- fix(iam): drop non-existent container.clusters.getServerConfig permission by @dm3ch in #403
- fix(metadata): override base-template metadata instead of concatenating by @sleterrier in #394
- fix(kubeletConfiguration): honour systemReserved, kubeReserved, eviction* and other fields by @dm3ch in #400
- fix: reject empty eviction thresholds by @jwcesign in #410
- Fix GCENodeClass CRD CEL validation by @dm3ch in #411
Documentation
- docs: Document ServiceMonitor for Prometheus Operator integration by @promptless-for-oss in #318
- docs: Initial documentation improvements from Promptless by @promptless-for-oss in #302
- docs: Document subnetRangeName field by @promptless-for-oss in #305
- chore: document release process and automate release notes by @dm3ch in #311
- docs: Add DEFAULT_NODEPOOL_SERVICE_ACCOUNT to settings reference by @promptless-for-oss in #326
- Update PR template to remove user-facing change question by @dm3ch in #328
- docs: introduce proposal template and contributor process by @dm3ch in #333
- docs: Fix CONTRIBUTING.md heading hierarchy by @promptless-for-oss in #353
- docs: Document bootstrap pool discovery feature by @promptless-for-oss in #329
- Fix incorrect failure threshold references in bootstrap-pool.md by @promptless-for-oss in #363
- docs: Enhance troubleshooting with ImageResolutionFailed condition by @promptless-for-oss in #376
- docs: Document gpuDriverVersion field and automatic GPU label injection by @promptless-for-oss in #381
- docs(api): expand ShieldedInstanceConfig field comment by @sleterrier in #392
- doc: update readme by @jwcesign in #405
- doc: Add the content that was accidentally deleted by @jwcesign in #406
- Expand kubeletConfiguration documentation by @promptless-for-oss in #409
Maintenance
- chore(lint): add deadcode linter and remove unreachable functions by @dm3ch in #340
- chore(pricing): scheduled pricing data refresh by @github-actions[bot] in #357
- chore(pricing): scheduled pricing data refresh by @github-actions[bot] in #362
- chore: migrate dev toolchain to go.mod, drop golangci-lint-action args by @dm3ch in #341
- ci: add explicit CodeQL workflow covering fork PRs and scheduled scans by @dm3ch in #356
- chore(pricing): scheduled pricing data refresh by @github-actions[bot] in #386
- chore(ci): pin third-party GitHub Actions to commit SHAs by @dm3ch in #401
- chore(pricing): scheduled pricing data refresh by @github-actions[bot] in #396
- test(e2e): make Karpenter namespace and deployment name configurable by @sleterrier in #407
New Contributors
- @promptless-for-oss made their first contribution in #318
- @github-actions[bot] made their first contribution in #357
Full Changelog: v0.3.0...v0.4.0