feat: Phase 1 — Core Engine#26
Merged
Merged
Conversation
- Helm SDK installer engine with install, upgrade, uninstall, status, and InstallOrUpgrade operations using embedded chart FS support - Preflight checks: cluster connectivity, Kubernetes version compatibility (>=1.25), allocatable resources, and StorageClass availability with per-mode resource requirements - Extended configuration with full component overrides, ingress config, auto-discovery of config files, and CLI flag merge semantics - Install command now runs preflight checks with --skip-preflight flag Closes #1, closes #2, closes #3
Helm SDK v3.20.0 requires Go 1.25+. Update all workflows to read the Go version from go.mod instead of hardcoding 1.23. Also bump golangci-lint-action to v7 for Go 1.25 compatibility.
The .gitignore pattern 'k8scope' was matching the cmd/k8scope/ directory in addition to the binary. Changed to '/k8scope' to only ignore the binary at the repo root.
Explicitly discard return values from fmt.Fprintf, fmt.Fprintln, fmt.Sscanf, tabwriter.Flush, and os.RemoveAll where errors are non-actionable in CLI output and cleanup paths.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the three core engine components that are prerequisites for all future phases:
Helm SDK Installer (
internal/engine/helm.go) — FullInstallerinterface implementation using Helm Go SDK. Supports install, upgrade, uninstall, status checks, andInstallOrUpgradeconvenience method. Charts can be loaded from embeddedfs.FS(extracted to temp dir at runtime) or from filesystem paths. Includes atomic upgrades with rollback, dry-run support, and automatic namespace creation.Preflight Checks (
internal/preflight/) — Four automated checks that run before installation:--skip-preflightflagConfiguration System (
internal/config/config.go) — Extended config struct with per-component overrides (replicas, storage, retention), ingress configuration, OTel Collector mode. Auto-discovers.k8scope.yamlin current directory or$HOME. Merge priority: CLI flags > config file > mode defaults.Changes
internal/engine/helm.goHelmInstallerimplementationinternal/preflight/*.gointernal/config/config.gointernal/cli/install.go--skip-preflightREADME.mdTest plan
go build ./cmd/k8scopecompiles cleanlygo vet ./...passesk8scope install --mode startup --dry-run --skip-preflightshows correct plank8scope install --mode production --dry-run --skip-preflightshows HA configk8scope versionworksCloses #1, closes #2, closes #3