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

Make easy to migrate from existing CRDs to ACK #313

Closed
anoop2811 opened this issue Sep 17, 2020 · 7 comments
Closed

Make easy to migrate from existing CRDs to ACK #313

anoop2811 opened this issue Sep 17, 2020 · 7 comments
Labels
kind/enhancement Categorizes issue or PR as related to existing feature enhancements. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.

Comments

@anoop2811
Copy link

anoop2811 commented Sep 17, 2020

As we evaluate possibilities and as ACK becomes full featured, I would like a easier path to migrate from other CRDs easily. This could include the following:

  1. Take over existing aws assets created by custom or other generic CRDs
  2. Support composed apis created from the aws resource level CRDs.
  3. Support for OAM
@anoop2811 anoop2811 added the kind/enhancement Categorizes issue or PR as related to existing feature enhancements. label Sep 17, 2020
@jaypipes
Copy link
Collaborator

jaypipes commented Sep 17, 2020

Hi @anoop2811! I want to make it clear that it is not a goal of ACK to siphon users away from Crossplane.

ACK's mission is to facilitate the most Kubernetes-native way for users to interact with AWS managed services via the Kubernetes API and configuration language. While Crossplane does enable Kubernetes users to create infrastructure resources using the Kubernetes API/language, Crossplane has a much broader mission of enabling cross-cloud-provider workflows and multi-provider infrastructure needs.

Crossplane and ACK contributors are actually collaborating with each other, as we view the two projects as complementary, not competitive. In fact, I've been noodling around some ideas of using the ack-generate CLI tool to output Go code that follows the Crossplane object model/interfaces -- something that would eventually allow Crossplane's AWS cloud provider code to be replaced with code generated from ACK.

@anoop2811
Copy link
Author

@jaypipes sorry meant no disrespect to crossplane, and was not intending to siphone users away from crossplane. It was more meant as a possibility to support easy migration. I will remove the mention of cross plane and make the issue generic

@anoop2811 anoop2811 changed the title Migrate from crossplane when ACK is GA Make easy to migrate from existing CRDs to ACK Sep 17, 2020
@jaypipes
Copy link
Collaborator

@jaypipes sorry meant no disrespect to crossplane, and was not intending to siphone users away from crossplane. It was more meant as a possibility to support easy migration. I will remove the mention of cross plane and make the issue generic

No need to remove the mention of Crossplane, Anoop! :) It's an important question that we've been asked a few times and figured I'd expand on the question in my answer here. I will put together a document that specifically discusses Crossplane and ACK plans.

@prasek
Copy link

prasek commented Sep 17, 2020

(disclosure: I'm a crossplane contributor)

@jaypipes agree, the community benefits from a converged effort here (ACK + Crossplane) with ACK owning the generated Crossplane k8s resources for AWS, so you can use Crossplane to compose and publish your own infrastructure abstractions to the k8s API without writing code.

A similar question came up for Azure ASO and @frodopwns points out:
Azure/azure-service-operator#1190 (comment) Value prop over Crossplane (closed)

Your confusion is understandable!

We aren't claiming a value proposition over Crossplane but we do think the service management should be the cloud provider's responsibility and Crossplane should remain the abstraction layer. For this reason we will be looking at ways to shim ASO into Crossplane to allow them to shift this responsibility to us.

The Azure ASO team is also adapting their codegen pipeline to generate Crossplane k8s resources:
Azure/k8s-infra#253 Generating a Crossplane Provider
/cc @davefellows @matthchr @babbageclunk @theunrepentantgeek @Porges

To accelerate support for cloud providers that don't have an open source codegen pipeline, we're generating Crossplane Providers on top of the stateless Terraform providers: crossplane/crossplane#262.

With all cloud service primitives bridged into the k8s API in a consistent way, the community gets a consistent UX for managed resources across cloud providers and the ability to compose and publish their own infrastructure abstractions with Crossplane - a vendor neutral CNCF project that makes it easy to abstract, compose, and consume the cloud resources you need from the k8s API.

Looking forward to working together on this! 🚀

@resouer
Copy link

resouer commented Sep 18, 2020

For OAM support, it already built-in with such flexibility. So as long as you can provide a CRD to represent your cloud resource, that CRD could then be referenced as workload of your OAM Component and leverage Crossplane's OAM k8s runtime to run it.

Feel free to reach us in crossplane#oam slack channel when your app is ready!

@ack-bot
Copy link
Collaborator

ack-bot commented Aug 27, 2021

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via /~https://github.com/aws-controllers-k8s/community.
/lifecycle stale

@ack-bot ack-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 27, 2021
@RedbackThomson
Copy link
Contributor

For taking over existing AWS resources, I recommend reading our discussion on resource adoption. Otherwise, closing this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement Categorizes issue or PR as related to existing feature enhancements. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

No branches or pull requests

6 participants