deploymenttheory / terraform-provider-jamfpro

Jamf Pro Terraform Provider/Plugin written with the TF Provider SDK v2. Written in go
Mozilla Public License 2.0
22 stars 8 forks source link

Alternative profiles implementation #258

Closed w0de closed 1 month ago

w0de commented 1 month ago

I know y'all are about to deploy a new profiles implementation on main, but I was hoping you'd consider this implementation - either instead of, or as a source of ideas. I've fixed it up - I'm pretty pleased with how it behaves in my test environment, but think it should be carefully poked (and perhaps have tests?) if it is to be integrated in part or adopted in full.

What I believe recommends this approach:

I'm super ok with this just being closed - but please do have a careful gander first!

The draft PR can't be automatically merged because of the recent implementation being pushed to main (PRs are wholesome, even for maintainers, πŸ™πŸΌ). If integration of some of these ideas with present implementation seems a good idea, I can take that on (given some direction). But if y'all want to adopt this implementation in lieu, it's probably best to revert the present one on main to unblock this PR.

lmk wyt - and thanks for your grind! πŸ‘πŸΌ

w0de commented 1 month ago

I do think the hash-based diff suppression is superior to the NormalizePayloadState approach here.

ShocOne commented 1 month ago

hi @w0de , how about we proceed with a trial phase of both your and my implementation approaches for config profiles and we can go through a test & learn ? In this way we can kick the tires and get some feedback from the slack admin community on things like usability, we can compare code maintainability, and so forth. Ultimately i want the best solution for the provider, so whether it's your, mine or a combined approach. I'm open to that. If you are supportive, please update your PR to use a separate folder hierarchy under endpoints with a unique suffix and add your implementation as a separate resource type (with the same suffix) within the provider package. Then we can trial both side by side. Thoughts ?

thejoeker12 commented 1 month ago

Merging this into it's own branch to play with it