Giter Site home page Giter Site logo

crossplane-contrib / provider-tf-equinix-metal Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 3.0 335 KB

DEPRECATED: use provider-jet-equinix :warning:

Home Page: https://github.com/crossplane-contrib/provider-jet-equinix

License: Apache License 2.0

Makefile 52.67% Go 20.25% Shell 22.41% Dockerfile 4.55% HCL 0.11%

provider-tf-equinix-metal's Introduction

Terrajet EquinixMetal Provider

provider-tf-equinix-metal is a Crossplane provider that is built using Terrajet code generation tools and exposes XRM-conformant managed resources for the EquinixMetal API.

Getting Started

Install the provider by using the following command after changing the image tag to the latest release:

kubectl crossplane install provider crossplane/provider-tf-equinix-metal:v0.2.2

You can see the API reference here.

Developing

Run code-generation pipeline:

go run cmd/generator/main.go

Run against a Kubernetes cluster:

make run

Build, push, and install:

make all

Build image:

make image

Push image:

make push

Build binary:

make build

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

Contact

Please use the following to reach members of the community:

Governance and Owners

provider-tf-equinix-metal is run according to the same Governance and Ownership structure as the core Crossplane project.

Code of Conduct

provider-tf-equinix-metal adheres to the same Code of Conduct as the core Crossplane project.

Licensing

provider-tf-equinix-metal is under the Apache 2.0 license.

provider-tf-equinix-metal's People

Contributors

displague avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

provider-tf-equinix-metal's Issues

Can not delete device resources

What happened?

The resource delete hangs with the following warnings:

  Warning  CannotObserveExternalResource  30m                  managed/device.equinixmetal.jet.crossplane.io/v1alpha1, kind=device  cannot get connection details: cannot get connection details: cannot not get a string for fieldpath "user_data": user_data: not a string
  Warning  CannotObserveExternalResource  82s (x248 over 31m)  managed/device.equinixmetal.jet.crossplane.io/v1alpha1, kind=device  cannot get connection details: cannot get connection details: cannot not get a string for fieldpath "custom_data": custom_data: not a string

How can we reproduce it?

Create the resources from examples/ and then try to delete it. Describe the resource.

What environment did it happen in?

Crossplane version:
provider-tf-equinix-metal 0.2.2

Can not delete projects resources

What happened?

Can not delete projects resources:

  Warning  CannotObserveExternalResource  82s (x463 over 26m)  managed/project.equinixmetal.jet.crossplane.io/v1alpha1, kind=project  cannot run refresh: refresh failed: invalid value for payment_method_id (must be a valid UUID): : File name: main.tf.json

How can we reproduce it?

Create the resources from examples/ and then try to delete it. Describe the resource.

What environment did it happen in?

Crossplane version:
provider-tf-equinix-metal 0.2.2

Provider fails to correctly create a device.

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.