Skip to content

awslabs/crossplane-on-eks

Blueprints for Crossplane on Amazon EKS

Note: AWS Blueprints for Crossplane on Amazon Elastic Kubernetes Service is under active development and should be considered a pre-production framework.

Welcome to the AWS Crossplane Blueprints.

Introduction

AWS Crossplane Blueprints is an open source repo to bootstrap Amazon Elastic Kubernetes Service Clusters. and provision AWS resources with a library of Crossplane Compositions (XRs) with Composite Resource Definitions (XRDs).

If you are new to Crossplane, it is highly recommended to get yourself familiarized with Crossplane concepts. The official documentation and this blog post are good starting points.

Compositions in this repository enable platform teams to define and offer bespoke AWS infrastructure APIs to the teams of application developers based on predefined Composite Resources (XRs), encompassing one or more of AWS Managed Resources (MRs)

Features

✅ Bootstrap Amazon EKS Cluster and Crossplane with Terraform
✅ Bootstrap Amazon EKS Cluster and Crossplane with eksctl
AWS Provider - Crossplane Compositions for AWS Services
Upbound AWS Provider - Upbound Crossplane Compositions for AWS Services
AWS IRSA on EKS - AWS Provider Config with IRSA enabled
Patching 101 - Learn how patches work. ✅ Example deployment patterns for Composite Resources (XRs) for AWS Provider
✅ Example deployment patterns for Crossplane Managed Resources (MRs)

Getting Started

✅ Bootstrap EKS Cluster

This repo provides multiple options to bootstrap Amazon EKS Clusters with Crossplane and AWS Providers. Checkout the following README for full deployment configuration

✅ Configure the EKS cluster

Enable IRSA support for your EKS cluster for the necessary permissions to spin up other AWS services. Depending on the provider, refer to the bootstrap README for this configuration.

✅ Deploy the Examples

With the setup complete, you can then follow instructions on deploying crossplane compositions or managed resources you want to experiment with. Keep in mind that the list of compositions and managed resources in this repository are evolving.

✅ Work with nested compositions.

Compositions can be nested to further define and abstract application specific needs.

✅ Work with external secrets.

Crossplane can be configured to publish secrets external to the cluster in which it runs.

✅ Check out the RDS day 2 operation doc

✅ Checkout example Gatekeeper configurations.

✅ Upbound AWS provider examples

Learn More

Debugging

For debugging Compositions, CompositionResourceDefinitions, etc, please see the debugging guide.

Security

See CONTRIBUTING for more information.

License

This library is licensed under the Apache 2.0 License.