Skip to content

Automatically create personal organization#64

Merged
scotwells merged 20 commits intomilo-refactorfrom
create-personal-organization
Jul 18, 2025
Merged

Automatically create personal organization#64
scotwells merged 20 commits intomilo-refactorfrom
create-personal-organization

Conversation

@scotwells
Copy link
Collaborator

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.

Copy link

@brandon-burciaga brandon-burciaga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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!

@github-project-automation github-project-automation bot moved this from Todo to Done in Datum Launch Release Jul 9, 2025
@scotwells
Copy link
Collaborator Author

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.

@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.

Copy link

@brandon-burciaga brandon-burciaga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good ✅

@scotwells scotwells merged commit f7481a6 into milo-refactor Jul 18, 2025
6 of 10 checks passed
@scotwells scotwells deleted the create-personal-organization branch July 18, 2025 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants