RavinderReddyF5 / terraform-provider-bigip-version0.12

Terraform resources that can configure F5 BIGIP products
Mozilla Public License 2.0
0 stars 0 forks source link

[CLOSED] Feature Request: Declarative Onboarding Resource #126

Open RavinderReddyF5 opened 4 years ago

RavinderReddyF5 commented 4 years ago

Issue by pescetto Thursday Apr 25, 2019 at 18:20 GMT Originally opened as https://github.com/terraform-providers/terraform-provider-bigip/issues/95


It'd be nice to have a DO resource that accepts a json blob and then makes the API call with that. This will likely need to be added to the go-bigip client.

RavinderReddyF5 commented 4 years ago

Comment by dannyk81 Thursday Apr 25, 2019 at 18:25 GMT


This doesn't seem to go hand in hand with the way Terraform works.

And you can do this with a null_resource

RavinderReddyF5 commented 4 years ago

Comment by pescetto Thursday Apr 25, 2019 at 18:46 GMT


@dannyk81 I'd rather not shell out and yes, declaritive platform on top of declaritive platform isn't ideal, but I'd rather the API call go through the go-bigip client than a frigging curl command.

RavinderReddyF5 commented 4 years ago

Comment by dannyk81 Thursday Apr 25, 2019 at 19:27 GMT


I hear you, but... I'm kind of missing the point of this in the scope of terraform to be honest.

By pushing arbitrary json payloads directly to the device you miss out on the whole premise that the input should be validated, checked against the actual configuration on the device, etc...

IMO for this purpose a tool like Ansible seems more appropriate.

RavinderReddyF5 commented 4 years ago

Comment by pescetto Thursday Apr 25, 2019 at 21:03 GMT


@dannyk81 Yeah, I actually agree with you 100% on that missing the point of terraform, but whenever I talk to ANYONE from F5, they promote DO and AS3 exclusively. There was even a webinar where they showed using the null_resource as the terraform way to interact with DO and AS3. We don't implement Ansible and as mature as it is for the F5 platform, we're not looking to use it.

But I agree, I'd rather just use individual resources. Unfortunately, there's also a ton of them missing from here. I just finished a meeting with @scshitole and wouldn't mind getting his opinion on this.

RavinderReddyF5 commented 4 years ago

Comment by dannyk81 Thursday Apr 25, 2019 at 21:13 GMT


Thanks @pescetto, agree with you 100% regarding the current status of the provider, I believe the quality has improved but a lot is still missing (and we don't even have data sources...)

We've been using the provider for over a year now, overall we are pleased and whatever was missing we contributed back (something I would encourage every one to do).

I had a similar discussion with @scshitole regarding AS3 and also shared my concerns (in an unrelated issue https://github.com/terraform-providers/terraform-provider-bigip/issues/89).

I'm not deeply familiar with AS3 and it does look interesting, however trying to force the AS3 declarative model on top of terraform, just for the sake of saying "we have a provider for terraform" seems wrong to me...

using terraform to push arbitrary json payloads just doesn't make any sense (to us at least), especially because we use terraform to manage the entire infrastructure provisioning pipeline: VMs, DNS, Load Balancing (F5) and even provisioning of the K8s cluster, so all the different resources implemented by the various underlying providers are highly coupled by feeding each other the relevant data.

RavinderReddyF5 commented 4 years ago

Comment by pescetto Thursday Apr 25, 2019 at 21:36 GMT


Yeah, @dannyk81 I'm closing this and my AS3 issue because I agree that's not the right approach and it's not what Terraform is for. I'm hoping that F5's teams can help improve this provider in the way we need and not push DO and AS3 so heavily. I've got a few PR's open with go-bigip and once those are merged I'll work on getting the resource added if possible.

Thanks Danny!

RavinderReddyF5 commented 4 years ago

Comment by dannyk81 Thursday Apr 25, 2019 at 21:46 GMT


Cheers @pescetto! I saw your go-bigip PRs, indeed useful :+1:

I think it would good to have additional maintainers joing both projects and help push these tools forward, I volunteered :wink: but looks like they are not interested.

RavinderReddyF5 commented 4 years ago

Comment by pescetto Thursday Apr 25, 2019 at 22:26 GMT


@dannyk81 thanks. If you're in the f5CloudSolutions Slack workgroup, there's a #go-bigip room that I created to hopefully be able to have discussions like this one there. Feel free to join if you've got time.

RavinderReddyF5 commented 4 years ago

Comment by dannyk81 Thursday Apr 25, 2019 at 22:28 GMT


I'm not a membet of that work group, can you send me an invite? would love to join the discussion

RavinderReddyF5 commented 4 years ago

Comment by dannyk81 Thursday Aug 15, 2019 at 13:13 GMT


looks like an AS3 resource was finally added to the provider... https://github.com/terraform-providers/terraform-provider-bigip/pull/137

I'm not against adding new features :smile: but this feels hugely counter intuitive to me and kind of opens the door for "just push a json with the AS3 resource if a native terraform resource doesn't exist"

As a terraform user, I would like to see increased coverage in terms of functionality by adding/improving native terraform resources and the AS3 resource just seems like a workaround...

my 2 cents...