> For the complete documentation index, see [llms.txt](https://docs.seldon.ai/seldon-enterprise-platform/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.seldon.ai/seldon-enterprise-platform/operations/namespace-setup.md).

# Namespaces

> Managing Kubernetes namespaces for Seldon Enterprise Platform

Namespaces are where your models are deployed. You can set up GitOps and access controls on a per-namespace basis.

For an introduction to namespaces in Kubernetes, please refer to the [official documentation](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/). The rest of this guide discusses namespaces in the context of Seldon Enterprise Platform.

## Namespace Detection

Seldon Enterprise Platform requires namespaces to be labelled for use with ML deployments. Otherwise, it will not detect them and so cannot manage resources within them.

You can create a new namespace and make it visible to Enterprise Platform using the following commands:

```bash
NAMESPACE=<name>
kubectl create namespace $NAMESPACE || echo "namespace $NAMESPACE already exists"
kubectl label namespace $NAMESPACE seldon.restricted=false --overwrite=true
```

This is the minimum needed to use a namespace.

## GitOps

Seldon Enterprise Platform supports GitOps with ArgoCD to manage deployments to a namespace through git.

A namespace can be set up for GitOps with Seldon Enterprise Platform by providing suitable metadata. See [the GitOps section](/seldon-enterprise-platform/production-environment/gitops.md) for a detailed guide on how to achieve this.

## Authorization Policies

Seldon Enterprise Platform supports both user-based and group-based authorization policies to control visibility and permissions for namespaces. See the [installation](/seldon-enterprise-platform/production-environment/authorization.md) and [operations](/seldon-enterprise-platform/operations/authorization.md#opa-policies) guides for more details.

Namespaces that the user has access to appear in a drop-down namespace selector in the top-right:

![namespaceselector](/files/ajx8hLl1aalk8LvGM3kC)

From there the user can search for or choose to drill into deployments:

![DeploymentsFilter](/files/uu7NyEVDLVG9Ej5dQIVd)

## Multi-Tenancy

In a multi-tenant setup, Enterprise Platform is not automatically provided with permissions to manage multiple namespaces. Instead, each namespace needs further permissions to be defined. Details on this can be found in the [multi-tenant section](/seldon-enterprise-platform/multi-tentant-environment.md).

## Special Namespaces

The `seldon-logs` namespace is used for infrastructure for inference request logging. It is a special namespace and its setup is covered in the [request logging section](/seldon-enterprise-platform/production-environment/request-logging.md). This namespace **should not** be used for ML deployments.
