Releases: ionos-cloud/ionosctl
v6.9.9
[v6.9.9] – April 2026
Added
- Added support for
dbaas postgres-v2 - Added
--wait-for-requestand--timeoutflags togroup user remove
Changed
- Grouped all cloudapi-v6 commands under a
computesubcommand, allowing custom behaviour or global flags for the entire API as a whole. All commands are also added as hidden commands onto the root command, to prevent breaking changes. - Change config generation logic to allow whitelisting or blacklisting by API version, not just name (e.g.
--whitelist postgresql:v2or--blacklist postgresql:v1)
Fixed
- Fixed typos in
alb rule httprule addandgroup user remove. - Fixed flag descriptions in
image deletementioning "update". - Fixed: in
contract get --resource-limitsthrow an error if invalid limit selected, and added missing flag values. - Improved error messages for
label delete
Full Changelog: v6.9.8...v6.9.9
v6.9.8
[v6.9.8] – March 2026
Changed
- Changed
--filtersto be case insensitive, i.e.--filters nAmEis sent asfilters.nameto the API.
Fixed
- Fixed null pointer reference panic when trying to access a custom, though non-existant --config / IONOS_CONFIG_FILE path.
- Fixed file descriptor leak, data race on URL variable, and
log.Fatalcrash when reading confirmation input fails during image upload. - Fixed image upload polling accumulating API results across retries, sometimes causing "more images found than expected" errors when uploading to multiple locations.
Full Changelog: v6.9.7...v6.9.8
v6.9.7
[v6.9.7] – February 2026
Added
- Added more descriptive error/help messages for required flags when --type is used in the 'ionosctl server create' command.
- Added '--promote-volume' (which requires '--wait-for-state') to 'ionosctl server create --type CUBE' to automatically promote an attached DAS as the server's bootVolume after creation.
Fixed
- Fixed --wait-for-state instantly erroring out with a 404 for certain resources, instead of waiting for the resource to appear.
- Add support for Kafka Users
- Add Kafka version tab-completions (currently only for 3.9.0) and remove docs mentions of the removed 3.7.0 version.
Changed
- Changed the error message to make it detailed when generating a token with an invalid format.
Fixed
- Add missing BrokerAddresses column for Kafka Clusters
Full Changelog: v6.9.6...v6.9.7
v6.9.6
[v6.9.6] – January 2026
Added
- Added GPU support for server creation and gpu list/get subcommands for the 'ionosctl server' command.
- Added GPUs column for 'ionosctl template list/get' command.
- Added GPU information for auto-completions for the --template-id flag for the 'ionosctl template list/get' command.
Changed
- Changed nodepool default version to be the same as the cluster version on nodepool creation.
New Contributors
- @cavramoniu-ionos made their first contribution in #624
Full Changelog: v6.9.5...v6.9.6
v6.9.5
[v6.9.5] – December 2025
Added
- Added support for controlling SDK log level via ['-v', '-vv', '-vvv'] flags, which control IONOS_LOG_LEVEL environment variable.
- Added support for pagination via '--limit' and '--offset'
- Added descriptions for the following flag completions: '--location', '--user-id', '--group-id', '--ipblock-id', '--volume-id'
- Added support for '--query' which allows querying JSON outputs with JMESPath queries.
- Added support for all query paramters as global flags:
--depth,--order-by,--limit,--offset,--filter,--max-results/-Mhas been deprecated. Setting this flag will now just set--limitaccordingly.
- Added a clearer error for 'request list' if using a too-low depth, and receiving an empty output.
Changed
-
Flag '--max-results' has been deprecated and hidden in favor of the new global flag '--limit'. Setting '--max-results' will now just set '--limit' accordingly.
WARNING: After this change, you may now find different results when using both '--filter' and '--max-results' together, as '--max-results' was applied before filtering, while '--limit' is applied after filtering. -
Removed the following deprecated short-hand flags, due to conflicts with '-D' for '--depth' (previously, '--depth' was either not supported, or not implemented with a shorthand here):
- '-D' for '--destination-ip' on 'firewallrule' commands (two usages)
- '-D' for '--datacenter-id' on 'psql' commands (two usages)
- These flags have changed their meaning to '--depth' instead, which is now supported globally.
Fixed
- Fixed completions for '--datacenter-id' and '--lan-id' for DBaaS Replicaset commands
- Fixed a panic when deleting a VPN Gateway due to description being nil.
- Allow changing authentication URL for 'login' (and 'whoami' when using a token).
- Fixed a bug where 'Respository could not be deleted' was always printed, even on successful deletion, for 'ionosctl container-registry repository delete' command.
Full Changelog: v6.9.4...v6.9.5
v6.9.4
[v6.9.4] – September 2025
Added
- Added missing Certificate Manager v2 API resources (provider, autocert)
- Added tab-completion descriptions for "--template-id" for CloudAPI commands 'server', 'template'.
- Added support for 'NicMultiQueue' parameter for servers
- Added '-l' shorthand for '--location' for registry create
Fixed
- Fixed missing column 'DestinationIp' for 'firewall rule' command
- Fixed missing columns 'RAM', 'PostgresVersion', 'Cores' for 'dbaas postgres' command
- Mirror API change 'tokens' to 'items' for 'tokens list' fixing empty output
- Remove 'dbaas mongo template list' StorageSize column conversion to GB as the API now already returns GB values
Changed
- Changed column 'Ram' to 'RAM' for 'server', 'template' commands for consistency. (the flag '--cols' continues to be case-insensitive)
- Changed default RAM size to the new minimum of 4GB for 'dbaas postgres'.
- Changed config logic to align with terraform (see #591 for details)
Full Changelog: v6.9.3...v6.9.4
v6.9.3
[v6.9.3] – September 2025
Fixed
- Fixed a bug where 'ionosctl dbaas postgres cluster create' would result in a 404.
Changed
-
Under 'dbass postgres', the shorthand flags of
"--datacenter-id" ("D"), "instances", ("I"), "backup-location" ("B"),
"maintenance-time" ("T"), "maintenance-day" ("d"), "version" ("V"),
"recovery-time" ("R"), "backup-id" ("b"), "db-username" ("U"), "db-password" ("P")
have been deprecated and will be removed in a future release -
Under 'token delete', the shorthand flag of "--all" ("A") has been deprecated and will be removed in a future release,
while the standard shorthand for "--all" ("a") has been added. -
Under 'token', the shorthand flags of "--current" ("C") and "--expired" ("E")
have been deprecated and will be removed in a future release
Dependencies
- All dependencies bumped to their latest versions
Full Changelog: v6.9.2...v6.9.3
v6.9.2
[v6.9.2] – August 2025
Added
- Added support for Observability Monitoring
- Added support for 'central' under 'ionosctl logging-service'
- Added support for deleting all labels of all compatible resources with
ionosctl label remove --all, without specifying a resource type. - Added missing locations for all regional APIs
- Added support for 'de/fra/2' location
Dependencies
- Bump all dependencies, including SDKs, to their latest versions
- Bump minimum go version to 1.24.5
Changed
- Rework image upload
--locationlogic to support both short and API-style location identifiers (e.g.vitandes/vit) when resolving FTP and API endpoints, which also allows using 'de/fra/2' location. - Improve verbose messages for 'image upload' command.
- Improve 'dbaas mongo cluster update' help text by @fepape-ionos.
- Removed 'dataplatform' commands, as the Dataplatform API has been sunsetted.
Full Changelog: v6.9.1...v6.9.2
v6.9.1
[v6.9.1] – July 2025
Changed
- Changed config generation product name from 'compute' to 'cloud' for CloudAPI, though existing configurations using 'compute' key will continue to work.
Fixed
- Fixed a bug where the fallback to IONOS_CONFIG_FILE and ~/.ionos/config was not working correctly
- Fixed 'ionosctl mongo cluster update' sending a payload containing certain nil/empty values to the API, which would cause a 500 Internal Server Error.
- Fixed a bug where config overrides were ignored for certain CloudAPI commands
New Contributors
- @sadhanasuresh made their first contribution in #556
Full Changelog: v6.9.0...v6.9.1
v6.9.0
[v6.9.0] – July 2025
Warning
This version introduces important changes to the config subsystem.
Legacy JSON configs (~/.ionosctl/config.json or ~/snap/…/config.json) are no longer supported and should be removed.
On first run, existing credentials will be copied over into the new YAML format, but you should run:
ionosctl config loginto regenerate a fresh config and take full advantage of the new features.
as well as
ionosctl logout --only-purge-oldto delete the old config file.
Impact and Migration Notes
- Credentials found in any legacy
config.jsonwill be carried over. - Although you can continue to use the CLI as is, it is highly recommended to delete all
config.jsonfiles and re-runionosctl loginto produce a YAML config with all the new features.
Added
-
Added support for the new SDK YAML config layout:
- Generate a complete config to a file via
ionosctl config login. - Generate an example config to stdout via
ionosctl config login --example. - Migrate existing credentials from
config.jsonwith a one-time deprecation warning. - Support multiple profiles and multiple environments with per-product and per-location URL overrides in a single YAML.
- For now, use IONOS_CURRENT_PROFILE to set the current profile, though better CLI support will be added in the future.
- Adds fallbacks to IONOS_CONFIG_FILE (SDKs config env var) and ~/.ionos/config (SDKs config location) for config file location, if not found at flag '--config'.
- Generate a complete config to a file via
-
Added
--exampleflag toionosctl config login:- Prints a sample YAML config to stdout without authenticating or writing any file.
-
Added a spinner loading animation for
ionosctl config loginonly if generating to a file and API index polling takes more than 250ms. -
Added filtering options to
ionosctl config login:--filter-version--filter-visibility--filter-gate--whitelist/--blacklist--custom-namesfor remapping API names in the generated config.
Changed
-
Changed authentication precedence and updated
whoamito reflect:IONOS_TOKENenv varIONOS_USERNAME+IONOS_PASSWORDenv vars- Token in YAML config
- Username/password in YAML config
-
Changed
ionosctl config logoutto:- Clear credentials from the YAML.
- Detect side-by-side
config.json, prompt for deletion, and remove on confirmation.
-
Changed
ionosctl config locationresolution order to:--configflagIONOS_CONFIG_FILEenv var- SDK default (
~/.ionos/config.yaml)
- If no file exists, it still prints the
--configvalue to avoid breaking changes.
-
Changed Certificate Manager API to /v2
-
Certificate Manager commands are now nested under
certificateresource, but the old commands are still available (though hidden in the helptext) for backwards compatibility -
Certificate Manager command
api-versionis now no longer available, has been hidden and deprecated, and using it will print a warning as well as a dummy valuev2.0 -
Added a few friendly certificate manager aliases