crossplane / terrajet

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

Issue when trying to convert ldap provider #301

Closed IvanTurgenev1 closed 2 years ago

IvanTurgenev1 commented 2 years ago

Issue happened when i'm trying to use https://github.com/Ouest-France/terraform-provider-ldap as crossplane provider I'm using this guide: https://github.com/crossplane/terrajet/blob/main/docs/generating-a-provider.md but ran into a problem

What happened?

error happened 1.663663713756557e+09 DEBUG provider-jet-ldap Cannot observe external resource {"controller": "managed/ldap.ldap.jet.crossplane.io/v1alpha1, kind=group", "request": "/test", "uid": "187ccccf-f9e8-46cf-8052-40da6c6e285e", "version": "93947", "external-name": "test", "error": "cannot run refresh: readObjectStart: expect { or n, but found 2, error found in #1 byte of ...|2022-09-20T|..., bigger context ...|2022-09-20T11:48:33.590+0300 [INFO] Terraform vers|...: refresh failed", "errorVerbose": "refresh failed\nreadObjectStart: expect { or n, but found 2, error found in #1 byte of ...|2022-09-20T|..., bigger context ...|2022-09-20T11:48:33.590+0300 [INFO] Terraform vers|...\ncannot run refresh\ngithub.com/crossplane/terrajet/pkg/controller.(*external).Observe\n\t/Users/ivan.turgenev/git/provider-jet-ldap/.work/pkg/pkg/mod/github.com/crossplane/terrajet@v0.4.0-rc.0.0.20220510203225-5e7094f2ea5c/pkg/controller/external.go:125\ngithub.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*Reconciler).Reconcile\n\t/Users/ivan.turgenev/git/provider-jet-ldap/.work/pkg/pkg/mod/github.com/crossplane/crossplane-runtime@v0.15.1-0.20220315141414-988c9ba9c255/pkg/reconciler/managed/reconciler.go:767\ngithub.com/crossplane/crossplane-runtime/pkg/ratelimiter.(*Reconciler).Reconcile\n\t/Users/ivan.turgenev/git/provider-jet-ldap/.work/pkg/pkg/mod/github.com/crossplane/crossplane-runtime@v0.15.1-0.20220315141414-988c9ba9c255/pkg/ratelimiter/reconciler.go:54\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile\n\t/Users/ivan.turgenev/git/provider-jet-ldap/.work/pkg/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.0/pkg/internal/controller/controller.go:114\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/Users/ivan.turgenev/git/provider-jet-ldap/.work/pkg/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.0/pkg/internal/controller/controller.go:311\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/Users/ivan.turgenev/git/provider-jet-ldap/.work/pkg/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.0/pkg/internal/controller/controller.go:266\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/Users/ivan.turgenev/git/provider-jet-ldap/.work/pkg/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.0/pkg/internal/controller/controller.go:227\nruntime.goexit\n\t/usr/local/Cellar/go/1.19.1/libexec/src/runtime/asm_amd64.s:1594"} 1.663663713756812e+09 DEBUG events Warning {"object": {"kind":"Group","name":"test","uid":"187ccccf-f9e8-46cf-8052-40da6c6e285e","apiVersion":"ldap.ldap.jet.crossplane.io/v1alpha1","resourceVersion":"93947"}, "reason": "CannotObserveExternalResource", "message": "cannot run refresh: readObjectStart: expect { or n, but found 2, error found in #1 byte of ...|2022-09-20T|..., bigger context ...|2022-09-20T11:48:33.590+0300 [INFO] Terraform vers|...: refresh failed"}

How can we reproduce it?

code i was added to internal/clients/ldap.go // set credentials in Terraform provider configuration ps.Configuration = map[string]interface{}{} if v, ok := ldapCreds[keyHost]; ok { ps.Configuration[keyHost] = v } if v, ok := ldapCreds[keyPort]; ok { ps.Configuration[keyPort] = v } if v, ok := ldapCreds[keybind_user]; ok { ps.Configuration[keybind_user] = v } if v, ok := ldapCreds[keybind_password]; ok { ps.Configuration[keybind_user] = v } my manifest to manage ldap group

apiVersion: ldap.ldap.jet.crossplane.io/v1alpha1 kind: Group metadata: name: test spec: forProvider: ou: "OU=artifactory,OU=art,OU=Resources,OU=Main,DC=example,DC=ru" name: "examplegroup" description: "My" members: [] providerConfigRef: name: default

i did't add tjconfig.WithIncludeList to config/provider.go cause there is only one resourse to manage ldap group

could you please give a tip how to resolve this error: "cannot run refresh: readObjectStart: expect { or n, but found 2, error found in #1 byte of ...