The kubebuilder scaffolding command includes a repo and domain e.g.
kubebuilder init --domain tutorial.kubebuilder.io --repo tutorial.kubebuilder.io/project
I found following text in kubebuilder book about "domain":
domain: Store the domain of the project. This information can be provided by the user when the project is generate with the init sub-command and the domain flag. And domain: domain for groups (default "my.domain")
I understand domain is usually to set boundaries to avoid naming conflicts e.g. different teams in a company can use different domains/sub-domains and have freedom of choosing names under that domain/sub-domain. But in the context of a kubebuilder project:
- What name conflicts are we avoiding here ? What if teams are different but still they deploy to a shared cluster ? What if domain name itself is duplicate ? When do you figure out there's a conflict ?
- What are the functional implications of a domain e.g. on CRDs, on APIs etc. ?
- Can you change it later and any gotchas ?
- Can you have no domain at all, not even default - my.domain ?
I'm aware that these answers could be much longer for a post if elaborated, any guidance or material in this context would help. Thanks.