Releases: NetApp/neoctl
v0.9.8 - "Appetite for Configuration"
What's changed
- Custom Environment Variables for Neo Core: Added a new
--core-envflag to theneoctl instance configurecommand. 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-envflag to theneoctl instance configurecommand. 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-envflag 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-envflag 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
v0.9.7 - "Smells like test coverage"
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
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
adding the specific cuda/rocm parameter for gpu flag
v0.9.4
adding smb option to the instance configuration
v0.9.3
updating documentation
v0.9.2
adding sudo escalation workflow for podman including reset of cache t…
v0.9.1
cleaning documentation
v0.9.0
adding logs, updating documentations, and github action