awslabs / crossplane-on-eks

Crossplane bespoke composition blueprints for AWS resources
Apache License 2.0
333 stars 111 forks source link

[FEATURE] Provide reference for the AWS Containers Retail Sample with Crossplane #81

Open csantanapr opened 1 year ago

csantanapr commented 1 year ago

Is your feature request related to a problem? Please describe

Have an example the AWS Containers Retail Sample with Crossplane.

The sample application depends on stateful services like MySQL, DynamoDB, Redis, and RabbitMQ.

This reference architecture should be useful for someone building a complex solution using crossplane to deploy the AWS managed resources for microservice based application.

AWS Containers Retail Sample

Describe the solution you'd like

The solution should provide top level claim that contains the version of each microservices, the solutions should be able to deploy the application and corresponding services:

Additional context (Advanced Workshop)

This should be a building block for a more comprehensive/advanced workshop, that can include :

nabuskey commented 1 year ago

So the plan is to create a composition for each micro service as k8s deployment then stitch them together in another composition? Or are you planning to separate infrastructure and application then orchestrate in deployment tooling?

I've thought of making a demo application with Crossplane + Argo and made a demo here: https://github.com/nabuskey/argo-crossplane-vault (not guaranteed to work rn). This separates infrastructure claim and application. The reason they are separated is to allow for more sophisticated deployment strategy through tooling like Argo rollouts. If you embed application into composition, you lose the ability to customize your deployment process because Crossplane isn't OAM like KubeVela and doesn't support deployment strategies out of the box.

show how to handle sub accounts for different environments (TEST, STAGE, PROD) Can you elaborate more on this? Are you talking about artifact promotion process or separation of AWS accounts? Also I would personally love to see Kyverno instead of OPA Gatekeeper.