Spaces allow teams to develop together in a single kubernetes cluster. In essence spaces are isolated kubernetes namespaces and developers can create them whenever they need them.
DevSpace automatically configures their kube context locally so they are able to access kubernetes directly with DevSpace and all their other favourite tools like kubectl, helm and kustomize.
DevSpace Cloud automatically sets up RBAC, resource quotas, network policies, pod security policies etc. to isolate these namespaces and makes sure that developers stay within the borders of their Spaces. Administrators are able to configure everything from limits for computing resources to custom resource templates that will be deployed automatically during space creation.
Why use a space?
Spaces have the following benefits:
- Automatic provisioning via
devspace create space [SPACE_NAME]
- Automatic local kube context configuration
- Automatic allocation of a subdomain for each Space, e.g.
my-app.devspace.hostand ingress creation via
- Automatic RBAC configuration for better isolation of users
- Automatic resource limit configuration and enforcement
- Resource auto-scaling within the configured limits
- Automatic deployment of predefined manifests on space creation
- Vast majority of options how to configure a Space default settings
You can create Spaces that either run on DevSpace Cloud (will get a
.devspace.host subdomain) or on your own Kubernetes clusters (external Spaces with an automatically provisioned subdomain of one of your domains).