// Module included in the following assemblies:
//
// * rest_api/understanding-compatibility-guidelines.adoc
// * microshift_rest_api/understanding-compatibility-guidelines.adoc

:_mod-docs-content-type: REFERENCE
[id="api-compatibility-exceptions_{context}"]
= API compatibility exceptions

The following are exceptions to compatibility in {product-title}:

ifndef::microshift[]

[id="OS-file-system-modifications-not-made_{context}"]
== RHEL CoreOS file system modifications not made with a supported Operator

No assurances are made at this time that a modification made to the host operating file system is preserved across minor releases except for where that modification is made through the public interface exposed via a supported Operator, such as the Machine Config Operator or Node Tuning Operator.


[id="modifications-to-cluster-infrastructure-in-cloud_{context}"]
== Modifications to cluster infrastructure in cloud or virtualized environments

No assurances are made at this time that a modification to the cloud hosting environment that supports the cluster is preserved except for where that modification is made through a public interface exposed in the product or is documented as a supported configuration. Cluster infrastructure providers are responsible for preserving their cloud or virtualized infrastructure except for where they delegate that authority to the product through an API.
endif::microshift[]


[id="Functional-defaults-between-upgraded-cluster-new-installation_{context}"]
== Functional defaults between an upgraded cluster and a new installation

No assurances are made at this time that a new installation of a product minor release will have the same functional defaults as a version of the product that was installed with a prior minor release and upgraded to the equivalent version. For example, future versions of the product may provision cloud infrastructure with different defaults than prior minor versions. In addition, different default security choices may be made in future versions of the product than those made in past versions of the product. Past versions of the product will forward upgrade, but preserve legacy choices where appropriate specifically to maintain backwards compatibility.


[id="API-fields-that-have-the-prefix-unsupported-annotations_{context}"]
== Usage of API fields that have the prefix "unsupported” or undocumented annotations

Select APIs in the product expose fields with the prefix `unsupported<FieldName>`. No assurances are made at this time that usage of this field is supported across releases or within a release. Product support can request a customer to specify a value in this field when debugging specific problems, but its usage is not supported outside of that interaction. Usage of annotations on objects that are not explicitly documented are not assured support across minor releases.


[id="API-availability-per-product-installation-topology_{context}"]
== API availability per product installation topology
The OpenShift distribution will continue to evolve its supported installation topology, and not all APIs in one install topology will necessarily be included in another. For example, certain topologies may restrict read/write access to particular APIs if they are in conflict with the product installation topology or not include a particular API at all if not pertinent to that topology. APIs that exist in a given topology will be supported in accordance with the compatibility tiers defined above.
