Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docker: adopt api_version as string to correct float limitations #30480

Merged
merged 2 commits into from
Jan 17, 2024

Conversation

rmfitzpatrick
Copy link
Contributor

@rmfitzpatrick rmfitzpatrick commented Jan 12, 2024

Description:
Fixing a bug - currently the docker client api version is a float, which is incompatible w/ the actual engine api version scheme (1.40 != 1.4). These changes adopt them as strings with validating helpers with minimum version checking using the docker types api*.

Because mapstructure's text unmarshaller hook only applies to strings I wasn't able to find a way to a complete fix without the breaking change of requiring api versions being strings (i.e. a user setting the value 1.40 will always be treated as a float 1.4)*. The proposed fix still suffers from the truncation problem but now provides the !!str option to offer a workaround that didn't exist.

Link to tracking Issue:
#24025

Testing:
Added and updated tests where consumed

Documentation:
Updated readmes.

@rmfitzpatrick rmfitzpatrick force-pushed the dockerapiversion branch 2 times, most recently from 251921a to 7702264 Compare January 12, 2024 19:07
@@ -49,11 +49,8 @@ func (config Config) Validate() error {
if config.Endpoint == "" {
return errors.New("endpoint must be specified")
}
if config.CollectionInterval == 0 {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

removed since this is a redundant check already covered by ScraperControllerSettings validation.

@rmfitzpatrick rmfitzpatrick force-pushed the dockerapiversion branch 2 times, most recently from eab5614 to 0c65d02 Compare January 12, 2024 19:18
@rmfitzpatrick rmfitzpatrick changed the title docker: adopt docker.APIVersion to correct float limitations docker: adopt api_version as string to correct float limitations Jan 12, 2024
Copy link
Contributor

@atoulme atoulme left a comment

Choose a reason for hiding this comment

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

LGTM

@dmitryax dmitryax merged commit f2dc31e into open-telemetry:main Jan 17, 2024
84 checks passed
@github-actions github-actions bot added this to the next release milestone Jan 17, 2024
mfyuce pushed a commit to mfyuce/opentelemetry-collector-contrib that referenced this pull request Jan 18, 2024
…n-telemetry#30480)

**Description:**
Fixing a bug - currently the docker client api version is a float, which
is incompatible w/ the actual engine api version scheme (1.40 != 1.4).
These changes adopt them as strings with validating helpers with minimum
version checking using the docker types api*.

Because [mapstructure's text unmarshaller
hook](https://github.com/mitchellh/mapstructure/blob/63cde0dfe2481856bcfc2184477b26df770f19d7/decode_hooks.go#L266)
only applies to strings I wasn't able to find a way to a complete fix
without the breaking change of requiring api versions being strings
(i.e. a user setting the value `1.40` will always be treated as a float
1.4)*. The proposed fix still suffers from the truncation problem but
now provides the `!!str` option to offer a workaround that didn't exist.

**Link to tracking Issue:**
open-telemetry#24025
cparkins pushed a commit to AmadeusITGroup/opentelemetry-collector-contrib that referenced this pull request Feb 1, 2024
…n-telemetry#30480)

**Description:**
Fixing a bug - currently the docker client api version is a float, which
is incompatible w/ the actual engine api version scheme (1.40 != 1.4).
These changes adopt them as strings with validating helpers with minimum
version checking using the docker types api*.

Because [mapstructure's text unmarshaller
hook](https://github.com/mitchellh/mapstructure/blob/63cde0dfe2481856bcfc2184477b26df770f19d7/decode_hooks.go#L266)
only applies to strings I wasn't able to find a way to a complete fix
without the breaking change of requiring api versions being strings
(i.e. a user setting the value `1.40` will always be treated as a float
1.4)*. The proposed fix still suffers from the truncation problem but
now provides the `!!str` option to offer a workaround that didn't exist.

**Link to tracking Issue:**
open-telemetry#24025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants