aws-controllers-k8s / community

AWS Controllers for Kubernetes (ACK) is a project enabling you to manage AWS services from Kubernetes
https://aws-controllers-k8s.github.io/community/
Apache License 2.0
2.38k stars 251 forks source link

Refactor `ackgenconfig` into 2 categories: Generate & API Inference #1184

Open brycahta opened 2 years ago

brycahta commented 2 years ago

Summary

ackgenconfig is used and implemented in a variety of ways throughout the code-generator codebase. Due to this dispersion and inconsistency, it is becoming increasingly difficult to navigate and contribute to code-generator. The updated encapsulations as a result of splitting ackgenconfig into 2 categories will result in a cleaner, more intuitive codebase to alleviate these concerns.

Context

This is the parent issue to track and implement changes to categorize ackgenconfig. The proposal detailing the approach can be found here.

Implementation

jaypipes commented 2 years ago

@brycahta spot on. let's do this!

brycahta commented 2 years ago

Initial Research on Config Cats 🐱

Inference/How to create CRD

Generate/How to generate Go code

Both/Not a clear category

brycahta commented 2 years ago

Discussed with @jaypipes offline and putting the "splitting into categories" task on hold for now. After working on some of the code, I'm not convinced this abstraction makes the code any cleaner or more intuitive. I'll pivot to refactoring generate package and note any patterns with config use/access to see if a better pattern arises.

ack-bot commented 2 years ago

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

a-hilaly commented 2 years ago

/lifecycle frozen