diff --git a/atmosphere/operator/controllers/openstack/identity/endpoint.py b/atmosphere/operator/controllers/openstack/identity/endpoint.py
index b2a7829..df252a0 100644
--- a/atmosphere/operator/controllers/openstack/identity/endpoint.py
+++ b/atmosphere/operator/controllers/openstack/identity/endpoint.py
@@ -1,20 +1,11 @@
 import kopf
-from kopf._cogs.structs import patches, references
+from kopf._cogs.structs import patches
 
 from atmosphere import clients
 from atmosphere.operator.api.openstack import identity
 from atmosphere.operator.controllers.openstack import utils as openstack_utils
 
 
-@kopf.on.validate(
-    identity.Endpoint.version,
-    identity.Endpoint.kind,
-    operation="UPDATE",
-)
-def disallow_endpoint_update(resource: references.Resource, **_):
-    raise kopf.AdmissionError(f"{resource.kind} is immutable.")
-
-
 @kopf.on.create(identity.Endpoint.version, identity.Endpoint.kind)
 def create_fn(namespace: str, spec: dict, patch: patches.Patch, **_):
     api = clients.get_pykube_api()
diff --git a/atmosphere/operator/controllers/openstack/identity/implied_role.py b/atmosphere/operator/controllers/openstack/identity/implied_role.py
index af603c5..2edb8e6 100644
--- a/atmosphere/operator/controllers/openstack/identity/implied_role.py
+++ b/atmosphere/operator/controllers/openstack/identity/implied_role.py
@@ -1,20 +1,10 @@
 import kopf
-from kopf._cogs.structs import references
 
 from atmosphere import clients
 from atmosphere.operator.api.openstack import identity
 from atmosphere.operator.controllers.openstack import utils as openstack_utils
 
 
-@kopf.on.validate(
-    identity.ImpliedRole.version,
-    identity.ImpliedRole.kind,
-    operation="UPDATE",
-)
-def disallow_implied_role_update(resource: references.Resource, **_):
-    raise kopf.AdmissionError(f"{resource.kind} is immutable.")
-
-
 @kopf.on.create(identity.ImpliedRole.version, identity.ImpliedRole.kind)
 def create_fn(namespace: str, spec: dict, **_):
     osc = openstack_utils.get_client(namespace)
diff --git a/atmosphere/operator/controllers/openstack/identity/role.py b/atmosphere/operator/controllers/openstack/identity/role.py
index 4b8987c..34b1c21 100644
--- a/atmosphere/operator/controllers/openstack/identity/role.py
+++ b/atmosphere/operator/controllers/openstack/identity/role.py
@@ -1,19 +1,10 @@
 import kopf
-from kopf._cogs.structs import patches, references
+from kopf._cogs.structs import patches
 
 from atmosphere.operator.api.openstack import identity
 from atmosphere.operator.controllers.openstack import utils as openstack_utils
 
 
-@kopf.on.validate(
-    identity.Role.version,
-    identity.Role.kind,
-    operation="UPDATE",
-)
-def disallow_role_update(resource: references.Resource, **_):
-    raise kopf.AdmissionError(f"{resource.kind} is immutable.")
-
-
 @kopf.on.create(identity.Role.version, identity.Role.kind)
 def create_fn(namespace: str, name: str, spec: dict, patch: patches.Patch, **_):
     osc = openstack_utils.get_client(namespace)
diff --git a/atmosphere/operator/controllers/openstack/identity/service.py b/atmosphere/operator/controllers/openstack/identity/service.py
index 40b8ff2..0f24f0c 100644
--- a/atmosphere/operator/controllers/openstack/identity/service.py
+++ b/atmosphere/operator/controllers/openstack/identity/service.py
@@ -1,19 +1,10 @@
 import kopf
-from kopf._cogs.structs import patches, references
+from kopf._cogs.structs import patches
 
 from atmosphere.operator.api.openstack import identity
 from atmosphere.operator.controllers.openstack import utils as openstack_utils
 
 
-@kopf.on.validate(
-    identity.Service.version,
-    identity.Service.kind,
-    operation="UPDATE",
-)
-def disallow_service_update(resource: references.Resource, **_):
-    raise kopf.AdmissionError(f"{resource.kind} is immutable.")
-
-
 @kopf.on.create(identity.Service.version, identity.Service.kind)
 def create_fn(namespace: str, name: str, spec: dict, patch: patches.Patch, **_):
     osc = openstack_utils.get_client(namespace)
