fabric8io / kubernetes-client

Java client for Kubernetes & OpenShift
http://fabric8.io
Apache License 2.0
3.42k stars 1.47k forks source link

CRDGenerator Development Doc(s) #5870

Open baloo42 opened 7 months ago

baloo42 commented 7 months ago

Is your enhancement related to a problem? Please describe

I couldn't find any notes on previously made decissions regarding the CRDGenerator. I had to read a lot issues and code, which makes it a little bit hard to contribute.

Describe the solution you'd like

A Wiki page or DEVELOPMENT.md which describes architecture goals would be great.

Important details in issues

Content

Additional User Documentation Content

andreaTP commented 7 months ago

Hi @baloo42 and thanks for pointing this out. Regarding the CRD Generator I don't think we have much documentation other than the code itself at this point, maybe @metacosm knows something more.

I would be happy to support a new Development doc file sharing anything I know/is needed by answering direct questions. Meanwhile, please, go ahead with any additional questions you have and I'll provide as much context as I can 🙂

As a super general overview, the code has been mostly contributed by @iocanel and @metacosm , built on top of the sundrio project. The api module is designed to be utilized as a library in the Quarkus Operator Framework in the @BuildSteps. I have contributed some improvements to support the Keycloak Realm Import CRD. The rest comes mostly from bug fixes reported by the users.

baloo42 commented 7 months ago

Thanks, I would be happy to contribute at least the initial document once we have collected the most important content. I will update the list of contents in the description if there are more details incoming.

andreaTP commented 7 months ago

Own Annotations vs Reusing existing Annotations

We decided to go full down on using Own Annotations: we don't own the codebase of Jackson etc. and it becomes easily really complicated to try to match the original semantics with the needs of a generator.

Roundtrips

I would love to see a real-world use-case for this, as long as we don't have one it's a non-goal

manusa commented 7 months ago

Roundtrips

I would love to see a real-world use-case for this, as long as we don't have one it's a non-goal

+1 I'm really curious about your use case.

baloo42 commented 7 months ago

To bei clear: I don't know any use case for round tripping and I think it would be really hard to implement. I also think that's the reason why other similar "JsonSchema Generator" don't support it too. (I couldn't find a Tool which supports it).

But I have thought about it while reading the code of the fabric8 generators and it seems others have thought about it too (#5867).

That's why i have put it on the list... We should mention it, even if we declare it as a none-goal.

stale[bot] commented 4 months ago

This issue has been automatically marked as stale because it has not had any activity since 90 days. It will be closed if no further activity occurs within 7 days. Thank you for your contributions!

stale[bot] commented 2 weeks ago

This issue has been automatically marked as stale because it has not had any activity since 90 days. It will be closed if no further activity occurs within 7 days. Thank you for your contributions!