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

feat: migrate to terraform plugin framework #113

Conversation

fabiomatavelli
Copy link
Collaborator

This PR will:

  • Create the plugin framework provider
  • Migrate the service offering resource to the plugin framework

@fabiomatavelli
Copy link
Collaborator Author

fabiomatavelli commented Apr 20, 2024

@CodeBleu @vishesh92 I started drafting the migration to the terraform plugin framework, base on the #71 , to see the effort to migrate the provider and resources. For that I've migrated the service offering resource. You can see the diff here.

I'm open to feedbacks on it.

@fabiomatavelli fabiomatavelli changed the title feat: update to terraform plugin framework feat: migrate to terraform plugin framework Apr 20, 2024
@fabiomatavelli fabiomatavelli force-pushed the feature/update-to-terraform-plugin-framework branch from da5c878 to 6a17bd9 Compare April 26, 2024 07:43
@CodeBleu
Copy link
Collaborator

CodeBleu commented Jun 7, 2024

@fabiomatavelli Just wondering the status of this? Is this dependent on the following being merged?

#71

@fabiomatavelli
Copy link
Collaborator Author

This is ready to be merged @CodeBleu , I just don't have the permission to merge it

@CodeBleu
Copy link
Collaborator

CodeBleu commented Jun 7, 2024

This is ready to be merged @CodeBleu , I just don't have the permission to merge it

I just still see it in "Draft" mode.

@fabiomatavelli
Copy link
Collaborator Author

Ah, sorry @CodeBleu , my bad, this is indeed waiting for #71

kiranchavala
kiranchavala approved these changes Jun 21, 2024
@CodeBleu
Copy link
Collaborator

@fabiomatavelli now that #71 is merged (🥳 ), I'm hoping that removing this from Draft mode, will be able to be merged, since @kiranchavala approved it.

@fabiomatavelli fabiomatavelli marked this pull request as ready for review June 21, 2024 13:08
@fabiomatavelli
Copy link
Collaborator Author

@CodeBleu I've removed the draft from it, but I think I'll need to rebase it

@fabiomatavelli fabiomatavelli force-pushed the feature/update-to-terraform-plugin-framework branch from 167cf37 to 61ad0bf Compare June 21, 2024 16:10
@fabiomatavelli
Copy link
Collaborator Author

@kiranchavala if you can approve the CIs to run again 🙏

@vishesh92
Copy link
Member

@fabiomatavelli I have approved the github actions. Acceptance tests seems to be failing because of the below error:

 === RUN   TestAccServiceOfferingDataSource_basic
    data_source_cloudstack_service_offering_test.go:32: Step 1/1 error: Error running pre-apply plan: exit status 1
        
        Error: Invalid resource type
        
          on terraform_plugin_test.tf line 12, in resource "cloudstack_service_offering" "service-offering-resource":
          12: resource "cloudstack_service_offering" "service-offering-resource" {
        
        The provider hashicorp/cloudstack does not support resource type
        "cloudstack_service_offering".
        
        Did you intend to use the data source "cloudstack_service_offering"? If so,
        declare this using a "data" block instead of a "resource" block.
--- FAIL: TestAccServiceOfferingDataSource_basic (0.14s)

@fabiomatavelli
Copy link
Collaborator Author

@vishesh92 @kiranchavala can you please review it again and re-approve the CI to run 🙏

I had to move the V6 (terraform plugin framework) to be tested with a muxed provider instead, as we still need to call resources/datasources in the V5 provider (terraform provider sdk).

@CodeBleu
Copy link
Collaborator

@vishesh92 @kiranchavala Is this something that can be merged now? I feel like we were making good progress to get this provider over the hump with the new release of 0.5.0, and am hoping we can keep that momentum going and keep updating this project more frequently. With the #71 being merged and hopefully this one soon, I think this is really good for moving forward. There are some other PR's out there I think would be good to get merged as well, and hopefully we can get a new 0.6.0 release soon?

@rohityadavcloud
Copy link
Member

@fabiomatavelli @CodeBleu since we recently had a TF release, the next one we can target for Q3/Q4 this year. If you're blocked then let us know, otherwise due to our $dayjobs and other community work (the release work for example), our engagement and responses may be delayed.

@fabiomatavelli
Copy link
Collaborator Author

@vishesh92 @rohityadavcloud can this one be merged also?

Copy link
Member

@vishesh92 vishesh92 left a comment

Choose a reason for hiding this comment

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

changes look good to me. This might need some testing with different types of service offerings.

@vishesh92
Copy link
Member

@fabiomatavelli There are changes around service offering in PR #77 by @poddm. Does this PR supersede the changes in PR #77?

@fabiomatavelli
Copy link
Collaborator Author

fabiomatavelli commented Jul 2, 2024

@vishesh92 yes, this will be the first resource updated to the tf framework. Do you think the approach used in the #77 is better, by splitting into different resources?

This one is just updating to the tf framework and adding all the available params for the service offering.

@vishesh92
Copy link
Member

@vishesh92 yes, this will be the first resource updated to the tf framework. Do you think the approach used in the #77 is better, by splitting into different resources?

This one is just updating to the tf framework and adding all the available params for the service offering.

I am not using this provider. So, this is just my opinion.
Splitting into different resources might make it easier for the user to define the service offerings using terraform.
But I am not sure how easy it would be for users to migrate to the newer version. And if it would cause issues any issue with service offering datasource.

@CodeBleu
Copy link
Collaborator

CodeBleu commented Jul 3, 2024

@fabiomatavelli can you just remove the offering stuff from this PR, so we can get this plugin framework across the line, and then address the options of splitting up the offering resources or not later?

@fabiomatavelli
Copy link
Collaborator Author

@CodeBleu done

@CodeBleu
Copy link
Collaborator

CodeBleu commented Jul 4, 2024

@vishesh92 @kiranchavala Can this be merged now?

@CodeBleu
Copy link
Collaborator

CodeBleu commented Jul 24, 2024

@fabiomatavelli @CodeBleu since we recently had a TF release, the next one we can target for Q3/Q4 this year. If you're blocked then let us know, otherwise due to our $dayjobs and other community work (the release work for example), our engagement and responses may be delayed.

CC @kiranchavala @vishesh92 @rohityadavcloud

With the release of Cloudstack 4.19.1 now out, I'm hoping we can get this PR across the line. I feel like this should be just a matter of clicking the "merge" button, as there have been a lot of back and forth on this one and the last concern about it, had that piece removed to make it easier to proceed with merging this.

I think this PR for the new plugin framework is a pretty important one to get merged in, so that efforts can be made to start porting all of the data and resources over to the new framework.

I appreciate all you are doing for the community and know you're busy, but thought it was worth getting this one merged.

Thanks!

@rohityadavcloud
Copy link
Member

Fine by me, but since I'm less of a developer these days - let's wait from @vishesh92 and/or @kiranchavala to advise.

@vishesh92 vishesh92 merged commit e6bcc74 into apache:main Jul 25, 2024
9 checks passed
@CodeBleu
Copy link
Collaborator

Thanks!

@rohityadavcloud rohityadavcloud added this to the v0.6.0 milestone Jul 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants