// Module included in the following assemblies:
//
// * openshift_images/configuring_samples_operator.adoc


[id="samples-operator-configuration_{context}"]
= Samples Operator configuration parameters

The samples resource offers the following configuration fields:

[cols="3a,8a",options="header"]
|===
|Parameter |Description

|`managementState`
|`Managed`: The Samples Operator updates the samples as the configuration
dictates.

`Unmanaged`: The Samples Operator ignores updates to its configuration
resource object and any imagestreams or templates in the OpenShift namespace.

`Removed`: The Samples Operator removes the set of `Managed` imagestreams
and templates in the OpenShift namespace. It ignores new samples created by the
cluster administrator or any samples in the skipped lists. After the removals are
complete, the Samples Operator works like it is in the `Unmanaged` state and ignores
any watch events on the sample resources, imagestreams, or templates.

[NOTE]
====
Neither deletion nor setting the `Management State` to `Removed` are completed
while imagestream imports are still in progress. Once progress has completed,
either in success or in error, the deletion or removal commences.

Secret, imagestream, and template watch events are ignored once deletion or
removal has started.
====

|`samplesRegistry`
|Overrides the registry from which images are imported.

[NOTE]
====
Creation or update of RHEL content does not commence if the secret for pull
access is not in place when either `Samples Registry` is not explicitly set (i.e.,
the empty string), or when it is set to registry.redhat.io. In both cases, image
imports will work off of registry.redhat.io, which requires credentials.

Creation or update of RHEL content is not gated by the existence of the pull
secret if the `Samples Registry` is overridden to a value other than the empty
string or registry.redhat.io.
====

|`architectures`
|Placeholder to choose an architecture type. Currently only x86
is supported.

|`skippedImagestreams`
|Imagestreams that are in the Samples Operator’s inventory but that the cluster
administrator wants the Operator to ignore or not manage. You can add a list of imagestream names to this parameter. For example, `["httpd","perl"]`. 

|`skippedTemplates`
|Templates that are in the Samples Operator's inventory, but that
the cluster administrator wants the Operator to ignore or not manage.

|===

Secret, imagestream, and template watch events can come in before the initial
samples resource object is created, the Samples Operator detects and re-queues the
event.

== Configuration restrictions

When the Samples Operator starts supporting multiple architectures, the
architecture list is not allowed to be changed while in the `Managed` state.

In order to change the architectures values, a cluster administrator must:

* Mark the `Management State` as `Removed`, saving the change.
* In a subsequent change, edit the architecture and change the `Management State`
back to `Managed`.

The Samples Operator still processes secrets while in `Removed` state. You can
create the secret before switching to `Removed`, while in `Removed` before
switching to `Managed`, or after switching to `Managed` state (though there are
delays in creating the samples until the secret event is processed if you create
the secret after switching to `Managed`). This helps facilitate the
changing of the registry, where you choose to remove all the samples before
switching to insure a clean slate (removing before switching is not required).

== Conditions

The samples resource maintains the following conditions in its status:

[cols="3a,8a",options="header"]
|===
|Condition |Description

|`SamplesExists`
|Indicates the samples are created in the OpenShift namespace.

|`ImageChangesInProgress`
|`True` when imagestreams are created or updated, but
not all of the tag spec generations and tag status generations match.

`False` when all of the generations match, or unrecoverable errors occurred during
import, the last seen error is in the message field. The list of pending
imagestreams is in the reason field.

|`ImportCredentialsExist`
|A `samples-registry-credentials` secret is copied into the OpenShift namespace.

|`ConfigurationValid`
|`True` or `False` based on whether any of the restricted changes noted
previously are submitted.

|`RemovePending`
|Indicator that there is a `Management State: Removed` setting pending, but are
waiting for in progress imagestreams to complete.

|`ImportImageErrorsExist`
|Indicator of which imagestreams had errors during the image import phase for
one of their tags.

`True` when an error has occurred. The list of imagestreams with an error is
in the reason field. The details of each error reported are in the
message field.

|`MigrationInProgress`
|`True` when the Samples Operator detects that the version is different than the
Samples Operator version with which the current samples set are installed.

|===
