Skip to content

Releases: NetApp/neoctl

v0.9.8 - "Appetite for Configuration"

21 Feb 07:35

Choose a tag to compare

What's changed

  • Custom Environment Variables for Neo Core: Added a new --core-env flag to the neoctl instance configure command. This feature allows administrators and developers to easily inject custom environment variables directly into the Neo Core container's configuration in the generated Docker Compose file. # Release Notes

Features & Enhancements

  • Custom Environment Variables for Neo Core: Added a new --core-env flag to the neoctl instance configure command. This feature allows administrators and developers to easily inject custom environment variables directly into the Neo Core container's configuration in the generated Docker Compose file.
    • You can specify multiple environment variables by providing the --core-env flag multiple times.
    • Example usage:
      neoctl instance configure my-instance --core-env MCP_OAUTH_ENABLED=true --core-env FOO=bar
    • You can specify multiple environment variables by providing the --core-env flag multiple times.
    • Example usage:
      neoctl instance configure my-instance --core-env MCP_OAUTH_ENABLED=true --core-env FOO=bar

v0.9.7 - "Smells like test coverage"

19 Feb 21:37

Choose a tag to compare

What's Changed

🐛 Bug Fix

  • Removed resetPrivileges() (sudo -k) — Previously, neoctl invalidated the sudo session after every Podman operation, forcing users to re-enter credentials for each command. This has been removed to improve the user experience.

🧪 Test Coverage Improvements

Significant refactoring and new tests across the codebase to improve testability and reliability.

📊 Overall Coverage Summary

go test -coverprofile=coverage.out ./...
ok      netapp/neoctl/cmd/neoctl        (cached)        coverage: 70.2% of statements
ok      netapp/neoctl/internal/config   (cached)        coverage: 84.5% of statements
ok      netapp/neoctl/internal/registry (cached)        coverage: 100.0% of statements
ok      netapp/neoctl/internal/runner   (cached)        coverage: 90.0% of statements
ok      netapp/neoctl/internal/runtime  (cached)        coverage: 96.9% of statements
ok      netapp/neoctl/internal/utils    (cached)        coverage: 90.0% of statements
ok      netapp/neoctl/internal/version  (cached)        coverage: 100.0% of statements
go tool cover -func=coverage.out
netapp/neoctl/cmd/neoctl/bundle.go:65:          fetchLatestBundles      97.1%
netapp/neoctl/cmd/neoctl/bundle.go:125:         init                    100.0%
netapp/neoctl/cmd/neoctl/instance.go:384:       runInstanceAction       87.0%
netapp/neoctl/cmd/neoctl/instance.go:591:       runAllInstances         100.0%
netapp/neoctl/cmd/neoctl/instance.go:716:       init                    100.0%
netapp/neoctl/cmd/neoctl/instance.go:746:       runStep                 100.0%
netapp/neoctl/cmd/neoctl/instance.go:757:       ensurePrivileges        91.7%
netapp/neoctl/cmd/neoctl/main.go:18:            main                    100.0%
netapp/neoctl/cmd/neoctl/main.go:22:            run                     100.0%
netapp/neoctl/cmd/neoctl/verify.go:31:          init                    100.0%
netapp/neoctl/cmd/neoctl/verify.go:35:          runVerifyChecks         100.0%
netapp/neoctl/cmd/neoctl/verify.go:66:          printErrorAndExit       100.0%
netapp/neoctl/cmd/neoctl/version.go:19:         init                    100.0%
netapp/neoctl/internal/config/config.go:27:     GetConfigDir            75.0%
netapp/neoctl/internal/config/config.go:35:     SaveConfig              84.6%
netapp/neoctl/internal/config/config.go:57:     LoadConfig              85.7%
netapp/neoctl/internal/config/config.go:101:    SaveInstanceConfig      84.6%
netapp/neoctl/internal/config/config.go:123:    LoadInstanceConfig      85.7%
netapp/neoctl/internal/registry/client.go:21:   GetRecentTags           100.0%
netapp/neoctl/internal/registry/client.go:35:   processTags             100.0%
netapp/neoctl/internal/runner/compose.go:150:   GenerateComposeFile     80.8%
netapp/neoctl/internal/runner/compose.go:198:   RunComposePull          100.0%
netapp/neoctl/internal/runner/compose.go:204:   RunComposeUp            100.0%
netapp/neoctl/internal/runner/compose.go:210:   GetInstanceStatus       80.0%
netapp/neoctl/internal/runner/compose.go:229:   CheckInstanceRunning    100.0%
netapp/neoctl/internal/runner/compose.go:254:   RunComposeLogs          100.0%
netapp/neoctl/internal/runner/compose.go:261:   ArchiveLogs             84.0%
netapp/neoctl/internal/runner/compose.go:313:   RunComposeDown          100.0%
netapp/neoctl/internal/runner/compose.go:319:   runComposeCommand       100.0%
netapp/neoctl/internal/runtime/check.go:27:     CheckRuntime            100.0%
netapp/neoctl/internal/runtime/check.go:43:     isPodman                100.0%
netapp/neoctl/internal/runtime/check.go:53:     verifyRuntimeWorking    100.0%
netapp/neoctl/internal/runtime/check.go:62:     CheckCompose            87.5%
netapp/neoctl/internal/runtime/check.go:81:     CheckCIFSUtils          100.0%
netapp/neoctl/internal/utils/archive.go:13:     CreateTarGz             87.1%
netapp/neoctl/internal/utils/net.go:14:         GetHostIPs              88.9%
netapp/neoctl/internal/utils/net.go:47:         IsPortAvailable         100.0%
netapp/neoctl/internal/utils/net.go:59:         GetNextAvailablePort    100.0%
netapp/neoctl/internal/version/version.go:29:   Get                     100.0%
netapp/neoctl/internal/version/version.go:40:   String                  100.0%
total:                                          (statements)            91.5%

