Avoid allocating empty strings in the Env slice #3597
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#3587
rancher/rancher#45645
Problem:
Previously, we declared the Env slice with the size of the
c.Services.KubeAPI.ExtraEnv
field, which leads to empty strings at the beginning of the Env slice because we use Golang's append function to add new elements, and Docker is not happy with that.Fix:
We fix this issue by declaring the Env variable as an empty slice.
We also enhance the
getUniqStringList
function to properly trim leading and trailing spaces in each element and to ignore empty strings.We add unit tests for the
getUniqStringList
function and update the integration tests.Dev validation:
Compile the code locally and run
rke up
succeeds with the following section in cluster.yaml file which failed before the fixing: