// Module included in the following assemblies:
//
// * extensions/ce/olmv1-configuring-extensions.adoc

:_mod-docs-content-type: REFERENCE
[id="olmv1-config-api-watch-namespace-requirements_{context}"]
= Watch namespace configuration requirements

[role="_abstract"]
Avoid installation failures by using the correct `watchNamespace` value for the install modes supported by your bundle. Requirements vary based on whether the bundle supports `AllNamespaces`, `OwnNamespace`, and `SingleNamespace` install modes.

{olmv0} `registry+v1` bundles declare the install modes they support. These install modes control whether `watchNamespace` configuration is required or optional, and what values are valid.

[NOTE]
====
{olmv1} does not support multi-tenancy. You cannot install the same extension more than once on a cluster. As a result, the `MultiNamespace` install mode is not supported.
====

`AllNamespaces`:: Watches resources across all namespaces in the cluster.
`OwnNamespace`:: Watches resources only in the installation namespace.
`SingleNamespace`:: Watches resources in a single namespace that differs from the installation namespace.

Whether the `.spec.config.inline.watchNamespace` field is required depends on the install modes that the bundle supports.

.Watch namespace requirements by bundle capability
[cols="2,1,3",options="header"]
|===
| Bundle install mode support | watchNamespace field | Valid values

| `AllNamespaces` mode only
| Not applicable
| The `watchNamespace` field is not supported. Extensions watch all namespaces.

| `OwnNamespace` mode only
| Required
| Must match `.spec.namespace` field

| `SingleNamespace` mode only
| Required
| Must differ from `.spec.namespace` field

| Both `OwnNamespace` and `SingleNamespace` install modes
| Required
| Can match or differ from `.spec.namespace` field

| `AllNamespaces` install mode with one or both of the `OwnNamespace` and `SingleNamespace` install modes
| Optional
| Omit to watch all namespaces, or specify a namespace to watch only that namespace

|===

[IMPORTANT]
====
{olmv1} validates the `watchNamespace` value based on the install mode support that is declared by the bundle. The installation fails with a validation error if you specify an invalid value or omit a required field.
====
