crossplane / terrajet

Generate Crossplane Providers from any Terraform Provider
https://crossplane.io
Apache License 2.0
290 stars 38 forks source link

Problem to create a resource that is named `Namespace` #234

Open remyleone opened 2 years ago

remyleone commented 2 years ago

What happened?

When I try to apply the following resource:

apiVersion: registry.scaleway.jet.crossplane.io/v1alpha1
kind: Namespace
metadata:
  name: main
  namespace: default
spec:
  forProvider:
    name: crossplane-namespace
  providerConfigRef:
    name: default

That got the following configuration:

package registry

import "github.com/crossplane/terrajet/pkg/config"

const shortGroup = "registry"

// Configure configures the registry resources.
func Configure(p *config.Provider) {
    p.AddResourceConfigurator("scaleway_registry_namespace", func(r *config.Resource) {
        // Identifier for this resource is assigned by the provider. In other
        // words it is not simply the name of the resource.
        r.ExternalName = config.IdentifierFromProvider
        r.ShortGroup = shortGroup
        r.Kind = "Namespace"
    })
}

I get the following errors in loop:

2022-02-09T17:45:58.621+0100    DEBUG   provider-jet-scaleway   Reconciling {"controller": "managed/registry.scaleway.jet.crossplane.io/v1alpha1, kind=namespace", "request": "/main"}
2022-02-09T17:45:58.924+0100    DEBUG   provider-jet-scaleway   refresh ended   {"workspace": "/var/folders/58/dpfvy5xj6q5b44ly5zhfjfnh0000gn/T/9a968537-079d-40b2-852b-e36207171ee9", "out": "{\"@level\":\"info\",\"@message\":\"Terraform 1.1.5\",\"@module\":\"terraform.ui\",\"@timestamp\":\"2022-02-09T17:45:58.655451+01:00\",\"terraform\":\"1.1.5\",\"type\":\"version\",\"ui\":\"1.0\"}\n{\"@level\":\"info\",\"@message\":\"Plan: 0 to add, 0 to change, 0 to destroy.\",\"@module\":\"terraform.ui\",\"@timestamp\":\"2022-02-09T17:45:58.900336+01:00\",\"changes\":{\"add\":0,\"change\":0,\"remove\":0,\"operation\":\"plan\"},\"type\":\"change_summary\"}\n{\"@level\":\"info\",\"@message\":\"Apply complete! Resources: 0 added, 0 changed, 0 destroyed.\",\"@module\":\"terraform.ui\",\"@timestamp\":\"2022-02-09T17:45:58.921594+01:00\",\"changes\":{\"add\":0,\"change\":0,\"remove\":0,\"operation\":\"apply\"},\"type\":\"change_summary\"}\n{\"@level\":\"info\",\"@message\":\"Outputs: 0\",\"@module\":\"terraform.ui\",\"@timestamp\":\"2022-02-09T17:45:58.921645+01:00\",\"outputs\":{},\"type\":\"outputs\"}\n"}
2022-02-09T17:45:58.928+0100    DEBUG   provider-jet-scaleway   Cannot add finalizer    {"controller": "managed/registry.scaleway.jet.crossplane.io/v1alpha1, kind=namespace", "request": "/main", "uid": "9a968537-079d-40b2-852b-e36207171ee9", "version": "790", "external-name": "", "error": "cannot update object: the server could not find the requested resource (put namespaces.registry.scaleway.jet.crossplane.io main)"}
2022-02-09T17:45:58.931+0100    ERROR   controller-runtime.manager.controller.managed/registry.scaleway.jet.crossplane.io/v1alpha1, kind=namespace  Reconciler error    {"reconciler group": "registry.scaleway.jet.crossplane.io", "reconciler kind": "Namespace", "name": "main", "namespace": "", "error": "cannot update managed resource status: the server could not find the requested resource (put namespaces.registry.scaleway.jet.crossplane.io main)"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
    /Users/sieben/workspace/crossplane-scaleway-provider/.work/pkg/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.6/pkg/internal/controller/controller.go:253
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
    /Users/sieben/workspace/crossplane-scaleway-provider/.work/pkg/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.6/pkg/internal/controller/controller.go:214

How can we reproduce it?

Try to create the mentioned resource using this provider: https://github.com/remyleone/crossplane-scaleway-provider

ulucinar commented 2 years ago

Hi @remyleone, Thanks for reporting. This is a known upstream issue for which we have proposed a fix. Meanwhile, the workaround is to choose a different Kind name than Namespace for the managed resource.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.