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

Add a skip about CRD domains #5

Merged
merged 1 commit into from
Aug 26, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions proposals/00X-crd-domains/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# SKIP 00X - CRD Domains

Summary: We should pivot to using the _spinkube.dev_ domain for all CRDs.

Owner: Caleb Schoepp <[email protected]>

Impacted Projects:

- [x] spin-operator
- [ ] `spin kube` plugin
- [x] runtime-class-manager
- [ ] containerd-shim-spin
- [ ] Governance
- [ ] Creates a new project

Created: 11/07/2024

Updated: n/a

## Background

Kubernetes resources are identified by a unique [group, version, and kind](https://book.kubebuilder.io/cronjob-tutorial/gvks). Furthermore, the resource must be namespaced under a valid domain name. Currently the Spin Operator project has two custom resource definitions (CRDs): `SpinApp` and `SpinAppExecutor`. These CRDs use the domain _spinoperator.dev_.

## Proposal

I am proposing that we migrate from using _spinoperator.dev_ to _spinkube.dev_ as the domain for the Spin Operator CRDs. I also propose that going forward any new CRDs created by the Spin Operator project or any other SpinKube project use the _spinkube.dev_ domain.

The benefit of this change include:

- Consistency: All SpinKube projects will use the same domain for their CRDs.
- Branding: The _spinkube.dev_ domain is more descriptive of the overall project than _spinoperator.dev_.
- Future Proofing: The _spinkube.dev_ domain is more generic and allows for more flexibility in the future should anything about the Spin Operator change.

Changing the domain of a CRD is a breaking change and will require a full upgrade process which involves uninstalling the old CRDs and reinstalling the new CRDs. This is suboptimal, but is only reasonably achievable early in the lifetime of project like we are right now. Breaking changes like this only get harder the longer we wait.

## Alternatives Considered

### Sticking with _spinoperator.dev_

Alternatively, we could stick with the status quo if we don't think the breaking change is worth it.