Skip to content

chore: sync with upstream FairwindsOps/nova - #147

Merged
mayankpande88 merged 44 commits into
mainfrom
chore/sync-upstream-master
May 12, 2026
Merged

chore: sync with upstream FairwindsOps/nova#147
mayankpande88 merged 44 commits into
mainfrom
chore/sync-upstream-master

Conversation

@mayankpande88

@mayankpande88 mayankpande88 commented May 12, 2026

Copy link
Copy Markdown
Contributor

Description

Merge FairwindsOps/nova upstream master (HEAD 0803b08, 2026-04-27) into our main. 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--kubeconfig flag (upstream #329) threaded through handleHelm / handleContainers / handleHelmAndContainers / containers.NewClient / nova_helm.NewHelm.
  • pkg/helm/findscore.go (+74 lines) — ArtifactHub stars field 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)

Path Reason
.circleci/config.yml Re-deleted. We use GitHub Actions.
.goreleaser.yml Re-deleted. We build via Dockerfile + GH Actions.
docs/.vuepress/public/scripts/marketing.js Re-deleted. Fairwinds analytics.
docs/package-lock.json Re-deleted. VuePress docs site removed in open-source cleanup.
CODEOWNERS Kept ours (@mayankpande88). Upstream's is Terraform-managed for Fairwinds engineers.
Dockerfile Kept ours (multi-stage build from source). Upstream expects a pre-built binary from CircleCI/goreleaser.
README.md Kept ours (Nudgebee-fork README with upstream attribution).
go.mod / go.sum Kept ours. We are ahead of upstream on every overlapping dependency (k8s 0.36.0 vs 0.33.x, helm 3.20.2 vs 3.18.x, controller-runtime 0.24.0 vs 0.21.0, etc.).

Trivial whitespace conflict in cmd/root.go:52 (blank line inside init()) resolved manually.

Review Notes — Risks & Counterarguments

  • Upstream's CVE/vuln-fix commits are no-ops for us: all expressed as go.mod version bumps to versions we exceeded via our own dependabot. Resolving go.mod/go.sum as "keep ours" is correct, not a downgrade.
  • Public function signatures changed: containers.NewClient, nova_helm.NewHelm, and the three handle* helpers now take an extra kubeConfigPath string. Internal call sites all migrated; no external Go callers since this is a CLI binary.
  • pkg/helm/findscore.go grew substantially with the ArtifactHub stars scoring change. This intersects with our helm_repo_exporter.go integration. The 3-way merge succeeded with no conflict markers; manual inspection confirms both feature sets coexist. Worth a careful read.
  • Pre-existing Test_prepareOutput panic and 24 lint issues remain unchanged — same set already on main. 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 ./... — clean
  • golangci-lint run ./... — 24 issues (zero new vs main)
  • go test ./... — same pre-existing Test_prepareOutput panic as main; everything else passes
  • Module path verified to remain github.com/fairwindsops/nova

Terraform User and others added 30 commits July 1, 2024 17:24
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
* 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
Terraform User and others added 13 commits March 11, 2026 13:56
* INS-2154: nova libs bump

* INS-2154: nova libs bump
* 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

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread pkg/kube/kube.go
Comment thread pkg/helm/findscore.go Outdated
Comment thread pkg/helm/findscore.go Outdated
Comment thread pkg/kube/kube.go
…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'.
@mayankpande88
mayankpande88 merged commit 309d3aa into main May 12, 2026
@mayankpande88
mayankpande88 deleted the chore/sync-upstream-master branch May 12, 2026 10:16
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.

7 participants