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

Create a separate go module for API #968

Open
6 tasks
unmarshall opened this issue Jan 6, 2025 · 0 comments
Open
6 tasks

Create a separate go module for API #968

unmarshall opened this issue Jan 6, 2025 · 0 comments
Assignees
Labels
area/control-plane Control plane related area/dev-productivity Developer productivity related (how to improve development) kind/api-change API change with impact on API users kind/enhancement Enhancement, improvement, extension
Milestone

Comments

@unmarshall
Copy link
Contributor

How to categorize this issue?

/area control-plane
/area dev-productivity
/kind enhancement
/kind api-change

What would you like to be added:

  • Introduce a new go module for API (go and CRD).
  • Remove etcd-druid/config folder and move samples out into example folder at the top level.
  • Move the CRDs into api go module and create a golang API to access them from outside etcd-druid.
  • Adjust the generate scripts to generate the CRDs into the API go module.
  • Remove the current api/validation - this task as a dependency on [Feature] Introduce validating webhook #409
  • Adjust the documentation, reflecting the above changes.

Why is this needed:

For programmatically provisioning etcd-druid operator following is needed:

  • Access to the CRDs
  • Golang API types representing the custom resources

Today we have both the API and the implementation in the same go module. In addition we do not provide API access to the CRDs as well. As a consequence we see the following in Gardener:

  • Gardener has to re-generate the CRDs and keep a copy of them in their repository
  • Due to the dependency on the API it currently needs to have a dependency on the whole etcd-druid go module. This creates a circular dependency as etcd-druid currently uses utilities from gardener code base as well.
@unmarshall unmarshall added this to the v0.27.0 milestone Jan 6, 2025
@shreyas-s-rao shreyas-s-rao added area/control-plane Control plane related area/dev-productivity Developer productivity related (how to improve development) kind/api-change API change with impact on API users kind/enhancement Enhancement, improvement, extension labels Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/control-plane Control plane related area/dev-productivity Developer productivity related (how to improve development) kind/api-change API change with impact on API users kind/enhancement Enhancement, improvement, extension
Projects
None yet
Development

No branches or pull requests

2 participants