chore: sync with upstream FairwindsOps/nova - #147
Conversation
Bumps alpine from 3.19 to 3.20. --- updated-dependencies: - dependency-name: alpine dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andy Suderman <andy@fairwinds.com>
* Fixing vulnerabilities * Fixing vulnerabilities * Fixing issues * Fixing issues * Fixing issues
* feat: kubeconfig path flag * fix: GetConfig comment --------- Co-authored-by: Andy Suderman <andy@fairwinds.com>
* Fixing vulns * Fixing vulns
* Fixies * Fixies
* INS-1830: Bump libs and fix vulnerabilities * Fix * Fix * Fix
* Bump * Bump * Fix * Bump * Bump * Bump
* Bump * Bump * Bump * Fix * Fix * Fix * Fix * Fix * Fix
* INS-2154: nova libs bump * INS-2154: nova libs bump
…hot release (#453)
…the readme (#455)
* fix env injection * remove not used reference step
…am-master # Conflicts: # .circleci/config.yml # .goreleaser.yml # CODEOWNERS # Dockerfile # README.md # cmd/root.go # docs/.vuepress/public/scripts/marketing.js # docs/package-lock.json # go.mod # go.sum
There was a problem hiding this comment.
Code Review
This pull request introduces support for a --kubeconfig flag, allowing users to specify custom configuration paths. It also refines the ArtifactHub matching logic by incorporating package 'stars' into the scoring system, expanding the preferred repositories list, and updating the scoring return type to float32. Additionally, the code has been modernized with Go 1.21+ features like slices.Contains and the any keyword. Review feedback highlighted a critical issue in how the kubeconfig path is loaded, suggesting the use of clientcmd instead of a local FlagSet. A significant bug was also identified in the scoring loop where capturing the address of a loop variable could lead to incorrect package matching.
…oring pkg/helm/findscore.go: replace 'highestStarPackageName *packageKey' with a value-typed 'highestStarPackage packageKey'. The previous code captured '&p' inside a for-range loop, which is safe under Go 1.22+ per-iteration scoping (and our go directive is 1.26) but fragile if the directive is ever lowered. The value form removes the pointer, the heap escape, and the nil check; presence is tracked by 'highStars > 0'.
Description
Merge
FairwindsOps/novaupstreammaster(HEAD0803b08, 2026-04-27) into ourmain. We were 118 commits ahead and 42 commits behind upstream. This catches us up.Single merge commit. Conflicts resolved as documented below.
What's new from upstream (net diff: 10 files, +114/-56)
cmd/root.go,pkg/containers/images.go,pkg/helm/cluster.go,pkg/kube/kube.go—--kubeconfigflag (upstream #329) threaded throughhandleHelm/handleContainers/handleHelmAndContainers/containers.NewClient/nova_helm.NewHelm.pkg/helm/findscore.go(+74 lines) — ArtifactHubstarsfield and scoring tweak (upstream #355).pkg/helm/artifacthub.go,pkg/helm/artifacthub_cached.go,pkg/helm/findscore_test.go— small follow-ons..gitignore— one extra ignore entry.Conflict resolution (kept ours / stayed deleted)
.circleci/config.yml.goreleaser.ymldocs/.vuepress/public/scripts/marketing.jsdocs/package-lock.jsonCODEOWNERS@mayankpande88). Upstream's is Terraform-managed for Fairwinds engineers.DockerfileREADME.mdgo.mod/go.sumTrivial whitespace conflict in
cmd/root.go:52(blank line insideinit()) resolved manually.Review Notes — Risks & Counterarguments
containers.NewClient,nova_helm.NewHelm, and the threehandle*helpers now take an extrakubeConfigPath string. Internal call sites all migrated; no external Go callers since this is a CLI binary.pkg/helm/findscore.gogrew substantially with the ArtifactHubstarsscoring change. This intersects with ourhelm_repo_exporter.gointegration. The 3-way merge succeeded with no conflict markers; manual inspection confirms both feature sets coexist. Worth a careful read.Test_prepareOutputpanic and 24 lint issues remain unchanged — same set already onmain. PR fix(quality): test panic, PR-time CI, lint cleanup #146 clears them. Whoever lands second between fix(quality): test panic, PR-time CI, lint cleanup #146 and chore: sync with upstream FairwindsOps/nova #147 will need a small rebase.How Has This Been Tested?
go build ./...— cleangolangci-lint run ./...— 24 issues (zero new vsmain)go test ./...— same pre-existingTest_prepareOutputpanic asmain; everything else passesgithub.com/fairwindsops/nova