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

Space Templates: Provide pre-configured templates for creating spaces that include common resource quotas, network policies, role bindings, etc #43

Closed
smileisak opened this issue May 27, 2023 · 4 comments
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request go PR that updates go code helm Helm chart related work lifecycle/frozen

Comments

@smileisak
Copy link
Member

smileisak commented May 27, 2023

Description

The current setup for creating Spaces with Nauticus is straightforward, but often, administrators find themselves repeatedly configuring the same set of parameters, such as resource quotas, network policies, role bindings, etc. This repetition becomes a hindrance to efficiency. To streamline this process and make space creation more efficient, we propose the introduction of Space Templates.

Space Templates would be pre-configured templates that administrators could create, which include common configurations (e.g., resource quotas, network policies, role bindings, etc.).

Usage

A Space Template could be referenced in the Space resource during creation, and any spec within the Space resource would override the corresponding parameters in the Space Template.

Example:

apiVersion: nauticus.io/v1alpha1
kind: Space
metadata:
  name: my-space
spec:
  template: 
    name: my-template
    namespace: nauticus-system
  networkPolicy: 
    .... # This would override the network policy in 'my-space'

Here, my-template would be another Kubernetes custom resource of kind SpaceTemplate.

apiVersion: nauticus.io/v1alpha1
kind: SpaceTemplate
metadata:
  name: my-template
  namespace: nauticus-system
spec:
  resourceQuota: 
    ...
  networkPolicy: 
    ...
  roleBindings:
    ...

Deliverables

  1. Define the SpaceTemplate CRD.
  2. Update the Space CRD to reference a SpaceTemplate.
  3. Update the Nauticus controller to handle SpaceTemplate references and overrides.
  4. Update the documentation to include SpaceTemplate usage.

This feature would greatly streamline the creation of Spaces and improve the efficiency of administrators. I look forward to seeing this implemented!

@smileisak smileisak added enhancement New feature or request documentation Improvements or additions to documentation helm Helm chart related work go PR that updates go code labels May 27, 2023
@github-actions
Copy link

This is stale, but we won't close it automatically, just bare in mind the maintainers may be busy with other tasks and will reach your issue ASAP. If you have any question or request to prioritize this, please reach #nauticus on Kubernetes Slack.

@abelhoula
Copy link
Collaborator

#47

@btwseeu78
Copy link

btwseeu78 commented Oct 19, 2023

Also with option to merge very specific changes on top of them, so we don't end up creating lot of template just because I want to change a particular param only for a specific namespace.

Copy link

This is stale, but we won't close it automatically, just bare in mind the maintainers may be busy with other tasks and will reach your issue ASAP. If you have any question or request to prioritize this, please reach #nauticus on Kubernetes Slack.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request go PR that updates go code helm Helm chart related work lifecycle/frozen
Projects
None yet
Development

No branches or pull requests

3 participants