Skip to main content
Version: v3


Configuring global settings

The global settings for odo can be found in preference.yaml file; which is located by default in the .odo directory of the user's HOME directory.



A different location can be set for the preference.yaml by exporting GLOBALODOCONFIG in the user environment.

View the configuration

To view the current configuration, run the following command:

odo preference view
$ odo preference view
Preference parameters:
ConsentTelemetry true
Ephemeral true

Devfile registries:
StagingRegistry No

Set a configuration

To set a value for a preference key, run the following command:

odo preference set <key> <value>
$ odo preference set updatenotification false
Global preference was successfully updated

Note that the preference key is case-insensitive.

Unset a configuration

To unset a value of a preference key, run the following command:

odo preference unset <key> [--force]
$ odo preference unset updatednotification
? Do you want to unset updatenotification in the preference (y/N) y
Global preference was successfully updated

You can use the --force (or -f) flag to force the unset. Unsetting a preference key sets it to an empty value in the preference file. odo will use the default value for such configuration.

Preference Key Table

UpdateNotificationControl whether a notification to update odo is shownTrue
TimeoutTimeout for Kubernetes server connection check1 second
PushTimeoutTimeout for waiting for a component to start240 seconds
RegistryCacheTimeDuration for which odo will cache information from the Devfile registry4 Minutes
EphemeralControl whether odo should create a emptyDir volume to store source codeFalse
ConsentTelemetryControl whether odo can collect telemetry for the user's odo usageFalse
ImageRegistryThe container image registry where relative image names will be automatically pushed to. See How odo handles image names for more details.

Managing Devfile registries

odo uses the portable devfile format to describe the components. odo can connect to various devfile registries to download devfiles for different languages and frameworks.

You can connect to publicly available devfile registries, or you can install your own Devfile Registry.

You can use the odo preference <add/remove> registry command to manage the registries used by odo to retrieve devfile information.

Adding a registry

To add a registry, run the following command:

odo preference add registry <name> <url>
$ odo preference add registry StageRegistry
New registry successfully added

Deleting a registry

To delete a registry, run the following command:

odo preference remove registry <name> [--force]
$ odo preference remove registry StageRegistry
? Are you sure you want to delete registry "StageRegistry" Yes
Successfully deleted registry

You can use the --force (or -f) flag to force the deletion of the registry without confirmation.

Updating a registry

To update a registry, you can delete it and add it again with the updated value.

Advanced configuration

This is a configuration that normal odo users don't need to touch. Options here are mostly used for debugging and testing odo behavior.

Environment variables controlling odo behavior

PODMAN_CMDThe command executed to run the local podman binary. podman by defaultv2.4.2podman
DOCKER_CMDThe command executed to run the local docker binary. docker by defaultv2.4.2docker
PODMAN_CMD_INIT_TIMEOUTTimeout for initializing the Podman client. 1s by defaultv3.11.05s
ODO_LOG_LEVELUseful for setting a log level to be used by odo commands. Takes precedence over the -v flag.v1.0.23
ODO_DISABLE_TELEMETRYUseful for disabling telemetry collection. Deprecated in v3.2.0. Use ODO_TRACKING_CONSENT instead.v2.1.0true
GLOBALODOCONFIGUseful for setting a different location of global preference file preference.yaml.v0.0.19~/.config/odo/preference.yaml
ODO_DEBUG_TELEMETRY_FILEUseful for debugging telemetry. When set it will save telemetry data to a file instead of sending it to the server.v3.0.0-alpha1/tmp/telemetry_data.json
DEVFILE_PROXYIntegration tests will use this address as Devfile registry instead of
TELEMETRY_CALLERCaller identifier passed to telemetry. Case-insensitive. Acceptable values: vscode, intellij, jboss.v3.1.0intellij
ODO_TRACKING_CONSENTUseful for controlling telemetry. Acceptable values: yes (enables telemetry and skips consent prompt), no (disables telemetry and consent prompt). Takes precedence over the ConsentTelemetry preference.v3.2.0yes
ODO_PUSH_IMAGESWhether to push the images once built; this is used only when applying Devfile image components as part of a Dev Session running on Podman; this is useful for integration tests running on Podman. true by defaultv3.7.0false
ODO_IMAGE_BUILD_ARGSSemicolon-separated list of options to pass to Podman or Docker when building images. These are extra options specific to the podman build or docker build commands.v3.11.0--platform=linux/amd64;--no-cache
ODO_CONTAINER_RUN_ARGSSemicolon-separated list of options to pass to Podman when running odo against Podman. These are extra options specific to the podman play kube command.v3.11.0--configmap=/path/to/cm-foo.yml;--quiet
ODO_CONTAINER_BACKEND_GLOBAL_ARGSSemicolon-separated list of global options to pass to Podman when running odo on Podman. These will be passed as global options to all Podman commands executed by odo.v3.11.0--root=/tmp/podman/root;--log-level=info

(1) Accepted boolean values are: 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False.