crossplane-contrib / provider-upjet-azure

Official Azure Provider for Crossplane by Upbound.
Apache License 2.0
57 stars 74 forks source link

Request for `azurerm_servicebus` resource group #66

Closed jeanduplessis closed 1 year ago

jeanduplessis commented 1 year ago

What resource do you need?

Terraform Resource Name: servicebus_namespace servicebus_namespace_authorization_rule servicebus_namespace_disaster_recovery_config servicebus_namespace_network_rule_set servicebus_queue servicebus_queue_authorization_rule servicebus_subscription servicebus_subscription_rule servicebus_topic servicebus_topic_authorization_rule

Relates to private issue: https://github.com/upbound/official-providers/issues/823

cychiang commented 1 year ago

Hi @jeanduplessis are there any updates on service bus in upjet provider? We're working on to replace terrajet with upjet provider for Azure at the moment and would like to know more about it. Thanks!

jeanduplessis commented 1 year ago

@cychiang Unfortunately at this stage it's not yet top of our priority list. Is it something you might be willing to look to implement as a community contribution? We can provide support and guidance if needed.

cychiang commented 1 year ago

@jeanduplessis it sounds good, I'm willing to implement it but not sure are there any different between the upjet and terrajet provider. From my previous experience to work with terrajet provider and other native provider, there is a config file we will need to add on to generate code with terrajet. But in the native provider, we will need to define it by ourself and not from the code generator.

ulucinar commented 1 year ago

Hi @cychiang, Thank you for taking a look at it! I understand you already have experience with terrajet. Working with upjet is very similar to working with terrajet but we have some higher-level constructs in upjet. You should be able to configure a new resource by adding an external-name configuration for the resource here: https://github.com/upbound/provider-azure/blob/main/config/externalname.go

And if you need to do further resource configuration (like late-initialization configuration, reference configuration, etc.) then you may do so by adding a configuration package under https://github.com/upbound/provider-azure/tree/main/config and registering the new servicebus.Configure function in config/provider.go like here.

You may also want to check our resource configuration guide for more details.

cychiang commented 1 year ago

Hi @ulucinar @jeanduplessis

After trying out and I found that there are some stuffs need to discuss. As you may know from these two issues:

We're not able to create a Kind with Namespace I stuck here for awhile and now it's working by go around it. I think it's good to discuss the naming to replace the Namespace. Currently I'm using ServicebusNamespace but would like to have your inputs as well.

Right now I'm aiming to create resources for servicebus one by one and start from namespace because the namespace is the one we're hoping to get.

cychiang commented 1 year ago

Hi! I trying to use the docker image I built and use it in the actual cluster. Are there any release process I need to go through? It looks like it failing in the install and verify package phase.

Here are steps for building a docker image:

git tag v0.19.1
make build.all 
docker tag ${amd64}:v0.19.1 ${amd64_registry}:v0.19.1
docker push ${amd64_registry}:v0.19.1

Modify the Provider yaml and point package from upbound registry to my docker registry. The message shows:

current package revision is unhealthy

But I'm not sure what steps I missed to cause this message.

ulucinar commented 1 year ago

Hi @cychiang, Looks like the upstream PR got stale and was closed. Maybe we can consider reopening it for the unlucky managed resources with the kind name Namespace :) Thank you for bringing it up.

Regarding the provider image you built, the reason is the built image does not conform to the Crossplane xpkg specification and thus the Crossplane package manager cannot install the provider image. We will need more details to make sure this actually is the reason but could you please try the following:

...
make build.all
docker tag $(docker load -i _output/xpkg/linux_arm64/provider-gcp-<version>.xpkg -q | awk -F: '{print $3}') ${amd64_registry}:v0.19.1
docker push ...

So the build produces the xpkg that you need under the _output/xpkg folder. Could you please docker load that archive and use it as the provider image to test your changes? Thank you very much.

cychiang commented 1 year ago

Hi @ulucinar Thanks for the reply, I managed to solve this issue by uploading the generated xpkg file to Upbound repository. I was uploaded the docker image only and not the whole xpkg file.

Now it works good!

tomaszwostal commented 1 year ago

Hi @cychiang
Is something going on with the rest of these resources? If not, I'd like to finish it.

cychiang commented 1 year ago

Hi @tomaszwostal
Nothing special in my mind so I think it's good you can finish it. :-) Thanks for asking.

dverveiko commented 1 year ago

Resources successfully tested.