rancher / terraform-provider-rancher2

Terraform Rancher2 provider
https://www.terraform.io/docs/providers/rancher2/
Mozilla Public License 2.0
253 stars 216 forks source link

Add search option exact_match for data source rancher2_principal #1331

Open manhtukhang opened 3 months ago

manhtukhang commented 3 months ago

Issue: #1330

Problem

When using the data source rancher2_principal to search for an LDAP user, sometimes it returns the wrong result if the inputted name has multiple matched results.

Solution

Because the provider picks first element in the list returned from Rancher API. But that list is unsorted or just in random order, therefore, picking the first element is not the best way. We should loop through it to find the exact match, but changing the default behavior can break compatibility. So I decided to add an option exact_match to control this behavior.

Testing

Set option exact_match=true must only return an exactly matched user as the inputted name

Engineering Testing

Manual Testing

Automated Testing

QA Testing Considerations

Regressions Considerations

wgjak47 commented 3 months ago

Do we really need a exact_match option? The data source rancher2_principal will return a random result when we have multiple principals like k8s-admin, k8s-admin-dev, k8s-admin-staging. It is meaningless when you set name "k8s-admin" but return the "k8s-admin-dev".

manhtukhang commented 2 months ago

Do we really need a exact_match option? The data source rancher2_principal will return a random result when we have multiple principals like k8s-admin, k8s-admin-dev, k8s-admin-staging. It is meaningless when you set name "k8s-admin" but return the "k8s-admin-dev". @wgjak47 I want to keep compatibility with current behavior, that won't break any use case, in the future release (2 or more versions) we can make this true by default.

@jakefhyde @jiaqiluo Could you take a look at this PR? Thanks!