Skip to content

A Commercetools Pulumi resource package, bridges to the commercetools Terraform provider

License

Notifications You must be signed in to change notification settings

unplatform-io/pulumi-commercetools

Repository files navigation

Actions Status NPM version Python version NuGet version PkgGoDev

CommerceTools provider

The CommerceTools resource provider for Pulumi lets you provision CommerceTools resources.

This provider is a bridge to the excellent CommerceTools Terraform Provider from the Labd folks.

To use this package, please install the Pulumi CLI first.

Installing

The plugin itself needs to be installed by running:

pulumi plugin install --server https://github.com/unplatform-io/pulumi-commercetools/releases/download/v0.0.0 resource commercetools v0.0.0

Where v0.0.0 is the desired version.

This SDK is available in many languages in the standard packaging formats.

Node.js (Java/TypeScript)

To use from JavaScript or TypeScript in Node.js, install using either npm:

$ npm install @unplatform/commercetools

or yarn:

$ yarn add @unplatform/commercetools

Python

To use from Python, install using pip:

$ pip install pulumi_commercetools

Go

To use from Go, use go get to grab the latest version of the library

$ go get github.com/unplatform-io/pulumi-commercetools/sdk/v2/go/...

.NET

To use from .NET, install using dotnet add package:

$ dotnet add package Pulumi.CommerceTools

Configuration

The following configuration points are available for the commercetools provider:

  • commercetools:apiUrl - the url of the commercetools api (e.g. https://api.europe-west1.gcp.commercetools.com)
  • commercetools:tokenUrl - the url used to authenticate (e.g. https://auth.europe-west1.gcp.commercetools.com)
  • commercetools:scopes - the authentication scopes needed
  • commercetools:clientId - the client id used to authenticate
  • commercetools:clientSecret - the client secret used to authenticate
  • commercetools:projectKey - the key of the commerce tools project

Reference

For detailed reference documentation, please visit the docs of the commerce tools terraform provider.

Upgrading the pulumi plugin

To upgrade the plugin to a never version of the upstream terraform client the following steps should be taken:

  • Update the submodule: git submodule update --remote --merge
  • Validate if the patches in upstream_patches/ are still valid e.g.
    • They might reference the wrong line of code
    • They might be unneeded
  • Validate if there are new mappings / changed mappings in provider/resources.go
    • You can check if there are new items by reading the console output of make tfgen
  • If upstream has stopped using terraform SDK and now fully uses terraform plugin framework:
    • Remove the muxer in provider/resources.go, provider/cmd/pulumi-*-commercetools/main.go and the provider/shim/shim.go
    • Validate the current implementation with the documentation on How to Bridge a Provider
  • Rebuild the SDK's using make build_sdks
  • Validate the functionality using the sample project, make sure to fill in valid credentials in Pulumi.commercetools-test.yml