// Module included in the following assemblies: // // * operators/understanding/olm-packaging-format.adoc :_mod-docs-content-type: CONCEPT [id="olm-rukpak-bundle-immutability_{context}"] = Bundle immutability After a `Bundle` object is accepted by the API server, the bundle is considered an immutable artifact by the rest of the RukPak system. This behavior enforces the notion that a bundle represents some unique, static piece of content to source onto the cluster. A user can have confidence that a particular bundle is pointing to a specific set of manifests and cannot be updated without creating a new bundle. This property is true for both standalone bundles and dynamic bundles created by an embedded `BundleTemplate` object. Bundle immutability is enforced by the core RukPak webhook. This webhook watches `Bundle` object events and, for any update to a bundle, checks whether the `spec` field of the existing bundle is semantically equal to that in the proposed updated bundle. If they are not equal, the update is rejected by the webhook. Other `Bundle` object fields, such as `metadata` or `status`, are updated during the bundle's lifecycle; it is only the `spec` field that is considered immutable. Applying a `Bundle` object and then attempting to update its spec should fail. For example, the following example creates a bundle: [source,terminal] ---- $ oc apply -f -<