community icon indicating copy to clipboard operation
community copied to clipboard

RDS service controller

Open tabern opened this issue 4 years ago • 14 comments

New ACK Service Controller

Support for Amazon RDS

List of API resources

List the API resources in order of importance to you:

tabern avatar Aug 25 '20 17:08 tabern

There was an interesting ask that crossed my feeds, about using cloud-native infrastructure to manage users & databases on a legacy/non-cloud postgres.

That seems like a pretty wild use case, but I do think it's important to surface the question of how, if at all, legacy RDS users can migrate to ACK-managed RDS. I proposed that perhaps RDS service controller might be able to seed a new database from an existing database's backup. That way there's some migration into ACK-managed RDS available.

rektide avatar Sep 21 '20 14:09 rektide

There was an interesting ask that crossed my feeds, about using cloud-native infrastructure to manage users & databases on a legacy/non-cloud postgres.

That seems like a pretty wild use case, but I do think it's important to surface the question of how, if at all, legacy RDS users can migrate to ACK-managed RDS. I proposed that perhaps RDS service controller might be able to seed a new database from an existing database's backup. That way there's some migration into ACK-managed RDS available.

Hi @rektide! :) Here is a related GH issue around this: #41

jaypipes avatar Sep 21 '20 18:09 jaypipes

I'm interested if there has been any discussions around managing multiple DBs and users on a RDS instance? We currently manage this via Terraform but supporting this workflow in a controller would be really useful.

stevehipwell avatar Jun 24 '21 08:06 stevehipwell

@stevehipwell you could argue that that shouldn't really be a use case for an RDS controller. Mostly because it would mean managing multiple, completely different APIs by the controller. I use a custom PostgesDB operator to do that - users declare what database/user they want created on what Postgres host and the operator manages that. I'd generally recommend a split like that, I've been very happy to use it.

PatTheSilent avatar Jun 24 '21 15:06 PatTheSilent

@PatTheSilent I don't disagree; which operator are you using?

stevehipwell avatar Jun 24 '21 16:06 stevehipwell

@stevehipwell I wrote one myself using the Ansible Operator Framework https://sdk.operatorframework.io/docs/building-operators/ansible/tutorial/ (not affiliated with them :) ). It wasn't really hard to throw something usable together in a day or two.

PatTheSilent avatar Jun 24 '21 17:06 PatTheSilent

@PatTheSilent I suspected you might say that. I've been looking for a good community PSQL DB operator for a while now and as Terraform works well enough I haven't been able to prioritise writing my own. Crossplane and the provider-sql look like promising leads.

stevehipwell avatar Jun 25 '21 09:06 stevehipwell

@stevehipwell oh, I didn't know about that. I use crossplane to manage my AWS stuff so that would be a perfect fit (and less maintenance on the long run). Thanks!

PatTheSilent avatar Jun 25 '21 09:06 PatTheSilent

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 avatar Sep 23 '21 11:09 ack-bot

/remove-lifecycle stale

vijtrip2 avatar Sep 23 '21 16:09 vijtrip2

/lifecycle frozen

vijtrip2 avatar Sep 23 '21 16:09 vijtrip2

The RDS resources are looking pretty great. Are there any milestones to achieve before it becomes GA?

gazal-k avatar Aug 18 '22 08:08 gazal-k

@gazal-k Thanks for the feedback! You can track the roadmap for the RDS controller here: https://github.com/orgs/aws-controllers-k8s/projects/4/views/5

We are in the process for prepping for GA, but please feel to test out the RDS controller and give us feedback! To help you get started, there are a few tutorials for managing RDS resources in the ACK documentation:

https://aws-controllers-k8s.github.io/community/docs/tutorials/rds-example/ https://aws-controllers-k8s.github.io/community/docs/tutorials/aurora-serverless-v2/

There is also a blog that walks through an end-to-end example of deploying an application with the RDS controller:

https://aws.amazon.com/blogs/database/deploy-amazon-rds-databases-for-applications-in-kubernetes/

jkatz avatar Aug 18 '22 15:08 jkatz

Looks like it's pretty close 🙂. If I'm reading that right. Just 1 in progress item and 1 to-do.

We are just waiting on this to be GA to use it in our applications. Right now, cloud infra like RDS and S3 are provisioned separately for our k8s applications.

gazal-k avatar Aug 18 '22 19:08 gazal-k

Closing as this service controller has graduated to GA. Separate issues can be opened to discuss specific follow on topics on the controller.

mikestef9 avatar Dec 06 '22 01:12 mikestef9