### Description When creating an `ImageV2` resource using the imageSourceUrl parameter, the provider-openstack controller fails with a permission error. The provider attempts to download the image to a default cache directory before uploading it to OpenStack. The process fails because it tries to create a directory in the the filesystem (//.terraform), and seems it is not writable. This leads to a permission denied error. ### Steps to Reproduce - Apply the following ImageV2 manifest: ``` apiVersion: images.openstack.crossplane.io/v1alpha1 kind: ImageV2 metadata: annotations: meta.upbound.io/example-id: images/v1alpha1/imagev2 labels: testing.upbound.io/example-name: rancheros name: rancheros spec: forProvider: containerFormat: bare diskFormat: qcow2 imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img name: RancherOS properties: key: value ``` - The following error is reported ``` Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal CreatedExternalResource 9s managed/images.openstack.crossplane.io/v1alpha1, kind=imagev2 Successfully requested creation of external resource Warning CannotUpdateExternalResource 3s managed/images.openstack.crossplane.io/v1alpha1, kind=imagev2 async create failed: failed to create the resource: [{0 Error opening file for Image: unable to create dir //.terraform/image_cache: mkdir //.terraform: permission denied []}] ``` ### Workaround A temporary workaround is to explicitly set the `imageCachePath` to `/tmp`: ``` apiVersion: images.openstack.crossplane.io/v1alpha1 kind: ImageV2 metadata: annotations: meta.upbound.io/example-id: images/v1alpha1/imagev2 labels: testing.upbound.io/example-name: rancheros name: rancheros spec: forProvider: imageCachePath: /tmp containerFormat: bare diskFormat: qcow2 imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img name: RancherOS properties: key: value ``` ### Environment - Crossplane version: 1.20.0 - Provider Openstack Version: 0.7.0