Full Changelog: v0.1.0...v0.2.0

v0.9.6

11 Feb 07:49

Choose a tag to compare

Release Notes v0.9.6

Release Date: 2026-02-11

This release brings significant improvements to the user experience, including a more flexible CLI syntax, enhanced macOS platform support, and GPU configuration options.

🚀 New Features & Improvements

🖥️ Improved CLI Syntax

You can now specify the instance name before the action verb, making it easier to modify commands without moving the cursor back and forth.

New:
neoctl instance <name> <action> (e.g., neoctl instance my-neo start)
Classic:
neoctl instance <action> <name> (e.g., neoctl instance start my-neo).
Both syntaxes are fully supported.

🎮 GPU Support

Added support for configuring GPU resources for Neo instances.

Use the --gpu flag with neoctl instance configure implementation to enable GPU acceleration.
Supported values: cuda, rocm (depending on your hardware setup).

🍎 macOS Code Signing

The macOS binaries (neoctl-darwin-amd64, neoctl-darwin-arm64) are now properly code-signed with the Apple Developer ID.
This resolves security warnings when running neoctl on macOS.

🛠️ Infrastructure

Updated GitHub Actions workflow to use macOS runners for Darwin builds to support native code signing.

v0.9.5

04 Feb 14:18

Choose a tag to compare

adding the specific cuda/rocm parameter for gpu flag

v0.9.4

28 Jan 15:05

Choose a tag to compare

adding smb option to the instance configuration

v0.9.3

14 Jan 11:28

Choose a tag to compare

updating documentation

v0.9.2

14 Jan 08:20

Choose a tag to compare

adding sudo escalation workflow for podman including reset of cache t…

v0.9.1

13 Jan 14:38

Choose a tag to compare

cleaning documentation

v0.9.0

13 Jan 14:03

Choose a tag to compare

adding logs, updating documentations, and github action