Automatically create personal organization#64
Conversation
internal/controller/resourcemanager/personal_organization_controller.go
Outdated
Show resolved
Hide resolved
brandon-burciaga
left a comment
There was a problem hiding this comment.
Looks good to me!
Left a note - this is where I was thinking the default ResouceGrant would be created as part of org bootstrapping, enabling quota limits on number of projects per organization.
One question I have: I assume that being explicit that this is a "personal" organization means the ability to create a "shared" organization will be provided in the future. Is that correct? If not, would we want to remove the "personal" part of this? My thoughts are that once an organization is created, the administrator of that organization should be able to add/invite other users to that org and set their role. This will come later, but wanted to bring it up.
Nice work!
@brandon-burciaga correct, the personal organization is automatically created for them on Datum Cloud. This is not baked into Milo in case users that adopt Milo don't have the same restrictions. The Organization entity has a type field with a few options to help categorize the Organization. type OrganizationSpec struct {
// The type of organization.
// +kubebuilder:validation:Required
// +kubebuilder:validation:Enum=Personal;Business;Government;Research;Education;Nonprofit;Other
Type string `json:"type"`Right now these types don't influence any functionality, but the goal would be to drive quota enablement based on organization type. An example would be preventing Personal Organizations from having any Organization Members or being restricted to a single project. |
This PR introduces a new controller that will automatically create a personal organization for every user that's created within Milo. This also introduces a new GitHub action workflow to publish the kustomize manifests and docker container.