Crossplane Integration

Hello,
Are there any plans for LocalStack integration with Crossplane and respectively the latter to become a part of the supported tools anytime soon?

Hi @cyberslot , thanks for reaching out. Can you please elaborate a bit more on your use case.

I see two main directions for a Crossplane integration:

  1. Creating a LocalStack Crossplane provider (Providers · Crossplane v1.13), to make it easy to install LocalStack in a Kubernetes cluster with Crossplane installed (in a nutshell, allowing something like kubectl create localstack to spin up a LocalStack pod in k8s)
  2. Providing an integration with the Crossplane AWS provider (https://marketplace.upbound.io/providers/upbound/provider-aws), to make it easy to deploy and test AWS resources locally against LocalStack (e.g., allow listing of S3 buckets deployed in LocalStack via kubectl get buckets, etc)

Would be great if you could share more details (ideally with a few code snippets, or a small sample project), so we can understand this feature request a bit better. Thanks!

Btw, if your use case is more about point (1) above, we do offer a Helm chart at GitHub - localstack/helm-charts: Helm Charts for LocalStack , which helps simplify the installation of LocalStack in a kube cluster.

1 Like

Quick update @cyberslot - regarding point (2) above, we have now added a tutorial to our docs which illustrates how the Crossplane AWS provider can be used seamlessly against LocalStack: Crossplane | Docs

Hope that helps as a starting point - please let us know if anything is unclear. Looking forward to getting your feedback!

Hello, Waldemar,

Thank you very much for your responsiveness, attention and time dedicated!
That’s exactly what I was looking for - Crossplane to be a part of User Guides/Integrations LocalStack Docs.
The past two days I managed to achieve this collaboration (Crossplane/AWS Provider/LocalStack), using kind (Kubernetes in Docker) cluster for testing/experimental purposes. On the first glance, the only differences between the approach I’ve utilized and what’s described already in the documentation is regarding credentials and ProviderConfig. I followed Crossplane docs (AWS Quickstart · Crossplane v1.13) about k8s secret creation, using ~/.aws/credentials for aws_access_key_id & aws_secret_access_key. As for the second one (ProviderConfig), I’ve not included spec.endpoint.services as well as
“skip_credentials_validation: true, skip_metadata_api_check: true, skip_requesting_account_id: true, s3_use_path_style: true”.
However, it works (at least in the scope that I’ve tested till the moment), but I’ve not tried awslocal part yet.
Nevertheless, I am charmed by lightning fast reaction and the subsequent result.
Your effort is highly appreciated!

2 Likes