crossplane-contrib / provider-tf-equinix-metal

DEPRECATED: use provider-jet-equinix :warning:
https://github.com/crossplane-contrib/provider-jet-equinix
Apache License 2.0
5 stars 3 forks source link

Provider fails to correctly create a device. #10

Closed KrystianMarek closed 5 months ago

KrystianMarek commented 1 year ago

What happened?

I tried to create a device resource. According to the provider, the operation exited with error. In fact, numerous new devices were created in metal. They were visible via the UI.

Provider produces a debug log message:

2022-07-26T15:09:38.726Z    DEBUG   provider-tf-equinix-metal   Cannot create external resource {"controller": "managed/device.equinixmetal.jet.crossplane.io/v1alpha1, kind=device", "request": "/equinix-metal-provider", "uid": "5a41f85c-8409-4cfc-aef1-a0af63b1f2b9", "version": "190213", "external-name": "", "error": "cannot apply: apply failed: ", "errorVerbose": "apply failed: \ncannot apply\ngithub.com/crossplane-contrib/terrajet/pkg/controller.(*external).Create\n\t/home/runner/work/provider-tf-equinix-metal/provider-tf-equinix-metal/vendor/github.com/crossplane-contrib/terrajet/pkg/controller/external.go:200\ngithub.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*Reconciler).Reconcile\n\t/home/runner/work/provider-tf-equinix-metal/provider-tf-equinix-metal/vendor/github.com/crossplane/crossplane-runtime/pkg/reconciler/managed/reconciler.go:800\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/home/runner/work/provider-tf-equinix-metal/provider-tf-equinix-metal/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:298\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/home/runner/work/provider-tf-equinix-metal/provider-tf-equinix-metal/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:253\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/home/runner/work/provider-tf-equinix-metal/provider-tf-equinix-metal/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:214\nruntime.goexit\n\t/opt/hostedtoolcache/go/1.17.3/x64/src/runtime/asm_arm64.s:1133"}
2022-07-26T15:09:38.727Z    DEBUG   controller-runtime.manager.events   Warning {"object": {"kind":"Device","name":"equinix-metal-provider","uid":"5a41f85c-8409-4cfc-aef1-a0af63b1f2b9","apiVersion":"device.equinixmetal.jet.crossplane.io/v1alpha1","resourceVersion":"190377"}, "reason": "CannotCreateExternalResource", "message": "cannot apply: apply failed: "}

How can we reproduce it?

On a kind cluster apply:

apiVersion: device.equinixmetal.jet.crossplane.io/v1alpha1
kind: Device
metadata:
  name: equinix-metal-provider
  namespace: crossplane-system
spec:
  providerConfigRef:
    name: equinix-metal-provider
  forProvider:
    operatingSystem: flatcar_stable
    plan: c3.small.x86
    projectId: <edited>
    facilities:
      - da6
    tags:
      - crossplane
    hostname: crossplane-test
apiVersion: pkg.crossplane.io/v1alpha1
kind: ControllerConfig
metadata:
  name: equinix-metal-provider
  namespace: crossplane-system
spec:
  args:
    - '--debug'
  env:
    - name: PACKNGO_DEBUG
      value: "1"
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: crossplane-provider-tf-equinix-metal
  namespace: crossplane-system
spec:
  package: crossplane/provider-tf-equinix-metal:v0.2.2
  packagePullPolicy: IfNotPresent
  controllerConfigRef:
    name: equinix-metal-provider
apiVersion: equinixmetal.jet.crossplane.io/v1alpha1
kind: ProviderConfig
metadata:
  name: equinix-metal-provider
  namespace: crossplane-system
spec:
  credentials:
    source: Secret
    secretRef:
      name: metal-creds
      key: credentials
      namespace: crossplane-system

What environment did it happen in?

Crossplane version: 1.9

displague commented 5 months ago

Closing as won't fix, but this should be resolved in the replacement project. See #11