Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
csantanapr opened this issue Dec 15, 2022 · 1 comment

Comments

@csantanapr
Copy link
Member

csantanapr commented Dec 15, 2022

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:

  • Amazon Aurora
  • Amazon DynamoDB
  • Amazon MQ
  • Amazon Elastic Cache

Additional context (Advanced Workshop)

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

  • gitops (flux or argocd)
  • opa/gatekeeper
  • secret manager
  • deployment of the EKS cluster as part of claim
  • show how to handle sub accounts for different environments (TEST, STAGE, PROD).
@nabuskey
Copy link
Contributor

nabuskey commented Dec 15, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants