diff --git a/bin/sync_docs.sh b/bin/sync_docs.sh
new file mode 100644
index 0000000000..6b383e4548
--- /dev/null
+++ b/bin/sync_docs.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+######
+# This script synchronizes content to the downstream repository.
+# A Jenkins job configures the source and target repositories and runs this script directly.
+# If you commit changes to this script you should verify the Jenkins job runs successfully.
+######
+
+# Set the path to the source and target directories.
+# The source directory contains the content that you want to synchronize.
+source=source
+# The target directory is the location where you want to synchronize content.
+target=target
+
+# Clean the existing downstream and release-note folders.
+rm -rf $target/downstream
+
+# Copy the content of the downstream and release-note folders.
+cp -r $source/downstream $target/downstream
diff --git a/bin/sync_ocp_latest.sh b/bin/sync_ocp_latest.sh
new file mode 100644
index 0000000000..217c388759
--- /dev/null
+++ b/bin/sync_ocp_latest.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# Set the path to the file that contains the ":OCPLatest:" attribute.
+attributes=../downstream/attributes/attributes.adoc
+
+# Retrieve the OCP attributes file from the OpenShift docs repository.
+curl https://raw.githubusercontent.com/openshift/openshift-docs/main/_attributes/ocp-attributes.adoc -o ocp-attributes.adoc
+# Save the value of the "product-version" attribute as a variable.
+ocpversion=$(sed -n -e 's/^:product-version: //p' ocp-attributes.adoc)
+# Replace the value of the "OCPLatest" attribute with the value of the "product-version" attribute.
+sed -i -e "s/^:OCPLatest:.*/:OCPLatest: $ocpversion/" $attributes
+# Delete the OCP attributes file.
+rm -f ocp-attributes.adoc
diff --git a/downstream/aap-common/apache-2.0-license.adoc b/downstream/aap-common/apache-2.0-license.adoc
index ee991a7b92..58c9198756 100644
--- a/downstream/aap-common/apache-2.0-license.adoc
+++ b/downstream/aap-common/apache-2.0-license.adoc
@@ -4,7 +4,7 @@
= Open Source license
-.Apache license
+*Apache license*
Version 2.0, January 2004
diff --git a/downstream/aap-common/assembly-aap-common.adoc b/downstream/aap-common/assembly-aap-common.adoc
index 3f3f998b4f..90612da64a 100644
--- a/downstream/aap-common/assembly-aap-common.adoc
+++ b/downstream/aap-common/assembly-aap-common.adoc
@@ -1,3 +1,5 @@
+:_mod-docs-content-type: ASSEMBLY
+
ifdef::context[:parent-context: {context}]
[preface]
[id='ansible-automation-platform']
diff --git a/downstream/aap-common/gplv3-license-text.adoc b/downstream/aap-common/gplv3-license-text.adoc
index eedc09a976..7fd30c18e0 100644
--- a/downstream/aap-common/gplv3-license-text.adoc
+++ b/downstream/aap-common/gplv3-license-text.adoc
@@ -4,16 +4,15 @@
= Open Source license
-.GNU GENERAL PUBLIC LICENSE
+*GNU GENERAL PUBLIC LICENSE*
Version 3, 29 June 2007
-Copyright © 2007 Free Software Foundation, Inc.<>
+Copyright © 2007 Free Software Foundation, Inc. link:https://fsf.org/
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
-[discrete]
-==== Preamble
+*Preamble*
The GNU General Public License is a free, copyleft license for software and other kinds of works.
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.
@@ -34,10 +33,9 @@ Finally, every program is threatened constantly by software patents. States shou
The precise terms and conditions for copying, distribution and modification follow.
-[discrete]
-==== TERMS AND CONDITIONS
+*TERMS AND CONDITIONS*
-.0. Definitions.
+*0. Definitions.*
“This License” refers to version 3 of the GNU General Public License.
“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
@@ -54,7 +52,7 @@ To “convey” a work means any kind of propagation that enables other parties
An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
-.1. Source Code.
+*1. Source Code.*
The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.
A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
@@ -67,24 +65,24 @@ The Corresponding Source need not include anything that users can regenerate aut
The Corresponding Source for a work in source code form is that same work.
-.2. Basic Permissions.
+*2. Basic Permissions.*
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
-.3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+*3. Protecting Users' Legal Rights From Anti-Circumvention Law.*
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
-.4. Conveying Verbatim Copies.
+*4. Conveying Verbatim Copies.*
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
-.5. Conveying Modified Source Versions.
+*5. Conveying Modified Source Versions.*
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
* a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
@@ -93,7 +91,7 @@ You may convey a work based on the Program, or the modifications to produce it f
* d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
-.6. Conveying Non-Source Forms.
+*6. Conveying Non-Source Forms.*
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
* a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
@@ -114,7 +112,7 @@ The requirement to provide Installation Information does not include a requireme
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
-.7. Additional Terms.
+*7. Additional Terms.*
“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
@@ -134,7 +132,7 @@ If you add terms to a covered work in accord with this section, you must place,
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
-.8. Termination.
+*8. Termination.*
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
@@ -143,17 +141,17 @@ Moreover, your license from a particular copyright holder is reinstated permanen
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
-.9. Acceptance Not Required for Having Copies.
+*9. Acceptance Not Required for Having Copies.*
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
-.10. Automatic Licensing of Downstream Recipients.
+*10. Automatic Licensing of Downstream Recipients.*
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
-.11. Patents.
+*11. Patents.*
A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”.
A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
@@ -170,13 +168,13 @@ A patent license is “discriminatory” if it does not include within the scope
Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
-.12. No Surrender of Others' Freedom.
+*12. No Surrender of Others' Freedom.*
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
-.13. Use with the GNU Affero General Public License.
+*13. Use with the GNU Affero General Public License.*
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.
-.14. Revised Versions of this License.
+*14. Revised Versions of this License.*
The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.
@@ -185,18 +183,18 @@ If the Program specifies that a proxy can decide which future versions of the GN
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
-.15. Disclaimer of Warranty.
+*15. Disclaimer of Warranty.*
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-.16. Limitation of Liability.
+*16. Limitation of Liability.*
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-.17. Interpretation of Sections 15 and 16.
+*17. Interpretation of Sections 15 and 16.*
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
-[discrete]
-==== How to Apply These Terms to Your New Programs
+
+*How to Apply These Terms to Your New Programs*
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.
@@ -228,7 +226,7 @@ If the program does terminal interaction, make it output a short notice like thi
----
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”.
-You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <>.
+You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see link:https://www.gnu.org/licenses/.
-The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <>.
+The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read link:https://www.gnu.org/licenses/why-not-lgpl.html.
diff --git a/downstream/archive/archived-assemblies/builder/assembly-definition-file-breakdown.adoc b/downstream/archive/archived-assemblies/builder/assembly-definition-file-breakdown.adoc
index d7f64972ad..8937154765 100644
--- a/downstream/archive/archived-assemblies/builder/assembly-definition-file-breakdown.adoc
+++ b/downstream/archive/archived-assemblies/builder/assembly-definition-file-breakdown.adoc
@@ -19,4 +19,4 @@ include::builder/con-additional-custom-build-steps.adoc[leveloffset=+1]
[role="_additional-resources"]
== Additional resources
-* For example definition files for common scenarios, see the link:https://ansible.readthedocs.io/projects/builder/en/latest/scenario_guides/scenario_copy/[Common scenarios section] of the _Ansible Builder Documentation_
+* link:https://ansible.readthedocs.io/projects/builder/en/latest/scenario_guides/scenario_copy/[Common scenarios section]
\ No newline at end of file
diff --git a/downstream/archive/archived-assemblies/dev-guide/assembly-migrate-ansible-versions.adoc b/downstream/archive/archived-assemblies/dev-guide/assembly-migrate-ansible-versions.adoc
index 31196fcfd1..93275acd75 100644
--- a/downstream/archive/archived-assemblies/dev-guide/assembly-migrate-ansible-versions.adoc
+++ b/downstream/archive/archived-assemblies/dev-guide/assembly-migrate-ansible-versions.adoc
@@ -22,8 +22,8 @@ The Ansible _Porting Guide_ is a series of documents that provide information on
[role="_additional-resources"]
== Additional resources
-* Refer to the link:https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.9.html#ansible-2-9-porting-guide[Ansible 2.9] for behavior changes between Ansible 2.8 and Ansible 2.9.
-* Refer to the link:https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.10.html[Ansible 2.10] for behavior changes between Ansible 2.9 and Ansible 2.10.
+* link:https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.9.html#ansible-2-9-porting-guide[Ansible 2.9]
+* link:https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.10.html[Ansible 2.10]
ifdef::parent-context[:context: {parent-context}]
diff --git a/downstream/archive/archived-assemblies/dev-guide/assembly-tools-components.adoc b/downstream/archive/archived-assemblies/dev-guide/assembly-tools-components.adoc
index 14f41d02c6..72e4161057 100644
--- a/downstream/archive/archived-assemblies/dev-guide/assembly-tools-components.adoc
+++ b/downstream/archive/archived-assemblies/dev-guide/assembly-tools-components.adoc
@@ -28,8 +28,8 @@ include::core/con-about-ansible-cli.adoc[leveloffset=+1]
[role="_additional-resources"]
== Additional resources
-* For more information on how to use Ansible as a command line tool, refer to link:https://docs.ansible.com/ansible/latest/command_guide/command_line_tools.html[Working with command line tools] in the Ansible _User Guide_.
-* To upload content to {HubName}, see link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html/getting_started_with_automation_hub/uploading-content-hub[Uploading content to automation hub] in the {PlatformNameShort} product documentation.
+* link:https://docs.ansible.com/ansible/latest/command_guide/command_line_tools.html[Working with command line tools]
+* link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html/getting_started_with_automation_hub/uploading-content-hub[Uploading content to automation hub]
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
diff --git a/downstream/archive/archived-assemblies/platform/assembly-supported-installation-scenarios.adoc b/downstream/archive/archived-assemblies/platform/assembly-supported-installation-scenarios.adoc
index fe7ac3ba19..582baeeca4 100644
--- a/downstream/archive/archived-assemblies/platform/assembly-supported-installation-scenarios.adoc
+++ b/downstream/archive/archived-assemblies/platform/assembly-supported-installation-scenarios.adoc
@@ -4,8 +4,6 @@
Red Hat supports the following installations scenarios for {PlatformName}:
-[role="_additional-resources"]
-.Additional resources
To edit inventory file parameters to specify a supported installation scenario, see link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html/red_hat_ansible_automation_platform_installation_guide/assembly-platform-install-scenario#con-install-scenario-examples[Inventory file examples based on installation scenarios] in the _{PlatformName} Installation Guide_.
//[dcd 12/8/2022 Removing links until new guides are published because some topics were removed and others were added.]
diff --git a/downstream/archive/archived-assemblies/platform/assembly-using-rhsso-operator-with-automation-hub.adoc b/downstream/archive/archived-assemblies/platform/assembly-using-rhsso-operator-with-automation-hub.adoc
index e3cc82310f..8da6cf8516 100644
--- a/downstream/archive/archived-assemblies/platform/assembly-using-rhsso-operator-with-automation-hub.adoc
+++ b/downstream/archive/archived-assemblies/platform/assembly-using-rhsso-operator-with-automation-hub.adoc
@@ -35,9 +35,10 @@ include::platform/proc-installing-hub-using-operator.adoc[leveloffset=2]
include::platform/proc-determine-hub-route.adoc[leveloffset=2]
include::platform/proc-update-rhsso-client.adoc[leveloffset=2]
+[role="_additional-resources"]
== Additional resources
-* For more information on running operators on {OCPShort}, see link:{BaseURL}/openshift_container_platform/{OCPLatest}/html/operators/index[Working with Operators in {OCPShort}] in the {OCPShort} product documentation.
+* link:{BaseURL}/openshift_container_platform/{OCPLatest}/html/operators/index[Working with Operators in {OCPShort}]
ifdef::parent-context[:context: {parent-context}]
diff --git a/downstream/archive/archived-modules/aap-hardening/ref-complex-patching-scenarios.adoc b/downstream/archive/archived-modules/aap-hardening/ref-complex-patching-scenarios.adoc
index 9c12df076f..600ff2876a 100644
--- a/downstream/archive/archived-modules/aap-hardening/ref-complex-patching-scenarios.adoc
+++ b/downstream/archive/archived-modules/aap-hardening/ref-complex-patching-scenarios.adoc
@@ -17,5 +17,7 @@ The following workflow visualization shows how the components of the example com
image:workflow.png[Workflow representation]
+[role="_additional-resources"]
.Additional resources
-For more information on workflows, see link:{URLControllerUserGuide}/controller-workflows[Workflows in automation controller].
\ No newline at end of file
+
+* link:{URLControllerUserGuide}/controller-workflows[Workflows in automation controller]
\ No newline at end of file
diff --git a/downstream/archive/archived-modules/builder/con-ansible-config-file-path.adoc b/downstream/archive/archived-modules/builder/con-ansible-config-file-path.adoc
index d962321228..a04ba42988 100644
--- a/downstream/archive/archived-modules/builder/con-ansible-config-file-path.adoc
+++ b/downstream/archive/archived-modules/builder/con-ansible-config-file-path.adoc
@@ -1,6 +1,7 @@
[id="con-ansible-config-file-path"]
= Ansible config file path
+
The `ansible_config` directive allows specifying the path to an `ansible.cfg` file to pass a token and other settings for a private account to an {HubName} server during the Collection installation stage of the build. The config file path should be relative to the definition file location, and will be copied to the generated container build context.
The `ansible.cfg` file should be formatted like the following example:
diff --git a/downstream/archive/archived-modules/devtools/proc-create-molecule-scenario.adoc b/downstream/archive/archived-modules/devtools/proc-create-molecule-scenario.adoc
index 30243c5b2b..ae2fbc5b42 100644
--- a/downstream/archive/archived-modules/devtools/proc-create-molecule-scenario.adoc
+++ b/downstream/archive/archived-modules/devtools/proc-create-molecule-scenario.adoc
@@ -4,6 +4,10 @@
[role="_abstract"]
+You can use this procedure to create a Molecule scenario for testing an Ansible playbook. The `molecule init scenario` command creates a `default/` scenario directory, which you must then rename to correspond with the playbook.
+
+.Procedure
+
. Navigate to the top level directory of your playbook project.
. Initialize a Molecule scenario:
+
@@ -51,7 +55,7 @@ molecule
└── molecule.yml
----
-== Creating scenarios for every playbook
+.Next Steps
Create a separate scenario for every playbook in your project.
diff --git a/downstream/archive/archived-modules/devtools/proc-rhdh-add-additional-scm.adoc b/downstream/archive/archived-modules/devtools/proc-rhdh-add-additional-scm.adoc
index 485255619c..f95c107c12 100644
--- a/downstream/archive/archived-modules/devtools/proc-rhdh-add-additional-scm.adoc
+++ b/downstream/archive/archived-modules/devtools/proc-rhdh-add-additional-scm.adoc
@@ -12,9 +12,9 @@ Follow the procedure below to add support for additional Source Control Manageme
. In your repository, update the `enum` and `enumNames` keys with the SCM values.
. Update the software template `action` to match your SCM type.
. Register the forked repository with your customized templates in {RHDH}.
-
++
For example, if you wanted to add GitLab as an SCM, your software template file would look similar to the following:
-
++
----
...
spec:
@@ -35,8 +35,8 @@ spec:
----
-Under the `steps` section, use the appropriate action for your SCM:
-
+. Under the `steps` section, use the appropriate action for your SCM:
++
----
steps:
...
diff --git a/downstream/archive/archived-modules/devtools/proc-devtools-run-roles-collection.adoc b/downstream/archive/archived-modules/devtools/ref-devtools-run-roles-collection.adoc
similarity index 96%
rename from downstream/archive/archived-modules/devtools/proc-devtools-run-roles-collection.adoc
rename to downstream/archive/archived-modules/devtools/ref-devtools-run-roles-collection.adoc
index b72467f11d..34c41f3ef3 100644
--- a/downstream/archive/archived-modules/devtools/proc-devtools-run-roles-collection.adoc
+++ b/downstream/archive/archived-modules/devtools/ref-devtools-run-roles-collection.adoc
@@ -1,4 +1,4 @@
-:_mod-docs-content-type: PROCEDURE
+:_mod-docs-content-type: REFERENCE
[id="devtools-run-roles-collection_{context}"]
= Running and testing your collection
diff --git a/downstream/archive/archived-modules/eda/proc-eda-set-up-token.adoc b/downstream/archive/archived-modules/eda/proc-eda-set-up-token.adoc
index 05bb0c6831..bc8c323196 100644
--- a/downstream/archive/archived-modules/eda/proc-eda-set-up-token.adoc
+++ b/downstream/archive/archived-modules/eda/proc-eda-set-up-token.adoc
@@ -28,4 +28,5 @@ The token must be in write-scope.
====
. Select btn:[Create controller token].
+.Results
After saving the new token, you are brought to the *Controller Tokens* tab where you can delete the token.
diff --git a/downstream/archive/archived-modules/platform/proc-aap-controller-yaml-restore.adoc b/downstream/archive/archived-modules/platform/proc-aap-controller-yaml-restore.adoc
index bdc5dcb316..9422ed7817 100644
--- a/downstream/archive/archived-modules/platform/proc-aap-controller-yaml-restore.adoc
+++ b/downstream/archive/archived-modules/platform/proc-aap-controller-yaml-restore.adoc
@@ -1,6 +1,7 @@
[id="aap-controller-yaml-restore"]
= Using YAML to recover the {ControllerNameStart} deployment
+
See the following procedure for how to restore a deployment of the {ControllerName} using YAML.
.Prerequisite
diff --git a/downstream/archive/archived-modules/platform/proc-controller-host-metrics.adoc b/downstream/archive/archived-modules/platform/proc-controller-host-metrics.adoc
index f15925c52c..207b45eaac 100644
--- a/downstream/archive/archived-modules/platform/proc-controller-host-metrics.adoc
+++ b/downstream/archive/archived-modules/platform/proc-controller-host-metrics.adoc
@@ -1,6 +1,7 @@
[id="proc-controller-host-metrics"]
= Host Metrics
+
//[ddacosta] I don't see a Host Metrics menu selection off the standalone navigation panel. Should it be Resources > Hosts? If so, add replace with {MenuInfrastructureHosts}
//[ddacosta] For 2.5 Host Metrics is off the Analytics menu. Use {MenuAAHostMetrics}
* From the navigation panel, select menu:Host Metrics[] to see the activity associated with hosts, which includes counts on those that have been automated, used in inventories, and deleted.
diff --git a/downstream/archive/archived-modules/platform/proc-creating-a-secret.adoc b/downstream/archive/archived-modules/platform/proc-creating-a-secret.adoc
index efefaa9855..d54f669912 100644
--- a/downstream/archive/archived-modules/platform/proc-creating-a-secret.adoc
+++ b/downstream/archive/archived-modules/platform/proc-creating-a-secret.adoc
@@ -1,6 +1,7 @@
[id="proc-creating-a-secret_{context}"]
= Creating a {RHSSO} connection secret
+
Use this procedure to create a connection secret for {RHSSO}.
.Procedure
diff --git a/downstream/archive/archived-modules/platform/proc-creating-controller-form-view.adoc b/downstream/archive/archived-modules/platform/proc-creating-controller-form-view.adoc
index 171958c6d7..28fb282926 100644
--- a/downstream/archive/archived-modules/platform/proc-creating-controller-form-view.adoc
+++ b/downstream/archive/archived-modules/platform/proc-creating-controller-form-view.adoc
@@ -1,6 +1,7 @@
[id="proc_creating-controller-form-view_{context}"]
= Creating your {ControllerName} form-view
+
Use this procedure to create your {ControllerName} using the form-view.
.Procedure
diff --git a/downstream/titles/updating-aap/docinfo.xml b/downstream/archive/archived-titles/updating-aap/docinfo.xml
similarity index 100%
rename from downstream/titles/updating-aap/docinfo.xml
rename to downstream/archive/archived-titles/updating-aap/docinfo.xml
diff --git a/downstream/titles/updating-aap/master.adoc b/downstream/archive/archived-titles/updating-aap/master.adoc
similarity index 92%
rename from downstream/titles/updating-aap/master.adoc
rename to downstream/archive/archived-titles/updating-aap/master.adoc
index 27bb46df48..1c695c6539 100644
--- a/downstream/titles/updating-aap/master.adoc
+++ b/downstream/archive/archived-titles/updating-aap/master.adoc
@@ -21,4 +21,4 @@ Upgrades from 2.4 to 2.5 are unsupported at this time. For more information, see
include::platform/assembly-update-rpm.adoc[leveloffset=+1]
include::platform/assembly-update-container.adoc[leveloffset=+1]
-// [hherbly]: moved to Installing on OCP guide per AAP-34122 include::platform/assembly-update-ocp.adoc[leveloffset=+1]
\ No newline at end of file
+// [hherbly]: moved to Installing on OCP guide per AAP-34122 include::platform/assembly-update-ocp.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/aap-migration/assembly-migration-artifact.adoc b/downstream/assemblies/aap-migration/assembly-migration-artifact.adoc
index 35befe8600..6ab9730bf9 100644
--- a/downstream/assemblies/aap-migration/assembly-migration-artifact.adoc
+++ b/downstream/assemblies/aap-migration/assembly-migration-artifact.adoc
@@ -3,6 +3,7 @@
[id="migration-artifact"]
= Migration artifact structure and verification
+[role="_abstract"]
The migration artifact is a critical component for successfully transferring your {PlatformNameShort} deployment. It packages all necessary data and configurations from your source environment.
This section details the structure of the migration artifact and includes a migration checklist for artifact verification.
diff --git a/downstream/assemblies/aap-migration/assembly-migration-prerequisites.adoc b/downstream/assemblies/aap-migration/assembly-migration-prerequisites.adoc
index da1e32a941..8abcdd9b69 100644
--- a/downstream/assemblies/aap-migration/assembly-migration-prerequisites.adoc
+++ b/downstream/assemblies/aap-migration/assembly-migration-prerequisites.adoc
@@ -3,6 +3,7 @@
[id="migration-prerequisites"]
= Migration prerequisites
+[role="_abstract"]
Prerequisites for migrating your {PlatformNameShort} deployment. For your specific migration path, ensure that you meet all necessary conditions before proceeding.
include::aap-migration/con-rpm-to-containerized-prerequisites.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/aap-migration/assembly-source-containerized.adoc b/downstream/assemblies/aap-migration/assembly-source-containerized.adoc
index ea79fe0f99..b380de83f7 100644
--- a/downstream/assemblies/aap-migration/assembly-source-containerized.adoc
+++ b/downstream/assemblies/aap-migration/assembly-source-containerized.adoc
@@ -3,6 +3,7 @@
[id="source-containerized"]
= Container-based {PlatformNameShort}
+[role="_abstract"]
Prepare and export data from your container-based {PlatformNameShort} deployment.
include::aap-migration/proc-containerized-source-environment-preparation-assessment.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/aap-migration/assembly-source-rpm.adoc b/downstream/assemblies/aap-migration/assembly-source-rpm.adoc
index 9b661f385f..d6b54a9617 100644
--- a/downstream/assemblies/aap-migration/assembly-source-rpm.adoc
+++ b/downstream/assemblies/aap-migration/assembly-source-rpm.adoc
@@ -3,6 +3,7 @@
[id="source-rpm"]
= RPM-based {PlatformNameShort}
+[role="_abstract"]
Prepare and export data from your RPM-based {PlatformNameShort} deployment.
include::aap-migration/proc-rpm-environment-source-prep.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/aap-migration/assembly-target-containerized.adoc b/downstream/assemblies/aap-migration/assembly-target-containerized.adoc
index bed0505c07..216b25bab3 100644
--- a/downstream/assemblies/aap-migration/assembly-target-containerized.adoc
+++ b/downstream/assemblies/aap-migration/assembly-target-containerized.adoc
@@ -3,6 +3,7 @@
[id="target-containerized"]
= Container-based {PlatformNameShort}
+[role="_abstract"]
Prepare and assess your target container-based {PlatformNameShort} environment, and import and reconcile your migrated content.
include::aap-migration/proc-containerized-target-prep.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/aap-migration/assembly-target-managed-aap.adoc b/downstream/assemblies/aap-migration/assembly-target-managed-aap.adoc
index 4c075684c6..0baf95c287 100644
--- a/downstream/assemblies/aap-migration/assembly-target-managed-aap.adoc
+++ b/downstream/assemblies/aap-migration/assembly-target-managed-aap.adoc
@@ -3,6 +3,7 @@
[id="target-managed-aap"]
= Managed {PlatformNameShort}
+[role="_abstract"]
Prepare and migrate your source environment to a Managed {PlatformNameShort} deployment, and reconcile the target environment post-migration.
include::aap-migration/proc-managed-target-migration.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/aap-migration/assembly-target-ocp.adoc b/downstream/assemblies/aap-migration/assembly-target-ocp.adoc
index 85d07a74e9..b18e32454c 100644
--- a/downstream/assemblies/aap-migration/assembly-target-ocp.adoc
+++ b/downstream/assemblies/aap-migration/assembly-target-ocp.adoc
@@ -3,6 +3,7 @@
[id="target-ocp"]
= {OCPShort}
+[role="_abstract"]
Prepare and assess your target {OCPShort} environment, and import and reconcile your migrated content.
include::aap-migration/proc-ocp-target-prep.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/devtools/assembly-devtools-create-roles-collection.adoc b/downstream/assemblies/devtools/assembly-devtools-create-roles-collection.adoc
index 0bdd57505d..0c22859ed0 100644
--- a/downstream/assemblies/devtools/assembly-devtools-create-roles-collection.adoc
+++ b/downstream/assemblies/devtools/assembly-devtools-create-roles-collection.adoc
@@ -42,7 +42,7 @@ include::devtools/proc-devtools-create-new-role-in-collection.adoc[leveloffset=+
include::devtools/proc-devtools-docs-roles-collection.adoc[leveloffset=+1]
-// include::devtools/proc-devtools-run-roles-collection.adoc[leveloffset=+1]
+// include::devtools/ref-devtools-run-roles-collection.adoc[leveloffset=+1]
// include::devtools/proc-devtools-molecule-test-roles-collection.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/devtools/assembly-devtools-extension-set-language.adoc b/downstream/assemblies/devtools/assembly-devtools-extension-set-language.adoc
new file mode 100644
index 0000000000..9ea41281bc
--- /dev/null
+++ b/downstream/assemblies/devtools/assembly-devtools-extension-set-language.adoc
@@ -0,0 +1,21 @@
+ifdef::context[:parent-context-of-assembly-devtools-install: {context}]
+:_mod-docs-content-type: ASSEMBLY
+[id="extension-set-language"]
+
+= Manually adding the Ansible language to YAML files
+
+[role="_abstract"]
+
+The Ansible {VSCode} extension works only when the language associated with a file is set to Ansible.
+The extension provides features that help create Ansible playbooks, such as auto-completion, hover, and diagnostics.
+
+The Ansible {VSCode} extension automatically associates the Ansible language with some files.
+The procedures below describe how to set the language for files that are not recognized as Ansible files.
+
+include::devtools/proc-devtools-extension-set-language.adoc[leveloffset=+1]
+
+include::devtools/proc-devtools-extension-set-persistant-file.adoc[leveloffset=+1]
+
+
+ifdef::parent-context-of-assembly-devtools-install[:context: {parent-context-of-assembly-devtools-install}]
+ifndef::parent-context-of-assembly-devtools-install[:!context:]
diff --git a/downstream/assemblies/devtools/assembly-devtools-install.adoc b/downstream/assemblies/devtools/assembly-devtools-install.adoc
index d86f55696e..0138e8ec64 100644
--- a/downstream/assemblies/devtools/assembly-devtools-install.adoc
+++ b/downstream/assemblies/devtools/assembly-devtools-install.adoc
@@ -31,7 +31,7 @@ include::devtools/proc-devtools-install-vscode-extension.adoc[leveloffset=+2]
include::devtools/proc-devtools-extension-settings.adoc[leveloffset=+2]
-include::devtools/proc-devtools-extension-set-language.adoc[leveloffset=+2]
+include::assembly-devtools-extension-set-language.adoc[leveloffset=+2]
include::devtools/proc-devtools-ms-dev-containers-ext.adoc[leveloffset=+2]
diff --git a/downstream/assemblies/devtools/assembly-rhdh-subscription-warnings.adoc b/downstream/assemblies/devtools/assembly-rhdh-subscription-warnings.adoc
index 4c12714f67..092161a909 100644
--- a/downstream/assemblies/devtools/assembly-rhdh-subscription-warnings.adoc
+++ b/downstream/assemblies/devtools/assembly-rhdh-subscription-warnings.adoc
@@ -7,13 +7,13 @@ ifdef::context[:parent-context-of-rhdh-subscription-warnings: {context}]
:context: rhdh-subscription-warnings
[role="_abstract"]
-The Ansible plug-ins display a subscription warning banner in the user interface in the following scenarios:
+The {AAPRHDHShort} display a subscription warning banner in the user interface in the following scenarios:
-* xref:rhdh-warning-unable-connect-aap_rhdh-subscription-warnings[Unable to connect to Ansible Automation Platform]
-* xref:rhdh-warning-unable-authenticate-aap_rhdh-subscription-warnings[Unable to authenticate to Ansible Automation Platform]
-* xref:rhdh-warning-invalid-aap-config_rhdh-subscription-warnings[Invalid Ansible Automation Platform configuration]
-* xref:rhdh-warning-aap-ooc_rhdh-subscription-warnings[Ansible Automation Platform subscription is out of compliance]
-* xref:rhdh-warning-invalid-aap-subscription_rhdh-subscription-warnings[Invalid Ansible Automation Platform subscription]
+* link:{URLPluginRHDHInstall}/rhdh-subscription-warnings_aap-plugin-rhdh-installing#rhdh-warning-unable-connect-aap_rhdh-subscription-warnings[Unable to connect to Ansible Automation Platform]
+* link:{URLPluginRHDHInstall}/rhdh-subscription-warnings_aap-plugin-rhdh-installing#rhdh-warning-unable-authenticate-aap_rhdh-subscription-warnings[Unable to authenticate to Ansible Automation Platform]
+* link:{URLPluginRHDHInstall}/rhdh-subscription-warnings_aap-plugin-rhdh-installing#rhdh-warning-invalid-aap-config_rhdh-subscription-warnings[Invalid Ansible Automation Platform configuration]
+* link:{URLPluginRHDHInstall}/rhdh-subscription-warnings_aap-plugin-rhdh-installing#rhdh-warning-aap-ooc_rhdh-subscription-warnings[Ansible Automation Platform subscription is out of compliance]
+* link:{URLPluginRHDHInstall}/rhdh-subscription-warnings_aap-plugin-rhdh-installing#rhdh-warning-invalid-aap-subscription_rhdh-subscription-warnings[Invalid Ansible Automation Platform subscription]
include::devtools/proc-rhdh-warning-unable-connect-aap.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/eda/assembly-eda-credential-types.adoc b/downstream/assemblies/eda/assembly-eda-credential-types.adoc
index 497ef67e28..de9bdd5aea 100644
--- a/downstream/assemblies/eda/assembly-eda-credential-types.adoc
+++ b/downstream/assemblies/eda/assembly-eda-credential-types.adoc
@@ -3,14 +3,15 @@
= Credential types
-{EDAcontroller} comes with several built-in credental types that you can use for syncing projects, running rulebook activations, executing job templates through {MenuTopAE} ({ControllerName}), fetching images from container registries, and processing data through event streams.
+{EDAcontroller} comes with several built-in credential types that you can use for syncing projects, running rulebook activations, executing job templates through {MenuTopAE} ({ControllerName}), fetching images from container registries, and processing data through event streams.
-These built-in credential types are not editable. So if you want credential types that support authentication with other systems, you can create your own credential types that can be used in your source plugins. Each credential type contains an input configuration and an injector configuration that can be passed to an Ansible rulebook to configure your sources.
+These built-in credential types are not editable. So if you want credential types that support authentication with other systems, you can create your own credential types that can be used in your source plugins. Each credential type contains an input configuration and an injector configuration that can be passed to an Ansible rulebook to configure your sources. For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-credential-types#eda-custom-credential-types[Custom credential types].
-For more information, see xref:eda-custom-credential-types[Custom credential types].
-//[J. Self] Will add the cross-reference/link later.
+If you will be executing job templates through {ControllerName}, you can retrieve credential values from external secret management systems listed in link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-credential-types#eda-external-credential-types[External secret management credential types].
+include::eda/con-external-credential-types.adoc[leveloffset=+1]
+
include::eda/con-custom-credential-types.adoc[leveloffset=+1]
include::eda/con-credential-types-input-config.adoc[leveloffset=+2]
diff --git a/downstream/assemblies/eda/assembly-eda-decision-environments.adoc b/downstream/assemblies/eda/assembly-eda-decision-environments.adoc
index f7677b4c24..8f20b52629 100644
--- a/downstream/assemblies/eda/assembly-eda-decision-environments.adoc
+++ b/downstream/assemblies/eda/assembly-eda-decision-environments.adoc
@@ -6,7 +6,7 @@ Decision environments are container images that run Ansible rulebooks.
They create a common language for communicating automation dependencies, and give a standard way to build and distribute the automation environment.
You can find the default decision environment in the link:https://quay.io/repository/ansible/ansible-rulebook[Ansible-Rulebook].
-To create your own decision environment, see xref:eda-controller-install-builder[Installing ansible-builder] and xref:eda-build-a-custom-decision-environment[Building a custom decision environment for Event-Driven Ansible within Ansible Automation Platform].
+To create your own decision environment, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-decision-environments#eda-controller-install-builder[Installing ansible-builder] and link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-decision-environments#eda-build-a-custom-decision-environment[Building a custom decision environment for Event-Driven Ansible within Ansible Automation Platform].
include::eda/ref-eda-controller-install-builder.adoc[leveloffset=+1]
include::eda/proc-eda-build-a-custom-decision-environment.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/eda/assembly-eda-event-filter-plugins.adoc b/downstream/assemblies/eda/assembly-eda-event-filter-plugins.adoc
index 9d5852e57c..4c21c3bfb6 100644
--- a/downstream/assemblies/eda/assembly-eda-event-filter-plugins.adoc
+++ b/downstream/assemblies/eda/assembly-eda-event-filter-plugins.adoc
@@ -22,7 +22,8 @@ You can chain event filters one after the other, and the updated data is sent fr
Event filters are defined in the rulebook after a source is defined.
When the rulebook starts the source plugin it associates the correct filters and transforms the data before putting it into the queue.
-.Example
+[Example]
+====
----
sources:
@@ -45,5 +46,6 @@ Since every event should record the origin of the event the filter `eda.builtin.
The `received_at` stores a date time in UTC ISO8601 format and includes the microseconds.
The `uuid` stores the unique id for the event.
The `meta key` is used to store metadata about the event and its needed to correctly report about the events in the aap-server.
+====
include::eda/con-eda-author-event-filters.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/eda/assembly-eda-projects.adoc b/downstream/assemblies/eda/assembly-eda-projects.adoc
index a258124017..4721f0e99e 100644
--- a/downstream/assemblies/eda/assembly-eda-projects.adoc
+++ b/downstream/assemblies/eda/assembly-eda-projects.adoc
@@ -1,10 +1,9 @@
+:_mod-docs-content-type: ASSEMBLY
[id="eda-projects"]
= Projects
-Projects are a logical collection of rulebooks.
-They must be a git repository and only http protocol is supported.
-The rulebooks of a project must be located in the path defined for {EDAName} content in Ansible collections: `/extensions/eda/rulebooks` at the root of the project.
+Projects are a logical collection of rulebooks. They must be a git repository and located in the path defined for {EDAName} content in Ansible collections: `/extensions/eda/rulebooks` at the root of the project.
[IMPORTANT]
====
@@ -12,6 +11,9 @@ To meet high availability demands, {EDAcontroller} shares centralized link:https
====
include::eda/proc-eda-set-up-new-project.adoc[leveloffset=+1]
+
include::eda/con-eda-projects-list-view.adoc[leveloffset=+1]
+
include::eda/proc-eda-editing-a-project.adoc[leveloffset=+1]
+
include::eda/proc-eda-delete-project.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/eda/assembly-eda-rulebook-activations.adoc b/downstream/assemblies/eda/assembly-eda-rulebook-activations.adoc
index 706241d65b..9c391db5aa 100644
--- a/downstream/assemblies/eda/assembly-eda-rulebook-activations.adoc
+++ b/downstream/assemblies/eda/assembly-eda-rulebook-activations.adoc
@@ -25,7 +25,7 @@ The following actions are currently supported:
To view further details, see link:https://ansible.readthedocs.io/projects/rulebook/en/stable/actions.html[Actions].
-A rulebook activation is a process running in the background defined by a decision environment executing a specific rulebook. You can set up your rulebook activation by following xref:eda-set-up-rulebook-activation[Setting up a rulebook activation].
+A rulebook activation is a process running in the background defined by a decision environment executing a specific rulebook. You can set up your rulebook activation by following link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-rulebook-activations#eda-set-up-rulebook-activation[Setting up a rulebook activation].
[WARNING]
====
diff --git a/downstream/assemblies/eda/assembly-eda-set-up-rhaap-credential.adoc b/downstream/assemblies/eda/assembly-eda-set-up-rhaap-credential.adoc
index 756b6c18af..fbbde40063 100644
--- a/downstream/assemblies/eda/assembly-eda-set-up-rhaap-credential.adoc
+++ b/downstream/assemblies/eda/assembly-eda-set-up-rhaap-credential.adoc
@@ -6,7 +6,7 @@ When {EDAcontroller} is deployed on {PlatformNameShort} {PlatformVers}, you can
[NOTE]
====
-If you deployed {EDAcontroller} with {PlatformNameShort} 2.4, you probably used controller tokens to connect {ControllerName} and {EDAcontroller}. These controller tokens have been deprecated in {PlatformNameShort} {PlatformVers}. To delete deprecated controller tokens and the rulebook activations associated with them, complete the following procedures starting with xref:replacing-controller-tokens[Replacing controller tokens in {PlatformNameShort} {PlatformVers}] before proceeding with xref:eda-set-up-rhaap-credential[Setting up a {PlatformName} credential].
+If you deployed {EDAcontroller} with {PlatformNameShort} 2.4, you probably used controller tokens to connect {ControllerName} and {EDAcontroller}. These controller tokens have been deprecated in {PlatformNameShort} {PlatformVers}. To delete deprecated controller tokens and the rulebook activations associated with them, complete the following procedures starting with link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-set-up-rhaap-credential-type#replacing-controller-tokens[Replacing controller tokens in {PlatformNameShort} {PlatformVers}] before proceeding with link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-set-up-rhaap-credential-type#eda-set-up-rhaap-credential[Setting up a {PlatformName} credential].
====
include::eda/con-replacing-controller-tokens.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/eda/assembly-eda-user-guide-overview.adoc b/downstream/assemblies/eda/assembly-eda-user-guide-overview.adoc
index efac82038d..81609cdc68 100644
--- a/downstream/assemblies/eda/assembly-eda-user-guide-overview.adoc
+++ b/downstream/assemblies/eda/assembly-eda-user-guide-overview.adoc
@@ -8,18 +8,18 @@ These tools monitor IT solutions and identify events and automatically implement
The following procedures form the user configuration:
-* xref:eda-credentials[Credentials]
-* xref:eda-credential-types[Credential types]
-* xref:eda-projects[Projects]
-* xref:eda-decision-environments[Decision environments]
-* xref:eda-set-up-rhaap-credential-type[Red Hat Ansible Automation Platform credential]
-* xref:eda-rulebook-activations[Rulebook activations]
-* xref:eda-rulebook-troubleshooting[Rulebook activations troubleshooting]
-* xref:eda-rule-audit[Rule audit]
-* xref:simplified-event-routing[Simplified event routing]
-* xref:eda-performance-tuning[Performance tuning for {EDAcontroller}]
-* xref:eda-event-filter-plugins[Event filter plugins]
-* xref:eda-logging-strategy[Event-Driven Ansible logging strategy]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-credentials[Credentials]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-credential-types[Credential types]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-projects[Projects]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-decision-environments[Decision environments]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-set-up-rhaap-credential-type[Red Hat Ansible Automation Platform credential]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-rulebook-activations[Rulebook activations]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-rulebook-troubleshooting[Rulebook activations troubleshooting]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-rule-audit[Rule audit]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/simplified-event-routing[Simplified event routing]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-performance-tuning[Performance tuning for {EDAcontroller}]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-event-filter-plugins[Event filter plugins]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-logging-strategy[Event-Driven Ansible logging strategy]
[NOTE]
@@ -31,9 +31,7 @@ The following procedures form the user configuration:
[role="_additional-resources"]
.Additional resources
-* For information on how to set user permissions for {EDAcontroller}, see the following in the link:{URLCentralAuth}/index[Access management and authentication guide]:
-
-. link:{URLCentralAuth}/gw-managing-access#ref-controller-user-roles[Adding roles for a user]
-. link:{URLCentralAuth}/assembly-gw-roles[Roles]
-
-* If you plan to use {EDAName} 2.5 with a 2.4 {PlatformNameShort}, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.4/html/using_event-driven_ansible_2.5_with_ansible_automation_platform_2.4/index[Using Event-Driven Ansible 2.5 with Ansible Automation Platform 2.4].
+* link:{URLCentralAuth}/index[Access management and authentication guide]:
+** link:{URLCentralAuth}/gw-managing-access#ref-controller-user-roles[Adding roles for a user]
+** link:{URLCentralAuth}/assembly-gw-roles[Roles]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.4/html/using_event-driven_ansible_2.5_with_ansible_automation_platform_2.4/index[Using Event-Driven Ansible 2.5 with Ansible Automation Platform 2.4].
diff --git a/downstream/assemblies/platform/assembly-aap-containerized-disconnected-installation.adoc b/downstream/assemblies/platform/assembly-aap-containerized-disconnected-installation.adoc
new file mode 100644
index 0000000000..b3011501d6
--- /dev/null
+++ b/downstream/assemblies/platform/assembly-aap-containerized-disconnected-installation.adoc
@@ -0,0 +1,16 @@
+:_mod-docs-content-type: ASSEMBLY
+
+[id="aap-containerized-disconnected-installation"]
+
+= Disconnected installation
+
+[role="_abstract"]
+You can install containerized {PlatformNameShort} in an environment that does not have an active internet connection. To do this you need to obtain and configure the RPM source dependencies before performing the disconnected installation.
+
+include::platform/proc-obtaining-configuring-rpm-dependencies.adoc[leveloffset=+1]
+
+include::platform/proc-configure-local-repo-reposync.adoc[leveloffset=+2]
+
+include::platform/proc-configure-local-repo-iso.adoc[leveloffset=+2]
+
+include::platform/proc-perform-containerized-disconnected-installation.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-aap-containerized-installation.adoc b/downstream/assemblies/platform/assembly-aap-containerized-installation.adoc
index 19dc525c7b..fa22ecada8 100644
--- a/downstream/assemblies/platform/assembly-aap-containerized-installation.adoc
+++ b/downstream/assemblies/platform/assembly-aap-containerized-installation.adoc
@@ -6,17 +6,11 @@ ifdef::context[:parent-context: {context}]
:context: aap-containerized-installation
+[role="_abstract"]
{PlatformNameShort} is a commercial offering that helps teams manage complex multi-tier deployments by adding control, knowledge, and delegation to Ansible-powered environments.
This guide helps you to understand the installation requirements and processes behind the containerized version of {PlatformNameShort}.
-[NOTE]
-====
-
-include::snippets/container-upgrades.adoc[]
-
-====
-
== Tested deployment models
Red Hat tests {PlatformNameShort} {PlatformVers} with a defined set of topologies to give you opinionated deployment options. The supported topologies include infrastructure topology diagrams, tested system configurations, example inventory files, and network ports information.
diff --git a/downstream/assemblies/platform/assembly-aap-migration.adoc b/downstream/assemblies/platform/assembly-aap-migration.adoc
index aa2f96cf94..4e602e5ad1 100644
--- a/downstream/assemblies/platform/assembly-aap-migration.adoc
+++ b/downstream/assemblies/platform/assembly-aap-migration.adoc
@@ -16,7 +16,7 @@ You can use the link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers
[NOTE]
====
-Upgrades of {EDAName} version 2.4 to 2.5 are not supported. Database migrations between {EDAName} 2.4 and {EDAName} 2.5 are not compatible.
+Upgrades of {EDAName} version 2.4 to {PlatformVers} are not supported. Database migrations between {EDAName} 2.4 and {EDAName} {PlatformVers} are not compatible.
====
//[gmurray 07/14/25 ]The following modules will need to be deprecated eventually, commenting out for now incase we need to roll back, I also need to confirm which are used in 2.4. Best thing would be to archive these when we cease supporting 2.4
diff --git a/downstream/assemblies/platform/assembly-aap-recovery.adoc b/downstream/assemblies/platform/assembly-aap-recovery.adoc
index 7eb4af62e0..74648579e4 100644
--- a/downstream/assemblies/platform/assembly-aap-recovery.adoc
+++ b/downstream/assemblies/platform/assembly-aap-recovery.adoc
@@ -12,6 +12,8 @@ ifdef::context[:parent-context: {context}]
If you lose information on your system or experience issues with an upgrade, you can use the backup resources of your deployment instances. Use the following procedures to recover your {PlatformNameShort} deployment files.
include::platform/proc-aap-platform-gateway-restore.adoc[leveloffset=+1]
+include::platform/proc-aap-platform-pvc-restore.adoc[leveloffset=+1]
+include::platform/proc-aap-platform-ext-DB-restore.adoc[leveloffset=+1]
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
diff --git a/downstream/assemblies/platform/assembly-aap-upgrading-platform.adoc b/downstream/assemblies/platform/assembly-aap-upgrading-platform.adoc
index 85c5056c68..3aec1d6227 100644
--- a/downstream/assemblies/platform/assembly-aap-upgrading-platform.adoc
+++ b/downstream/assemblies/platform/assembly-aap-upgrading-platform.adoc
@@ -20,7 +20,7 @@ You can then download the desired version of the {PlatformNameShort} installer,
* Prior to upgrading your {PlatformName}, ensure you have reviewed {LinkPlanningGuide} for a successful upgrade. You can then download the desired version of the {PlatformNameShort} installer, configure the inventory file in the installation bundle to reflect your environment, and then run the installer.
-* Prior to upgrading your {PlatformName}, ensure you have upgraded to {ControllerName} 2.5 or later.
+* Before upgrading your {PlatformName}, ensure you have upgraded to {ControllerName} 4.5 or later.
* When upgrading to {PlatformNameShort} {PlatformVers}, you must use RPM installer version 2.5-11 or later. If you use an older installer, the installation might fail. If you encounter a failed installation using an older version of the installer, rerun the installation with RPM installer version 2.5-11 or later.
diff --git a/downstream/assemblies/platform/assembly-ag-controller-backup-and-restore.adoc b/downstream/assemblies/platform/assembly-ag-controller-backup-and-restore.adoc
index 6b332fb986..50cdbf55d1 100644
--- a/downstream/assemblies/platform/assembly-ag-controller-backup-and-restore.adoc
+++ b/downstream/assemblies/platform/assembly-ag-controller-backup-and-restore.adoc
@@ -4,21 +4,21 @@
= Backup and restore
-You can backup and restore your system using the {PlatformNameShort} setup playbook.
+You can backup and restore your system by using the {PlatformNameShort} setup playbook.
For more information, see the link:{URLControllerAdminGuide}/index#controller-backup-restore-clustered-environments[Backup and restore clustered environments] section.
[NOTE]
====
-Ensure that you restore to the same version from which it was backed up.
-However, you must use the most recent minor version of a release to backup or restore your {PlatformNameShort} installation version.
-For example, if the current {PlatformNameShort} version you are on is 2.0.x, use only the latest 2.0 installer.
+When backing up {PlatformNameShort}, use the installation program that matches your currently installed version of {PlatformNameShort}.
-Backup and restore only works on PostgreSQL versions supported by your current platform version.
-For more information, see link:{URLPlanningGuide}/platform-system-requirements[System requirements] in the _{TitlePlanningGuide}_.
+When restoring {PlatformNameShort}, use the latest installation program available at the time of the restore. For example, if you are restoring a backup taken from version `2.6-1`, use the latest `2.6-x` installation program available at the time of the restore.
+
+Backup and restore functionality only works with the PostgreSQL versions supported by your current {PlatformNameShort} version.
+For more information, see link:{URLPlanningGuide}/platform-system-requirements[System requirements] in _{TitlePlanningGuide}_.
====
-The {PlatformNameShort} setup playbook is invoked as `setup.sh` from the path where you unpacked the platform installer tarball.
+The {PlatformNameShort} setup playbook is invoked as `setup.sh` from the path where you unpacked the platform installer tar file.
It uses the same inventory file used by the install playbook.
The setup script takes the following arguments for backing up and restoring:
@@ -56,6 +56,9 @@ setup.sh -i
----
include::platform/con-controller-backup-restore-playbooks.adoc[leveloffset=+1]
+
include::platform/ref-controller-backup-restore-considerations.adoc[leveloffset=+1]
+
include::platform/ref-controller-backup-restore-clustered-environments.adoc[leveloffset=+1]
+
include::platform/con-controller-restore-different-cluster.adoc[leveloffset=+2]
diff --git a/downstream/assemblies/platform/assembly-ag-controller-config.adoc b/downstream/assemblies/platform/assembly-ag-controller-config.adoc
index 53d8685613..3139900ef8 100644
--- a/downstream/assemblies/platform/assembly-ag-controller-config.adoc
+++ b/downstream/assemblies/platform/assembly-ag-controller-config.adoc
@@ -34,3 +34,5 @@ include::platform/con-controller-additional-settings.adoc[leveloffset=+1]
//include::platform/proc-controller-obtaining-subscriptions.adoc[leveloffset=+1]
//include::platform/con-controller-keep-subscription-in-compliance.adoc[leveloffset=+2]
//include::platform/con-controller-host-metric-utilities.adoc[leveloffset=+2]
+
+include::platform/proc-settings-troubleshooting.adoc[leveloffset=+1]
\ No newline at end of file
diff --git a/downstream/assemblies/platform/assembly-ag-controller-secret-handling.adoc b/downstream/assemblies/platform/assembly-ag-controller-secret-handling.adoc
index a6f8c17bce..a93aaf5517 100644
--- a/downstream/assemblies/platform/assembly-ag-controller-secret-handling.adoc
+++ b/downstream/assemblies/platform/assembly-ag-controller-secret-handling.adoc
@@ -7,25 +7,15 @@
{ControllerNameStart} handles secrets and connections securely.
include::platform/con-controller-secret-handling.adoc[leveloffset=+1]
-include::platform/ref-controller-secret-handling-operational-use.adoc[leveloffset=+2]
-include::platform/ref-controller-secret-handling-automation-use.adoc[leveloffset=+2]
-
-== Connection security
-
-{ControllerNameStart} allows for connections to internal services, external access, and managed nodes.
-[NOTE]
-====
-You must have 'local' user access for the following users:
+include::platform/ref-controller-secret-handling-operational-use.adoc[leveloffset=+2]
-* postgres
-* awx
-* redis
-* receptor
-* nginx
+include::platform/ref-controller-secret-handling-automation-use.adoc[leveloffset=+2]
-====
+include::platform/ref-controller-connection-security.adoc[leveloffset=+2]
include::platform/ref-controller-internal-services.adoc[leveloffset=+2]
+
include::platform/ref-controller-external-access.adoc[leveloffset=+2]
+
include::platform/ref-controller-managed-nodes.adoc[leveloffset=+2]
diff --git a/downstream/assemblies/platform/assembly-ag-controller-security-best-practices.adoc b/downstream/assemblies/platform/assembly-ag-controller-security-best-practices.adoc
index 10e8c42614..bc554b1804 100644
--- a/downstream/assemblies/platform/assembly-ag-controller-security-best-practices.adoc
+++ b/downstream/assemblies/platform/assembly-ag-controller-security-best-practices.adoc
@@ -9,17 +9,27 @@ However, managing certain operating system environments, automation, and automat
To secure {RHEL} start with the following release-appropriate security guide:
-* For Red Hat Enterprise Linux 8, see link:{BaseURL}/red_hat_enterprise_linux/8/html/security_hardening/index[Security hardening].
+* For Red Hat Enterprise Linux 8, see link:link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/security_hardening/index[Security hardening].
-* For Red Hat Enterprise Linux 9, see link:{BaseURL}/red_hat_enterprise_linux/9/html/security_hardening[Security hardening].
+* For Red Hat Enterprise Linux 9, see link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/security_hardening[Security hardening].
include::platform/con-controller-understand-architecture.adoc[leveloffset=+1]
+
+include::platform/con-controller-granting-access.adoc[leveloffset=+2]
+
include::platform/con-controller-minimize-administrative-accounts.adoc[leveloffset=+2]
+
include::platform/con-controller-minimize-system-access.adoc[leveloffset=+2]
+
include::platform/con-controller-remove-access-credentials.adoc[leveloffset=+2]
+
include::platform/con-controller-enforce-separation-duties.adoc[leveloffset=+2]
+
include::platform/ref-controller-available-resources.adoc[leveloffset=+1]
+
//include::platform/ref-controller-audit-functionality.adoc[leveloffset=+2]
include::platform/ref-controller-existing-security.adoc[leveloffset=+2]
+
include::platform/ref-controller-external-account-stores.adoc[leveloffset=+2]
-include::platform/ref-controller-django-password-policies.adoc[leveloffset=+2]
+
+include::platform/ref-controller-django-password-policies.adoc[leveloffset=+2]
\ No newline at end of file
diff --git a/downstream/assemblies/platform/assembly-appendix-inventory-file-vars.adoc b/downstream/assemblies/platform/assembly-appendix-inventory-file-vars.adoc
index 04934674cb..7992e1b5e8 100644
--- a/downstream/assemblies/platform/assembly-appendix-inventory-file-vars.adoc
+++ b/downstream/assemblies/platform/assembly-appendix-inventory-file-vars.adoc
@@ -3,7 +3,7 @@
[id="appendix-inventory-files-vars"]
= Inventory file variables
-
+[role="_abstract"]
The following tables contain information about the variables used in {PlatformNameShort}'s installation `inventory` files. The tables include the variables that you can use for RPM-based installation and {ContainerBase}.
include::platform/ref-ansible-inventory-variables.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-appendix-troubleshoot-containerized-aap.adoc b/downstream/assemblies/platform/assembly-appendix-troubleshoot-containerized-aap.adoc
index 00013798f5..46750229ab 100644
--- a/downstream/assemblies/platform/assembly-appendix-troubleshoot-containerized-aap.adoc
+++ b/downstream/assemblies/platform/assembly-appendix-troubleshoot-containerized-aap.adoc
@@ -7,6 +7,7 @@ ifdef::context[:parent-context: {context}]
:context: troubleshooting-containerized-aap
+[role="_abstract"]
Use this information to troubleshoot your containerized {PlatformNameShort} installation.
include::platform/proc-containerized-troubleshoot-gathering-logs.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-configure-hub-storage.adoc b/downstream/assemblies/platform/assembly-configure-hub-storage.adoc
index 1608429921..6a485f8c68 100644
--- a/downstream/assemblies/platform/assembly-configure-hub-storage.adoc
+++ b/downstream/assemblies/platform/assembly-configure-hub-storage.adoc
@@ -5,6 +5,7 @@ ifdef::context[:parent-context: {context}]
= Configuring storage for {HubName}
+[role="_abstract"]
Configure storage backends for {HubName} including Amazon S3, Azure Blob Storage, and Network File System (NFS) storage.
include::platform/proc-configure-hub-s3-storage.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-configuring-proxy-support.adoc b/downstream/assemblies/platform/assembly-configuring-proxy-support.adoc
index c89965fed3..9bf029c5a9 100644
--- a/downstream/assemblies/platform/assembly-configuring-proxy-support.adoc
+++ b/downstream/assemblies/platform/assembly-configuring-proxy-support.adoc
@@ -25,8 +25,9 @@ include::platform/proc-configuring-reverse-proxy.adoc[leveloffset=+1]
include::platform/con-sticky-sessions.adoc[leveloffset=+1]
[role="_additional-resources"]
-.Additional resources
-* Refer to link:https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html[Sticky sessions for your Application Load Balancer] for more information about enabling sticky sessions.
+== Additional resources
+
+* link:https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html[Sticky sessions for your Application Load Balancer]
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
diff --git a/downstream/assemblies/platform/assembly-controller-awx-manage-utility.adoc b/downstream/assemblies/platform/assembly-controller-awx-manage-utility.adoc
index 245b649c1b..df331fb455 100644
--- a/downstream/assemblies/platform/assembly-controller-awx-manage-utility.adoc
+++ b/downstream/assemblies/platform/assembly-controller-awx-manage-utility.adoc
@@ -8,13 +8,16 @@ Use the `awx-manage` utility to access detailed internal information of {Control
Commands for `awx-manage` must run as the `awx` user only.
include::platform/ref-controller-inventory-import.adoc[leveloffset=+1]
+
include::platform/ref-controller-cleanup-old-data.adoc[leveloffset=+1]
+
include::platform/ref-controller-cluster-management.adoc[leveloffset=+1]
+
//include::platform/ref-controller-token-session-management.adoc[leveloffset=+1]
//include::platform/ref-controller-create-oauth2-token.adoc[leveloffset=+2]
//include::platform/ref-controller-revoke-oauth2-token.adoc[leveloffset=+2]
//include::platform/ref-controller-clear-tokens.adoc[leveloffset=+2]
//include::platform/ref-controller-expire-sessions.adoc[leveloffset=+2]
//include::platform/ref-controller-clear-sessions.adoc[leveloffset=+2]
-include::platform/ref-controller-analytics-gathering.adoc[leveloffset=+1]
+include::platform/ref-controller-analytics-gathering.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-controller-glossary.adoc b/downstream/assemblies/platform/assembly-controller-glossary.adoc
index 42ac109a2c..5df41e0c5a 100644
--- a/downstream/assemblies/platform/assembly-controller-glossary.adoc
+++ b/downstream/assemblies/platform/assembly-controller-glossary.adoc
@@ -42,7 +42,7 @@ These pods are provisioned on-demand and exist only for the duration of the play
Credentials::
Authentication details that can be used by {ControllerName} to launch jobs against machines, to synchronize with inventory sources,
and to import project content from a version control system.
-For more information, see [Credentials].
+For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/using_automation_execution/controller-credentials[Managing user credentials].
Credential Plugin::
Python code that contains definitions for an external credential type, its metadata fields, and the code needed for interacting with a secret
@@ -116,7 +116,7 @@ Job Slice::
See *Distributed Job*.
Job Template::
-The combination of an Ansible playbook and the set of parameters required to launch it. For more information, see link:{ControllerUserGuide}/controller-job-templates[Job templates].
+The combination of an Ansible playbook and the set of parameters required to launch it. For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/using_automation_execution/controller-job-templates[Job templates].
JSON::
JSON is a text-based format for representing structured data based on JavaScript object syntax.
diff --git a/downstream/assemblies/platform/assembly-controller-log-files.adoc b/downstream/assemblies/platform/assembly-controller-log-files.adoc
index abd45e8609..290c725546 100644
--- a/downstream/assemblies/platform/assembly-controller-log-files.adoc
+++ b/downstream/assemblies/platform/assembly-controller-log-files.adoc
@@ -2,55 +2,11 @@
[id="assembly-controller-log-files"]
-= {ControllerNameStart} logfiles
+= {ControllerNameStart} logs
-{ControllerNameStart} logfiles can be accessed from two centralized locations:
+[role="_abstract"]
+{ControllerNameStart} logs are accessed in different ways depending on whether you have an RPM-based or containerized installation of {PlatformNameShort}.
-* `/var/log/tower/`
-* `/var/log/supervisor/`
+include::platform/ref-controller-log-files-containerized.adoc[leveloffset=+1]
-In the `/var/log/tower/` directory, you can view logfiles captured by:
-
-* *tower.log:* Captures the log messages such as runtime errors that occur when the job is executed.
-* *callback_receiver.log:* Captures callback receiver logs that handles callback events when running ansible jobs.
-* *dispatcher.log:* Captures log messages for the {ControllerName} dispatcher worker service.
-* *job_lifecycle.log:* Captures details of the job run, whether it is blocked, and what condition is blocking it.
-* *management_playbooks.log:* Captures the logs of management playbook runs, and isolated job runs such as copying the metadata.
-* *rsyslog.err:* Captures rsyslog errors authenticating with external logging services when sending logs to them.
-* *task_system.log:* Captures the logs of tasks that {ControllerName} is running in the background, such as adding cluster instances and logs related to information gathering or processing for analytics.
-* *tower_rbac_migrations.log:* Captures the logs for rbac database migration or upgrade.
-* *tower_system_tracking_migrations.log:* Captures the logs of the controller system tracking migration or upgrade.
-* *wsbroadcast.log:* Captures the logs of websocket connections in the controller nodes.
-
-In the `/var/log/supervisor/` directory, you can view logfiles captured by:
-
-* *awx-callback-receiver.log:* Captures the log of callback receiver that handles callback events when running ansible jobs, managed by `supervisord`.
-* *awx-daphne.log:* Captures the logs of Websocket communication of WebUI.
-* *awx-dispatcher.log:* Captures the logs that occur when dispatching a task to an {ControllerName} instance, such as when running a job.
-* *awx-rsyslog.log:* Captures the logs for the `rsyslog` service.
-* *awx-uwsgi.log:* Captures the logs related to uWSGI, which is an application server.
-* *awx-wsbroadcast.log:* Captures the logs of the websocket service that is used by {ControllerName}.
-* *failure-event-handler.stderr.log:* Captures the standard errors for `/usr/bin/failure-event-handler` supervisord's subprocess.
-* *supervisord.log:* Captures the logs related to `supervisord` itself.
-* *wsrelay.log:* Captures the communication logs within the websocket relay server.
-* *ws_heartbeat.log:* Captures the periodic checks on the health of services running on the host.
-* *rsyslog_configurer.log:* Captures rsyslog configuration activity associated with authenticating with external logging services.
-
-The `/var/log/supervisor/` directory includes `stdout` files for all services as well.
-
-You can expect the following log paths to be generated by services used by {ControllerName} (and {PlatformNameShort}):
-
-* */var/log/nginx/*
-* */var/lib/pgsql/data/pg_log/*
-* */var/log/redis/*
-
-.Troubleshooting
-
-Error logs can be found in the following locations:
-
-* {ControllerNameStart} server errors are logged in `/var/log/tower`.
-* Supervisors logs can be found in `/var/log/supervisor/`.
-* Nginx web server errors are logged in the httpd error log.
-* Configure other {ControllerName} logging needs in `/etc/tower/conf.d/`.
-
-Explore client-side issues using the JavaScript console built into most browsers and report any errors to Ansible through the Red Hat Customer portal at: https://access.redhat.com/.
+include::platform/ref-controller-log-files.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-controller-logging-aggregation.adoc b/downstream/assemblies/platform/assembly-controller-logging-aggregation.adoc
index 40b0e37425..0cb305cdce 100644
--- a/downstream/assemblies/platform/assembly-controller-logging-aggregation.adoc
+++ b/downstream/assemblies/platform/assembly-controller-logging-aggregation.adoc
@@ -46,17 +46,32 @@ For example, if `Splunk` goes offline, `rsyslogd` stores a queue on the disk unt
By default, it stores up to 1GB of events (while Splunk is offline) but you can increase that to more than 1GB if necessary, or change the path where you save the queue.
include::platform/ref-controller-loggers.adoc[leveloffset=+1]
+
include::platform/ref-controller-log-message-schema.adoc[leveloffset=+2]
+
include::platform/ref-controller-activity-stream-schema.adoc[leveloffset=+2]
-include::platform/ref-controller-job-event-schema.adoc[leveloffset=+2]
+
+// Included this in activity-stream
+//include::platform/ref-controller-job-event-schema.adoc[leveloffset=+2]
+
include::platform/ref-controller-scan-fact-tracking-schema.adoc[leveloffset=+2]
+
include::platform/ref-controller-job-status-changes.adoc[leveloffset=+2]
+
include::platform/ref-controller-logs.adoc[leveloffset=+2]
+
include::platform/ref-controller-log-aggregators.adoc[leveloffset=+2]
+
include::platform/ref-controller-logging-splunk.adoc[leveloffset=+3]
+
include::platform/ref-controller-logging-loggly.adoc[leveloffset=+3]
+
include::platform/ref-controller-logging-sumologic.adoc[leveloffset=+3]
+
include::platform/ref-controller-logging-elastic-stack.adoc[leveloffset=+3]
+
include::platform/proc-controller-set-up-logging.adoc[leveloffset=+1]
+
include::platform/proc-controller-api-4xx-error-config.adoc[leveloffset=2]
+
include::platform/ref-controller-troubleshoot-logging.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-controller-organizations.adoc b/downstream/assemblies/platform/assembly-controller-organizations.adoc
index 744c4a541e..95baaa1584 100644
--- a/downstream/assemblies/platform/assembly-controller-organizations.adoc
+++ b/downstream/assemblies/platform/assembly-controller-organizations.adoc
@@ -32,7 +32,7 @@ include::platform/proc-gw-add-team-organization.adoc[leveloffset=+2]
include::platform/proc-gw-delete-organization.adoc[leveloffset=+2]
-include::platform/ref-controller-organization-notifications.adoc[leveloffset=+1]
+include::platform/proc-controller-organization-notifications.adoc[leveloffset=+1]
include::platform/proc-gw-organizations-exec-env.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-controller-projects.adoc b/downstream/assemblies/platform/assembly-controller-projects.adoc
index 8ef83cb6f7..e1821f526d 100644
--- a/downstream/assemblies/platform/assembly-controller-projects.adoc
+++ b/downstream/assemblies/platform/assembly-controller-projects.adoc
@@ -2,10 +2,14 @@
[id="controller-projects"]
ifdef::controller-GS[]
+
= Managing projects
+
endif::controller-GS[]
ifdef::controller-UG[]
+
= Projects
+
endif::controller-UG[]
A project is a logical collection of Ansible playbooks, represented in {ControllerName}.
diff --git a/downstream/assemblies/platform/assembly-controller-secret-management.adoc b/downstream/assemblies/platform/assembly-controller-secret-management.adoc
index afbc61d2a4..bcac71fd56 100644
--- a/downstream/assemblies/platform/assembly-controller-secret-management.adoc
+++ b/downstream/assemblies/platform/assembly-controller-secret-management.adoc
@@ -24,19 +24,31 @@ With external credentials backed by credential plugins, you can map credential f
These external secret values are fetched before running a playbook that needs them.
-.Additional resources
+[role="_additional-resources"]
+== Additional resources
-For more information about specifying secret management system credentials in the user interface, see link:{URLControllerUserGuide}/index#controller-credentials[Managing user credentials].
+* link:{URLControllerUserGuide}/index#controller-credentials[Managing user credentials].
include::platform/proc-controller-configure-secret-lookups.adoc[leveloffset=+1]
+
include::platform/ref-controller-metadata-credential-input.adoc[leveloffset=+2]
+
include::platform/ref-aws-secrets-manager-lookup.adoc[leveloffset=+2]
+
include::platform/ref-centrify-vault-lookup.adoc[leveloffset=+2]
+
include::platform/ref-cyberark-ccp-lookup.adoc[leveloffset=+2]
+
include::platform/ref-cyberark-conjur-lookup.adoc[leveloffset=+2]
+
include::platform/ref-hashicorp-vault-lookup.adoc[leveloffset=+2]
+
include::platform/ref-hashicorp-signed-ssh.adoc[leveloffset=+2]
+
include::platform/ref-azure-key-vault-lookup.adoc[leveloffset=+2]
+
include::platform/ref-thycotic-devops-vault.adoc[leveloffset=+2]
+
include::platform/ref-thycotic-secret-server.adoc[leveloffset=+2]
+
include::platform/proc-controller-github-app-token.adoc[leveloffset=+2]
diff --git a/downstream/assemblies/platform/assembly-controller-teams.adoc b/downstream/assemblies/platform/assembly-controller-teams.adoc
index 2d7657b1e6..9a3bc36a56 100644
--- a/downstream/assemblies/platform/assembly-controller-teams.adoc
+++ b/downstream/assemblies/platform/assembly-controller-teams.adoc
@@ -8,7 +8,8 @@ ifdef::context[:parent-context: {context}]
:context: controller-teams
-A team is a subdivision of an organization with associated users, and resources. Teams provide a means to implement role-based access control schemes and delegate responsibilities across organizations. For instance, you can grant permissions to a Team rather than each user on the team.
+A team is a subdivision of an organization with associated users, and resources. Teams provide a means to implement role-based access control schemes and delegate responsibilities across organizations.
+For example, you can grant permissions to a Team rather than each user on the team.
You can create as many teams as needed for your organization. Teams can only be assigned to one organization while an organization can be made up of multiple teams. Each team can be assigned roles, the same way roles are assigned for users. Teams can also scalably assign ownership for credentials, preventing multiple interface click-throughs to assign the same credentials to the same user.
diff --git a/downstream/assemblies/platform/assembly-controller-users.adoc b/downstream/assemblies/platform/assembly-controller-users.adoc
index b59f86c46f..6b69ecdce6 100644
--- a/downstream/assemblies/platform/assembly-controller-users.adoc
+++ b/downstream/assemblies/platform/assembly-controller-users.adoc
@@ -27,7 +27,7 @@ include::platform/proc-gw-editing-a-user.adoc[leveloffset=+1]
include::platform/proc-controller-deleting-a-user.adoc[leveloffset=+1]
-include::platform/ref-controller-user-roles.adoc[leveloffset=+1]
+include::platform/proc-controller-user-roles.adoc[leveloffset=+1]
include::platform/proc-gw-remove-roles-user.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-gs-key-functionality.adoc b/downstream/assemblies/platform/assembly-gs-key-functionality.adoc
index b70ccf774d..364adb14a2 100644
--- a/downstream/assemblies/platform/assembly-gs-key-functionality.adoc
+++ b/downstream/assemblies/platform/assembly-gs-key-functionality.adoc
@@ -31,6 +31,8 @@ include::platform/con-gs-automation-mesh.adoc[leveloffset=+1]
include::platform/con-gs-ansible-lightspeed.adoc[leveloffset=+1]
+include::platform/con-aap-notifications-feed.adoc[leveloffset=+1]
+
include::platform/con-gs-developer-tools.adoc[leveloffset=+1]
include::platform/ref-gs-install-config.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-gw-managing-access.adoc b/downstream/assemblies/platform/assembly-gw-managing-access.adoc
index c21124dd11..e234ad6ef3 100644
--- a/downstream/assemblies/platform/assembly-gw-managing-access.adoc
+++ b/downstream/assemblies/platform/assembly-gw-managing-access.adoc
@@ -2,7 +2,7 @@
[id="gw-managing-access"]
-= Managing access with role based access control
+= Managing access with role-based access control
:context: gw-manage-rbac
@@ -13,7 +13,10 @@ You can control what users can do with the components of {PlatformNameShort} at
Roles can be defined with multiple permissions that can then be assigned to resources, teams and users. The permissions that make up a role dictate what the assigned role allows. Permissions are allocated with only the access needed for a user to perform the tasks appropriate for their role.
include::assembly-controller-organizations.adoc[leveloffset=+1]
+
include::assembly-controller-teams.adoc[leveloffset=+1]
+
include::assembly-controller-users.adoc[leveloffset=+1]
+
include::assembly-gw-resources.adoc[leveloffset=+1]
\ No newline at end of file
diff --git a/downstream/assemblies/platform/assembly-gw-mapping.adoc b/downstream/assemblies/platform/assembly-gw-mapping.adoc
index 6f6c139fa5..0ea6835f4a 100644
--- a/downstream/assemblies/platform/assembly-gw-mapping.adoc
+++ b/downstream/assemblies/platform/assembly-gw-mapping.adoc
@@ -18,9 +18,9 @@ include::platform/con-gw-authenticator-map-examples.adoc[leveloffset=+1]
include::platform/proc-gw-allow-mapping.adoc[leveloffset=+1]
-include::platform/ref-controller-organization-mapping.adoc[leveloffset=+1]
+include::platform/proc-controller-organization-mapping.adoc[leveloffset=+1]
-include::platform/ref-controller-team-mapping.adoc[leveloffset=+1]
+include::platform/proc-controller-team-mapping.adoc[leveloffset=+1]
include::platform/proc-gw-role-mapping.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-gw-roles.adoc b/downstream/assemblies/platform/assembly-gw-roles.adoc
index 50a859b546..8234afba6a 100644
--- a/downstream/assemblies/platform/assembly-gw-roles.adoc
+++ b/downstream/assemblies/platform/assembly-gw-roles.adoc
@@ -7,7 +7,10 @@
Roles are units of organization in the {PlatformName}. When you assign a role to a team or user, you are granting access to use, read, or write credentials. Because of the file structure associated with a role, roles become redistributable units that enable you to share behavior among resources, or with other users. All access that is granted to use, read, or write credentials is handled through roles, and roles are defined for a resource.
include::platform/proc-gw-roles.adoc[leveloffset=+1]
+
include::platform/proc-gw-create-roles.adoc[leveloffset=+1]
+
include::platform/proc-gw-edit-roles.adoc[leveloffset=+1]
+
include::platform/proc-gw-delete-roles.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-gw-settings.adoc b/downstream/assemblies/platform/assembly-gw-settings.adoc
index 763df5ef21..77f32a056b 100644
--- a/downstream/assemblies/platform/assembly-gw-settings.adoc
+++ b/downstream/assemblies/platform/assembly-gw-settings.adoc
@@ -17,11 +17,22 @@ The other selections available from the *Settings* menu are specific to automati
====
include::platform/proc-controller-configure-subscriptions.adoc[leveloffset=+1]
+
include::platform/proc-settings-platform-gateway.adoc[leveloffset=+1]
+
include::platform/proc-settings-gw-security-options.adoc[leveloffset=+2]
+
include::platform/proc-settings-gw-session-options.adoc[leveloffset=+2]
+
include::platform/proc-settings-gw-password-security.adoc[leveloffset=+2]
-include::platform/proc-settings-gw-custom-login.adoc[leveloffset=+2]
+
+//Not included at 2.6
+//include::platform/proc-settings-gw-custom-login.adoc[leveloffset=+2]
+
include::platform/proc-settings-gw-additional-options.adoc[leveloffset=+2]
+
+include::platform/proc-settings-gw-authentication.adoc[leveloffset=+2]
+
+include::platform/proc-gw-settings-insights-settings.adoc[leveloffset=+2]
+
include::platform/proc-settings-user-preferences.adoc[leveloffset=+1]
-include::platform/proc-settings-troubleshooting.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-gw-token-based-authentication.adoc b/downstream/assemblies/platform/assembly-gw-token-based-authentication.adoc
index 8df2ca1a6d..fb6b35a12b 100644
--- a/downstream/assemblies/platform/assembly-gw-token-based-authentication.adoc
+++ b/downstream/assemblies/platform/assembly-gw-token-based-authentication.adoc
@@ -25,24 +25,40 @@ You can customize this setting to meet your specific requirements by modifying t
OAUTH2_PROVIDER__ACCESS_TOKEN_EXPIRE_SECONDS = 31536000
----
-For more information on the `settings.py` file and how it can be used to configure aspects of the platform, see link:{URLAAPOperationsGuide}/aap-advanced-config#settings-py_advanced-config[`settings.py`] in {TitleAAPOperationsGuide}.
+For more information about the `settings.py` file and how it can be used to configure aspects of the platform, see link:{URLAAPOperationsGuide}/aap-advanced-config#settings-py_advanced-config[`settings.py`] in {TitleAAPOperationsGuide}.
-For more information on the OAuth2 specification, see link:https://datatracker.ietf.org/doc/html/rfc6749[The OAuth 2.0 Authorization Framework].
+For more information about the OAuth2 specification, see link:https://datatracker.ietf.org/doc/html/rfc6749[The OAuth 2.0 Authorization Framework].
-For more information on using the `manage` utility to create tokens, see xref:ref-controller-token-session-management[Token and session management].
+For more information about using the `manage` utility to create tokens, see xref:ref-controller-token-session-management[Token and session management].
include::assembly-controller-applications.adoc[leveloffset=+1]
+
include::platform/proc-controller-apps-create-tokens.adoc[leveloffset=+1]
+
include::platform/ref-controller-app-token-functions.adoc[leveloffset=+2]
+
include::platform/ref-controller-refresh-existing-token.adoc[leveloffset=+3]
+
include::platform/ref-controller-revoke-access-token.adoc[leveloffset=+3]
+
include::platform/ref-controller-token-session-management.adoc[leveloffset=+2]
+
include::platform/ref-controller-create-oauth2-token.adoc[leveloffset=+3]
+
include::platform/ref-controller-revoke-oauth2-token.adoc[leveloffset=+3]
+
include::platform/ref-controller-clear-tokens.adoc[leveloffset=+3]
+
//[emcwhinn - Temporarily hiding expire sessions module as it does not yet exist for gateway as per AAP-35735]
//include::platform/ref-controller-expire-sessions.adoc[leveloffset=+3]
+
include::platform/ref-controller-clear-sessions.adoc[leveloffset=+3]
+include::platform/con-gw-manage-oauth2-external-users.adoc[leveloffset=+1]
+
+include::platform/proc-gw-enable-oauth2-external-users.adoc[leveloffset=+2]
+
+include::platform/proc-gw-oauth2-security-controls.adoc[leveloffset=+2]
+
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
\ No newline at end of file
diff --git a/downstream/assemblies/platform/assembly-install-aap-gateway.adoc b/downstream/assemblies/platform/assembly-install-aap-gateway.adoc
index aad2e2244d..da9855780e 100644
--- a/downstream/assemblies/platform/assembly-install-aap-gateway.adoc
+++ b/downstream/assemblies/platform/assembly-install-aap-gateway.adoc
@@ -22,7 +22,7 @@ If you have not installed {OperatorPlatformNameShort} see link:{BaseURL}/red_hat
[NOTE]
====
-{GatewayStart} is only available under {OperatorPlatformNameShort} version 2.5. Every component deployed under {OperatorPlatformNameShort} 2.5 defaults to version 2.5.
+{GatewayStart} is only available under {OperatorPlatformNameShort} version {PlatformVers}. Every component deployed under {OperatorPlatformNameShort} {PlatformVers} defaults to version {PlatformVers}.
====
If you have the {OperatorPlatformNameShort} and some or all of the {PlatformNameShort} components installed see link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html-single/installing_on_openshift_container_platform/index#operator-deploy-central-config_install-aap-gateway[Deploying the {Gateway} with existing {PlatformNameShort} components] for how to proceed.
diff --git a/downstream/assemblies/platform/assembly-metrics-utility.adoc b/downstream/assemblies/platform/assembly-metrics-utility.adoc
index a8c1d9cb08..fb8a8ac14b 100644
--- a/downstream/assemblies/platform/assembly-metrics-utility.adoc
+++ b/downstream/assemblies/platform/assembly-metrics-utility.adoc
@@ -1,10 +1,7 @@
-:_newdoc-version: 2.18.3
-:_template-generated: 2024-07-12
+:_mod-docs-content-type: ASSEMBLY
ifdef::context[:parent-context-of-metrics-utility: {context}]
-:_mod-docs-content-type: ASSEMBLY
-
[id="metrics-utility"]
:context: metrics-utility
@@ -48,16 +45,32 @@ include::platform/proc-deploy-controller.adoc[leveloffset=+3]
include::platform/ref-fetching-a-monthly-report.adoc[leveloffset=+1]
+include::platform/proc-fetch-a-report-on-rhel.adoc[leveloffset=+2]
+
+include::platform/proc-fetch-a-report-on-ocp.adoc[leveloffset=+2]
+
include::platform/proc-modifying-the-run-schedule.adoc[leveloffset=+1]
include::platform/proc-controller-modify-run-schedule-OCP.adoc[leveloffset=+2]
include::platform/ref-supported-storage.adoc[leveloffset=+1]
+include::platform/proc-object-storage-with-rhel.adoc[leveloffset=+2]
+
+include::platform/proc-object-storaage-with-s3.adoc[leveloffset=+2]
+
include::platform/ref-report-types.adoc[leveloffset=+1]
include::platform/ref-ccspv2.adoc[leveloffset=+2]
+include::platform/ref-optional-collectors.adoc[leveloffset=+2]
+
+include::platform/ref-optional-sheets.adoc[leveloffset=+2]
+
+include::platform/ref-filter-by-organization.adoc[leveloffset=+2]
+
+include::platform/ref-select-a-date-range-ccspv2.adoc[leveloffset=+2]
+
include::platform/ref-renewal-guidance.adoc[leveloffset=+2]
include::platform/ref-storage-invocation.adoc[leveloffset=+3]
@@ -68,6 +81,12 @@ include::platform/ref-select-a-date-range.adoc[leveloffset=+3]
include::platform/ref-ccsp.adoc[leveloffset=+2]
+include::platform/ref-optional-gather-collectors.adoc[leveloffset=+2]
+
+include::platform/ref-optional-build-sheets.adoc[leveloffset=+2]
+
+include::platform/ref-select-report-date-range.adoc[leveloffset=+2]
+
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
diff --git a/downstream/assemblies/platform/assembly-operator-upgrade.adoc b/downstream/assemblies/platform/assembly-operator-upgrade.adoc
index 3703232a7c..732d45126a 100644
--- a/downstream/assemblies/platform/assembly-operator-upgrade.adoc
+++ b/downstream/assemblies/platform/assembly-operator-upgrade.adoc
@@ -25,7 +25,8 @@ include::platform/proc-operator-upgrade.adoc[leveloffset=+1]
include::platform/proc-operator-create_crs.adoc[leveloffset=+1]
-include::assembly-aap-post-upgrade.adoc[leveloffset=+1]
+//[gmurray] This module is not relevant for 2.6 docs, but still in use in 2.5.
+//include::assembly-aap-post-upgrade.adoc[leveloffset=+1]
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
diff --git a/downstream/assemblies/platform/assembly-planning-mesh.adoc b/downstream/assemblies/platform/assembly-planning-mesh.adoc
index 9ebccf69cc..590d1046a4 100644
--- a/downstream/assemblies/platform/assembly-planning-mesh.adoc
+++ b/downstream/assemblies/platform/assembly-planning-mesh.adoc
@@ -5,9 +5,11 @@ ifdef::context[:parent-context: {context}]
[id="assembly-planning-mesh"]
ifdef::mesh-VM[]
= Planning for {AutomationMesh} in your VM-based {PlatformName} environment
+
endif::mesh-VM[]
ifdef::operator-mesh[]
= Planning for {AutomationMesh} in your operator-based {PlatformName} environment
+
endif::operator-mesh[]
:context: planning-mesh
@@ -19,7 +21,7 @@ Simple to complex topology examples are included to illustrate the various ways
endif::mesh-VM[]
ifdef::operator-mesh[]
The following topics contain information to help plan an {AutomationMesh} deployment in your operator-based {PlatformName} environment.
-The document covers the setting up of {AutomationMesh} on operator-based deployments, such as {OCPShort} and {PlatformNameShort} on {Azure} managed application.
+The document covers the setting up of {AutomationMesh} on operator-based deployments, such as {OCPShort} and {PlatformNameShort} on {AWS} (AWS) and {Azure} managed applications.
endif::operator-mesh[]
include::platform/con-about-automation-mesh.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-platform-install-overview.adoc b/downstream/assemblies/platform/assembly-platform-install-overview.adoc
index 896f200c6e..dac11c8ffd 100644
--- a/downstream/assemblies/platform/assembly-platform-install-overview.adoc
+++ b/downstream/assemblies/platform/assembly-platform-install-overview.adoc
@@ -31,10 +31,13 @@ xref:proc-verify-aap-installation_platform-install-scenario[Verifying your {Plat
//xref:assembly-platform-whats-next_platform-install-scenario[Post-installation steps]:: After successful installation, you can begin using the features of {PlatformNameShort}.
[role="_additional-resources"]
-.Additional resources
+== Additional resources
-. For more information about the supported installation scenarios, see the {LinkPlanningGuide}.
-. For more information on available topologies, see {LinkTopologies}.
+* {LinkPlanningGuide}
+* {LinkTopologies}
+
+//[Gmurray] this will work for now, but I'd recommend rejigging this as it appears clunky in the built guide. Perhaps you could merge these additional resources into the prereqs - Something like You have reviewed the planning and tested topology guides or something.
+== Next steps
include::platform/con-aap-installation-prereqs.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-setup-postgresql-ext-database.adoc b/downstream/assemblies/platform/assembly-setup-postgresql-ext-database.adoc
index fe69b56cbc..0a9dc34854 100644
--- a/downstream/assemblies/platform/assembly-setup-postgresql-ext-database.adoc
+++ b/downstream/assemblies/platform/assembly-setup-postgresql-ext-database.adoc
@@ -5,6 +5,12 @@ ifdef::context[:parent-context: {context}]
= Setting up a customer provided (external) database
+[role="_abstract"]
+There are two possible scenarios for setting up an external database:
+
+. An external database with PostgreSQL admin credentials
+. An external database without PostgreSQL admin credentials
+
[IMPORTANT]
====
* When using an external database with {PlatformNameShort}, you must create and maintain that database. Ensure that you clear your external database when uninstalling {PlatformNameShort}.
@@ -14,11 +20,6 @@ ifdef::context[:parent-context: {context}]
* During configuration of an external database, you must check the external database coverage. For more information, see link:https://access.redhat.com/articles/4010491[{PlatformName} Database Scope of Coverage].
====
-There are two possible scenarios for setting up an external database:
-
-. An external database with PostgreSQL admin credentials
-. An external database without PostgreSQL admin credentials
-
include::platform/proc-setup-ext-db-with-admin-creds.adoc[leveloffset=+1]
include::platform/proc-setup-ext-db-without-admin-creds.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/platform/assembly-using-custom-tls-certificates.adoc b/downstream/assemblies/platform/assembly-using-custom-tls-certificates.adoc
index c5efd3cae5..c243df1c72 100644
--- a/downstream/assemblies/platform/assembly-using-custom-tls-certificates.adoc
+++ b/downstream/assemblies/platform/assembly-using-custom-tls-certificates.adoc
@@ -5,6 +5,7 @@ ifdef::context[:parent-context: {context}]
= Using custom TLS certificates
+[role="_abstract"]
{PlatformName} uses X.509 certificate and key pairs to secure traffic both internally between {PlatformNameShort} components and externally for public UI and API connections.
There are two primary ways to manage TLS certificates for your {PlatformNameShort} deployment:
@@ -34,5 +35,8 @@ include::platform/proc-provide-custom-ca-cert.adoc[leveloffset=+2]
// Receptor certificate considerations
include::platform/con-receptor-cert-considerations.adoc[leveloffset=+1]
+// Redis certificate considerations
+include::platform/con-redis-cert-considerations.adoc[leveloffset=+1]
+
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
diff --git a/downstream/assemblies/security/assembly-firewall-policy-manage.adoc b/downstream/assemblies/security/assembly-firewall-policy-manage.adoc
index 71b82f5945..0f10cc403b 100644
--- a/downstream/assemblies/security/assembly-firewall-policy-manage.adoc
+++ b/downstream/assemblies/security/assembly-firewall-policy-manage.adoc
@@ -1,20 +1,8 @@
-////
-Retains the context of the parent assembly if this assembly is nested within another assembly.
-For more information about nesting assemblies, see: https://redhat-documentation.github.io/modular-docs/#nesting-assemblies
-See also the complementary step on the last line of this file.
-////
+:_mod-docs-content-type: ASSEMBLY
ifdef::context[:parent-context: {context}]
:imagesdir: images
-////
- Base the file name and the ID on the assembly title. For example:
-* file name: assembly-my-user-story.adoc
-* ID: [id="assembly-my-user-story_{context}"]
-* Title: = My user story
-
-The ID is an anchor that links to the module. Avoid changing it after the module has been published to ensure existing links are not broken. Include {context} in the ID so the assembly can be reused.
-////
[id="assembly-firewall-policy-management_{context}"]
@@ -24,20 +12,15 @@ The ID is an anchor that links to the module. Avoid changing it after the module
[role="_abstract"]
-As a security operator, you can use Ansible security automation to manage multiple firewall policies. Create and delete firewall rules to block or unblock a source IP address from accessing a destination IP address.
+As a security operator, you can use Ansible security automation to manage multiple firewall policies or create and delete firewall rules to block or unblock a source IP address from accessing a destination IP address.
include::security/con-about-firewall-policy-management.adoc[leveloffset=+1]
+
include::security/con-automating-firewall-rules.adoc[leveloffset=+1]
-////
-[leveloffset=+1] ensures that when a module title is a level 1 heading (= Title), the heading will be interpreted as a level-2 heading (== Title) in the assembly. Use [leveloffset=+2] and [leveloffset=+3] to nest modules in an assembly.
-////
+include::security/proc-creating-firewall-rule.adoc[leveloffset=+2]
-include::security/proc-creating-firewall-rule.adoc[leveloffset=+1]
-include::security/proc-deleting-firewall-rule.adoc[leveloffset=+1]
+include::security/proc-deleting-firewall-rule.adoc[leveloffset=+2]
-////
-Restore the context to what it was before this assembly.
-////
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
diff --git a/downstream/assemblies/security/assembly-idps.adoc b/downstream/assemblies/security/assembly-idps.adoc
index c84bee7838..54d1b2c3cd 100644
--- a/downstream/assemblies/security/assembly-idps.adoc
+++ b/downstream/assemblies/security/assembly-idps.adoc
@@ -1,43 +1,26 @@
-////
-Retains the context of the parent assembly if this assembly is nested within another assembly.
-For more information about nesting assemblies, see: https://redhat-documentation.github.io/modular-docs/#nesting-assemblies
-See also the complementary step on the last line of this file.
-////
+:_mod-docs-content-type: ASSEMBLY
ifdef::context[:parent-context: {context}]
:imagesdir: images
-////
- Base the file name and the ID on the assembly title. For example:
-* file name: assembly-my-user-story.adoc
-* ID: [id="assembly-my-user-story_{context}"]
-* Title: = My user story
-
-The ID is an anchor that links to the module. Avoid changing it after the module has been published to ensure existing links are not broken. Include {context} in the ID so the assembly can be reused.
-////
-
[id="assembly-idps_{context}"]
-= Automating Network Intrusion Detection and Prevention Systems (IDPS) with Ansible
+= Automating Network Intrusion Detection and Prevention Systems (IDPS) with {PlatformNameShort}
:context: idps
[role="_abstract"]
-You can use Ansible to automate your Intrusion Detection and Prevention System (IDPS). For the purpose of this guide, we use Snort as the IDPS. Use Ansible automation hub to consume content collections, such as tasks, roles, and modules to create automated workflows.
+You can use {PlatformNameShort} to automate your _Intrusion Detection and Prevention System_ (IDPS). For the purpose of this guide, we use Snort as the IDPS. Use {HubName} to consume content collections, such as tasks, roles, and modules to create automated workflows.
include::security/con-requirements.adoc[leveloffset=+1]
-include::security/proc-verifying-idps-install.adoc[leveloffset=+2]
-////
-[leveloffset=+1] ensures that when a module title is a level 1 heading (= Title), the heading will be interpreted as a level-2 heading (== Title) in the assembly. Use [leveloffset=+2] and [leveloffset=+3] to nest modules in an assembly.
-////
+include::security/proc-verifying-idps-install.adoc[leveloffset=+2]
include::security/con-automate-idps-rules.adoc[leveloffset=+1]
+
include::security/proc-creating-idps-rule.adoc[leveloffset=+2]
-////
-Restore the context to what it was before this assembly.
-////
+
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
diff --git a/downstream/assemblies/topologies/assembly-appendix-topology-resources.adoc b/downstream/assemblies/topologies/assembly-appendix-topology-resources.adoc
index fc7542e791..466fef5fb2 100644
--- a/downstream/assemblies/topologies/assembly-appendix-topology-resources.adoc
+++ b/downstream/assemblies/topologies/assembly-appendix-topology-resources.adoc
@@ -1,6 +1,9 @@
+:_mod-docs-content-type: ASSEMBLY
+
[id="appendix-topology-resources"]
= Additional resources for tested deployment models
+[role="_abstract"]
This appendix provides a reference for the additional resources relevant to the tested deployment models outlined in {TitleTopologies}.
* For additional information about each of the tested topologies described in this document, see the link:https://github.com/ansible/test-topologies/[test-topologies GitHub repo].
diff --git a/downstream/assemblies/topologies/assembly-container-topologies.adoc b/downstream/assemblies/topologies/assembly-container-topologies.adoc
index 34506d2d90..39331669ae 100644
--- a/downstream/assemblies/topologies/assembly-container-topologies.adoc
+++ b/downstream/assemblies/topologies/assembly-container-topologies.adoc
@@ -1,7 +1,9 @@
+:_mod-docs-content-type: ASSEMBLY
[id="container-topologies"]
= Container topologies
+[role="_abstract"]
The containerized installer deploys {PlatformNameShort} on {RHEL} by using Podman which runs the platform in containers on host machines. Customers manage the product and infrastructure lifecycle.
//Container growth topology
diff --git a/downstream/assemblies/topologies/assembly-ocp-topologies.adoc b/downstream/assemblies/topologies/assembly-ocp-topologies.adoc
index e4bfd573ba..6b4b8b1aa2 100644
--- a/downstream/assemblies/topologies/assembly-ocp-topologies.adoc
+++ b/downstream/assemblies/topologies/assembly-ocp-topologies.adoc
@@ -1,7 +1,9 @@
+:_mod-docs-content-type: ASSEMBLY
[id="ocp-topologies"]
= Operator topologies
+[role="_abstract"]
The {OperatorPlatformNameShort} uses Red Hat OpenShift Operators to deploy {PlatformNameShort} within Red Hat OpenShift. Customers manage the product and infrastructure lifecycle.
[IMPORTANT]
diff --git a/downstream/assemblies/topologies/assembly-overview-tested-deployment-models.adoc b/downstream/assemblies/topologies/assembly-overview-tested-deployment-models.adoc
index 391c04bb42..39a0ce4258 100644
--- a/downstream/assemblies/topologies/assembly-overview-tested-deployment-models.adoc
+++ b/downstream/assemblies/topologies/assembly-overview-tested-deployment-models.adoc
@@ -1,7 +1,10 @@
+:_mod-docs-content-type: ASSEMBLY
+
[id="overview-tested-deployment-models"]
= Overview of tested deployment models
+[role="_abstract"]
Red Hat tests {PlatformNameShort} {PlatformVers} with a defined set of topologies to give you opinionated deployment options. Deploy all components of {PlatformNameShort} so that all features and capabilities are available for use without the need to take further action.
Red Hat tests the installation of {PlatformNameShort} {PlatformVers} based on a defined set of infrastructure topologies or reference architectures. Enterprise organizations can use one of the {EnterpriseTopologyPlural} for production deployments to ensure the highest level of uptime, performance, and continued scalability. Organizations or deployments that are resource constrained can use a {GrowthTopology}.
diff --git a/downstream/assemblies/topologies/assembly-rpm-topologies.adoc b/downstream/assemblies/topologies/assembly-rpm-topologies.adoc
index ee511d71c6..9f44dd858f 100644
--- a/downstream/assemblies/topologies/assembly-rpm-topologies.adoc
+++ b/downstream/assemblies/topologies/assembly-rpm-topologies.adoc
@@ -3,6 +3,7 @@
= RPM topologies
+[role="_abstract"]
The RPM installer deploys {PlatformNameShort} on {RHEL} by using RPMs to install the platform on host machines. Customers manage the product and infrastructure lifecycle.
//RPM growth topology
diff --git a/downstream/assemblies/troubleshooting-aap/assembly-diagnosing-the-problem.adoc b/downstream/assemblies/troubleshooting-aap/assembly-diagnosing-the-problem.adoc
index 357b5051e9..45c3e7e356 100644
--- a/downstream/assemblies/troubleshooting-aap/assembly-diagnosing-the-problem.adoc
+++ b/downstream/assemblies/troubleshooting-aap/assembly-diagnosing-the-problem.adoc
@@ -4,6 +4,7 @@
= Diagnosing the problem
+[role="_abstract"]
To start troubleshooting {PlatformNameShort}, use the `must-gather` command on {OCPShort} or the `sos` utility on a {VMBase} to collect configuration and diagnostic information. You can attach the output of these utilities to your support case.
include::troubleshooting-aap/proc-troubleshoot-must-gather.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-backup-recovery.adoc b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-backup-recovery.adoc
index a5436bf521..4cfaa2473b 100644
--- a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-backup-recovery.adoc
+++ b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-backup-recovery.adoc
@@ -1,8 +1,11 @@
-
+:_mod-docs-content-type: ASSEMBLY
[id="troubleshoot-backup-recovery"]
= Backup and recovery
+[role="_abstract"]
+Use this information to troubleshoot backup and recovery.
+
* For information about performing a backup and recovery of {PlatformNameShort}, see link:{URLControllerAdminGuide}/controller-backup-and-restore[Backup and restore] in _{TitleControllerAdminGuide}_.
* For information about troubleshooting backup and recovery for installations of {OperatorPlatformNameShort} on {OCPShort}, see the link:{URLOperatorBackup}/assembly-aap-troubleshoot-backup-recover[Troubleshooting] section in _{TitleOperatorBackup}_.
diff --git a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-controller.adoc b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-controller.adoc
index 786946dc94..dbd0aad0d1 100644
--- a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-controller.adoc
+++ b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-controller.adoc
@@ -1,8 +1,11 @@
-
+:_mod-docs-content-type: ASSEMBLY
[id="troubleshoot-controller"]
= Resources for troubleshooting {ControllerName}
+[role="_abstract"]
+Use the following resources to troubleshoot {ControllerName}.
+
* For information about troubleshooting {ControllerName}, see link:{URLControllerAdminGuide}/controller-troubleshooting[Troubleshooting {ControllerName}] in _{TitleControllerAdminGuide}_.
* For information about troubleshooting the performance of {ControllerName}, see link:{URLControllerAdminGuide}/assembly-controller-improving-performance#ref-controller-performance-troubleshooting[Performance troubleshooting for {ControllerName}] in _{TitleControllerAdminGuide}_.
\ No newline at end of file
diff --git a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-execution-environments.adoc b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-execution-environments.adoc
index 9e0f40feeb..5258bcfded 100644
--- a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-execution-environments.adoc
+++ b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-execution-environments.adoc
@@ -1,8 +1,9 @@
-
+:_mod-docs-content-type: ASSEMBLY
[id="troubleshoot-execution-environments"]
= Execution environments
+[role="_abstract"]
Troubleshoot issues with execution environments.
include::troubleshooting-aap/proc-troubleshoot-use-in-controller.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-installation.adoc b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-installation.adoc
index 40a40b586f..7862e6cb29 100644
--- a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-installation.adoc
+++ b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-installation.adoc
@@ -1,8 +1,9 @@
-
+:_mod-docs-content-type: ASSEMBLY
[id="troubleshoot-installation"]
= Installation
+[role="_abstract"]
Troubleshoot issues with your installation.
include::troubleshooting-aap/proc-troubleshoot-aap-packages.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-jobs.adoc b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-jobs.adoc
index 1999ca1215..17c9824c9d 100644
--- a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-jobs.adoc
+++ b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-jobs.adoc
@@ -4,12 +4,14 @@
= Jobs
+[role="_abstract"]
Troubleshoot issues with jobs.
// Michelle - commenting out for now as it refers to upgrade info
// include::troubleshooting-aap/proc-troubleshoot-job-localhost.adoc[leveloffset=+1]
include::troubleshooting-aap/proc-troubleshoot-job-resolve-module.adoc[leveloffset=+1]
+
include::troubleshooting-aap/proc-troubleshoot-job-timeout.adoc[leveloffset=+1]
include::troubleshooting-aap/proc-troubleshoot-job-pending.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-networking.adoc b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-networking.adoc
index 47c34db517..cefdeccca5 100644
--- a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-networking.adoc
+++ b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-networking.adoc
@@ -1,8 +1,9 @@
-
+:_mod-docs-content-type: ASSEMBLY
[id="troubleshoot-networking"]
= Networking
+[role="_abstract"]
Troubleshoot networking issues.
include::troubleshooting-aap/proc-troubleshoot-subnet-conflict.adoc[leveloffset=+1]
diff --git a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-playbooks.adoc b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-playbooks.adoc
index c88e776aca..749fdbc048 100644
--- a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-playbooks.adoc
+++ b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-playbooks.adoc
@@ -1,9 +1,11 @@
-
+:_mod-docs-content-type: ASSEMBLY
[id="troubleshoot-playbooks"]
= Playbooks
+[role="_abstract"]
You can use {Navigator} to interactively troubleshoot your playbook.
+
For more information about troubleshooting a playbook with {Navigator}, see
link:{URLNavigatorGuide}/assembly-troubleshooting-navigator_ansible-navigator[Troubleshooting Ansible content with {Navigator}]
in the _{TitleNavigatorGuide}_ Guide.
diff --git a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-upgrade.adoc b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-upgrade.adoc
index 3a12be1aa0..3e2d6df916 100644
--- a/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-upgrade.adoc
+++ b/downstream/assemblies/troubleshooting-aap/assembly-troubleshoot-upgrade.adoc
@@ -1,8 +1,9 @@
-
+:_mod-docs-content-type: ASSEMBLY
[id="troubleshoot-upgrade"]
= Upgrading
-Troubleshoot issues when upgrading to {PlatformNameShort} 2.5.
+[role="_abstract"]
+Troubleshoot issues when upgrading to {PlatformNameShort} {PlatformVers}.
include::troubleshooting-aap/proc-troubleshoot-upgrade-issues.adoc[leveloffset=+1]
diff --git a/downstream/attributes/attributes.adoc b/downstream/attributes/attributes.adoc
index ef0f2df9c5..32015fe5af 100644
--- a/downstream/attributes/attributes.adoc
+++ b/downstream/attributes/attributes.adoc
@@ -6,13 +6,13 @@
:AAPCentralAuth: Ansible Automation Platform Central Authentication
:CentralAuthStart: Central authentication
:CentralAuth: central authentication
-:PlatformVers: 2.5
+:PlatformVers: 2.6
:PostgresVers: PostgreSQL 15
//The ansible-core version used to install AAP
:CoreInstVers: 2.14
//The ansible-core version used by the AAP control plane and EEs
:CoreUseVers: 2.16
-:PlatformDownloadUrl: https://access.redhat.com/downloads/content/480/ver=2.5/rhel---9/2.5/x86_64/product-software
+:PlatformDownloadUrl: https://access.redhat.com/downloads/content/480/ver=2.6/rhel---9/2.6/x86_64/product-software
:BaseURL: https://docs.redhat.com/en/documentation
:VMBase: VM-based installation
:Installer: installation program
@@ -42,6 +42,8 @@
:OpenAI: OpenAI
:AzureOpenAI: Microsoft Azure OpenAI
+// Automation Dashboard
+:AutomationDashboardName: Automation Dashboard
// AAP on Clouds
:AAPonAzureName: Red Hat Ansible Automation Platform on Microsoft Azure
@@ -508,4 +510,9 @@
// Clouds branch titles/saas-aws
:TitleSaaSAWSGuide: Red Hat Ansible Automation Platform Service on AWS
:URLSaaSAWSGuide: {BaseURL}/ansible_on_clouds/2.x_latest/html/red_hat_ansible_automation_platform_service_on_aws
-:LinkSaaSAWSGuide: link:{URLSaaSAWSGuide}[{TitleSaaSAWSGuide}]
+:LinkSaaSAWSGuide: {URLSaaSAWSGuide}[{TitleSaaSAWSGuide}]
+//
+// titles/automation-dashboard
+:TitleAutomationDashboard: Using Automation Dashboard
+:URLAutomationDashboard: {BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html/using_automation_dashboard
+:LinkAutomationDashboard: {URLAutomationDashboard}[{TitleAutomationDashboard}]
diff --git a/downstream/images/AAP-2.6-channels.png b/downstream/images/AAP-2.6-channels.png
new file mode 100644
index 0000000000..2452d31dc4
Binary files /dev/null and b/downstream/images/AAP-2.6-channels.png differ
diff --git a/downstream/images/AAP-2.6-view.png b/downstream/images/AAP-2.6-view.png
new file mode 100644
index 0000000000..9e7644b55f
Binary files /dev/null and b/downstream/images/AAP-2.6-view.png differ
diff --git a/downstream/modules/aap-hardening/con-platform-components.adoc b/downstream/modules/aap-hardening/con-platform-components.adoc
index 3e3f5bd50e..04f9ec9e8c 100644
--- a/downstream/modules/aap-hardening/con-platform-components.adoc
+++ b/downstream/modules/aap-hardening/con-platform-components.adoc
@@ -11,4 +11,5 @@
[role="_additional-resources"]
.Additional resources
-For more information about the components provided within {PlatformNameShort}, see link:{URLPlanningGuide}/ref-aap-components[Red Hat Ansible Automation Platform components] in _{TitlePlanningGuide}_.
+
+* link:{URLPlanningGuide}/ref-aap-components[Red Hat Ansible Automation Platform components]
diff --git a/downstream/modules/aap-hardening/con-protect-sensitive-data-no-log.adoc b/downstream/modules/aap-hardening/con-protect-sensitive-data-no-log.adoc
index 60924f07cd..9511168846 100644
--- a/downstream/modules/aap-hardening/con-protect-sensitive-data-no-log.adoc
+++ b/downstream/modules/aap-hardening/con-protect-sensitive-data-no-log.adoc
@@ -1,5 +1,6 @@
[id="con-protect-sensitive-data-no-log"]
= Protecting sensitive data with no_log
+
If you save Ansible output to a log, you expose any secret data in your Ansible output, such as passwords and usernames.
To keep sensitive values out of your logs, mark tasks that expose them with the `no_log: True` attribute. However, the `no_log` attribute does not affect debugging output, so be careful not to debug playbooks in a production environment.
\ No newline at end of file
diff --git a/downstream/modules/aap-migration/con-artifact-structure.adoc b/downstream/modules/aap-migration/con-artifact-structure.adoc
index 0ec6612ca5..9d6b3035c0 100644
--- a/downstream/modules/aap-migration/con-artifact-structure.adoc
+++ b/downstream/modules/aap-migration/con-artifact-structure.adoc
@@ -3,6 +3,7 @@
[id="artifact-structure"]
= Artifact structure
+[role="_abstract"]
The migration artifact serves as a comprehensive package containing all necessary components to successfully transfer your {PlatformNameShort} deployment.
Structure the artifact as follows:
diff --git a/downstream/modules/aap-migration/con-containerized-to-managed-prerequisites.adoc b/downstream/modules/aap-migration/con-containerized-to-managed-prerequisites.adoc
index 286b40bf0c..92ffbcc2fe 100644
--- a/downstream/modules/aap-migration/con-containerized-to-managed-prerequisites.adoc
+++ b/downstream/modules/aap-migration/con-containerized-to-managed-prerequisites.adoc
@@ -3,6 +3,7 @@
[id="containerized-to-managed-prerequisites"]
= Prerequisites for migrating from a container-based deployment to a Managed {PlatformNameShort} deployment
+[role="_abstract"]
Before migrating from a container-based deployment to a Managed {PlatformNameShort} deployment, ensure that you meet the following prerequisites:
* You have a source container-based deployment of {PlatformNameShort}.
diff --git a/downstream/modules/aap-migration/con-containerized-to-ocp-prerequisites.adoc b/downstream/modules/aap-migration/con-containerized-to-ocp-prerequisites.adoc
index eace6038e1..82b5350ea5 100644
--- a/downstream/modules/aap-migration/con-containerized-to-ocp-prerequisites.adoc
+++ b/downstream/modules/aap-migration/con-containerized-to-ocp-prerequisites.adoc
@@ -3,6 +3,7 @@
[id="containerized-to-ocp-prerequisites"]
= Prerequisites for migrating from a container-based deployment to an {OCPShort} deployment
+[role="_abstract"]
Before migrating from a container-based deployment to an {OCPShort} deployment, ensure that you meet the following prerequisites:
* You have a source container-based deployment of {PlatformNameShort}.
diff --git a/downstream/modules/aap-migration/con-introduction-and-objectives.adoc b/downstream/modules/aap-migration/con-introduction-and-objectives.adoc
index c9854e14d0..02f656213e 100644
--- a/downstream/modules/aap-migration/con-introduction-and-objectives.adoc
+++ b/downstream/modules/aap-migration/con-introduction-and-objectives.adoc
@@ -3,6 +3,7 @@
[id="introduction-and-objectives"]
= Introduction and objectives
+[role="_abstract"]
This document outlines the necessary steps and considerations for migrating between different {PlatformNameShort} deployment types for {PlatformNameShort} {PlatformVers}. Specifically, it focuses on these migration paths:
[options="header"]
diff --git a/downstream/modules/aap-migration/con-manifest-file.adoc b/downstream/modules/aap-migration/con-manifest-file.adoc
index 501b7b8d19..c5f291fcf4 100644
--- a/downstream/modules/aap-migration/con-manifest-file.adoc
+++ b/downstream/modules/aap-migration/con-manifest-file.adoc
@@ -3,6 +3,7 @@
[id="manifest-file"]
= Manifest file
+[role="_abstract"]
The `manifest.yml` file serves as the primary metadata document for the migration artifact, containing critical versioning and component information from your source environment.
Structure the manifest as follows:
diff --git a/downstream/modules/aap-migration/con-migration-process-overview.adoc b/downstream/modules/aap-migration/con-migration-process-overview.adoc
index e1d8338542..9b87c8b75a 100644
--- a/downstream/modules/aap-migration/con-migration-process-overview.adoc
+++ b/downstream/modules/aap-migration/con-migration-process-overview.adoc
@@ -3,6 +3,12 @@
[id="migration-process-overview"]
= Migration process overview
+[IMPORTANT]
+====
+You can only migrate to a different installation type of the same {PlatformNameShort} version. For example you can migrate from RPM version {PlatformVers} to containerized {PlatformVers}, but not from RPM version 2.4 to containerized {PlatformVers}.
+====
+
+[role="_abstract"]
The migration between {PlatformNameShort} installation types follows this general workflow:
. Prepare and assess the source environment - Prepare and assess the existing source environment for migration.
diff --git a/downstream/modules/aap-migration/con-out-of-scope.adoc b/downstream/modules/aap-migration/con-out-of-scope.adoc
index bb86c3b744..487fc33ed4 100644
--- a/downstream/modules/aap-migration/con-out-of-scope.adoc
+++ b/downstream/modules/aap-migration/con-out-of-scope.adoc
@@ -3,6 +3,7 @@
[id="out-of-scope"]
= Out of scope
+[role="_abstract"]
This guide is focused on the core components of {PlatformNameShort}. The following items are currently out of scope for the migration processes described in this document:
* {EDAName}: Configuration and content for {EDAName} must be manually recreated in the target environment.
diff --git a/downstream/modules/aap-migration/con-rpm-to-containerized-prerequisites.adoc b/downstream/modules/aap-migration/con-rpm-to-containerized-prerequisites.adoc
index e63c6d4587..77ab327864 100644
--- a/downstream/modules/aap-migration/con-rpm-to-containerized-prerequisites.adoc
+++ b/downstream/modules/aap-migration/con-rpm-to-containerized-prerequisites.adoc
@@ -3,6 +3,7 @@
[id="rpm-to-containerized-prerequisites"]
= Prerequisites for migrating from an RPM deployment to a containerized deployment
+[role="_abstract"]
Before migrating from an RPM-based deployment to a container-based deployment, ensure you meet the following prerequisites:
* You have a source RPM-based deployment of {PlatformNameShort}.
diff --git a/downstream/modules/aap-migration/con-rpm-to-managed-prerequisites.adoc b/downstream/modules/aap-migration/con-rpm-to-managed-prerequisites.adoc
index 24234723cc..1d04f66ac9 100644
--- a/downstream/modules/aap-migration/con-rpm-to-managed-prerequisites.adoc
+++ b/downstream/modules/aap-migration/con-rpm-to-managed-prerequisites.adoc
@@ -3,6 +3,7 @@
[id="rpm-to-managed-prerequisites"]
= Prerequisites for migrating from an RPM-based deployment to a Managed {PlatformNameShort} deployment
+[role="_abstract"]
Before migrating from an RPM-based deployment to a Managed {PlatformNameShort} deployment, ensure you meet the following prerequisites:
* You have a source RPM-based deployment of {PlatformNameShort}.
diff --git a/downstream/modules/aap-migration/con-rpm-to-ocp-prerequisites.adoc b/downstream/modules/aap-migration/con-rpm-to-ocp-prerequisites.adoc
index 56ab73f851..3055bdcc64 100644
--- a/downstream/modules/aap-migration/con-rpm-to-ocp-prerequisites.adoc
+++ b/downstream/modules/aap-migration/con-rpm-to-ocp-prerequisites.adoc
@@ -3,6 +3,7 @@
[id="rpm-to-ocp-prerequisites"]
= Prerequisites for migrating from an RPM-based deployment to an {OCPShort} deployment
+[role="_abstract"]
Before migrating from an RPM-based deployment to an {OCPShort} deployment, ensure you meet the following prerequisites:
* You have a source RPM-based deployment of {PlatformNameShort}.
diff --git a/downstream/modules/aap-migration/con-secrets-file.adoc b/downstream/modules/aap-migration/con-secrets-file.adoc
index 2a23dadf0e..1acc35a413 100644
--- a/downstream/modules/aap-migration/con-secrets-file.adoc
+++ b/downstream/modules/aap-migration/con-secrets-file.adoc
@@ -3,6 +3,7 @@
[id="secrets-file"]
= Secrets file
+[role="_abstract"]
The `secrets.yml` file in the migration artifact includes essential Django `SECRET_KEY` values and other sensitive data required for authentication between services.
Structure the secrets file as follows:
@@ -20,4 +21,4 @@ hub_db_fields_encryption_key:
[NOTE]
====
Ensure the `secrets.yml` file is encrypted kept in a secure location.
-====
\ No newline at end of file
+====
diff --git a/downstream/modules/aap-migration/proc-containerized-post-import.adoc b/downstream/modules/aap-migration/proc-containerized-post-import.adoc
index 30a198f567..6841fc1193 100644
--- a/downstream/modules/aap-migration/proc-containerized-post-import.adoc
+++ b/downstream/modules/aap-migration/proc-containerized-post-import.adoc
@@ -3,6 +3,7 @@
[id="containerized-post-import"]
= Reconciling the target environment post-import
+[role="_abstract"]
Perform the following post-import reconciliation steps to ensure your target environment is fully functional and correctly configured.
.Procedure
diff --git a/downstream/modules/aap-migration/proc-containerized-target-import.adoc b/downstream/modules/aap-migration/proc-containerized-target-import.adoc
index 0133260beb..cf034c2e00 100644
--- a/downstream/modules/aap-migration/proc-containerized-target-import.adoc
+++ b/downstream/modules/aap-migration/proc-containerized-target-import.adoc
@@ -3,6 +3,7 @@
[id="containerized-target-import"]
= Importing the migration content to the target environment
+[role="_abstract"]
To import your migration content into the target environment, stop the containerized services, import the database dumps, and then restart the services.
.Procedure
diff --git a/downstream/modules/aap-migration/proc-containerized-target-prep.adoc b/downstream/modules/aap-migration/proc-containerized-target-prep.adoc
index 0f9eda990b..a53c458558 100644
--- a/downstream/modules/aap-migration/proc-containerized-target-prep.adoc
+++ b/downstream/modules/aap-migration/proc-containerized-target-prep.adoc
@@ -3,6 +3,7 @@
[id="containerized-target-prep"]
= Preparing and assessing the target environment
+[role="_abstract"]
To prepare your target environment, perform the following steps.
.Procedure
diff --git a/downstream/modules/aap-migration/proc-containerized-validation.adoc b/downstream/modules/aap-migration/proc-containerized-validation.adoc
index 81f242c410..75cbd5a9eb 100644
--- a/downstream/modules/aap-migration/proc-containerized-validation.adoc
+++ b/downstream/modules/aap-migration/proc-containerized-validation.adoc
@@ -3,6 +3,7 @@
[id="containerized-validation"]
= Validating the target environment
+[role="_abstract"]
After completing the migration, validate your target environment to ensure all components are functional and operating as expected.
.Procedure
diff --git a/downstream/modules/aap-migration/proc-managed-post-import.adoc b/downstream/modules/aap-migration/proc-managed-post-import.adoc
index 70f53a6398..11060a5aee 100644
--- a/downstream/modules/aap-migration/proc-managed-post-import.adoc
+++ b/downstream/modules/aap-migration/proc-managed-post-import.adoc
@@ -3,6 +3,7 @@
[id="managed-post-import"]
= Reconciling the target environment post-migration
+[role="_abstract"]
After a successful migration, perform the following tasks:
.Procedure
diff --git a/downstream/modules/aap-migration/proc-managed-target-migration.adoc b/downstream/modules/aap-migration/proc-managed-target-migration.adoc
index f340f17b91..3c16de889e 100644
--- a/downstream/modules/aap-migration/proc-managed-target-migration.adoc
+++ b/downstream/modules/aap-migration/proc-managed-target-migration.adoc
@@ -3,6 +3,9 @@
[id="managed-target-migration"]
= Migrating to Managed {PlatformNameShort}
+[role="_abstract"]
+Follow this procedure to migrate to Managed {PlatformNameShort}.
+
.Prerequisites
* You have a migration artifact from your source environment.
diff --git a/downstream/modules/aap-migration/proc-ocp-post-import.adoc b/downstream/modules/aap-migration/proc-ocp-post-import.adoc
index faf58635f4..91db99d7ad 100644
--- a/downstream/modules/aap-migration/proc-ocp-post-import.adoc
+++ b/downstream/modules/aap-migration/proc-ocp-post-import.adoc
@@ -3,6 +3,7 @@
[id="ocp-post-import"]
= Reconciling the target environment post-import
+[role="_abstract"]
After importing your migration artifact, perform the following steps to reconcile your target environment.
.Procedure
diff --git a/downstream/modules/aap-migration/proc-ocp-target-import.adoc b/downstream/modules/aap-migration/proc-ocp-target-import.adoc
index 9ca5aa4241..a45f72ce03 100644
--- a/downstream/modules/aap-migration/proc-ocp-target-import.adoc
+++ b/downstream/modules/aap-migration/proc-ocp-target-import.adoc
@@ -3,6 +3,7 @@
[id="ocp-target-import"]
= Importing the migration content to the target environment
+[role="_abstract"]
To import your environment, scale down {PlatformNameShort} components, restore databases, replace encryption secrets, and scale services back up.
[NOTE]
diff --git a/downstream/modules/aap-migration/proc-ocp-target-prep.adoc b/downstream/modules/aap-migration/proc-ocp-target-prep.adoc
index b185703ea4..45e548457c 100644
--- a/downstream/modules/aap-migration/proc-ocp-target-prep.adoc
+++ b/downstream/modules/aap-migration/proc-ocp-target-prep.adoc
@@ -3,6 +3,7 @@
[id="ocp-target-prep"]
= Preparing and assessing the target environment
+[role="_abstract"]
To prepare and assess your target environment, perform the following steps.
.Procedure
diff --git a/downstream/modules/aap-migration/proc-ocp-validation.adoc b/downstream/modules/aap-migration/proc-ocp-validation.adoc
index c48b56d9f4..76aff07010 100644
--- a/downstream/modules/aap-migration/proc-ocp-validation.adoc
+++ b/downstream/modules/aap-migration/proc-ocp-validation.adoc
@@ -3,6 +3,7 @@
[id="ocp-validation"]
= Validating the target environment
+[role="_abstract"]
To validate your migrated environment, perform the following steps.
.Procedure
diff --git a/downstream/modules/aap-migration/proc-rpm-environment-source-prep.adoc b/downstream/modules/aap-migration/proc-rpm-environment-source-prep.adoc
index d7f0a99882..1d49180a8b 100644
--- a/downstream/modules/aap-migration/proc-rpm-environment-source-prep.adoc
+++ b/downstream/modules/aap-migration/proc-rpm-environment-source-prep.adoc
@@ -3,6 +3,7 @@
[id="rpm-environment-source-prep"]
= Preparing and assessing the source environment
+[role="_abstract"]
Before beginning your migration, document your current RPM deployment. This documentation serves as a reference throughout the migration process and is critical for properly configuring your target environment.
.Procedure
diff --git a/downstream/modules/aap-migration/proc-rpm-source-environment-export.adoc b/downstream/modules/aap-migration/proc-rpm-source-environment-export.adoc
index e400c402c0..96e9b49e0b 100644
--- a/downstream/modules/aap-migration/proc-rpm-source-environment-export.adoc
+++ b/downstream/modules/aap-migration/proc-rpm-source-environment-export.adoc
@@ -3,6 +3,7 @@
[id="rpm-source-environment-export"]
= Exporting the source environment
+[role="_abstract"]
From your source environment, export the data and configurations needed for migration.
.Procedure
diff --git a/downstream/modules/aap-migration/ref-migration-artifact-checklist.adoc b/downstream/modules/aap-migration/ref-migration-artifact-checklist.adoc
index d067be57bd..f9acaacacc 100644
--- a/downstream/modules/aap-migration/ref-migration-artifact-checklist.adoc
+++ b/downstream/modules/aap-migration/ref-migration-artifact-checklist.adoc
@@ -3,6 +3,7 @@
[id="migration-artifact-checklist"]
= Migration artifact creation checklist
+[role="_abstract"]
Use this checklist to verify the migration artifact.
* Database dumps: Include complete database dumps for each component.
diff --git a/downstream/modules/builder/con-galaxy-dependencies.adoc b/downstream/modules/builder/con-galaxy-dependencies.adoc
index 31fc292fd5..ead5f912c3 100644
--- a/downstream/modules/builder/con-galaxy-dependencies.adoc
+++ b/downstream/modules/builder/con-galaxy-dependencies.adoc
@@ -1,6 +1,7 @@
[id="con-galaxy-dependencies"]
= Galaxy
+
The `galaxy` entry points to a valid requirements file or includes inline content for the `ansible-galaxy collection install -r ...` command.
The entry `requirements.yml` can be a relative path from the directory of the {ExecEnvNameSing} definition's folder, or an absolute path.
diff --git a/downstream/modules/devtools/con-devtools-requirements.adoc b/downstream/modules/devtools/con-devtools-requirements.adoc
index 6f09cf87f6..5143eed0b0 100644
--- a/downstream/modules/devtools/con-devtools-requirements.adoc
+++ b/downstream/modules/devtools/con-devtools-requirements.adoc
@@ -10,9 +10,9 @@ Extra requirements for Windows installations and containerized installations are
* Python 3.10 or later.
* {VSCode} (Visual Studio Code) with the Ansible extension added. See
-xref:devtools-install-vsc_installing-devtools[Installing {VScode}].
+link:{URLDevelopAutomationContent}/installing-devtools#devtools-install-vsc_installing-devtools[Installing {VScode}].
* For containerized installations, the Microsoft Dev Containers {VSCode} extension. See
-xref:devtools-ms-dev-containers-ext_installing-devtools[Installing and configuring the Dev Containers extension].
+link:{URLDevelopAutomationContent}/installing-devtools#devtools-ms-dev-containers-ext_installing-devtools[Installing and configuring the Dev Containers extension].
* A containerization platform, for example Podman, Podman Desktop, Docker, or Docker Desktop.
+
[NOTE]
@@ -22,5 +22,5 @@ See link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_pla
====
* You have a Red Hat account and you can log in to the Red Hat container registry at `registry.redhat.io`.
For information about logging in to `registry.redhat.io`, see
-xref:devtools-setup-registry-redhat-io_installing-devtools[Authenticating with the Red Hat container registry].
+link:{URLDevelopAutomationContent}/installing-devtools#devtools-setup-registry-redhat-io_installing-devtools[Authenticating with the Red Hat container registry].
diff --git a/downstream/modules/devtools/con-devtools-roles-collection-prerequisites.adoc b/downstream/modules/devtools/con-devtools-roles-collection-prerequisites.adoc
index 2b30223c52..a0b19694ef 100644
--- a/downstream/modules/devtools/con-devtools-roles-collection-prerequisites.adoc
+++ b/downstream/modules/devtools/con-devtools-roles-collection-prerequisites.adoc
@@ -4,12 +4,12 @@
= Prerequisites
* You have installed {VSCode} and the Ansible extension.
-* You have installed the Microsoft Dev Containers extension in {{VSCode}.
+* You have installed the Microsoft Dev Containers extension in {VSCode}.
* You have installed {ToolsName}.
* You have installed a containerization platform, for example Podman, Podman Desktop, Docker, or Docker Desktop.
* You have a Red Hat account and you can log in to the Red Hat container registry at `registry.redhat.io`.
For information about logging in to `registry.redhat.io`, see
-xref:devtools-setup-registry-redhat-io_installing-devtools[Authenticating with the Red Hat container registry].
+link:{URLDevelopAutomationContent}/installing-devtools#devtools-setup-registry-redhat-io_installing-devtools[Authenticating with the Red Hat container registry].
// * Considerations about environments / isolation (ADE / devcontainer files)
diff --git a/downstream/modules/devtools/proc-devtools-extension-run-ansible-navigator.adoc b/downstream/modules/devtools/proc-devtools-extension-run-ansible-navigator.adoc
index 63f370eacd..a8ead40d5c 100644
--- a/downstream/modules/devtools/proc-devtools-extension-run-ansible-navigator.adoc
+++ b/downstream/modules/devtools/proc-devtools-extension-run-ansible-navigator.adoc
@@ -3,6 +3,9 @@
= Running your playbook with `ansible-navigator`
+[role="_abstract"]
+You can run an Ansible playbook through `ansible-navigator` by right-clicking the playbook name in the Explorer pane. This procedure explains how to view the playbook's output and navigate the results for each play and task within the terminal.
+
.Prerequisites
* In the Ansible extension settings, enable the use of an execution environment in *Ansible Execution Environment > Enabled*.
@@ -12,7 +15,7 @@
. To run a playbook, right-click the playbook name in the Explorer pane, then select menu:Run Ansible Playbook via[Run playbook via ansible-navigator run].
+
-The output is displayed in the *Terminal* tab of the {VSCode} terminal.
+. View the output in the *Terminal* tab of the {VSCode} terminal.
The *Successful* status indicates that the playbook ran successfully.
+
image:devtools-extension-navigator-output.png[Output for ansible-navigator execution]
@@ -24,7 +27,7 @@ image:devtools-extension-navigator-tasks.png[Tasks in ansible-navigator output]
+
Type the number next to a task to review the task results.
-For more information on running playbooks with {Navigator}, see
-link:{URLNavigatorGuide}/assembly-execute-playbooks-navigator_ansible-navigator#proc-execute-playbook-tui_execute-playbooks-navigator[Executing a playbook from automation content navigator]
-in the _{TitleNavigatorGuide}_ Guide.
+[role="_additional-resources"]
+.Additional resources
+* link:{URLNavigatorGuide}/assembly-execute-playbooks-navigator_ansible-navigator#proc-execute-playbook-tui_execute-playbooks-navigator[Executing a playbook from automation content navigator]
diff --git a/downstream/modules/devtools/proc-devtools-extension-set-language.adoc b/downstream/modules/devtools/proc-devtools-extension-set-language.adoc
index c4c5c848f7..bc2c69b761 100644
--- a/downstream/modules/devtools/proc-devtools-extension-set-language.adoc
+++ b/downstream/modules/devtools/proc-devtools-extension-set-language.adoc
@@ -4,41 +4,13 @@
= Associating the Ansible language to YAML files
[role="_abstract"]
-
-The Ansible {VSCode} extension works only when the language associated with a file is set to Ansible.
-The extension provides features that help create Ansible playbooks, such as auto-completion, hover, and diagnostics.
-
-The Ansible {VSCode} extension automatically associates the Ansible language with some files.
-The procedures below describe how to set the language for files that are not recognized as Ansible files.
-
-.Manually associating the Ansible language to YAML files
-
The following procedure describes how to manually assign the Ansible language to a YAML file that is open in {VSCode}.
+.Procedure
+
. Open or create a YAML file in {VSCode}.
. Hover the cursor over the language identified in the status bar at the bottom of the {VSCode} window to open the *Select Language Mode* list.
. Select *Ansible* in the list.
+
The language shown in the status bar at the bottom of the {VSCode} window for the file is changed to Ansible.
-.Adding persistent file association for the Ansible language to `settings.json`
-
-Alternatively, you can add file association for the Ansible language in your `settings.json` file.
-
-. Open the `settings.json` file:
-.. Click menu:View[Command Palette] to open the command palette.
-.. Enter `Workspace settings` in the search box and select *Open Workspace Settings (JSON)*.
-. Add the following code to `settings.json`.
-+
-----
-{
- ...
-
- "files.associations": {
- "*plays.yml": "ansible",
- "*init.yml": "yaml",
- }
-}
-----
-
-
diff --git a/downstream/modules/devtools/proc-devtools-extension-set-persistant-file.adoc b/downstream/modules/devtools/proc-devtools-extension-set-persistant-file.adoc
new file mode 100644
index 0000000000..3d170d685c
--- /dev/null
+++ b/downstream/modules/devtools/proc-devtools-extension-set-persistant-file.adoc
@@ -0,0 +1,27 @@
+[id="devtools-extension-set-persistant-file_{context}"]
+:_mod-docs-content-type: PROCEDURE
+
+= Adding persistent file association for the Ansible language to `settings.json`
+
+[role="_abstract"]
+instread of manually associating the Ansible language to YAML files, you can add file association for the Ansible language in your `settings.json` file.
+
+.Procedure
+
+. Open the `settings.json` file:
+.. Click menu:View[Command Palette] to open the command palette.
+.. Enter `Workspace settings` in the search box and select *Open Workspace Settings (JSON)*.
+. Add the following code to `settings.json`.
++
+----
+{
+ ...
+
+ "files.associations": {
+ "*plays.yml": "ansible",
+ "*init.yml": "yaml",
+ }
+}
+----
+
+
diff --git a/downstream/modules/devtools/proc-devtools-extension-settings.adoc b/downstream/modules/devtools/proc-devtools-extension-settings.adoc
index 60592de68b..85dc977a80 100644
--- a/downstream/modules/devtools/proc-devtools-extension-settings.adoc
+++ b/downstream/modules/devtools/proc-devtools-extension-settings.adoc
@@ -9,6 +9,7 @@ The Ansible extension supports multiple configuration options.
You can configure the settings for the extension on a user level, on a workspace level, or for a particular directory.
User-based settings are applied globally for any instance of VS Code that is opened.
+A {VSCode} workspace is a collection of one or more folders that you can open in a single {VSCode} window.
Workspace settings are stored within your workspace and only apply when the current workspace is opened.
It is useful to configure settings for your workspace for the following reasons:
@@ -18,15 +19,20 @@ you can customize your Ansible development environment for individual projects w
You can have different settings for a Python project, an Ansible project, and a C++ project, each optimized for the respective stack without the need to manually reconfigure settings each time you switch projects.
* If you include workspace settings when setting up version control for a project you want to share with your team, everyone uses the same configuration for that project.
+.Prerequisites
+
+* Open a workspace or folder, or create a new folder, in {VSCode} using the menu:File[Open Folder] menu.
+This is necessary because the file that stores settings preferences for workspaces is specific to a folder or workspace.
+
.Procedure
. Open the Ansible extension settings:
-.. Click the 'Extensions' icon in the activity bar.
+.. Click the image:vscode-extensions-icon.png[Extensions,15,15] *Extensions* icon in the activity bar.
.. Select the Ansible extension, and click the 'gear' icon and then *Extension Settings* to display the extension settings.
-+
-Alternatively, click menu:Code[Settings>Settings] to open the *Settings* page.
+* Alternatively, click menu:Code[Settings>Settings] to open the *Settings* page.
.. Enter `Ansible` in the search bar to display the settings for the extension.
. Select the *Workspace* tab to configure your settings for the current {VSCode} workspace.
+** If the *Workspace* tab is not displayed, open a folder or create a new folder using the menu:File[Open Folder] menu.
. The Ansible extension settings are pre-populated.
Modify the settings to suit your requirements:
** Check the menu:Ansible[Validation > Lint: Enabled] box to enable ansible-lint.
@@ -34,5 +40,9 @@ Modify the settings to suit your requirements:
** Specify the {ExecEnvShort} image you want to use in the *Ansible > Execution Environment: image* field.
** To use {LightspeedShortName}, check the *Ansible > Lightspeed: Enabled* box, and enter the URL for Lightspeed.
-The settings are documented on the link:https://marketplace.visualstudio.com/items?itemName=redhat.ansible[Ansible {VSCode} Extension by Red Hat page] in the VisualStudio marketplace documentation.
+[role="_additional-resources"]
+.Additional resources
+
+* link:https://marketplace.visualstudio.com/items?itemName=redhat.ansible[Ansible {VSCode} Extension by Red Hat page]
+* link:https://code.visualstudio.com/docs/editing/workspaces/workspaces[What is a {VSCode} workspace?]
diff --git a/downstream/modules/devtools/proc-devtools-install-container.adoc b/downstream/modules/devtools/proc-devtools-install-container.adoc
index b895eb9119..07e571fd13 100644
--- a/downstream/modules/devtools/proc-devtools-install-container.adoc
+++ b/downstream/modules/devtools/proc-devtools-install-container.adoc
@@ -11,7 +11,7 @@ You must use the Ansible extension to scaffold a config file for your dev contai
* You have installed a containerization platform, for example Podman, Podman Desktop, Docker, or Docker Desktop.
* You have a Red Hat login and you have logged in to the Red Hat registry at `registry.redhat.io`.
For information about logging in to `registry.redhat.io`, see
-xref:devtools-setup-registry-redhat-io_installing-devtools[Authenticating with the Red Hat container registry].
+link:{URLDevelopAutomationContent}/installing-devtools#devtools-setup-registry-redhat-io_installing-devtools[Authenticating with the Red Hat container registry].
* You have installed {VSCode}.
* You have installed the Ansible extension in {VSCode}.
* You have installed the link:https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers[Microsoft Dev Containers] extension in {VSCode}.
diff --git a/downstream/modules/devtools/proc-devtools-install-vscode-extension.adoc b/downstream/modules/devtools/proc-devtools-install-vscode-extension.adoc
index 9b090a0f59..7595d861ec 100644
--- a/downstream/modules/devtools/proc-devtools-install-vscode-extension.adoc
+++ b/downstream/modules/devtools/proc-devtools-install-vscode-extension.adoc
@@ -12,13 +12,17 @@ For a full description of the Ansible extension, see the link:https://marketplac
See link:https://red.ht/aap-lp-vscode-essentials[Learning path - Getting Started with the Ansible {VSCode} Extension] for tutorials on working with the extension.
-To install the Ansible {VSCode} extension:
+Use the following procedure to install the Ansible {VSCode} extension:
+
+.Procedure
. Open {VSCode}.
. Click the *Extensions* (image:vscode-extensions-icon.png[Extensions,15,15]) icon in the Activity Bar, or click menu:View[Extensions], to display the *Extensions* view.
. In the search field in the *Extensions* view, type `Ansible Red Hat`.
. Select the Ansible extension and click btn:[Install].
+.Verification
+
When the language for a file is recognized as Ansible, the Ansible extension provides features such as auto-completion, hover, diagnostics, and goto.
The language identified for a file is displayed in the Status bar at the bottom of the {VSCode} window.
@@ -29,6 +33,8 @@ The following files are assigned the Ansible language:
* Certain YAML names recognized by Ansible, for example `site.yml` or `site.yaml`
* YAML files whose filename contains "playbook": `*playbook*.yml` or `*playbook*.yaml`
+.Troubleshooting
+
If the extension does not identify the language for your playbook files as Ansible, follow the procedure in
-xref:devtools-extension-set-language_installing-devtools[Associating the Ansible language to YAML files].
+link:{URLDevelopAutomationContent}/installing-devtools#devtools-extension-set-language_installing-devtools[Associating the Ansible language to YAML files].
diff --git a/downstream/modules/devtools/proc-devtools-migrate-existing-roles-collection.adoc b/downstream/modules/devtools/proc-devtools-migrate-existing-roles-collection.adoc
index 89d4cb6878..c54ea4fd1f 100644
--- a/downstream/modules/devtools/proc-devtools-migrate-existing-roles-collection.adoc
+++ b/downstream/modules/devtools/proc-devtools-migrate-existing-roles-collection.adoc
@@ -82,8 +82,10 @@ company_namespace
+
The `run` role is a default role directory that is created when you scaffold the collection.
. Update your playbooks to use the fully qualified collection name (FQDN) for your new roles in your collection.
-
++
+[NOTE]
+====
Not every standalone role will seamlessly integrate into your collection without modification of the code.
For example, if a third-party standalone role from Galaxy that contains a plug-in uses the `module_utils/` directory,
then the plug-in itself has import statements.
-
+====
diff --git a/downstream/modules/devtools/proc-devtools-setup-registry-redhat-io.adoc b/downstream/modules/devtools/proc-devtools-setup-registry-redhat-io.adoc
index bc6f46e694..abfa51767e 100644
--- a/downstream/modules/devtools/proc-devtools-setup-registry-redhat-io.adoc
+++ b/downstream/modules/devtools/proc-devtools-setup-registry-redhat-io.adoc
@@ -8,9 +8,6 @@ All container images available through the Red Hat container catalog are hosted
`registry.redhat.io`.
The registry requires authentication for access to images.
-To use the `registry.redhat.io` registry, you must have a Red Hat login.
-This is the same account that you use to log in to the Red Hat Customer Portal (access.redhat.com) and manage your Red Hat subscriptions.
-
[NOTE]
====
If you are planning to install the {ToolsName} on a container inside {VSCode},
@@ -22,20 +19,26 @@ or the `devcontainer` to use as an execution environment,
you must log in from a terminal prompt within the `devcontainer` from a terminal inside {VSCode}.
====
-You can use the `podman login` or `docker login` commands with your credentials to access content on the registry.
+.Prerequisites
+
+* To use the `registry.redhat.io` registry, you must have a Red Hat login.
++
+This is the same account that you use to log in to the Red Hat Customer Portal (access.redhat.com) and manage your Red Hat subscriptions.
+
+.Procedure
-Podman::
+. Check whether you are already logged in to the `registry.redhat.io` registry:
+
----
-$ podman login registry.redhat.io
-Username: my__redhat_username
-Password: ***********
+$ podman login --get-login registry.redhat.io
----
-Docker::
++
+The command output displays your Red Hat login if you are logged in to `registry.redhat.io`.
+. If you are not logged in to `registry.redhat.io`, use the `podman login` command with your credentials to access content on the registry.
+
----
-$ docker login registry.redhat.io
-Username: my__redhat_username
+$ podman login registry.redhat.io
+Username: my_redhat_username
Password: ***********
----
@@ -43,8 +46,4 @@ For more information about Red Hat container registry authentication, see
link:https://access.redhat.com/RegistryAuthentication[Red Hat Container Registry Authentication]
on the Red Hat customer portal.
-// * If you are an organization administrator, you can create profiles for users in your organization and configure Red Hat customer portal access permissions for them.
-// Refer to link:https://access.redhat.com/start/learn:get-set-red-hat/resource/resources:create-and-manage-other-users[Create and manage other users] on the Red Hat customer portal for information.
-// * If you are a member of an organization, ask your administrator to create a Red Hat customer portal account for you.
-//Troubleshooting link:https://access.redhat.com/articles/3560571[Troubleshooting Authentication Issues with `registry.redhat.io`]
diff --git a/downstream/modules/devtools/proc-rhdh-add-plugin-software-templates.adoc b/downstream/modules/devtools/proc-rhdh-add-plugin-software-templates.adoc
index e6e8592681..02569f3e50 100644
--- a/downstream/modules/devtools/proc-rhdh-add-plugin-software-templates.adoc
+++ b/downstream/modules/devtools/proc-rhdh-add-plugin-software-templates.adoc
@@ -9,6 +9,7 @@ Red Hat Ansible provides software templates for {RHDH} to provision new playbook
. Edit your custom {RHDH} config map, for example `app-config-rhdh`.
. Add the following code to your {RHDH} `app-config-rhdh.yaml` file.
++
----
data:
app-config-rhdh.yaml: |
@@ -22,7 +23,7 @@ data:
- allow: [Template]
----
-For more information, refer to the
-link:{BaseURL}/red_hat_developer_hub/1.2/html-single/administration_guide_for_red_hat_developer_hub/assembly-admin-templates#assembly-admin-templates[Managing templates]
-section of the _Administration guide for Red Hat Developer Hub_.
+[role="_additional-resources"]
+.Additional resources
+* link:{BaseURL}/red_hat_developer_hub/1.2/html-single/administration_guide_for_red_hat_developer_hub/assembly-admin-templates#assembly-admin-templates[Managing templates]
diff --git a/downstream/modules/devtools/proc-rhdh-configure-devtools-server.adoc b/downstream/modules/devtools/proc-rhdh-configure-devtools-server.adoc
index 81ce7f9044..510fab729b 100644
--- a/downstream/modules/devtools/proc-rhdh-configure-devtools-server.adoc
+++ b/downstream/modules/devtools/proc-rhdh-configure-devtools-server.adoc
@@ -3,12 +3,12 @@
[id="rhdh-configure-devtools-server_{context}"]
= Configuring the Ansible Dev Tools Server
-The `creatorService` URL is required for the Ansible plug-ins to provision new projects using the provided software templates.
+The `creatorService` URL is required for the {AAPRHDHShort} to provision new projects using the provided software templates.
.Procedure
. Edit your custom {RHDH} config map, `app-config-rhdh`, that you created in
-xref:rhdh-add-custom-configmap_rhdh-ocp-required-installation[Adding a custom ConfigMap].
+link:{URLPluginRHDHInstall}/rhdh-install-ocp-helm_aap-plugin-rhdh-installing#rhdh-add-custom-configmap_rhdh-ocp-required-installation[Adding a custom ConfigMap].
. Add the following code to your {RHDH} `app-config-rhdh.yaml` file.
+
----
diff --git a/downstream/modules/devtools/proc-rhdh-configure-pah-url.adoc b/downstream/modules/devtools/proc-rhdh-configure-pah-url.adoc
index 218af264d3..9d57721393 100644
--- a/downstream/modules/devtools/proc-rhdh-configure-pah-url.adoc
+++ b/downstream/modules/devtools/proc-rhdh-configure-pah-url.adoc
@@ -14,13 +14,13 @@ The {PrivateHubName} configuration is optional but recommended.
The Ansible plug-ins will function without it.
====
-.Prerequisites:
+.Prerequisites
* A {PrivateHubName} instance.
+
For more information on installing {PrivateHubName}, refer to the installation guides in the
link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}[{PlatformNameShort} documentation].
-.Procedure:
+.Procedure
. Edit your custom {RHDH} config map, for example `app-config-rhdh`.
. Add the following code to your {RHDH} `app-config-rhdh.yaml` file.
diff --git a/downstream/modules/devtools/proc-rhdh-configure-showcase-location.adoc b/downstream/modules/devtools/proc-rhdh-configure-showcase-location.adoc
index 645e235780..0a25a4a70a 100644
--- a/downstream/modules/devtools/proc-rhdh-configure-showcase-location.adoc
+++ b/downstream/modules/devtools/proc-rhdh-configure-showcase-location.adoc
@@ -11,7 +11,7 @@ You must configure `showCaseLocation` in your custom config map.
.Procedure
. Edit your custom {RHDH} config map, `app-config-rhdh`, that you created in
-xref:rhdh-add-custom-configmap_rhdh-ocp-required-installation[Adding a custom ConfigMap].
+link:{URLPluginRHDHInstall}/rhdh-install-ocp-helm_aap-plugin-rhdh-installing#rhdh-add-custom-configmap_rhdh-ocp-required-installation[Adding a custom ConfigMap].
. Add the following code to your {RHDH} `app-config-rhdh.yaml` file.
+
----
diff --git a/downstream/modules/devtools/proc-rhdh-create.adoc b/downstream/modules/devtools/proc-rhdh-create.adoc
index a26d4155d0..01054bcc8b 100644
--- a/downstream/modules/devtools/proc-rhdh-create.adoc
+++ b/downstream/modules/devtools/proc-rhdh-create.adoc
@@ -8,7 +8,7 @@
* Ensure you have the correct access (RBAC) to view the templates in {RHDH}.
Ask your administrator to assign access to you if necessary.
-.Procedure:
+.Procedure
. Log in to your {RHDH} UI.
. Click the Ansible `A` icon in the {RHDH} navigation panel.
diff --git a/downstream/modules/devtools/proc-rhdh-warning-invalid-aap-config.adoc b/downstream/modules/devtools/proc-rhdh-warning-invalid-aap-config.adoc
index a8eebf5b3b..2a613a08cb 100644
--- a/downstream/modules/devtools/proc-rhdh-warning-invalid-aap-config.adoc
+++ b/downstream/modules/devtools/proc-rhdh-warning-invalid-aap-config.adoc
@@ -12,6 +12,7 @@ For help, please refer to the Ansible plug-ins installation guide.
----
. Verify that the `rhaap` section of the Ansible plug-ins ConfigMap is correctly configured and contains all the necessary entries.
-For more information, refer to xref:rhdh-configure-aap-details_rhdh-ocp-required-installation[Configuring Ansible Automation Platform details].
+For more information, refer to
+link:{URLPluginRHDHInstall}/rhdh-install-ocp-helm_aap-plugin-rhdh-installing#rhdh-configure-aap-details_rhdh-ocp-required-installation[Configuring Ansible Automation Platform details].
. After correcting the configuration, restart the {RHDH} pod to initiate a subscription query.
diff --git a/downstream/modules/devtools/proc-self-service-create-oauth-app.adoc b/downstream/modules/devtools/proc-self-service-create-oauth-app.adoc
index a354878de9..f154ee3036 100644
--- a/downstream/modules/devtools/proc-self-service-create-oauth-app.adoc
+++ b/downstream/modules/devtools/proc-self-service-create-oauth-app.adoc
@@ -12,7 +12,9 @@ because the OAuth configuration requires the URL for your deployment.
Create the OAuth Application on your {PlatformNameShort} instance,
using a placeholder name for the deployment URL.
-After deploying {SelfServiceShort}, you must xref:self-service-add-deployment-url-oauth-app_self-service-accessing-deployment[replace the placeholder value with a URL derived from your deployment URL] in your OAuth application.
+After deploying {SelfServiceShort}, you must
+link:{URLSelfServiceInstall}/self-service-accessing-deployment_aap-self-service-install#self-service-add-deployment-url-oauth-app_self-service-accessing-deployment[replace the placeholder value with a URL derived from your deployment URL]
+in your OAuth application.
The steps below describe how to create an OAuth Application in the {PlatformNameShort} Platform console.
diff --git a/downstream/modules/devtools/ref-rhdh-dashboard.adoc b/downstream/modules/devtools/ref-rhdh-dashboard.adoc
index a08bd4c941..36192a17df 100644
--- a/downstream/modules/devtools/ref-rhdh-dashboard.adoc
+++ b/downstream/modules/devtools/ref-rhdh-dashboard.adoc
@@ -14,19 +14,19 @@ The plug-in dashboard illustrates the steps you need to take from learning about
* *Overview* displays the main dashboard page.
* *Learn* provides links to resources curated by Red Hat that introduce you to Ansible and provide step-by-step examples to get you started.
For more information, see
-xref:rhdh-learning_rhdh-using[Learning about Ansible].
+link:{URLPluginRHDHUsing}/rhdh-using_aap-plugin-rhdh-using#rhdh-learning_rhdh-using[Learning about Ansible].
* *Discover existing collections* links to {PrivateHubName}, if configured in the plug-ins, or to {HubName} hosted on the Red Hat Hybrid Cloud Console.
{HubNameStart} stores existing collections and execution environments that you can use in your projects.
For more information, see
-xref:rhdh-discover-collections_rhdh-using[Discovering existing collections].
+link:{URLPluginRHDHUsing}/rhdh-using_aap-plugin-rhdh-using#rhdh-discover-collections_rhdh-using[Discovering existing collections].
* *Create* creates new projects in your configured Source Control Management platforms such as GitHub.
For more information, see
-xref:rhdh-create_rhdh-using[Creating a project].
+link:{URLPluginRHDHUsing}/rhdh-using_aap-plugin-rhdh-using#rhdh-create_rhdh-using[Creating a project].
* *Develop* links you to OpenShift Dev Spaces, if configured in the Ansible plug-ins installation.
OpenShift Dev Spaces provides on-demand, web-based Integrated Development Environments (IDEs), where you can develop automation content.
For more information, see
-xref:rhdh-develop-projects_rhdh-using[Developing projects].
+link:{URLPluginRHDHUsing}/rhdh-using_aap-plugin-rhdh-using#rhdh-develop-projects_rhdh-using[Developing projects].
* *Operate* connects you to {PlatformNameShort}, where you can create and run automation jobs that use the projects you have developed.
For more information, see
-xref:rhdh-set-up-controller-project_rhdh-using[Setting up a controller project to run your playbook project].
+link:{URLPluginRHDHUsing}/rhdh-using_aap-plugin-rhdh-using#rhdh-set-up-controller-project_rhdh-using[Setting up a controller project to run your playbook project].
diff --git a/downstream/modules/eda/con-characterizing-your-workload.adoc b/downstream/modules/eda/con-characterizing-your-workload.adoc
index cd064c636a..0fe21a864f 100644
--- a/downstream/modules/eda/con-characterizing-your-workload.adoc
+++ b/downstream/modules/eda/con-characterizing-your-workload.adoc
@@ -8,5 +8,5 @@ In {EDAcontroller}, your workload includes the number of rulebook activations an
. Number of simultaneous rulebook activations
. Number of events received by {EDAcontroller}
-include::con-modifying-simultaneous-activations.adoc[leveloffset=+1]
include::con-modifying-memory-limit.adoc[leveloffset=+1]
+
diff --git a/downstream/modules/eda/con-credentials-list-view.adoc b/downstream/modules/eda/con-credentials-list-view.adoc
index e13277096d..707b2fea8b 100644
--- a/downstream/modules/eda/con-credentials-list-view.adoc
+++ b/downstream/modules/eda/con-credentials-list-view.adoc
@@ -9,9 +9,9 @@ From the menu bar, you can search for credentials in the *Name* search field.
You also have the following options in the menu bar:
-* Choose how fields are shown in the list view by clicking the btn:[Manage columns] icon. You have four options in which you can arrange your fields:
+* *Manage columns* - You can choose how fields are shown in the list view by clicking this option. You have four ways you can arrange your fields:
** *Column* - Shows the column in the table.
** *Description* - Shows the column when the item is expanded as a full width description.
** *Expanded* - Shows the column when the item is expanded as a detail.
** *Hidden* - Hides the column.
-* Choose between a btn:[List view] or a btn:[Card view], by clicking the icons.
+* *List view* or *Card view* - You can choose between these views by clicking the applicable icons.
diff --git a/downstream/modules/eda/con-eda-projects-list-view.adoc b/downstream/modules/eda/con-eda-projects-list-view.adoc
index bb6c6ac36b..46e6b7cb9b 100644
--- a/downstream/modules/eda/con-eda-projects-list-view.adoc
+++ b/downstream/modules/eda/con-eda-projects-list-view.adoc
@@ -1,3 +1,4 @@
+:_mod-docs-content-type: PROCEDURE
[id="eda-projects-list-view"]
= Projects list view
diff --git a/downstream/modules/eda/con-external-credential-types.adoc b/downstream/modules/eda/con-external-credential-types.adoc
new file mode 100644
index 0000000000..14483fe721
--- /dev/null
+++ b/downstream/modules/eda/con-external-credential-types.adoc
@@ -0,0 +1,24 @@
+:_mod-docs-content-type:
+[id="eda-external-credential-types"]
+
+= External secret management credential types
+
+In addition to the built-in credential types, {EDAName} supports a variety of external secret management credential types. These credential types allow rulebooks to securely retrieve sensitive information, such as API keys and passwords, directly from your organization's centralized secret vault.
+
+The following external credential types are available for use in {EDAcontroller}:
+
+* AWS Secrets Manager
+* Azure Key Vault
+* Centrify Vault Credential Provider
+* CyberArk Central Credential Provider
+* CyberArk Conjur Secrets Manager
+* HashiCorp Vault Secret
+* HashiCorp Vault Signed SSH
+* Thycotic DevOps Secrets Vault
+* Thycotic Secret Server
+* GitHub App Installation Access Token
+
+The process for using these credentials in a rulebook activation is consistent with how they are used in {ControllerName}. For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/configuring_automation_execution/assembly-controller-secret-management[Secret management system].
+
+.Additional references
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/configuring_automation_execution/index[Configuring automation execution]
\ No newline at end of file
diff --git a/downstream/modules/eda/con-modifying-simultaneous-activations.adoc b/downstream/modules/eda/con-modifying-simultaneous-activations.adoc
deleted file mode 100644
index 5b0f93e2cf..0000000000
--- a/downstream/modules/eda/con-modifying-simultaneous-activations.adoc
+++ /dev/null
@@ -1,22 +0,0 @@
-[id="modifying-simultaneous-activations"]
-
-= Modifying the number of simultaneous rulebook activations
-
-[role="_abstract"]
-By default, {EDAcontroller} allows 12 rulebook activations per node. For example, with two worker or hybrid nodes, it results in a limit of 24 activations in total to run simultaneously.
-If more than 24 rulebook activations are created, the expected behavior is that subsequent rulebook activations wait until there is an available rulebook activation worker.
-In this case, the rulebook activation status is displayed as *Pending* even if there is enough free memory and CPU on your {EDAcontroller} instance.
-To change this behavior, you must change the default maximum number of running rulebook activations.
-
-[NOTE]
-====
-* The value for `MAX_RUNNING_ACTIVATIONS` does not change when you modify the instance size, so it needs to be adjusted manually.
-* If you are installing {EDAName} on {OCPShort}, the 12 rulebook activations per node is a global value since there is no concept of worker nodes when installing {EDAName} on {OCPShort}. For more information, see link:{URLOperatorInstallation}/operator-install-operator_operator-platform-doc#modifying_the_number_of_simultaneous_rulebook_activations_during_or_after_event_driven_ansible_controller_installation[Modifying the number of simultaneous rulebook activations during or after {EDAcontroller} installation] in {LinkOperatorInstallation}.
-====
-
-include::proc-modifying-activations-during-install.adoc[leveloffset=+1]
-include::proc-modifying-activations-after-install.adoc[leveloffset=+1]
-
-.Additional Resources
-* For more information about rulebook activations, see the link:https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/2.4/html-single/event-driven_ansible_controller_user_guide/index#eda-rulebook-activations[Rulebook activations].
-* For more information about modifying simultaneous rulebook activations during or after {EDAName} on {OCPShort}, see the example in link:{URLOperatorInstallation}/appendix-operator-crs_appendix-operator-crs#eda_max_running_activations_yml[eda_max_running_activations_yml].
\ No newline at end of file
diff --git a/downstream/modules/eda/proc-eda-activation-stuck-pending.adoc b/downstream/modules/eda/proc-eda-activation-stuck-pending.adoc
index 51ac406aff..87238758ab 100644
--- a/downstream/modules/eda/proc-eda-activation-stuck-pending.adoc
+++ b/downstream/modules/eda/proc-eda-activation-stuck-pending.adoc
@@ -8,18 +8,8 @@ Perform the following steps if your rulebook activation is stuck in *Pending* st
. Confirm whether there are other running activations and if you have reached the limits (for example, memory or CPU limits).
.. If there are other activations running, terminate one or more of them, if possible.
-.. If not, check that the default worker, Redis, and activation worker are all running. If all systems are working as expected, check your eda-server internal logs in the worker, scheduler, API, and nginx containers and services to see if the problem can be determined.
-+
-[NOTE]
-====
-These logs reveal the source of the issue, such as an exception thrown by the code, a runtime error with network issues, or an error with the rulebook code. If your internal logs do not provide information that leads to resolution, report the issue to Red Hat support.
-====
+.. If not, check that the default worker, Redis, and activation worker are all running.
+.. If all systems are working as expected, check your eda-server internal logs in the worker, scheduler, API, and nginx containers and services to see if the problem can be determined. These logs reveal the source of the issue, such as an exception thrown by the code, a runtime error with network issues, or an error with the rulebook code. If your internal logs do not provide information that leads to resolution, report the issue to Red Hat support.
-.. If you need to make adjustments, see the link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-performance-tuning#modifying-simultaneous-activations[Modifying the number of simultaneous rulebook activations].
-+
-[NOTE]
-====
-To adjust the maximum number of simultaneous activations for {OperatorPlatformNameShort} on {OCPShort} deployments, see link:{URLOperatorInstallation}/operator-install-operator_operator-platform-doc#modifying_the_number_of_simultaneous_rulebook_activations_during_or_after_event_driven_ansible_controller_installation[Modifying the number of simultaneous rulebook activations during or after {EDAcontroller} installation] in {LinkOperatorInstallation}.
-====
diff --git a/downstream/modules/eda/proc-eda-build-a-custom-decision-environment.adoc b/downstream/modules/eda/proc-eda-build-a-custom-decision-environment.adoc
index 1a2176da98..cedbc89c42 100644
--- a/downstream/modules/eda/proc-eda-build-a-custom-decision-environment.adoc
+++ b/downstream/modules/eda/proc-eda-build-a-custom-decision-environment.adoc
@@ -1,3 +1,4 @@
+:_mod-docs-content-type: PROCEDURE
[id="eda-build-a-custom-decision-environment"]
= Building a custom decision environment for {EDAName}
@@ -14,12 +15,6 @@ You can create a custom decision environment for {EDAName} that provides a custo
* {EDAName}
* {Builder} > = 3.0
-.Procedure
-
-* Use `de-minimal` as the base image with {Builder} to build your custom decision environments.
-This image is built from a base image provided by Red Hat at link:https://catalog.redhat.com/software/containers/ansible-automation-platform-25/de-minimal-rhel9/650a5672a370728c710acaab[{PlatformNameShort} minimal decision environment].
-
-+
[IMPORTANT]
====
* Use the correct {EDAcontroller} decision environment in {PlatformNameShort} to prevent rulebook activation failure.
@@ -28,6 +23,13 @@ This image is built from a base image provided by Red Hat at link:https://catalo
** If you want to connect {EDAcontroller} to {PlatformNameShort} {PlatformVers}, you must use `registry.redhat.io/ansible-automation-platform-25/de-minimal-rhel9:latest`
====
+.Procedure
+
+* Use `de-minimal` as the base image with {Builder} to build your custom decision environments.
+This image is built from a base image provided by Red Hat at link:https://catalog.redhat.com/software/containers/ansible-automation-platform-25/de-minimal-rhel9/650a5672a370728c710acaab[{PlatformNameShort} minimal decision environment].
+
+.Example
+
The following is an example of the {Builder} definition file that uses `de-minimal` as a base image to build a custom decision environment with the ansible.eda collection:
-----
version: 3
diff --git a/downstream/modules/eda/proc-eda-config-remote-sys-to-events.adoc b/downstream/modules/eda/proc-eda-config-remote-sys-to-events.adoc
index d9820c9936..a8420ead67 100644
--- a/downstream/modules/eda/proc-eda-config-remote-sys-to-events.adoc
+++ b/downstream/modules/eda/proc-eda-config-remote-sys-to-events.adoc
@@ -1,3 +1,4 @@
+:_mod-docs-content-type: PROCEDURE
[id="eda-config-remote-sys-to-events"]
= Configuring your remote system to send events
@@ -15,7 +16,7 @@ The following example demonstrates how to configure webhooks in a remote system
. Log in to your GitHub repository.
. Click *Your profile name → Your repositories*.
-
++
[NOTE]
====
If you do not have a repository, click *New* to create a new one, select an owner, add a *Repository name*, and click *Create repository*.
@@ -29,4 +30,5 @@ If you do not have a repository, click *New* to create a new one, select an owne
. Enter your *Secret*.
. Click *Add webhook*.
-After the webhook has been added, it attempts to send a test payload to ensure there is connectivity between the two systems (GitHub and {EDAcontroller}). If it can successfully send the data you will see a green check mark next to the *Webhook URL* with the message, *Last delivery was successful*.
\ No newline at end of file
+.Results
+After the webhook has been added, it attempts to send a test payload to ensure there is connectivity between the two systems (GitHub and {EDAcontroller}). If it can successfully send the data, you will see a green check mark next to the *Webhook URL* with the message, *Last delivery was successful*.
\ No newline at end of file
diff --git a/downstream/modules/eda/proc-eda-create-event-stream-credential.adoc b/downstream/modules/eda/proc-eda-create-event-stream-credential.adoc
index 837841d008..97405a078d 100644
--- a/downstream/modules/eda/proc-eda-create-event-stream-credential.adoc
+++ b/downstream/modules/eda/proc-eda-create-event-stream-credential.adoc
@@ -1,3 +1,4 @@
+:_mod-docs-content-type: PROCEDURE
[id="eda-create-event-stream-credential"]
= Creating an event stream credential
@@ -29,4 +30,5 @@ Type Details:: Add the requested information for the credential type you selecte
. Click btn:[Create credential].
+.Results
The Details page is displayed. From there or the *Credentials* list view, you can edit or delete it.
diff --git a/downstream/modules/eda/proc-eda-create-event-stream.adoc b/downstream/modules/eda/proc-eda-create-event-stream.adoc
index 580e5822e6..09882982a3 100644
--- a/downstream/modules/eda/proc-eda-create-event-stream.adoc
+++ b/downstream/modules/eda/proc-eda-create-event-stream.adoc
@@ -1,3 +1,4 @@
+:_mod-docs-content-type: PROCEDURE
[id="eda-create-event-stream"]
= Creating an event stream
@@ -7,7 +8,7 @@ You can create event streams that will be attached to a rulebook activation.
.Prerequisites
* If you will be attaching your event stream to a rulebook activation, ensure that your activation has a decision environment and project already set up.
-* If you plan to connect to {ControllerName} to run your rulebook activation, ensure that you have created a {PlatformName} credential type in addition to the decision environment and project. For more information, see xref:eda-set-up-rhaap-credential[Setting up a {PlatformName} credential].
+* If you plan to connect to {ControllerName} to run your rulebook activation, ensure that you have created a {PlatformName} credential type in addition to the decision environment and project. For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-set-up-rhaap-credential-type#eda-set-up-rhaap-credential[Setting up a {PlatformName} credential].
.Procedure
@@ -36,13 +37,17 @@ The event stream's event forwarding can be disabled for testing purposes while d
. Click btn:[Create event stream].
+.Results
After creating your event stream, the following outputs occur:
* The Details page is displayed. From there or the Event Streams list view, you can edit or delete it. Also, the Event Streams page shows all of the event streams you have created and the following columns for each event: *Events received*, *Last event received*, and *Event stream type*. As the first two columns receive external data through the event stream, they are continuously updated to let you know they are receiving events from remote systems.
* If you disabled the event stream, the Details page is displayed with a warning message, *This event stream is disabled*.
-* Your new event stream generates a URL that is necessary when you configure the webhook on the remote system that sends events.
-
++
[NOTE]
====
After an event stream is created, the associated credential cannot be deleted until the event stream it is attached to is deleted.
====
+
+* Your new event stream generates a URL that is necessary when you configure the webhook on the remote system that sends events.
+
+
diff --git a/downstream/modules/eda/proc-eda-delete-controller-token.adoc b/downstream/modules/eda/proc-eda-delete-controller-token.adoc
index eb9d9895b4..bdcc4cf390 100644
--- a/downstream/modules/eda/proc-eda-delete-controller-token.adoc
+++ b/downstream/modules/eda/proc-eda-delete-controller-token.adoc
@@ -1,3 +1,4 @@
+:_mod-docs-content-type:
[id="eda-delete-controller-token"]
= Deleting controller tokens
@@ -15,4 +16,5 @@ Before you can set up {PlatformName} credentials, you must delete any existing c
. Select the *Tokens* tab.
. Delete all of your previous controller tokens.
-After deleting the controller tokens and rulebook activations, proceed with xref:eda-set-up-rhaap-credential[Setting up a {PlatformName} credential].
+.Next steps
+After deleting the controller tokens and rulebook activations, proceed with link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-set-up-rhaap-credential-type#eda-set-up-rhaap-credential[Setting up a {PlatformName} credential].
diff --git a/downstream/modules/eda/proc-eda-delete-project.adoc b/downstream/modules/eda/proc-eda-delete-project.adoc
index ef0a7ba5d5..a000bb5e1f 100644
--- a/downstream/modules/eda/proc-eda-delete-project.adoc
+++ b/downstream/modules/eda/proc-eda-delete-project.adoc
@@ -1,3 +1,4 @@
+:_mod-docs-content-type: PROCEDURE
[id="eda-delete-project"]
= Deleting a project
diff --git a/downstream/modules/eda/proc-eda-editing-a-project.adoc b/downstream/modules/eda/proc-eda-editing-a-project.adoc
index 79edf34ba2..c5d7d92ff0 100644
--- a/downstream/modules/eda/proc-eda-editing-a-project.adoc
+++ b/downstream/modules/eda/proc-eda-editing-a-project.adoc
@@ -1,10 +1,22 @@
+:_mod-docs-content-type: PROCEDURE
[id="eda-editing-a-project"]
= Editing a project
+You can modify various aspects of a project after you create it. Depending on the changes you make, a rulebook activation might be impacted, requiring you to review and restart it.
+
.Procedure
. From the *Projects* list view, select the btn:[More Actions] icon *{MoreActionsIcon}* next to the desired project. The Edit page is displayed.
-. Enter the required changes and select btn:[Save project].
-//[J. Self]replace the following image, if possible
-//::eda-edit-project.png[Edit project]
\ No newline at end of file
+. Edit the desired fields.
++
+[IMPORTANT]
+====
+When you update a project's *Source control URL*, *Source control branch/tag/commit*, or *Source control refspec*, {EDAName} automatically triggers a project resync. This process updates the rulebooks available within {EDAcontroller} and can significantly impact existing rulebook activations:
+
+* *Rulebook Content Updates*: Running activations continue to use old content when a rulebook's content changes. To apply the newer content, you must restart the affected rulebook activation. If the rulebook content you update is attached to an activation that uses event streams, you must re-attach the event stream to that activation after the updates are applied and then, restart the activation.
+* *New Rulebooks*: Any new rulebook added to the repository becomes available in the database after the sync.
+* *Deleted Rulebooks*: A removed rulebook is deleted from the database upon sync. Its associated activations, however, continue to run and can be restarted. Review and update any activations detached from their source rulebook.
+====
++
+. Select btn:[Save project].
\ No newline at end of file
diff --git a/downstream/modules/eda/proc-eda-set-up-credential-types.adoc b/downstream/modules/eda/proc-eda-set-up-credential-types.adoc
index a5bd0af425..dd2ece9b34 100644
--- a/downstream/modules/eda/proc-eda-set-up-credential-types.adoc
+++ b/downstream/modules/eda/proc-eda-set-up-credential-types.adoc
@@ -97,4 +97,4 @@ Your newly created credential type is displayed in the list of credential types.
.Additional resources
-For information about how to create a new credential, see xref:eda-set-up-credential[Setting up credentials].
+link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-credentials#eda-set-up-credential[Setting up credentials].
diff --git a/downstream/modules/eda/proc-eda-set-up-new-decision-environment.adoc b/downstream/modules/eda/proc-eda-set-up-new-decision-environment.adoc
index 14ae014b49..b291931660 100644
--- a/downstream/modules/eda/proc-eda-set-up-new-decision-environment.adoc
+++ b/downstream/modules/eda/proc-eda-set-up-new-decision-environment.adoc
@@ -1,3 +1,4 @@
+:_mod-docs-content-type: PROCEDURE
[id="eda-set-up-new-decision-environment"]
= Setting up a new decision environment
@@ -7,7 +8,7 @@ You can import a decision environment into your {EDAcontroller} using a default
.Prerequisites
* You have set up a credential, if necessary.
-For more information, see the xref:eda-set-up-credential[Setting up credentials] section.
+For more information, see the link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-credentials#eda-set-up-credential[Setting up credentials] section.
* You have pushed a decision environment image to an image repository or you chose to use the `de-minimal` image located in link:http://registry.redhat.io/[registry.redhat.io].
.Procedure
@@ -24,6 +25,7 @@ Image:: This is the full image location, including the container registry, image
Credential:: This field is optional. This is the credential needed to use the decision environment image.
. Select btn:[Create decision environment].
+.Results
Your decision environment is now created and can be managed on the *Decision Environments* page.
After saving the new decision environment, the decision environment's details page is displayed.
diff --git a/downstream/modules/eda/proc-eda-set-up-new-project.adoc b/downstream/modules/eda/proc-eda-set-up-new-project.adoc
index 84ccb95c6b..03e27f710f 100644
--- a/downstream/modules/eda/proc-eda-set-up-new-project.adoc
+++ b/downstream/modules/eda/proc-eda-set-up-new-project.adoc
@@ -1,3 +1,4 @@
+:_mod-docs-content-type: PROCEDURE
[id="eda-set-up-new-project"]
= Setting up a new project
@@ -5,14 +6,14 @@
You can set up projects to manage and store your rulebooks in {EDAcontroller}.
.Prerequisites
-// [ddacosta] I'm not sure whether there will be an EDA specific dashboard in the gateway. Step 1 might need to change to something like "Log in to AAP".
+
* You are logged in to the {PlatformNameShort} Dashboard as a Content Consumer.
* You have set up a credential, if necessary.
-For more information, see the xref:eda-set-up-credential[Setting up credentials] section.
-* You have an existing repository containing rulebooks that are integrated with playbooks contained in a repository to be used by {ControllerName}.
+For more information, see the link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-credentials#eda-set-up-credential[Setting up credentials][Setting up credentials] section.
+* You have an existing repository containing rulebooks.
.Procedure
-// [ddacosta] I'm not sure whether there will be an EDA specific dashboard in the gateway. Step 1 might need to change to something like "Log in to AAP".
+
. Log in to the {PlatformNameShort} Dashboard.
. Navigate to *{MenuADProjects}*.
. Click btn:[Create project].
@@ -21,17 +22,16 @@ For more information, see the xref:eda-set-up-credential[Setting up credentials]
Name:: Enter project name.
Description:: This field is optional.
Source control type:: Git is the only source control type available for use. This field is optional.
-Source control URL:: Enter Git, SSH, or HTTP[S] protocol address of a repository, such as GitHub or GitLab. This field is not editable.
+Source control URL:: Enter Git, SSH, or HTTP[S] protocol address of a repository, such as GitHub or GitLab. This required field is editable. See link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-projects#eda-editing-a-project[Editing a project] to view details of how editing this field impacts rulebook activations.
+
[NOTE]
====
This field accepts SSH private key or private key phrase. To enable the use of these private keys, your project URL must begin with `git@`.
====
-Proxy:: This is used to access access HTTP or HTTPS servers. This field is optional.
-Source control branch/tag/commit:: This is the branch to checkout. In addition to branches, you can input tags, commit hashes, and arbitrary refs. Some commit hashes and refs may not be available unless you also provide a custom refspec. This field is optional.
-Source control refspec:: A refspec to fetch (passed to the Ansible git module). This parameter allows access to references via the branch field not otherwise available. This field is optional.
-For more information, see link:https://docs.ansible.com/ansible/latest/collections/ansible/builtin/git_module.html#examples[Examples].
-Source control credential:: You must have this credential to utilize the source control URL. This field is optional.
+Proxy:: This is used to access HTTP or HTTPS servers. This field is optional and editable. See link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-projects#eda-editing-a-project[Editing a project] to view details of how editing this field impacts rulebook activations.
+Source control branch/tag/commit:: This is the branch to checkout. In addition to branches, you can input tags, commit hashes, and arbitrary refs. Some commit hashes and refs may not be available unless you also provide a custom refspec. This field is optional and editable. See link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-projects#eda-editing-a-project[Editing a project] to view details of how editing this field impacts rulebook activations.
+Source control refspec:: A refspec to fetch (passed to the Ansible git module). This parameter allows access to references via the branch field not otherwise available. This field is optional and editable. See link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-projects#eda-editing-a-project[Editing a project] to view details of how editing this field impacts rulebook activations. For more information, see link:https://docs.ansible.com/ansible/latest/collections/ansible/builtin/git_module.html#examples[Examples].
+Source control credential:: This is an optional credential used to authenticate with the provided Source control URL.
Content signature validation credential:: Enable content signing to verify that the content has remained secure when a project is synced. If the content has been tampered with, the job will not run. This field is optional.
Options:: The Verify SSL option is enabled by default. Enabling this option verifies the SSL with HTTPS when the project is imported.
+
@@ -41,6 +41,7 @@ You can disable this option if you have a local repository that uses self-signed
====
. Select btn:[Create project].
+.Results
Your project is now created and can be managed in the *Projects* page.
After saving the new project, the project's details page is displayed.
diff --git a/downstream/modules/eda/proc-eda-set-up-rhaap-credential.adoc b/downstream/modules/eda/proc-eda-set-up-rhaap-credential.adoc
index 6d349bbc42..d999ee0b55 100644
--- a/downstream/modules/eda/proc-eda-set-up-rhaap-credential.adoc
+++ b/downstream/modules/eda/proc-eda-set-up-rhaap-credential.adoc
@@ -1,3 +1,4 @@
+:_mod-docs-content-type: PROCEDURE
[id="eda-set-up-rhaap-credential"]
= Setting up a {PlatformName} credential
@@ -37,4 +38,5 @@ For {PlatformNameShort} {PlatformVers}, use the following example: \https://` or `:replay ` while in an {Navigator} session. You can review all playbook artifacts with both `--mode stdout` and `--mode interactive`, depending on the required view.
-You can disable playbook artifacts writing and the default file naming convention. (See xref:ref-navigator-general-settings_settings-navigator[{NavigatorStart} general settings] for how to handle this with an environment variable or in the settings file).
+You can disable playbook artifacts writing and the default file naming convention. (See link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html-single/using_content_navigator/index#ref-navigator-general-settings_settings-navigator[Automation content navigator general settings] for how to handle this with an environment variable or in the settings file).
Why does `vi` open when I use `:open`?:: {NavigatorStart} opens anything showing in the terminal in the default editor. The default is set to either `vi +{line_number} {filename}` or the current value of the `EDITOR` environment variable. Related to this is the `editor-console` setting which indicates if the editor is console or terminal based. Here are examples of alternate settings that might be useful:
+
diff --git a/downstream/modules/platform/con-aap-notifications-feed.adoc b/downstream/modules/platform/con-aap-notifications-feed.adoc
index d7f6ed9993..944692bd22 100644
--- a/downstream/modules/platform/con-aap-notifications-feed.adoc
+++ b/downstream/modules/platform/con-aap-notifications-feed.adoc
@@ -9,8 +9,7 @@
Effective July 2025, the {PlatformNameShort} RSS notification feed will be available.
This feed serves as a method for communicating various product updates and changes to customers.
-Customers can subscribe to the notifications by visiting link:announcements.ansiblecloud.redhat.com/feed.atom[announcements.ansiblecloud.redhat.com/feed.atom].
-Using an RSS feed reader, customers will be updated with events such as {PlatformNameShort} upgrades and system maintenance.
+Customers can subscribe to the notifications by visiting announcements.ansiblecloud.redhat.com/feed.atom through an RSS feed reader. This feed is updated with events such as {PlatformNameShort} upgrades and system maintenance.
All {PlatformNameShort} customers can subscribe to this content.
Messages include categorization tags to specify deployment types: managed, self-managed (on-prem), or a combination.
diff --git a/downstream/modules/platform/con-automation-mesh-node-types.adoc b/downstream/modules/platform/con-automation-mesh-node-types.adoc
index aab50af8e4..d0e540a105 100644
--- a/downstream/modules/platform/con-automation-mesh-node-types.adoc
+++ b/downstream/modules/platform/con-automation-mesh-node-types.adoc
@@ -18,6 +18,7 @@ Learn more about the control and execution plane and their node types before des
endif::operator-mesh[]
== Control plane
+
ifdef::mesh-VM[]
The *control plane* consists of hybrid and control nodes. Instances in the control plane run persistent {ControllerName} services such as the the web server and task dispatcher, in addition to project updates, and management jobs.
diff --git a/downstream/modules/platform/con-certs-per-service-considerations.adoc b/downstream/modules/platform/con-certs-per-service-considerations.adoc
index cb9634540c..f8aafb1654 100644
--- a/downstream/modules/platform/con-certs-per-service-considerations.adoc
+++ b/downstream/modules/platform/con-certs-per-service-considerations.adoc
@@ -3,6 +3,7 @@
[id="certs-per-service-considerations"]
= Considerations for certificates provided per service
+[role="_abstract"]
When providing custom TLS certificates for each individual service, consider the following:
* It is possible to provide unique certificates per host. This requires defining the specific `_tls_cert` and `_tls_key` variables in your inventory file as shown in the earlier inventory file example.
diff --git a/downstream/modules/platform/con-configuring-the-metrics-utility.adoc b/downstream/modules/platform/con-configuring-the-metrics-utility.adoc
index 4a1b780c56..a5e9851ca6 100644
--- a/downstream/modules/platform/con-configuring-the-metrics-utility.adoc
+++ b/downstream/modules/platform/con-configuring-the-metrics-utility.adoc
@@ -1,5 +1,3 @@
-:_newdoc-version: 2.18.3
-:_template-generated: 2024-07-15
:_mod-docs-content-type: CONCEPT
[id="configuring-the-metrics-utility"]
diff --git a/downstream/modules/platform/con-controller-access-organizations.adoc b/downstream/modules/platform/con-controller-access-organizations.adoc
index a89326e8f7..24e9b03ca8 100644
--- a/downstream/modules/platform/con-controller-access-organizations.adoc
+++ b/downstream/modules/platform/con-controller-access-organizations.adoc
@@ -3,6 +3,7 @@
[id="con-controller-access-organizations"]
= Access to organizations
+
You can manage access to an organization by selecting an organization from the *Organizations* list view and selecting the associated tabs for providing access to xref:proc-controller-add-organization-user[Users], xref:proc-gw-add-admin-organization[Administrators] or xref:proc-gw-add-team-organization[Teams].
diff --git a/downstream/modules/platform/con-controller-backup-restore-playbooks.adoc b/downstream/modules/platform/con-controller-backup-restore-playbooks.adoc
index 7fc64747d6..a9168427f8 100644
--- a/downstream/modules/platform/con-controller-backup-restore-playbooks.adoc
+++ b/downstream/modules/platform/con-controller-backup-restore-playbooks.adoc
@@ -16,7 +16,7 @@ These playbooks serve to backup and restore.
** Manual projects
* The restore backup restores the backed up files and data to a freshly installed and working second instance of {ControllerName}.
-When restoring your system, the installer checks to see that the backup file exists before beginning the restoration.
+When restoring your system, installation program checks to see that the backup file exists before beginning the restoration.
If the backup file is not available, your restoration fails.
[NOTE]
diff --git a/downstream/modules/platform/con-controller-fips-support.adoc b/downstream/modules/platform/con-controller-fips-support.adoc
index b1b0f29b7d..dd1533431c 100644
--- a/downstream/modules/platform/con-controller-fips-support.adoc
+++ b/downstream/modules/platform/con-controller-fips-support.adoc
@@ -3,4 +3,5 @@
[id="con-controller-fips-support_{context}"]
= Support for deployment in a FIPS-enabled environment
-{ControllerNameStart} deploys and runs in restricted modes such as FIPS.
\ No newline at end of file
+
+{ControllerNameStart} deploys and runs in restricted modes such as FIPS
\ No newline at end of file
diff --git a/downstream/modules/platform/con-controller-granting-access.adoc b/downstream/modules/platform/con-controller-granting-access.adoc
new file mode 100644
index 0000000000..0ba2921cfc
--- /dev/null
+++ b/downstream/modules/platform/con-controller-granting-access.adoc
@@ -0,0 +1,13 @@
+:_mod-docs-content-type: CONCEPT
+
+[id="con-controller-granting-access"]
+
+= Granting access
+
+Granting access to certain parts of the system exposes security risks.
+Apply the following practices to help secure access:
+
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/controller-security-best-practices#controller-minimize-administrative-accounts[Minimize administrative accounts]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/controller-security-best-practices#controller-minimize-system-access[Minimize local system access]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/controller-security-best-practices#controller-remove-access-credentials[Remove access to credentials from users]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/controller-security-best-practices#controller-enforce-separation-duties[Enforce separation of duties]
\ No newline at end of file
diff --git a/downstream/modules/platform/con-controller-overview-api.adoc b/downstream/modules/platform/con-controller-overview-api.adoc
index 937d0566a1..f6a5a4ab04 100644
--- a/downstream/modules/platform/con-controller-overview-api.adoc
+++ b/downstream/modules/platform/con-controller-overview-api.adoc
@@ -3,4 +3,5 @@
[id="con-controller-overview-api_{context}"]
= The ideal RESTful API
+
The {ControllerName} REST API is the ideal RESTful API for a systems management application, with all resources fully discoverable, paginated, searchable, and well modeled. A styled API browser enables API exploration from the API root at `\http:///api/`, showing off every resource and relation. Everything that can be done in the user interface can be done in the API.
\ No newline at end of file
diff --git a/downstream/modules/platform/con-controller-overview-auth-enhance.adoc b/downstream/modules/platform/con-controller-overview-auth-enhance.adoc
index 01ddb6591c..6d375bed65 100644
--- a/downstream/modules/platform/con-controller-overview-auth-enhance.adoc
+++ b/downstream/modules/platform/con-controller-overview-auth-enhance.adoc
@@ -3,6 +3,7 @@
[id="con-controller-overview-auth-enhance_{context}"]
= Authentication enhancements
+
{ControllerNameStart} supports:
* LDAP
diff --git a/downstream/modules/platform/con-controller-overview-automation.adoc b/downstream/modules/platform/con-controller-overview-automation.adoc
index 5000808269..8a045d9e27 100644
--- a/downstream/modules/platform/con-controller-overview-automation.adoc
+++ b/downstream/modules/platform/con-controller-overview-automation.adoc
@@ -3,5 +3,6 @@
[id="con-controller-overview-automation_{context}"]
= "Push Button" automation
+
Use {ControllerName} to access your favorite projects and re-trigger execution from the web interface.
{ControllerNameStart} asks for input variables, prompts for your credentials, starts and monitors jobs, and displays results and host history.
diff --git a/downstream/modules/platform/con-controller-overview-backup-restore.adoc b/downstream/modules/platform/con-controller-overview-backup-restore.adoc
index ccc3ab6ad0..60cac6e40d 100644
--- a/downstream/modules/platform/con-controller-overview-backup-restore.adoc
+++ b/downstream/modules/platform/con-controller-overview-backup-restore.adoc
@@ -3,4 +3,5 @@
[id="con-controller-overview-backup-restore_{context}"]
= Backup and restore
+
{PlatformNameShort} can backup and restore your systems or systems, making it easy for you to backup and replicate your instance as required.
\ No newline at end of file
diff --git a/downstream/modules/platform/con-controller-overview-cloud-autoscaling.adoc b/downstream/modules/platform/con-controller-overview-cloud-autoscaling.adoc
index 72fb28c3c7..88edf3f021 100644
--- a/downstream/modules/platform/con-controller-overview-cloud-autoscaling.adoc
+++ b/downstream/modules/platform/con-controller-overview-cloud-autoscaling.adoc
@@ -4,6 +4,7 @@
= Cloud and autoscaling flexibility
+
{ControllerNameStart} includes a powerful optional provisioning callback feature that enables nodes to request configuration on-demand.
This is an ideal solution for a cloud auto-scaling scenario and includes the following features:
diff --git a/downstream/modules/platform/con-controller-overview-cluster-manage.adoc b/downstream/modules/platform/con-controller-overview-cluster-manage.adoc
index 1a568d1070..fb5d764bac 100644
--- a/downstream/modules/platform/con-controller-overview-cluster-manage.adoc
+++ b/downstream/modules/platform/con-controller-overview-cluster-manage.adoc
@@ -3,4 +3,5 @@
[id="con-controller-overview-cluster-manage_{context}"]
= Cluster management
+
Run time management of cluster groups enables configurable scaling.
\ No newline at end of file
diff --git a/downstream/modules/platform/con-controller-overview-exploration.adoc b/downstream/modules/platform/con-controller-overview-exploration.adoc
index 7cabc5ef0a..7f9aa66608 100644
--- a/downstream/modules/platform/con-controller-overview-exploration.adoc
+++ b/downstream/modules/platform/con-controller-overview-exploration.adoc
@@ -3,5 +3,6 @@
[id="con-controller-overview-exploration_{context}"]
= Real-time playbook output and exploration
+
With {ControllerName} you can watch playbooks run in real time, seeing each host as they check in.
You can go back and explore the results for specific tasks and hosts in great detail, search for specific plays or hosts and see just those results, or locate errors that need to be corrected.
\ No newline at end of file
diff --git a/downstream/modules/platform/con-controller-overview-galaxy.adoc b/downstream/modules/platform/con-controller-overview-galaxy.adoc
index 40bd64a9f8..9c98c925df 100644
--- a/downstream/modules/platform/con-controller-overview-galaxy.adoc
+++ b/downstream/modules/platform/con-controller-overview-galaxy.adoc
@@ -3,5 +3,6 @@
[id="con-controller-overview-galaxy_{context}"]
= Ansible Galaxy integration
+
By including an {Galaxy} `requirements.yml` file in your project directory, {ControllerName} automatically fetches the roles your playbook needs from Galaxy, GitHub, or your local source control.
For more information, see xref:ref-projects-galaxy-support[Ansible Galaxy Support].
\ No newline at end of file
diff --git a/downstream/modules/platform/con-controller-overview-host-limits.adoc b/downstream/modules/platform/con-controller-overview-host-limits.adoc
index dd24dbc9fa..211d85c5da 100644
--- a/downstream/modules/platform/con-controller-overview-host-limits.adoc
+++ b/downstream/modules/platform/con-controller-overview-host-limits.adoc
@@ -3,6 +3,7 @@
[id="con-controller-overview-host-limits_{context}"]
= Limit the number of hosts per organization
+
Many large organizations have instances shared among many organizations.
To ensure that one organization cannot use all the licensed hosts, this feature enables superusers to set a specified upper limit on how many licensed hosts can that you can allocate to each organization.
The {ControllerName} algorithm factors changes in the limit for an organization and the number of total hosts across all organizations.
diff --git a/downstream/modules/platform/con-controller-overview-inventory-plugins.adoc b/downstream/modules/platform/con-controller-overview-inventory-plugins.adoc
index dbb7c5c1a8..f5323ccbe7 100644
--- a/downstream/modules/platform/con-controller-overview-inventory-plugins.adoc
+++ b/downstream/modules/platform/con-controller-overview-inventory-plugins.adoc
@@ -3,6 +3,7 @@
[id="con-controller-overview-inventory-plugins_{context}"]
= Inventory plugins
+
The following inventory plugins are used from upstream collections:
* `amazon.aws.aws_ec2`
diff --git a/downstream/modules/platform/con-controller-overview-notifiers.adoc b/downstream/modules/platform/con-controller-overview-notifiers.adoc
index efc796449c..ad7d3fa47c 100644
--- a/downstream/modules/platform/con-controller-overview-notifiers.adoc
+++ b/downstream/modules/platform/con-controller-overview-notifiers.adoc
@@ -3,6 +3,7 @@
[id="con-controller-overview-notifiers_{context}"]
= Integrated notifications
+
Keep track of the status of your automation.
You can configure the following notifications:
diff --git a/downstream/modules/platform/con-controller-overview-openstack.adoc b/downstream/modules/platform/con-controller-overview-openstack.adoc
index 53a060e166..1bc49eb068 100644
--- a/downstream/modules/platform/con-controller-overview-openstack.adoc
+++ b/downstream/modules/platform/con-controller-overview-openstack.adoc
@@ -3,6 +3,7 @@
[id="con-controller-overview-openstack_{context}"]
= Inventory support for OpenStack
+
Dynamic inventory support is available for OpenStack. With this you can target any of the virtual machines or images running in your OpenStack cloud.
For more information, see xref:ref-controller-credential-openstack[OpenStack credential type].
\ No newline at end of file
diff --git a/downstream/modules/platform/con-controller-overview-rbac.adoc b/downstream/modules/platform/con-controller-overview-rbac.adoc
index 0d9b878446..3186f2b2e0 100644
--- a/downstream/modules/platform/con-controller-overview-rbac.adoc
+++ b/downstream/modules/platform/con-controller-overview-rbac.adoc
@@ -3,6 +3,7 @@
[id="con-controller-overview-rbac_{context}"]
= Simplified role-based access control and auditing
+
With {ControllerName} you can:
* Grant permissions to perform a specific task to different teams or explicit users through _role-based access control_ (RBAC).
diff --git a/downstream/modules/platform/con-controller-overview-remote-exec.adoc b/downstream/modules/platform/con-controller-overview-remote-exec.adoc
index b18ca7cb6c..b6eb05a939 100644
--- a/downstream/modules/platform/con-controller-overview-remote-exec.adoc
+++ b/downstream/modules/platform/con-controller-overview-remote-exec.adoc
@@ -3,6 +3,7 @@
[id="con-controller-overview-remote-exec_{context}"]
= Remote command execution
+
Use remote command execution to perform a simple task, such as adding a single user, updating a single security vulnerability, or restarting a failing service.
Any task that you can describe as a single Ansible play can be run on a host or group of hosts in your inventory.
You can manage your systems quickly and easily.
diff --git a/downstream/modules/platform/con-controller-overview-secret-management.adoc b/downstream/modules/platform/con-controller-overview-secret-management.adoc
index 8beb452ba6..71a7dabf80 100644
--- a/downstream/modules/platform/con-controller-overview-secret-management.adoc
+++ b/downstream/modules/platform/con-controller-overview-secret-management.adoc
@@ -3,4 +3,5 @@
[id="con-controller-overview-secret-management_{context}"]
= Secret management system
+
With a secret management system, external credentials are stored and supplied for use in {ControllerName} so you need not provide them directly.
diff --git a/downstream/modules/platform/con-controller-overview-tracking.adoc b/downstream/modules/platform/con-controller-overview-tracking.adoc
index ea00ae49b1..4144066499 100644
--- a/downstream/modules/platform/con-controller-overview-tracking.adoc
+++ b/downstream/modules/platform/con-controller-overview-tracking.adoc
@@ -3,5 +3,6 @@
[id="con-controller-overview-tracking_{context}"]
= System tracking
+
You can collect facts by using the fact caching feature.
For more information, see xref:controller-fact-caching[Fact Caching].
\ No newline at end of file
diff --git a/downstream/modules/platform/con-controller-overview-virtual-envs.adoc b/downstream/modules/platform/con-controller-overview-virtual-envs.adoc
index 56b452fa80..f1d87c154d 100644
--- a/downstream/modules/platform/con-controller-overview-virtual-envs.adoc
+++ b/downstream/modules/platform/con-controller-overview-virtual-envs.adoc
@@ -3,4 +3,5 @@
[id="con-controller-overview-virtual-envs_{context}"]
= Custom Virtual Environments
+
With Custom Ansible environment support you can have different Ansible environments and specify custom paths for different teams and jobs.
\ No newline at end of file
diff --git a/downstream/modules/platform/con-controller-overview-workflow-enhancements.adoc b/downstream/modules/platform/con-controller-overview-workflow-enhancements.adoc
index 13a58e91bd..03025538d1 100644
--- a/downstream/modules/platform/con-controller-overview-workflow-enhancements.adoc
+++ b/downstream/modules/platform/con-controller-overview-workflow-enhancements.adoc
@@ -3,6 +3,7 @@
[id="con-controller-overview-workflow-enhancements_{context}"]
= Workflow enhancements
+
To model your complex provisioning, deployment, and orchestration workflows, you can use {ControllerName} expanded workflows in several ways:
* *Inventory overrides for Workflows* You can override an inventory across a workflow at workflow definition time, or at launch time.
diff --git a/downstream/modules/platform/con-controller-understand-architecture.adoc b/downstream/modules/platform/con-controller-understand-architecture.adoc
index a54f6f12d9..f27556593a 100644
--- a/downstream/modules/platform/con-controller-understand-architecture.adoc
+++ b/downstream/modules/platform/con-controller-understand-architecture.adoc
@@ -15,17 +15,9 @@ At a higher level, tools exist that enable creation of approvals and policy-base
These tools can then use Ansible through the {ControllerName}'s API to perform automation.
You must use a secure default administrator password at the time of {ControllerName} installation.
-For more information, see xref:ref-controller-change-admin-password[Change the {ControllerName} Administrator Password].
+For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/controller-tips-and-tricks#ref-controller-change-admin-password[Change the {ControllerName} Administrator Password].
{ControllerNameStart} exposes services on certain well-known ports, such as port 80 for HTTP traffic and port 443 for HTTPS traffic.
-Do not expose {ControllerName} on the open internet, which reduces the threat surface of your installation.
-
-== Granting access
-Granting access to certain parts of the system exposes security risks.
-Apply the following practices to help secure access:
+Do not expose {ControllerName} on the open internet, which reduces the threat surface of your installation.
-* xref:controller-minimize-administrative-accounts[Minimize administrative accounts]
-* xref:controller-minimize-system-access[Minimize local system access]
-* xref:controller-remove-access-credentials[Remove access to credentials from users]
-* xref:controller-enforce-separation-duties[Enforce separation of duties]
diff --git a/downstream/modules/platform/con-gs-automation-execution.adoc b/downstream/modules/platform/con-gs-automation-execution.adoc
index b820c15f6a..7c08cd01ce 100644
--- a/downstream/modules/platform/con-gs-automation-execution.adoc
+++ b/downstream/modules/platform/con-gs-automation-execution.adoc
@@ -14,3 +14,7 @@ In the automation execution environment, you can use {ControllerName} tasks to b
An inventory is a single file, usually in INI or YAML format, containing a list of hosts and groups that can be acted upon using Ansible commands and playbooks.
You can use an inventory file to specify your installation scenario and describe host deployments to Ansible.
You can also use an inventory file to organize managed nodes in centralized files that give Ansible with system information and network locations.
+
+== Policy enforcement
+
+Policy enforcement at automation runtime is a feature that uses encoded rules to define, manage, and enforce policies that govern how your users interact with your {PlatformNameShort} instance. Policy enforcement automates policy management, improving security, compliance, and efficiency. Policy enforcement points can be configured at the level of the inventory, job template, or organization. For more, see link:{URLControllerAdminGuide}/controller-pac[Implementing policy enforcement] in the {TitleControllerAdminGuide} guide.
\ No newline at end of file
diff --git a/downstream/modules/platform/con-gw-activity-stream.adoc b/downstream/modules/platform/con-gw-activity-stream.adoc
index 2245e67a6d..6c16bf6b59 100644
--- a/downstream/modules/platform/con-gw-activity-stream.adoc
+++ b/downstream/modules/platform/con-gw-activity-stream.adoc
@@ -3,6 +3,7 @@
[id="con-gw-activity-stream"]
= Activity stream
+
The {Gateway} includes an activity stream that captures changes to {Gateway} resources, such as the creation or modification of organizations, users, and service clusters, among others. For each change, the activity stream collects information about the time of the change, the user that initiated the change, the action performed, and the actual changes made to the object, when possible. The information gathered varies depending on the type of change.
You can access the details captured by the activity stream from the API:
diff --git a/downstream/modules/platform/con-gw-authenticator-map-examples.adoc b/downstream/modules/platform/con-gw-authenticator-map-examples.adoc
index 9d36914cfd..264131e522 100644
--- a/downstream/modules/platform/con-gw-authenticator-map-examples.adoc
+++ b/downstream/modules/platform/con-gw-authenticator-map-examples.adoc
@@ -6,7 +6,8 @@
Use the following examples to explore the different conditions, like groups and attribute values you can implement to control user access to the platform.
-.Add users to an organization based on an attribute
+*Add users to an organization based on an attribute*
+
In this example, you will add a user to the *Networking* organization if they have an `Organization` attribute with the value of `Networking`:
image::am-org-mapping-full-annotation.png[Add users to an organization mapping example fully annotated with callout numbers that correlate with the following list that describes the function of each field]
@@ -21,7 +22,8 @@ image::am-org-mapping-full-annotation.png[Add users to an organization mapping e
. The name of the *Organization* to which you are adding members is `Networking`.
. Users are added to the *Networking* organization with the `Organization Member` role.
-.Add users to a team based on the users group
+*Add users to a team based on the users group*
+
In this example, you will add user to the `Apple` team if they have either of the following groups:
-----
@@ -36,13 +38,13 @@ cn=Operators,ou=AAP,ou=example,co=com
image::am-apple-team-map-example.png[Add user to a team mapping example]
-.Do not escalate privileges
+*Do not escalate privileges*
In this example, you never escalate users to a superuser. But note, this rule does not revoke a user’s superuser permission because the revoke option is not set.
image::am-do-not-escalate-privileges.png[Do not escalate privileges mapping example]
-.Escalate privileges based on a user having a group
+*Escalate privileges based on a user having a group*
In this example, you escalate user privileges to superuser if they belong to the following group:
@@ -52,7 +54,7 @@ cn=Administrators,ou=AAP
image::am-escalate-privileges.png[Escalate privileges mapping example]
-.Using mapping order to create exceptions
+*Using mapping order to create exceptions*
Since maps are executed in order, it is possible to create exceptions. Expanding on the previous example for __Do not escalate privileges__, you can add another rule with a higher order, such as, __Escalate privileges__.
diff --git a/downstream/modules/platform/con-gw-authenticator-map-triggers.adoc b/downstream/modules/platform/con-gw-authenticator-map-triggers.adoc
index 96ae787345..503de28fcd 100644
--- a/downstream/modules/platform/con-gw-authenticator-map-triggers.adoc
+++ b/downstream/modules/platform/con-gw-authenticator-map-triggers.adoc
@@ -28,7 +28,7 @@ See the *Operation* field to determine the behavior of the trigger if more than
Group identifiers must be entered in lowercase. For example, `cn=johnsmith,dc=example,dc=com` instead of `CN=johnsmith,DC=example,DC=com`.
====
+
-Attribute:: The map is true or false based on a users attributes coming from the source system. See link:{URLCentralAuth}/gw-configure-authentication#gw-authenticator-map-examples[Authenticator map examples] for information on using *Attribute* triggers.
+Attribute:: The map is true or false based on a users attributes coming from the source system. See link:{URLCentralAuth}/gw-configure-authentication#gw-authenticator-map-examples[Authenticator map examples] for information about using *Attribute* triggers.
+
When defining an attribute trigger, the authentication mapping expands to include the following selections:
+
@@ -36,7 +36,7 @@ When defining an attribute trigger, the authentication mapping expands to includ
+
[NOTE]
====
-If you would like to experiment with multiple attribute maps you can do that through the API but the UI form will remove multi-attribute maps if the authenticator is saved through the UI. When adding multiple attributes to a map, the *Operation* will also apply to the attributes.
+If you want to experiment with multiple attribute maps you can do that through the API but the UI form will remove multi-attribute maps if the authenticator is saved through the UI. When adding multiple attributes to a map, the *Operation* will also apply to the attributes.
====
+
* *Attribute:* The name of the attribute coming from the source system this trigger will be evaluated against. For example, if you wanted the trigger to fire based on the user's last name and the last name field in the source system was called `users_last_name` you would enter the value ‘users_last_name’ in this field.
@@ -46,10 +46,10 @@ If you would like to experiment with multiple attribute maps you can do that thr
** *matches*: The *Value* on the trigger is treated as a python regular expression and does an link:https://docs.python.org/3/library/re.html#re.match[Regular expression match (re.match)] (with case ignore on) between the specified *Value* and the value returned from the source system. For example, if the trigger's *Value* was ‘Jo’ the trigger would return _True_ if the value from the source was ‘John‘ or ‘Joanne‘ or any other value which matched the regular expression ‘Jo’. The trigger would return _False_ if the sources value for the attribute was ‘Dan’ because ‘Dan’ does not match the regular expression ‘Jo’.
** *ends with*: The trigger will see if the value provided by the source ends with the specified *Value* of the trigger. For example, if the source provided a value of ‘John’ the trigger would be _True_ if its *Value* was set to ‘n’ or ‘on’. The trigger would be _False_ if its *Value* was set to ‘z’ because the value ‘John’ coming from the source does not end with the value ’z’ specified by the trigger.
** *equal*: The trigger will see if the value provided by the source is equal to (in its entirety) the specified *Value* of the trigger. For example, if the source returned the value ‘John’, the trigger would be _True_ if its *Value* was set to ‘John’. Any value other than ‘John’ returned from the source would set this trigger to _False_.
-** *in*: The *in* condition will see if the value matches one of several values. When *in* is specified as the *Comparison*, the *Value* field can be a comma separated list. For example, if a trigger had a *Value* of ‘John,Donna’ the trigger would be _True_ if the attribute coming from the source had either the value ‘John’ or ‘Donna’. Otherwise, the trigger would be _False_.
+** *in*: The *in* condition checks if the value matches one of several values. When *in* is specified as the *Comparison*, the *Value* field can be a comma-separated list. For example, if a trigger had a *Value* of ‘John,Donna’ the trigger would be _True_ if the attribute coming from the source had either the value ‘John’ or ‘Donna’. Otherwise, the trigger would be _False_.
** *Value*: The value that a users attribute will be matched against based on the *Comparison* field. See examples in the *Comparison* definition in this section.
+
[NOTE]
====
-If the *Comparison* type is *in*, this field can be a comma separated list (without spaces).
+If the *Comparison* type is *in*, this field can be a comma-separated list (without spaces).
====
diff --git a/downstream/modules/platform/con-gw-authenticator-map-types.adoc b/downstream/modules/platform/con-gw-authenticator-map-types.adoc
index 20645d38e6..3e38c57cca 100644
--- a/downstream/modules/platform/con-gw-authenticator-map-types.adoc
+++ b/downstream/modules/platform/con-gw-authenticator-map-types.adoc
@@ -6,7 +6,7 @@
{PlatformNameShort} supports the following rule types:
-Allow:: Determine if the user is allowed to log into the system.
+Allow:: Determine if the user is allowed to log in to the system.
Organization:: Determine if a user should be put into an organization.
Team:: Determine if the user should be a member of a team.
Role:: Determine if the user is a member of a role (for example, _System Auditor_).
diff --git a/downstream/modules/platform/con-gw-manage-oauth2-external-users.adoc b/downstream/modules/platform/con-gw-manage-oauth2-external-users.adoc
new file mode 100644
index 0000000000..eb4315bf0a
--- /dev/null
+++ b/downstream/modules/platform/con-gw-manage-oauth2-external-users.adoc
@@ -0,0 +1,17 @@
+:_mod-docs-content-type: CONCEPT
+
+[id="gw-manage-oauth2-external-users"]
+
+= Manage OAuth2 token creation for external users
+
+{PlatformName} is designed with a default security posture that prevents users authenticated through external providers, such as LDAP, SAML, or SSO, from creating OAuth2 tokens for programmatic API access.
+When an external user tries to generate such a token, the following message appears:
+`403: Forbidden' error with the message: '(access_denied) OAuth2 Tokens cannot be created by users associated with an external authentication provider`.
+
+This default behavior is a deliberate security measure.
+{PlatformNameShort} prioritizes centralized control over token generation, which encourages administrators to select the appropriate method for enabling OAuth 2.0 user token generation for external authentication providers.
+
+It is important to understand that an OAuth2 token is created within {PlatformNameShort}, and {PlatformNameShort} itself manages its lifecycle, including its expiration.
+This lifecycle is independent of the user's session with their external Identity Provider (IdP).
+For example, if a user generates an {PlatformNameShort} token and their account is later disabled in the external IdP, the {PlatformNameShort} token remains valid until it expires or is manually revoked.
+Being aware of this interaction is crucial for a secure configuration, as it highlights the need for compensating controls if you enable token creation for external users.
diff --git a/downstream/modules/platform/con-gw-understanding-authenticator-mapping.adoc b/downstream/modules/platform/con-gw-understanding-authenticator-mapping.adoc
index 532bff1b2f..23924fb9d0 100644
--- a/downstream/modules/platform/con-gw-understanding-authenticator-mapping.adoc
+++ b/downstream/modules/platform/con-gw-understanding-authenticator-mapping.adoc
@@ -4,7 +4,7 @@
= Understanding authenticator mapping
-Authentication:: Validates a user’s identity, typically through a username and password or a trust system.
+Authentication:: Validates a user's identity, typically through a username and password or a trust system.
Authorization:: Determines what an authenticated user can do once they are authenticated.
In {PlatformNameShort}, authenticators manage authentication, validating users and returning details such as their username, first name, email, and group memberships (for example, LDAP groups). Authorization comes from the authenticator’s associated maps.
diff --git a/downstream/modules/platform/con-installer-generated-certs.adoc b/downstream/modules/platform/con-installer-generated-certs.adoc
index 5713f0ef99..e63697f81b 100644
--- a/downstream/modules/platform/con-installer-generated-certs.adoc
+++ b/downstream/modules/platform/con-installer-generated-certs.adoc
@@ -3,6 +3,7 @@
[id="installer-generated-certificates"]
= {PlatformNameShort} generated certificates
+[role="_abstract"]
By default, the installation program creates a self-signed Certificate Authority (CA) and uses it to generate self-signed TLS certificates for all {PlatformNameShort} services. The self-signed CA certificate and key are generated on one node under the `~/aap/tls/` directory and copied to the same location on all other nodes. This CA is valid for 10 years after the initial creation date.
Self-signed certificates are not part of any public chain of trust. The installation program creates a certificate truststore that includes the self-signed CA certificate under `~/aap/tls/extracted/` and bind-mounts that directory to each {PlatformNameShort} service container under `/etc/pki/ca-trust/extracted/`. This allows each {PlatformNameShort} component to validate the self-signed certificates of the other {PlatformNameShort} services. The CA certificate can also be added to the truststore of other systems or browsers as needed.
diff --git a/downstream/modules/platform/con-ocp-supported-install.adoc b/downstream/modules/platform/con-ocp-supported-install.adoc
index 07396dcb36..bcf517d957 100644
--- a/downstream/modules/platform/con-ocp-supported-install.adoc
+++ b/downstream/modules/platform/con-ocp-supported-install.adoc
@@ -8,7 +8,7 @@ You can use the OperatorHub on the {OCP} web console to install {OperatorPlatfor
Alternatively, you can install {OperatorPlatformNameShort} from the {OCPShort} command-line interface (CLI), `oc`. See link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html-single/installing_on_openshift_container_platform/index#installing-aap-operator-cli_operator-platform-doc[Installing {OperatorPlatformName} from the {OCPShort} CLI] for help with this.
-After you have installed {OperatorPlatformNameShort} you must create an *{PlatformNameShort}* custom resource (CR). This enables you to manage {PlatformNameShort} components from a single unified interface known as the {Gateway}. As of version 2.5, you must create an {PlatformNameShort} CR, even if you have an existing {ControllerName}, {HubName}, or {EDAName}, components.
+After you have installed {OperatorPlatformNameShort} you must create an *{PlatformNameShort}* custom resource (CR). This enables you to manage {PlatformNameShort} components from a single unified interface known as the {Gateway}. In version {PlatformVers}, you must create an {PlatformNameShort} CR, even if you have an existing {ControllerName}, {HubName}, or {EDAName}, components.
If existing components have already been deployed, you must specify these components on the {PlatformNameShort} CR. You must create the custom resource in the same namespace as the existing components.
diff --git a/downstream/modules/platform/con-operator-channel-upgrade.adoc b/downstream/modules/platform/con-operator-channel-upgrade.adoc
index 0a8461922c..22b6c17a3d 100644
--- a/downstream/modules/platform/con-operator-channel-upgrade.adoc
+++ b/downstream/modules/platform/con-operator-channel-upgrade.adoc
@@ -4,11 +4,11 @@
= Channel upgrades
-Upgrading to version 2.5 from {PlatformNameShort} 2.4 involves retrieving updates from a “channel”.
+Upgrading to version {PlatformVers} from {PlatformNameShort} 2.4 involves retrieving updates from a “channel”.
A channel refers to a location where you can access your update.
It currently resides in the OpenShift console UI.
-image:change_subscription.png[Update channel]
+image:AAP-2.6-channels.png[Update channel]
== In-channel upgrades
@@ -48,5 +48,5 @@ For each major or minor version channel, there is a corresponding "cluster-scope
[IMPORTANT]
====
-Cluster-scoped bundles are not compatible with namespace-scoped bundles. Do not try to switch between normal (stable-2.4 for example) channels and cluster-scoped (stable-2.4-cluster-scoped) channels, as this is not supported.
+Cluster-scoped bundles are not compatible with namespace-scoped bundles. Do not try to switch between normal (stable-2.6 for example) channels and cluster-scoped (stable-2.6-cluster-scoped) channels, as this is not supported.
====
\ No newline at end of file
diff --git a/downstream/modules/platform/con-operator-custom-resources.adoc b/downstream/modules/platform/con-operator-custom-resources.adoc
index 43f09d9fd1..56018c1dc3 100644
--- a/downstream/modules/platform/con-operator-custom-resources.adoc
+++ b/downstream/modules/platform/con-operator-custom-resources.adoc
@@ -5,13 +5,3 @@
= Custom resources
You can define custom resources for each primary installation workflows.
-
-//[Jameria] Moved this topic from supported installation section to custom resources since that's what the cross-referenced topic links to in the appendix (Custom resources appendix)
-== Modifying the number of simultaneous rulebook activations during or after {EDAcontroller} installation
-
-* If you plan to install {EDAName} on {OCPShort} and modify the number of simultaneous rulebook activations, add the required `EDA_MAX_RUNNING_ACTIVATIONS` parameter to your custom resources. By default, {EDAcontroller} allows 12 activations per node to run simultaneously. For an example see the link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html-single/installing_on_openshift_container_platform/index#eda_max_running_activations_yml[eda-max-running-activations.yml] in the appendix section.
-
-[NOTE]
-====
-`EDA_MAX_RUNNING_ACTIVATIONS` for {OCPShort} is a global value since there is no concept of worker nodes when installing {EDAName} on {OCPShort}.
-====
diff --git a/downstream/modules/platform/con-operator-upgrade-overview.adoc b/downstream/modules/platform/con-operator-upgrade-overview.adoc
index e98a64c0f0..1a34119bf9 100644
--- a/downstream/modules/platform/con-operator-upgrade-overview.adoc
+++ b/downstream/modules/platform/con-operator-upgrade-overview.adoc
@@ -4,8 +4,8 @@
= Overview
-You can use this document for help with upgrading {PlatformNameShort} 2.4 to 2.5 on {OCP}.
-This document applies to upgrades of {PlatformNameShort} 2.5 to later versions of 2.5.
+You can use this document for help with upgrading {PlatformNameShort} versions 2.4 and 2.5 to {PlatformVers} on {OCP}.
+This document applies to upgrades of {PlatformNameShort} {PlatformVers} to later versions of {PlatformVers}.
The {OperatorPlatformNameShort} manages deployments, upgrades, backups, and restores of {ControllerName} and {HubName}.
It also handles deployments of AnsibleJob and JobTemplate resources from the {PlatformNameShort} Resource Operator.
@@ -20,4 +20,4 @@ Most users will not have to interact directly with these resources.
They are created when the {OperatorPlatformNameShort} is installed from *OperatorHub* and managed through the *Subscriptions* tab in the OpenShift console UI.
For more information, refer to link:https://docs.openshift.com/container-platform/4.16/web_console/web-console.html[Accessing the web console].
-image:Subscription_tab.png[Subscription tab]
\ No newline at end of file
+image:AAP-2.6-view.png[Subscription tab]
\ No newline at end of file
diff --git a/downstream/modules/platform/con-pod-specification-mods.adoc b/downstream/modules/platform/con-pod-specification-mods.adoc
index 9aa252c450..8fedbc8400 100644
--- a/downstream/modules/platform/con-pod-specification-mods.adoc
+++ b/downstream/modules/platform/con-pod-specification-mods.adoc
@@ -18,7 +18,7 @@ This custom document uses custom fields, such as `ImagePullSecrets`, that can be
A full list of options can be found in the link:https://docs.openshift.com/online/pro/architecture/core_concepts/pods_and_services.html[Openshift Online] documentation.
-.Example of a pod that provides a long-running service.
+*Example of a pod that provides a long-running service*
This example demonstrates many features of pods, most of which are discussed in other topics and thus only briefly mentioned here:
diff --git a/downstream/modules/platform/con-receptor-cert-considerations.adoc b/downstream/modules/platform/con-receptor-cert-considerations.adoc
index 328172b6e1..2449a6e778 100644
--- a/downstream/modules/platform/con-receptor-cert-considerations.adoc
+++ b/downstream/modules/platform/con-receptor-cert-considerations.adoc
@@ -3,6 +3,7 @@
[id="receptor-certificate-considerations"]
= Receptor certificate considerations
+[role="_abstract"]
When using a custom certificate for Receptor nodes, the certificate requires the `otherName` field specified in the Subject Alternative Name (SAN) of the certificate with the value `1.3.6.1.4.1.2312.19.1`. For more information, see link:https://ansible.readthedocs.io/projects/receptor/en/latest/user_guide/tls.html#above-the-mesh-tls[Above the mesh TLS].
Receptor does not support the usage of wildcard certificates. Additionally, each Receptor certificate must have the host FQDN specified in its SAN for TLS hostname validation to be correctly performed.
diff --git a/downstream/modules/platform/con-redis-cert-considerations.adoc b/downstream/modules/platform/con-redis-cert-considerations.adoc
new file mode 100644
index 0000000000..b9c440d018
--- /dev/null
+++ b/downstream/modules/platform/con-redis-cert-considerations.adoc
@@ -0,0 +1,11 @@
+:_mod-docs-content-type: CONCEPT
+
+[id="redis-certificate-considerations"]
+= Redis certificate considerations
+
+[role="_abstract"]
+When using custom TLS certificates for Redis-related services, consider the following for mutual TLS (mTLS) communication if specifying Extended Key Usage (EKU):
+
+* The Redis server certificate (`redis_tls_cert`) should include the `serverAuth` (web server authentication) and `clientAuth` (client authentication) EKU.
+
+* The Redis client certificates (`gateway_redis_tls_cert`, `eda_redis_tls_cert`) should include the `clientAuth` (client authentication) EKU.
diff --git a/downstream/modules/platform/proc-aap-enable-disable-auth.adoc b/downstream/modules/platform/proc-aap-enable-disable-auth.adoc
index c520e894a3..a295edc89a 100644
--- a/downstream/modules/platform/proc-aap-enable-disable-auth.adoc
+++ b/downstream/modules/platform/proc-aap-enable-disable-auth.adoc
@@ -15,13 +15,13 @@ Dependency on enterprise authentication provider:: If the local authenticator is
* You have at least one other authenticator method configured.
* You have at least one administrator account that can authenticate using your alternate authenticator.
-.Procedure
-
[CAUTION]
====
Disabling the local authenticator without an alternative authentication in place can result in a locked environment.
====
+.Procedure
+
. From the navigation panel, select {MenuAMAuthentication}.
. Ensure that at least one other authenticator type is configured and enabled.
. Select your *Local Authenticator*.
diff --git a/downstream/modules/platform/proc-aap-platform-ext-DB-restore.adoc b/downstream/modules/platform/proc-aap-platform-ext-DB-restore.adoc
new file mode 100644
index 0000000000..a2941ae02b
--- /dev/null
+++ b/downstream/modules/platform/proc-aap-platform-ext-DB-restore.adoc
@@ -0,0 +1,65 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="aap-platform-ext-DB-restore_{context}"]
+
+= Recovering your {PlatformNameShort} deployment from an external database
+
+You can restore an external database on {OCP} using the Operator. Use the following procedure to restore from an external database.
+
+[IMPORTANT]
+====
+Restoring from an external database force drops the database, which overrides your existing external database.
+====
+
+.Prerequisites
+
+* You have an external database.
+* You have installed the {OperatorPlatformNameShort} on {OCPShort}.
+
+.Procedure
+
+. Log in to {OCP}.
+. Navigate to menu:Operators[Installed Operators].
+. Select your {OperatorPlatformNameShort} deployment.
+. Go to your *All Instances* tab, and click btn:[Create New].
+. Select *{PlatformNameShort} Restore* from the list.
+. For *Name* enter the name for the recovery deployment.
+. For *New {PlatformNameShort} Name* enter the new name for your {PlatformNameShort} instance.
+* If restoring to the same name {PlatformNameShort} then you must add `force_drop_db: true` to drop the database on restore.
+. *Backup Source* defaults to *CR*.
+. For *Backup name* enter the name you chose when creating the backup.
+Under *YAML view* paste in the following example:
++
+----
+---
+apiVersion: aap.ansible.com/v1alpha1
+kind: AnsibleAutomationPlatformRestore
+metadata:
+ name: aaprestore
+spec:
+ deployment_name: aap
+ backup_name: aapbackup
+ controller:
+ force_drop_db: true
+----
++
+. Click btn:[Create].
+
+.Verification
+
+Your backups starts restoring under the *AnsibleAutomationPlatformRestores* tab.
+
+[NOTE]
+====
+The recovery is not complete until all the resources are successfully restored. Depending on the size of your database this this can take some time.
+====
+
+To verify that your recovery was successful you can:
+
+. Go to menu:Workloads[Pods].
+. Confirm that all pods are in a *Running* or *Completed* state.
+
+[role="_additional-resources"]
+.Additional resources
+
+* link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html-single/installing_on_openshift_container_platform/index[Installing on OpenShift Container Platform]
diff --git a/downstream/modules/platform/proc-aap-platform-gateway-backup.adoc b/downstream/modules/platform/proc-aap-platform-gateway-backup.adoc
index eae1edbe28..628ac720f2 100644
--- a/downstream/modules/platform/proc-aap-platform-gateway-backup.adoc
+++ b/downstream/modules/platform/proc-aap-platform-gateway-backup.adoc
@@ -3,14 +3,23 @@
[id="aap-platform-gateway-backup_{context}"]
= Backing up your {PlatformNameShort} deployment
+
Regularly backing up your *{PlatformNameShort}* deployment is vital to protect against unexpected data loss and application errors. *{PlatformNameShort}* hosts any enabled components (such as, {ControllerName}, {HubName}, and {EDAName}), when you back up *{PlatformNameShort}* the operator will also back up these components.
+[NOTE]
+====
+{OperatorPlatformNameShort} creates a PersistentVolumeClaim (PVC) for your {PlatformNameShort} Backup automatically.
+You can use your own pre-created PVC by using the `backup_pvc` spec and specifying your PVC.
+====
+
.Prerequisites
+
* You must be authenticated on OpenShift cluster.
* You have installed {OperatorPlatformNameShort} on the cluster.
* You have deployed a *{PlatformNameShort}* instance using the {OperatorPlatformNameShort}.
.Procedure
+
. Log in to {OCP}.
. Navigate to menu:Operators[Installed Operators].
. Select your {OperatorPlatformNameShort} deployment.
@@ -24,10 +33,8 @@ When creating the *{PlatformNameShort} Backup* resource it also creates backup r
+
. In the *Name* field, enter a name for the backup.
. In the *Deployment name* field, enter the name of the deployed {PlatformNameShort} instance being backed up. For example if your {PlatformNameShort} deployment must be backed up and the deployment name is aap, enter 'aap' in the *Deployment name* field.
-. Click btn:[Create].
-
-This results in an *AnsibleAutomationPlatformBackup* resource. The the resource YAML is similar to the following:
-
+. Click btn:[Create]. This results in an *AnsibleAutomationPlatformBackup* resource similar to the following:
++
----
apiVersion: aap.ansible.com/v1alpha1
kind: AnsibleAutomationPlatformBackup
@@ -38,14 +45,10 @@ spec:
no_log: true
deployment_name: aap
----
-
-[NOTE]
-====
-{OperatorPlatformNameShort} creates a PersistentVolumeClaim (PVC) for your {PlatformNameShort} Backup automatically.
-You can use your own pre-created PVC by using the `backup_pvc` spec and specifying your PVC.
-====
++
.Verification
+
To verify that your backup was successful you can:
. Log in to {OCP}.
diff --git a/downstream/modules/platform/proc-aap-platform-gateway-restore.adoc b/downstream/modules/platform/proc-aap-platform-gateway-restore.adoc
index 1f1eb1ad9f..97e89f4736 100644
--- a/downstream/modules/platform/proc-aap-platform-gateway-restore.adoc
+++ b/downstream/modules/platform/proc-aap-platform-gateway-restore.adoc
@@ -3,6 +3,7 @@
[id="aap-platform-gateway-restore_{context}"]
= Recovering your {PlatformNameShort} deployment
+
*{PlatformNameShort}* manages any enabled components (such as, {ControllerName}, {HubName}, and {EDAName}), when you recover *{PlatformNameShort}* you also restore these components.
In previous versions of the {OperatorPlatformNameShort}, it was necessary to create a restore object for each component of the platform.
@@ -13,11 +14,13 @@ Now, you create a single *AnsibleAutomationPlatformRestore* resource, which cre
* EDARestore
.Prerequisites
+
* You must be authenticated with an OpenShift cluster.
* You have installed the {OperatorPlatformNameShort} on the cluster.
* The *AnsibleAutomationPlatformBackups* deployment is available in your cluster.
.Procedure
+
. Log in to {OCP}.
. Navigate to menu:Operators[Installed Operators].
. Select your {OperatorPlatformNameShort} deployment.
@@ -26,9 +29,11 @@ Now, you create a single *AnsibleAutomationPlatformRestore* resource, which cre
. For *Name* enter the name for the recovery deployment.
. For *New {PlatformNameShort} Name* enter the new name for your {PlatformNameShort} instance.
. *Backup Source* defaults to *CR*.
-. For *Backup name* enter the name your chose when creating the backup.
+. For *Backup name* enter the name you chose when creating the backup.
. Click btn:[Create].
+.Verification
+
Your backups starts restoring under the *AnsibleAutomationPlatformRestores* tab.
[NOTE]
@@ -36,8 +41,12 @@ Your backups starts restoring under the *AnsibleAutomationPlatformRestores* tab.
The recovery is not complete until all the resources are successfully restored. Depending on the size of your database this this can take some time.
====
-.Verification
To verify that your recovery was successful you can:
. Go to menu:Workloads[Pods].
. Confirm that all pods are in a *Running* or *Completed* state.
+
+[role="_additional-resources"]
+.Additional resources
+
+* link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html-single/installing_on_openshift_container_platform/index[Installing on OpenShift Container Platform]
diff --git a/downstream/modules/platform/proc-aap-platform-pvc-restore.adoc b/downstream/modules/platform/proc-aap-platform-pvc-restore.adoc
new file mode 100644
index 0000000000..8b120ef949
--- /dev/null
+++ b/downstream/modules/platform/proc-aap-platform-pvc-restore.adoc
@@ -0,0 +1,80 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="aap-platform-pvc-restore_{context}"]
+
+= Recovering your {PlatformNameShort} deployment from a PVC
+
+A persistent volume claim (PVC) is a storage volume that stores data for {HubName} and {ControllerName} applications.
+These PVCs are independent of the applications and persist even if an application is deleted.
+You can restore data from a PVC as an alternative to recovering from an *{PlatformNameShort}* backup.
+
+For more information see the _Finding and deleting PVCs_ section of the link:{BaseURL}/red_hat_ansible_automation_platform/{PlayformVers}/html-single/installing_on_openshift_container_platform/index[Installing on OpenShift Container Platform] guide.
+
+
+.Prerequisites
+
+* You have an existing PVC containing a backup.
+* You have installed the {OperatorPlatformNameShort} on {OCP}.
+
+.Procedure
+
+. Log in to {OCP}.
+. Navigate to menu:Operators[Installed Operators].
+. Select your {OperatorPlatformNameShort} deployment.
+. Go to your *All Instances* tab, and click btn:[Create New].
+. Select *{PlatformNameShort} Restore* from the list.
+. For *Name* enter the name for the recovery deployment.
+. For *New {PlatformNameShort} Name* enter the new name for your {PlatformNameShort} instance.
+. For *Backup Source* select *PVC*.
+.. *Backup PVC:* Enter the name of your PVC.
+.. *Backup Directory:* Enter the path to your backup directory on your PVC.
+. For *Backup name* enter the name you chose when creating the backup.
+. Under *YAML view* paste in the following example:
++
+----
+---
+apiVersion: aap.ansible.com/v1alpha1
+kind: AnsibleAutomationPlatformRestore
+metadata:
+ name: aap
+spec:
+ deployment_name: aap
+ backup_source: PVC
+ backup_pvc: aap-backup-claim
+ backup_dir: '/backups/aap-openshift-backup-2025-06-23-18:28:29'
+
+ controller:
+ backup_source: PVC
+ backup_pvc: aap-controller-backup-claim
+ backup_dir: '/backups/tower-openshift-backup-2025-06-23-182910'
+
+ hub:
+ backup_source: PVC
+ backup_pvc: aap-hub-backup-claim
+ backup_dir: '/backups/openshift-backup-2025-06-23-182853'
+ storage_type: file
+
+ eda:
+ backup_source: PVC
+ backup_pvc: aap-eda-backup-claim
+ backup_dir: '/backups/eda-openshift-backup-2025-06-23-18:29:11'
+----
++
+. Click btn:[Create].
+
+.Verification
+
+Your backups restore under the *AnsibleAutomationPlatformRestores* tab.
+
+[NOTE]
+====
+The recovery is not complete until all the resources are successfully restored. Depending on the size of your database this this can take some time.
+====
+
+. Go to menu:Workloads[Pods].
+. Confirm that all pods are in a *Running* or *Completed* state.
+
+[role="_additional-resources"]
+.Additional resources
+
+* link:{BaseURL}/red_hat_ansible_automation_platform/{PlatformVers}/html-single/installing_on_openshift_container_platform/index[Installing on OpenShift Container Platform]
diff --git a/downstream/modules/platform/proc-add-eda-safe-plugin-var.adoc b/downstream/modules/platform/proc-add-eda-safe-plugin-var.adoc
index 0ccb5fce07..76cdb66fb9 100644
--- a/downstream/modules/platform/proc-add-eda-safe-plugin-var.adoc
+++ b/downstream/modules/platform/proc-add-eda-safe-plugin-var.adoc
@@ -1,10 +1,10 @@
:_mod-docs-content-type: PROCEDURE
-
[id="proc-add-eda-safe-plugin-var"]
= Adding a safe plugin variable to {EDAcontroller}
+[role="_abstract"]
When using `redhat.insights_eda` or similar plugins to run rulebook activations in {EDAcontroller}, you must add a safe plugin variable to a directory in {PlatformNameShort}. This ensures connection between {EDAcontroller} and the source plugin, and displays port mappings correctly.
.Procedure
diff --git a/downstream/modules/platform/proc-backup-aap-container.adoc b/downstream/modules/platform/proc-backup-aap-container.adoc
index 3da00566f9..471d030ce1 100644
--- a/downstream/modules/platform/proc-backup-aap-container.adoc
+++ b/downstream/modules/platform/proc-backup-aap-container.adoc
@@ -4,8 +4,17 @@
= Backing up containerized {PlatformNameShort}
+[role="_abstract"]
Perform a backup of your {ContainerBase} of {PlatformNameShort}.
+[NOTE]
+====
+When backing up {PlatformNameShort}, use the installation program that matches your currently installed version of {PlatformNameShort}.
+
+Backup functionality only works with the PostgreSQL versions supported by your current {PlatformNameShort} version.
+For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/aap-containerized-installation#system-requirements[System requirements].
+====
+
.Prerequisites
* You have logged in to the {RHEL} host as your dedicated non-root user.
@@ -58,3 +67,17 @@ This backs up the important data deployed by the containerized installer such as
* Data files
. By default, the backup directory is set to `./backups`. You can change this by using the `backup_dir` variable in your `inventory` file.
+
+.Next steps
+
+To customize the backup, use the following variables in your `inventory` file.
+* Change the backup destination directory from the default `./backups` by using the `backup_dir` variable.
+* Exclude paths that contain duplicated data, such as snapshot subdirectories, by using the `hub_data_path_exclude` variable. For instance, to exclude a .snapshots subdirectory, specify hub_data_path_exclude=['*/.snapshots/*'] in your inventory file.
+** Alternatively, you can use the command-line interface with the `-e` flag to pass this variable at runtime:
++
+----
+$ ansible-playbook -i inventory ansible.containerized_installer.backup -e hub_data_path_exclude="['*/.snapshots/*']"
+----
+
+
+
diff --git a/downstream/modules/platform/proc-configure-a-config-map.adoc b/downstream/modules/platform/proc-configure-a-config-map.adoc
index add3d5833a..e5a5a6e21b 100644
--- a/downstream/modules/platform/proc-configure-a-config-map.adoc
+++ b/downstream/modules/platform/proc-configure-a-config-map.adoc
@@ -2,7 +2,7 @@
[id="proc-configure-a-config-map"]
-= Create a ConfigMap in the OpenShift UI YAML view
+= Creating a ConfigMap in the OpenShift UI YAML view
To inject the `metrics-utility` cronjobs with configuration data, use the following procedure to create a ConfigMap in the OpenShift UI YAML view:
@@ -12,8 +12,8 @@ To inject the `metrics-utility` cronjobs with configuration data, use the follow
[NOTE]
====
-Metrics-utility runs as indicated by the parameters you set in the configuration file.
-You cannot run the utility cannot manually on {OCPShort}.
+`metrics-utility` runs as indicated by the parameters you set in the configuration file.
+You cannot run the utility manually on {OCPShort}.
====
.Procedure
@@ -46,4 +46,4 @@ data:
.Verification
-* To verify that you created the ConfigMap and the metric utility is installed, select *ConfigMap* from the navigation panel and look for your ConfigMap in the list.
+* To verify that you created the ConfigMap and `metrics-utility` is installed, select *ConfigMap* from the navigation panel and look for your ConfigMap in the list.
diff --git a/downstream/modules/platform/proc-configure-ext-db-mtls.adoc b/downstream/modules/platform/proc-configure-ext-db-mtls.adoc
index 665ff18b3a..d6f5b0ac40 100644
--- a/downstream/modules/platform/proc-configure-ext-db-mtls.adoc
+++ b/downstream/modules/platform/proc-configure-ext-db-mtls.adoc
@@ -3,6 +3,7 @@
[id="configure-ext-db-mtls"]
= Optional: configuring mutual TLS (mTLS) authentication for an external database
+[role="_abstract"]
mTLS authentication is disabled by default. To configure each component's database with mTLS authentication, add the following variables to your inventory file under the `[all:vars]` group and ensure each component has a different TLS certificate and key:
.Procedure
diff --git a/downstream/modules/platform/proc-configure-haproxy-load-balancer.adoc b/downstream/modules/platform/proc-configure-haproxy-load-balancer.adoc
index 6325bb3167..75b54ef3b5 100644
--- a/downstream/modules/platform/proc-configure-haproxy-load-balancer.adoc
+++ b/downstream/modules/platform/proc-configure-haproxy-load-balancer.adoc
@@ -3,6 +3,7 @@
[id="configuring-haproxy-load-balancer"]
= Configuring a HAProxy load balancer
+[role="_abstract"]
To configure a HAProxy load balancer in front of {Gateway} with a custom CA cert, set the following inventory file variables under the `[all:vars]` group:
----
diff --git a/downstream/modules/platform/proc-configure-hub-azure-storage.adoc b/downstream/modules/platform/proc-configure-hub-azure-storage.adoc
index 2d59dcd46a..dba5682986 100644
--- a/downstream/modules/platform/proc-configure-hub-azure-storage.adoc
+++ b/downstream/modules/platform/proc-configure-hub-azure-storage.adoc
@@ -3,6 +3,7 @@
[id="configure-hub-azure-storage"]
= Configuring Azure Blob Storage for {HubName}
+[role="_abstract"]
Azure Blob storage is a type of object storage that is supported in containerized installations. When using an Azure blob storage backend, set `hub_storage_backend` to `azure`. The Azure container needs to exist before running the installation program.
.Procedure
diff --git a/downstream/modules/platform/proc-configure-hub-nfs-storage.adoc b/downstream/modules/platform/proc-configure-hub-nfs-storage.adoc
index 556972b456..fc6ad478ee 100644
--- a/downstream/modules/platform/proc-configure-hub-nfs-storage.adoc
+++ b/downstream/modules/platform/proc-configure-hub-nfs-storage.adoc
@@ -3,6 +3,7 @@
[id="configure-hub-nfs-storage"]
= Configuring Network File System (NFS) storage for {HubName}
+[role="_abstract"]
NFS is a type of shared storage that is supported in containerized installations. Shared storage is required when installing more than one instance of {HubName} with a `file` storage backend. When installing a single instance of the {HubName}, shared storage is optional.
.Procedure
diff --git a/downstream/modules/platform/proc-configure-hub-s3-storage.adoc b/downstream/modules/platform/proc-configure-hub-s3-storage.adoc
index e8cde7ead0..1514f8d529 100644
--- a/downstream/modules/platform/proc-configure-hub-s3-storage.adoc
+++ b/downstream/modules/platform/proc-configure-hub-s3-storage.adoc
@@ -3,6 +3,7 @@
[id="configure-hub-s3-storage"]
= Configuring Amazon S3 storage for {HubName}
+[role="_abstract"]
Amazon S3 storage is a type of object storage that is supported in containerized installations. When using an AWS S3 storage backend, set `hub_storage_backend` to `s3`. The AWS S3 bucket needs to exist before running the installation program.
.Procedure
diff --git a/downstream/modules/platform/proc-configure-local-repo-iso.adoc b/downstream/modules/platform/proc-configure-local-repo-iso.adoc
new file mode 100644
index 0000000000..0ac47f3c40
--- /dev/null
+++ b/downstream/modules/platform/proc-configure-local-repo-iso.adoc
@@ -0,0 +1,55 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="configure-local-repo-iso"]
+
+= Configuring a local repository from a mounted ISO
+
+[role="_abstract"]
+You can use a {RHEL} Binary DVD image to access the necessary RPM source dependencies in a disconnected environment.
+
+.Prerequisites
+* You have downloaded the {RHEL} Binary DVD image from the link:https://access.redhat.com/downloads/content/rhel[{RHEL} downloads page] and moved it to your disconnected environment.
+
+.Procedure
+. In your disconnected environment, create a mount point directory to serve as the location for the ISO file:
++
+----
+$ sudo mkdir /media/rhel
+----
+
+. Mount the ISO image to the mount point. Replace `` and `` with suitable values:
++
+----
+$ sudo mount -o loop rhel---dvd.iso /media/rhel
+----
+** Note: The ISO is mounted in a read-only state.
+
+. Create a Yum repository file at `/etc/yum.repos.d/rhel.repo` with the following content:
++
+----
+[RHEL-BaseOS]
+name=Red Hat Enterprise Linux BaseOS
+baseurl=file:///media/rhel/BaseOS
+enabled=1
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
+
+[RHEL-AppStream]
+name=Red Hat Enterprise Linux AppStream
+baseurl=file:///media/rhel/AppStream
+enabled=1
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
+----
+
+. Import the gpg key to allow the system to verify the packages:
++
+----
+$ sudo rpm --import /media/rhel/RPM-GPG-KEY-redhat-release
+----
+
+. Verify the repository configuration:
++
+----
+$ sudo yum repolist
+----
diff --git a/downstream/modules/platform/proc-configure-local-repo-reposync.adoc b/downstream/modules/platform/proc-configure-local-repo-reposync.adoc
new file mode 100644
index 0000000000..48f2024b83
--- /dev/null
+++ b/downstream/modules/platform/proc-configure-local-repo-reposync.adoc
@@ -0,0 +1,91 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="configure-local-repo-reposync"]
+
+= Configuring a local repository using reposync
+
+[role="_abstract"]
+With the `reposync` command you can to synchronize the BaseOS and AppStream repositories to a local directory on a {RHEL} host with an active internet connection. You can then transfer the repositories to your disconnected environment.
+
+.Prerequisites
+* A {RHEL} host with an active internet connection.
+
+.Procedure
+. Attach the BaseOS and AppStream repositories using `subscription-manager`:
++
+----
+$ sudo subscription-manager repos \
+ --enable rhel-9-baseos-rhui-rpms \
+ --enable rhel-9-appstream-rhui-rpms
+----
+
+. Install the `yum-utils` package:
++
+----
+$ sudo dnf install yum-utils
+----
+
+. Synchronize the repositories with the `reposync` command. Replace `` with a suitable value.
++
+----
+$ sudo reposync -m --download-metadata --gpgcheck \
+ -p
+----
++
+For example:
++
+----
+$ sudo reposync -m --download-metadata --gpgcheck \
+ -p rhel-repos
+----
++
+** Use reposync with the `--download-metadata` option and without the `--newest-only` option for optimal download time.
+
+. After the `reposync` operation is complete, compress the directory:
++
+----
+$ tar czvf rhel-repos.tar.gz rhel-repos
+----
+
+. Move the compressed archive to your disconnected environment.
+. On the disconnected environment, create a directory to store the repository files:
++
+----
+$ sudo mkdir /opt/rhel-repos
+----
+
+. Extract the archive into the `/opt/rhel-repos` directory. The following command assumes the archive file is in your home directory:
++
+----
+$ sudo tar xzvf ~/rhel-repos.tar.gz -C /opt
+----
+
+. Create a Yum repository file at `/etc/yum.repos.d/rhel.repo` with the following content:
++
+----
+[RHEL-BaseOS]
+name=Red Hat Enterprise Linux BaseOS
+baseurl=file:///opt/rhel-repos/rhel-9-baseos-rhui-rpms
+enabled=1
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
+
+[RHEL-AppStream]
+name=Red Hat Enterprise Linux AppStream
+baseurl=file:///opt/rhel-repos/rhel-9-appstream-rhui-rpms
+enabled=1
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
+----
+
+. Import the gpg key to allow the system to verify the packages:
++
+----
+$ sudo rpm --import /opt/rhel-repos/rhel-9-baseos-rhui-rpms/RPM-GPG-KEY-redhat-release
+----
+
+. Verify the repository configuration:
++
+----
+$ sudo yum repolist
+----
diff --git a/downstream/modules/platform/proc-containerized-troubleshoot-gathering-logs.adoc b/downstream/modules/platform/proc-containerized-troubleshoot-gathering-logs.adoc
index caa829f82d..3cdb5a440d 100644
--- a/downstream/modules/platform/proc-containerized-troubleshoot-gathering-logs.adoc
+++ b/downstream/modules/platform/proc-containerized-troubleshoot-gathering-logs.adoc
@@ -3,6 +3,7 @@
= Gathering {PlatformNameShort} logs
+[role="_abstract"]
With the `sos` utility, you can collect configuration, diagnostic, and troubleshooting data, and give those files to Red Hat Technical Support. An `sos` report is a common starting point for Red Hat technical support engineers when performing analysis of a service request for {PlatformNameShort}.
You can collect an `sos` report for each host in your containerized {PlatformNameShort} deployment by running the `log_gathering` playbook with the appropriate parameters.
@@ -31,19 +32,15 @@ $ ansible-playbook -i ansible.containerized_installer.l
[options="header"]
|====
| Parameter name | Description | Default
-
| `target_sos_directory`
| Used to change the default location for the `sos` report files.
| `/tmp` directory of the current server.
-
| `case_number`
| Specifies the support case number if relevant to the log gathering.
|
-
| `clean`
| Obfuscates sensitive data that might be present on the `sos` report.
| `false`
-
| `upload`
| Automatically uploads the `sos` report data to Red Hat.
| `false`
diff --git a/downstream/modules/platform/proc-controller-add-organization-user.adoc b/downstream/modules/platform/proc-controller-add-organization-user.adoc
index 8724776a51..c589d4d08a 100644
--- a/downstream/modules/platform/proc-controller-add-organization-user.adoc
+++ b/downstream/modules/platform/proc-controller-add-organization-user.adoc
@@ -7,19 +7,19 @@
You can provide a user with access to an organization by adding them to the organization and managing the roles associated with the user. To add a user to an organization, the user must already exist. For more information, see xref:proc-controller-creating-a-user[Creating a user].
To add roles for a user, the role must already exist. See xref:proc-gw-create-roles[Creating a role] for more information.
-The following tab selections are available when adding users to an organization. When user accounts from the {ControllerName} organization have been migrated to {PlatformNameShort} 2.5 during the upgrade process, the *Automation Execution* tab shows content based on whether the users were added to the organization prior to migration.
+// [[hherbly] removed for 2.6] The following tab selections are available when adding users to an organization. When user accounts from the {ControllerName} organization have been migrated to {PlatformNameShort} 2.5 during the upgrade process, the *Automation Execution* tab shows content based on whether the users were added to the organization prior to migration.
-{PlatformNameShort}:: Reflects all users added to the organization at the platform level. From this tab, you can add users as organization members and, optionally provide specific organization level roles.
+// {PlatformNameShort}:: Reflects all users added to the organization at the platform level. From this tab, you can add users as organization members and, optionally provide specific organization level roles.
-Automation Execution:: Reflects users that were added directly to the {ControllerName} organization prior to an upgrade and migration. From this tab, you can only view existing memberships in {ControllerName} and remove those memberships but not you can not add new memberships.
+// Automation Execution:: Reflects users that were added directly to the {ControllerName} organization prior to an upgrade and migration. From this tab, you can only view existing memberships in {ControllerName} and remove those memberships but not you can not add new memberships.
New user memberships to an organization must be added at the platform level.
.Procedure
. From the navigation panel, select {MenuAMOrganizations}.
. From the *Organizations* list view, select the organization to which you want to add a user.
-. Click the *Users* tab to add users.
-. Select the *{PlatformNameShort}* tab and click btn:[Add users] to add user access to the team, or select the *Automation Execution* tab to view or remove user access from the team.
+. Click the *Users* tab, then btn:[Assign Users] to add users.
+// . Select the *{PlatformNameShort}* tab and click btn:[Add users] to add user access to the team, or select the *Automation Execution* tab to view or remove user access from the team.
. Select one or more users from the list by clicking the checkbox next to the name to add them as members.
. Click btn:[Next].
. Select the roles you want the selected user to have. Scroll down for a complete list of roles.
diff --git a/downstream/modules/platform/proc-controller-apps-create-tokens.adoc b/downstream/modules/platform/proc-controller-apps-create-tokens.adoc
index 7faf8f324b..010d4d4cdc 100644
--- a/downstream/modules/platform/proc-controller-apps-create-tokens.adoc
+++ b/downstream/modules/platform/proc-controller-apps-create-tokens.adoc
@@ -51,4 +51,4 @@ You can verify that the application now shows the user with the appropriate toke
Your token should be displayed in the list of tokens associated with the application you chose.
.Additional resources
-If you are a system administrator and have to create or remove tokens for other users, see the revoke and create commands in xref:ref-controller-token-session-management[Token and session management].
+* xref:ref-controller-token-session-management[Token and session management]
diff --git a/downstream/modules/platform/proc-controller-configure-secret-lookups.adoc b/downstream/modules/platform/proc-controller-configure-secret-lookups.adoc
index 87b479aa11..1cabbac124 100644
--- a/downstream/modules/platform/proc-controller-configure-secret-lookups.adoc
+++ b/downstream/modules/platform/proc-controller-configure-secret-lookups.adoc
@@ -15,16 +15,16 @@ Use the following procedure to use {ControllerName} to configure and use each of
.Procedure
. Create an external credential for authenticating with the secret management system. At minimum, give a name for the external credential and select one of the following for the *Credential type* field:
+
-* xref:ref-aws-secrets-manager-lookup[AWS Secrets Manager Lookup]
-* xref:ref-centrify-vault-lookup[Centrify Vault Credential Provider Lookup]
-* xref:ref-cyberark-ccp-lookup[CyberArk Central Credential Provider (CCP) Lookup]
-* xref:ref-cyberark-conjur-lookup[CyberArk Conjur Secrets Manager Lookup]
-* xref:ref-hashicorp-vault-lookup[HashiCorp Vault Secret Lookup]
-* xref:ref-hashicorp-signed-ssh[HashiCorp Vault Signed SSH]
-* xref:ref-azure-key-vault-lookup[{Azure} Key Vault]
-* xref:ref-thycotic-devops-vault[Thycotic DevOps Secrets Vault]
-* xref:ref-thycotic-secret-server[Thycotic Secret Server]
-* xref:controller-github-app-token[GitHub app token lookup]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#ref-aws-secrets-manager-lookup[AWS Secrets Manager Lookup]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#ref-centrify-vault-lookup[Centrify Vault Credential Provider Lookup]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#ref-cyberark-ccp-lookup[CyberArk Central Credential Provider (CCP) Lookup]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#ref-cyberark-conjur-lookup[CyberArk Conjur Secrets Manager Lookup]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#ref-hashicorp-vault-lookup[HashiCorp Vault Secret Lookup]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#ref-hashicorp-signed-ssh[HashiCorp Vault Signed SSH]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#ref-azure-key-vault-lookup[{Azure} Key Vault]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#ref-thycotic-devops-vault[Thycotic DevOps Secrets Vault]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#ref-thycotic-secret-server[Thycotic Secret Server]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#controller-github-app-token[Configuring a GitHub App Installation Access Token Lookup]
+
In this example, the _Demo Credential_ is the target credential.
diff --git a/downstream/modules/platform/proc-controller-configure-system.adoc b/downstream/modules/platform/proc-controller-configure-system.adoc
index 508f4b594a..bfe4eb9019 100644
--- a/downstream/modules/platform/proc-controller-configure-system.adoc
+++ b/downstream/modules/platform/proc-controller-configure-system.adoc
@@ -21,25 +21,30 @@ The *System Settings* page is displayed.
* *Proxy IP allowed list*: If the service is behind a reverse proxy or load balancer, use this setting to configure the proxy IP addresses from which the service should trust custom `REMOTE_HOST_HEADERS` header values.
+
If this setting is an empty list (the default), the headers specified by `REMOTE_HOST_HEADERS` are trusted unconditionally.
-* *CSRF Trusted Origins List*: If the service is behind a reverse proxy or load balancer, use this setting to configure the `schema://addresses` from which the service should trust Origin header values.
-* *Red Hat customer username*: This username is used to send data to Automation Analytics.
-* *Red Hat customer password*: This password is used to send data to Automation Analytics.
-* *Red Hat or Satellite username*: This username is used to send data to Automation Analytics.
-* *Red Hat or Satellite password*: This password is used to send data to Automation Analytics.
+* *Red Hat Client ID for anaytics* Client ID used to send data to {Analytics}.
+* *Red Hat Client Secret for analytics* Client secret used to send data to {Analytics}.
+* *Red Hat Client ID for subscriptions* Client ID used to retrieve subscription and content information.
+* *Red Hat Client Secret for Subsciptions* Client secret used to retrieve subscription and content information
+//* *CSRF Trusted Origins List*: If the service is behind a reverse proxy or load balancer, use this setting to configure the `schema://addresses` from which the service should trust Origin header values.
+//* *Red Hat customer username*: This username is used to send data to Automation Analytics.
+//* *Red Hat customer password*: This password is used to send data to Automation Analytics.
+//* *Red Hat or Satellite username*: This username is used to send data to Automation Analytics.
+//* *Red Hat or Satellite password*: This password is used to send data to Automation Analytics.
* *Global default {ExecEnvShort}*: The {ExecEnvShort} to be used when one has not been configured for a job template.
* *Custom virtual environment paths*: Paths where {ControllerName} looks for custom virtual environments.
+
Enter one path per line.
+
-* *Last gather date for Automation Analytics*: Set the date and time.
+//* *Last gather date for Automation Analytics*: Set the date and time.
//This field has been removed by https://github.com/ansible/awx/pull/15497
+//Aparently inclusion in the editable fields is a bug.
//* *Last gathered entries from the data collection service of {Analytics}*: Do not enter anything in this field.
* *{Analytics} Gather Interval*: Interval (in seconds) between data gathering.
+
If *Gather data for {Analytics}* is set to false, this value is ignored.
+
-* *Last cleanup date for HostMetrics*: Set the date and time.
-* *Last computing date of HostMetricSummaryMonthly*: Set the date and time.
+//* *Last cleanup date for HostMetrics*: Set the date and time.
+//* *Last computing date of HostMetricSummaryMonthly*: Set the date and time.
* *Remote Host Headers*: HTTP headers and meta keys to search to decide remote hostname or IP.
Add additional items to this list, such as `HTTP_X_FORWARDED_FOR`, if behind a reverse proxy.
For more information, see link:{URLAAPOperationsGuide}/assembly-configuring-proxy-support[Configuring proxy support for {PlatformName}].
@@ -49,10 +54,15 @@ This setting is used to configure the upload URL for data collection for Automat
+
You can select the following options:
+
+** No subscription: Deletion of host_metrics will not be considered for purposes of managed host counting.
+** Usage based on unique managed nodes ina large hostorical time frame and delete functionality for no longer used managed nodes.
+
+. You can set the following options:
++
* *Enable Activity Stream*: Set to enable capturing activity for the activity stream.
* *Enable Activity Stream for Inventory Sync*: Set to enable capturing activity for the activity stream when running inventory sync.
* *All Users Visible to Organization Admins*: Set to control whether any organization administrator can view all users and teams, even those not associated with their organization.
-* *Organization Admins Can Manage Users and Teams*: Set to control whether any organization administrator has the privileges to create and manage users and teams.
+* *Organization Admins Can Manage Users and Teams*: Set to control whether an organization administrator has the privileges to create and manage users and teams.
+
You might want to disable this ability if you are using an LDAP or SAML integration.
* *Gather data for Automation Analytics*: Set to enable the service to gather data on automation and send it to {Analytics}.
diff --git a/downstream/modules/platform/proc-controller-creating-a-user.adoc b/downstream/modules/platform/proc-controller-creating-a-user.adoc
index 3871b2ccd4..793a1e1fbc 100644
--- a/downstream/modules/platform/proc-controller-creating-a-user.adoc
+++ b/downstream/modules/platform/proc-controller-creating-a-user.adoc
@@ -7,7 +7,7 @@
There are three types of users in {PlatformNameShort}:
Normal user:: Normal users have read and write access limited to the resources (such as inventory, projects, and job templates) for which that user has been granted the appropriate roles and privileges. Normal users are the default type of user when no other *User type* is specified.
-{PlatformNameShort} Administrator:: An administrator (also known as a Superuser) has full system administration privileges — with full read and write privileges over the entire installation. An administrator is typically responsible for managing all aspects of and delegating responsibilities for day-to-day work to various users.
+{PlatformNameShort} Administrator:: An administrator (also known as a Superuser) has full system administration privileges, with full read and write privileges over the entire installation. An administrator is typically responsible for managing all aspects of and delegating responsibilities for day-to-day work to various users.
{PlatformNameShort} Auditor:: Auditors have read-only capability for all objects within the environment.
.Procedure
@@ -21,10 +21,11 @@ Normal user:: Normal users have read and write access limited to the resources (
If you are modifying your own password, log out and log back in again for it to take effect.
====
+
-. Select the *Organization* to be assigned for this user. For information about creating a new organization, refer to xref:proc-controller-create-organization[Creating an organization].
+. Select the *Organization* to be assigned for this user. For information about creating a new organization, see xref:proc-controller-create-organization[Creating an organization].
. Click btn:[Create user].
-When the user is successfully created, the *User* dialog opens. From here, you can review and modify the user’s Teams, Roles, Tokens and other membership details.
+.Next steps
+When the user is successfully created, the *User* dialog opens. From here, you can review and change the user's Teams, Roles, Tokens and other membership details.
[NOTE]
====
diff --git a/downstream/modules/platform/proc-controller-metrics-utility-rhel.adoc b/downstream/modules/platform/proc-controller-metrics-utility-rhel.adoc
index f05e35ce5a..de4eb1931f 100644
--- a/downstream/modules/platform/proc-controller-metrics-utility-rhel.adoc
+++ b/downstream/modules/platform/proc-controller-metrics-utility-rhel.adoc
@@ -9,13 +9,13 @@
* An active {PlatformNameShort} subscription
Metrics-utility is included with {PlatformNameShort}, so you do not need a separate installation.
-The following commands gather the relevant data and generate a link:https://connect.redhat.com/en/programs/certified-cloud-service-provider[CCSP] report containing your usage metrics.
+The following procedure gathers the relevant data and generate a link:https://connect.redhat.com/en/programs/certified-cloud-service-provider[CCSP] report containing your usage metrics.
You can configure these commands as cronjobs to ensure they run at the beginning of every month.
See link:https://www.redhat.com/sysadmin/linux-cron-command[How to schedule jobs using the Linux 'cron' utility] for more on configuring using the cron syntax.
.Procedure
-. Create two scripts in your user's home director in order to set correct variables to ensure that `metrics-utility` gathers all relevant data.
+. Create two scripts in your user's home directory to set correct variables to ensure that `metrics-utility` gathers all relevant data.
.. In `/home/my-user/cron-gather`:
+
[source, ]
@@ -58,42 +58,28 @@ metrics-utility build_report
+
. To ensure that these files are executable, run:
+
-[source, ]
-----
-chmod a+x /home/my-user/cron-gather /home/my-user/cron-report
-----
-+
+`chmod a+x /home/my-user/cron-gather /home/my-user/cron-report`
+
. To open the cron file for editing, run:
+
-[source, ]
-----
-crontab -e
-----
-+
+`crontab -e`
+
. To configure the run schedule, add the following parameters to the end of the file and specify how often you want `metrics-utility` to gather information and build a report using link:https://www.redhat.com/sysadmin/linux-cron-command[cron syntax]. In the following example, the `gather` command is configured to run every hour at 00 minutes. The `build_report` command is configured to run on the second day of each month at 4:00 AM.
+
-[source, ]
-----
-0 */1 * * * /home/my-user/cron-gather
-0 4 2 * * /home/my-user/cron-report
-----
+`0 */1 * * * /home/my-user/cron-gather`
+
+`0 4 2 * * /home/my-user/cron-report`
+
. Save and close the file.
. To verify that you saved your changes, run:
+
-[source, ]
-----
-crontab -l
-----
-+
+`crontab -l`
+
. To ensure that data is being collected, run:
+
-[source, ]
-----
-cat /var/log/cron
-----
+`cat /var/log/cron`
+
-The following is an example of the output. Note that time and date might vary depending on how your configure the run schedule:
+The following is a typical output. Note that time and date might vary depending on how your configure the run schedule:
+
[source, ]
----
@@ -108,4 +94,4 @@ May 8 09:46:26 ip-10-0-6-23 crontab[51659]: (root) END EDIT (root)
----
+
-The generated report will have the default name CCSP--.xlsx and will be deposited in the ship path that you specified in step 1a.
+The generated report will have the default name `CCSP--.xlsx` and is saved in the ship path that you specified in step 1a.
diff --git a/downstream/modules/platform/proc-controller-modify-run-schedule-OCP.adoc b/downstream/modules/platform/proc-controller-modify-run-schedule-OCP.adoc
index 82109397e8..3d36d1c411 100644
--- a/downstream/modules/platform/proc-controller-modify-run-schedule-OCP.adoc
+++ b/downstream/modules/platform/proc-controller-modify-run-schedule-OCP.adoc
@@ -4,7 +4,7 @@
= Modifying the run schedule on {OCPShort} from the {PlatformNameShort} operator
-Adjust the execution schedule of the `metrics-utility` within your {PlatformNameShort} deployment running on {OCPShort}.
+To adjust the execution schedule of the `metrics-utility` within your {PlatformNameShort} deployment running on {OCPShort}, use the following procedure:
.Procedure
@@ -18,12 +18,10 @@ Adjust the execution schedule of the `metrics-utility` within your {PlatformName
. On the next screen, select the `YAML` tab.
. In the `YAML` file, find the following parameters and enter a variable representing how often `metrics-utility` should gather data and how often it should produce a report:
+
-[source, ]
-----
-metrics_utility_cronjob_gather_schedule:
-metrics_utility_cronjob_report_schedule:
-----
+`metrics_utility_cronjob_gather_schedule:`
+
+`metrics_utility_cronjob_report_schedule:`
+
. Click btn:[Save].
. From the navigation menu, select menu:Deployments[] and then select *automation-controller-operator-controller-manager*.
. Increase the number of pods to 1.
diff --git a/downstream/modules/platform/ref-controller-organization-mapping.adoc b/downstream/modules/platform/proc-controller-organization-mapping.adoc
similarity index 96%
rename from downstream/modules/platform/ref-controller-organization-mapping.adoc
rename to downstream/modules/platform/proc-controller-organization-mapping.adoc
index 64f0ded363..e329b31a54 100644
--- a/downstream/modules/platform/ref-controller-organization-mapping.adoc
+++ b/downstream/modules/platform/proc-controller-organization-mapping.adoc
@@ -1,6 +1,6 @@
:_mod-docs-content-type: PROCEDURE
-[id="ref-controller-organization-mapping"]
+[id="proc-controller-organization-mapping"]
= Organization mapping
diff --git a/downstream/modules/platform/ref-controller-organization-notifications.adoc b/downstream/modules/platform/proc-controller-organization-notifications.adoc
similarity index 76%
rename from downstream/modules/platform/ref-controller-organization-notifications.adoc
rename to downstream/modules/platform/proc-controller-organization-notifications.adoc
index 2f2abdf67b..3b55bb7ed8 100644
--- a/downstream/modules/platform/ref-controller-organization-notifications.adoc
+++ b/downstream/modules/platform/proc-controller-organization-notifications.adoc
@@ -1,12 +1,13 @@
-:_mod-docs-content-type: REFERENCE
+:_mod-docs-content-type: PROCEDURE
-[id="ref-controller-organization-notifications"]
+[id="proc-controller-organization-notifications"]
= Working with notifiers
When {ControllerName} is enabled on the platform, you can review any notifier integrations you have set up and manage their settings within the organization resource.
.Procedure
+
. From the navigation panel, select {MenuAMOrganizations}.
. From the *Organizations* list view, select the organization to which you want to manage notifications.
//ddacosta - this might change to Notifiers tab.
@@ -14,4 +15,6 @@ When {ControllerName} is enabled on the platform, you can review any notifier in
. Use the toggles to enable or disable the notifications to use with your particular organization. For more information, see link:{URLControllerUserGuide}/controller-notifications#controller-enable-disable-notifications[Enable and disable notifications].
. If no notifiers have been set up, select {MenuAEAdminJobNotifications} from the navigation panel.
-For information on configuring notification types, see link:{URLControllerUserGuide}/controller-notifications#controller-notification-types[Notification types].
+.Additional resources
+
+* link:{URLControllerUserGuide}/controller-notifications#controller-notification-types[Notification types]
diff --git a/downstream/modules/platform/proc-controller-proxy-settings.adoc b/downstream/modules/platform/proc-controller-proxy-settings.adoc
index 6a3d665605..f3c2cd6c45 100644
--- a/downstream/modules/platform/proc-controller-proxy-settings.adoc
+++ b/downstream/modules/platform/proc-controller-proxy-settings.adoc
@@ -3,6 +3,7 @@
[id="proc-controller-proxy-settings"]
= {ControllerNameStart} settings
+
After using the RPM installation program, you must configure {ControllerName} to use egress proxy.
[NOTE]
diff --git a/downstream/modules/platform/proc-controller-review-organizations.adoc b/downstream/modules/platform/proc-controller-review-organizations.adoc
index 3d023bb6c9..d017dc703a 100644
--- a/downstream/modules/platform/proc-controller-review-organizations.adoc
+++ b/downstream/modules/platform/proc-controller-review-organizations.adoc
@@ -8,7 +8,7 @@ The *Organizations* page displays the existing organizations for your installati
.Procedure
-. From the navigation panel, select menu:{MenuAMOrganizations}.
+. From the navigation panel, select {MenuAMOrganizations}.
. In the Search bar, enter an appropriate keyword for the organization you want to search for and click the arrow icon.
. From the menu bar, you can sort the list of organizations by using the arrows for *Name* to toggle your sorting preference.
. You can also sort the list by selecting *Name*, *Created* or *Last modified* from the *Sort* list.
diff --git a/downstream/modules/platform/proc-controller-set-up-azure.adoc b/downstream/modules/platform/proc-controller-set-up-azure.adoc
index e4b99ceb57..f70484368a 100644
--- a/downstream/modules/platform/proc-controller-set-up-azure.adoc
+++ b/downstream/modules/platform/proc-controller-set-up-azure.adoc
@@ -4,9 +4,11 @@
ifndef::controller-AG[]
= Configuring {MSEntraID} authentication
+
endif::[]
ifdef::controller-AG[]
= {Azure} active directory authentication
+
endif::controller-AG[]
ifndef::controller-AG[]
@@ -94,7 +96,7 @@ Once the application is registered, Azure displays the Application ID and Object
Following Azure AD's documentation for connecting your app to {Azure} Active Directory, supply the key (shown at one time only) to the client for authentication.
+
. Copy and paste the secret key created for your Azure AD application to the *Azure AD OAuth2 Secret* field of the Settings - Authentication screen.
-. For more information on completing the Azure AD OAuth2 Organization Map and Azure AD OAuth2 Team Map fields, see xref:ref-controller-organization-mapping[Organization mapping] and xref:ref-controller-team-mapping[Team mapping].
+. For more information on completing the Azure AD OAuth2 Organization Map and Azure AD OAuth2 Team Map fields, see xref:proc-controller-organization-mapping[Organization mapping] and xref:proc-controller-team-mapping[Team mapping].
. Click btn:[Save].
.Verification
diff --git a/downstream/modules/platform/proc-controller-set-up-generic-oidc.adoc b/downstream/modules/platform/proc-controller-set-up-generic-oidc.adoc
index 50616d77cf..ee31c711d6 100644
--- a/downstream/modules/platform/proc-controller-set-up-generic-oidc.adoc
+++ b/downstream/modules/platform/proc-controller-set-up-generic-oidc.adoc
@@ -28,6 +28,10 @@ include::snippets/snip-gw-authentication-auto-migrate.adoc[]
* *Access Token URL*
* *Access Token Method*
* *Authorization URL*
+* *Callback URL* - The OIDC *Callback URL* field registers the service as a service provider (SP) with each OIDC provider you have configured.
+Leave this field blank.
+After you save this authentication method, it is auto generated.
+Configure your IdP to allow redirects to this URL as part of the authentication flow.
* *ID Key*
* *ID Token Issuer*
* *JWKS URI*
diff --git a/downstream/modules/platform/proc-controller-set-up-logging.adoc b/downstream/modules/platform/proc-controller-set-up-logging.adoc
index 8555ae8991..efd859654d 100644
--- a/downstream/modules/platform/proc-controller-set-up-logging.adoc
+++ b/downstream/modules/platform/proc-controller-set-up-logging.adoc
@@ -57,7 +57,7 @@ Equivalent to the `rsyslogd queue.maxdiskspace` setting on the action (e.g. `omh
It stores files in the directory specified by `LOG_AGGREGATOR_MAX_DISK_USAGE_PATH`.
* *File system location for rsyslogd disk persistence*: Location to persist logs that should be retried after an outage of the external log aggregator (defaults to `/var/lib/awx`).
Equivalent to the `rsyslogd queue.spoolDirectory` setting.
-* *Log Format For API 4XX Errors*: Configure a specific error message. For more information, see link:{URLControllerAdminGuide}/assembly-controller-logging-aggregation#proc-controller-api-4xx-error-config[API 4XX Error Configuration].
+* *Log Format For API 4XX Errors*: Configure a specific error message. For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlatformVers}/html/configuring_automation_execution/assembly-controller-logging-aggregation#proc-controller-api-4xx-error-config[API 4XX Error Configuration].
Set the following options:
diff --git a/downstream/modules/platform/ref-controller-team-mapping.adoc b/downstream/modules/platform/proc-controller-team-mapping.adoc
similarity index 65%
rename from downstream/modules/platform/ref-controller-team-mapping.adoc
rename to downstream/modules/platform/proc-controller-team-mapping.adoc
index 6240875d83..05cc1530e0 100644
--- a/downstream/modules/platform/ref-controller-team-mapping.adoc
+++ b/downstream/modules/platform/proc-controller-team-mapping.adoc
@@ -1,16 +1,16 @@
:_mod-docs-content-type: PROCEDURE
-[id="ref-controller-team-mapping"]
+[id="proc-controller-team-mapping"]
= Team mapping
Team mapping is the mapping of team members (users) from authenticators.
-You can define the options for each team’s membership. For each team, you can specify which users are automatically added as members of the team and also which users can administer the team.
+You can define the options for each team's membership. For each team, you can specify which users are automatically added as members of the team and also which users can administer the team.
Team mappings can be specified separately for each account authentication.
-When Team mapping is positively evaluated, a specified team and its organization are created, if they don’t exist if the related authenticator is allowed to create objects.
+When Team mapping is positively evaluated, a specified team and its organization are created, if they don't exist if the related authenticator is allowed to create objects.
.Procedure
@@ -19,7 +19,7 @@ When Team mapping is positively evaluated, a specified team and its organization
. Select *Team* from the *Add authentication mapping* list.
. Enter a unique rule *Name* to identify the rule.
. Select a *Trigger* from the list. See xref:gw-authenticator-map-triggers[Authenticator map triggers] for more information about map triggers.
-. Select *Revoke* to remove the user’s access to the selected organization role and deny user access to the system when the trigger conditions are not matched.
+. Select *Revoke* to remove the user's access to the selected organization role and deny user access to the system when the trigger conditions are not matched.
. Select the *Team* and *Organization* to which matching users are added or blocked.
. Select a *Role* to be applied or removed for matching users (for example, *Team Admin* or *Team Member*).
. Click btn:[Next].
diff --git a/downstream/modules/platform/proc-controller-user-permissions.adoc b/downstream/modules/platform/proc-controller-user-permissions.adoc
index 743388013d..8b64f8adc2 100644
--- a/downstream/modules/platform/proc-controller-user-permissions.adoc
+++ b/downstream/modules/platform/proc-controller-user-permissions.adoc
@@ -9,7 +9,7 @@ You can set permissions through an inventory, project, job template and other re
[NOTE]
====
-Teams can not be assigned to an organization by adding roles. Refer to the steps provided in link:{URLCentralAuth}/gw-managing-access#proc-gw-add-team-organization[Adding a team to an organization] for detailed instructions.
+Teams cannot be assigned to an organization by adding roles. Refer to the steps provided in link:{URLCentralAuth}/gw-managing-access#proc-gw-add-team-organization[Adding a team to an organization] for detailed instructions.
====
.Procedure
diff --git a/downstream/modules/platform/ref-controller-user-roles.adoc b/downstream/modules/platform/proc-controller-user-roles.adoc
similarity index 71%
rename from downstream/modules/platform/ref-controller-user-roles.adoc
rename to downstream/modules/platform/proc-controller-user-roles.adoc
index f1d572669f..8056ebbd0f 100644
--- a/downstream/modules/platform/ref-controller-user-roles.adoc
+++ b/downstream/modules/platform/proc-controller-user-roles.adoc
@@ -1,5 +1,4 @@
-:_mod-docs-content-type: REFERENCE
-
+:_mod-docs-content-type: PROCEDURE
[id="ref-controller-user-roles"]
= Adding roles for a user
@@ -8,12 +7,12 @@ You can grant access for users to use, read, or write credentials by assigning r
[NOTE]
====
-Users can not be assigned to an organization by adding roles. Refer to the steps provided in link:{URLCentralAuth}/gw-managing-access#proc-controller-add-organization-user[Adding a user to an organization] for detailed instructions.
+Users cannot be assigned to an organization by adding roles. Refer to the steps provided in link:{URLCentralAuth}/gw-managing-access#proc-controller-add-organization-user[Adding a user to an organization] for detailed instructions.
====
.Procedure
. From the navigation panel, select {MenuAMUsers}.
-. From the *Users* list view, click on the user to which you want to add roles.
+. From the *Users* list view, click the user to which you want to add roles.
. Select the *Roles* tab to display the set of roles assigned to this user. These provide the ability to read, modify, and administer resources.
. To add new roles, click btn:[Add roles].
+
diff --git a/downstream/modules/platform/proc-customizing-pod-specs.adoc b/downstream/modules/platform/proc-customizing-pod-specs.adoc
index b964ce0af1..f09dc3562d 100644
--- a/downstream/modules/platform/proc-customizing-pod-specs.adoc
+++ b/downstream/modules/platform/proc-customizing-pod-specs.adoc
@@ -13,6 +13,8 @@ You can use the following procedure to customize the pod.
. Click btn:[Save].
. Optional: Click btn:[Expand] to view the entire customization window if you want to provide additional customizations.
+.Next steps
+
The image used at job launch time is determined by the {ExecEnvShort} associated with the job.
If a Container Registry credential is associated with the {ExecEnvShort}, then {ControllerName} uses `ImagePullSecret` to pull the image.
If you prefer not to give the service account permission to manage secrets, you must pre-create the `ImagePullSecret`, specify it on the pod specification, and omit any credential from the {ExecEnvShort} used.
diff --git a/downstream/modules/platform/proc-define-mesh-node-types.adoc b/downstream/modules/platform/proc-define-mesh-node-types.adoc
index a825259059..690e8681dd 100644
--- a/downstream/modules/platform/proc-define-mesh-node-types.adoc
+++ b/downstream/modules/platform/proc-define-mesh-node-types.adoc
@@ -4,9 +4,11 @@
ifdef::controller-UG[]
= Managing instances
+
endif::controller-UG[]
ifdef::operator-mesh[]
= Defining {AutomationMesh} node types
+
endif::operator-mesh[]
To expand job capacity, create a standalone *execution node* that can be added to run alongside a deployment of {ControllerName}.
diff --git a/downstream/modules/platform/proc-deploy-controller.adoc b/downstream/modules/platform/proc-deploy-controller.adoc
index eebf7e6b77..e486f3f872 100644
--- a/downstream/modules/platform/proc-deploy-controller.adoc
+++ b/downstream/modules/platform/proc-deploy-controller.adoc
@@ -4,7 +4,7 @@
= Deploy {ControllerName}
-To deploy {ControllerName} and specify variables for how often metrics-utility gathers usage information and generates a report, use the following procedure:
+To deploy {ControllerName} and specify variables for how often `metrics-utility` gathers usage information and generates a report, use the following procedure:
.Procedure
diff --git a/downstream/modules/platform/proc-deprovision-isolated-groups.adoc b/downstream/modules/platform/proc-deprovision-isolated-groups.adoc
index 592d7fd30f..eb3493aaed 100644
--- a/downstream/modules/platform/proc-deprovision-isolated-groups.adoc
+++ b/downstream/modules/platform/proc-deprovision-isolated-groups.adoc
@@ -3,6 +3,7 @@
[id="proc-deprovision-isolated-groups"]
= Deprovisioning isolated instance groups
+
You have the option to manually remove any isolated instance groups using the `awx-manage` deprovisioning utility.
[WARNING]
diff --git a/downstream/modules/platform/proc-deprovision-isolated-nodes.adoc b/downstream/modules/platform/proc-deprovision-isolated-nodes.adoc
index 5dbccf4dd6..a0b401df2e 100644
--- a/downstream/modules/platform/proc-deprovision-isolated-nodes.adoc
+++ b/downstream/modules/platform/proc-deprovision-isolated-nodes.adoc
@@ -3,6 +3,7 @@
[id="proc-deprovision-isolated-nodes"]
= Deprovisioning isolated nodes
+
You have the option to manually remove any isolated nodes using the `awx-manage` deprovisioning utility.
[WARNING]
diff --git a/downstream/modules/platform/proc-downloading-containerized-aap.adoc b/downstream/modules/platform/proc-downloading-containerized-aap.adoc
index 5c724c9ec0..2a96ac0dc0 100644
--- a/downstream/modules/platform/proc-downloading-containerized-aap.adoc
+++ b/downstream/modules/platform/proc-downloading-containerized-aap.adoc
@@ -4,6 +4,7 @@
= Downloading {PlatformNameShort}
+[role="_abstract"]
Choose the installation program you need based on your {RHEL} environment internet connectivity and download the installation program to your {RHEL} host.
.Prerequisites
@@ -36,13 +37,13 @@ scp -i ansible-automation-platform-containerized-setup-.tar.gz
+$ tar xfvz ansible-automation-platform-containerized-setup-.tar.gz
----
+
.. To unpack the offline or bundled installer:
+
----
-$ tar xfvz ansible-automation-platform-containerized-setup-bundle--.tar.gz
+$ tar xfvz ansible-automation-platform-containerized-setup-bundle--.tar.gz
----
[role="_additional-resources"]
diff --git a/downstream/modules/platform/proc-edge-manager-build-bootc-image.adoc b/downstream/modules/platform/proc-edge-manager-build-bootc-image.adoc
index 23cd241bb2..b6c5cd9191 100644
--- a/downstream/modules/platform/proc-edge-manager-build-bootc-image.adoc
+++ b/downstream/modules/platform/proc-edge-manager-build-bootc-image.adoc
@@ -17,16 +17,15 @@ Complete the following steps:
.Procedure
. Create a `Containerfile` file with the following content to build a RHEL 9-based operating system image that includes the {RedHatEdge} agent and configuration:
-//The following containerfile includes RHACM, confirm step for AAP.
+
+
[source,bash]
----
FROM registry.redhat.io/rhel9/rhel-bootc: <1>
-RUN subscription-manager repos --enable rhacm-2.13-for-rhel-9-$(uname -m)-rpms && \
- dnf -y install flightctl-agent && \
+RUN dnf --enablerepo ansible-automation-platform-2.5-for-rhel-9-x86_64-rpms -y install flightctl-agent-0.7.2-1.el9fc && \
dnf -y clean all && \
systemctl enable flightctl-agent.service && \
- systemctl mask bootc-fetch-apply-updates.timer <2>
+ systemctl mask bootc-fetch-apply-updates.timer <2>
----
<1> The base image that is referenced in `FROM` is a bootable container (`bootc`) image that already has a Linux kernel, which allows you to reuse existing standard container build tools and workflows.
<2> Disables the default automatic updates. The updates are managed by the {RedHatEdge}.
@@ -43,7 +42,7 @@ The pull secret must exist on the device before the secret can be consumed.
+
[source,bash]
----
-RUN dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \
+RUN dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \
dnf -y install podman-compose && \
dnf -y clean all && \
systemctl enable podman.service
@@ -89,5 +88,5 @@ OCI_IMAGE_TAG=v1
+
[source,bash]
----
-sudo podman build -t ${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG}
+sudo podman build -t ${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG} .
----
diff --git a/downstream/modules/platform/proc-edge-manager-virt.adoc b/downstream/modules/platform/proc-edge-manager-virt.adoc
index 78412eefd8..4c9eb551d4 100644
--- a/downstream/modules/platform/proc-edge-manager-virt.adoc
+++ b/downstream/modules/platform/proc-edge-manager-virt.adoc
@@ -22,7 +22,7 @@ Complete the generic steps with changes to the following steps:
[source,bash]
----
FROM registry.redhat.io/rhel9/bootc-image-builder:latest
-RUN subscription-manager repos --enable rhacm-2.13-for-rhel-9-$(uname -m)-rpms && \
+RUN subscription-manager repos --enable ansible-automation-platform-2.5-for-rhel-9-x86_64-rpms
dnf -y install flightctl-agent && \
dnf -y clean all && \
systemctl enable flightctl-agent.service
diff --git a/downstream/modules/platform/proc-edge-manager-vmware.adoc b/downstream/modules/platform/proc-edge-manager-vmware.adoc
index 47c3418ff0..89354cb90f 100644
--- a/downstream/modules/platform/proc-edge-manager-vmware.adoc
+++ b/downstream/modules/platform/proc-edge-manager-vmware.adoc
@@ -22,7 +22,7 @@ Complete the generic steps with changes to the following steps:
[source,bash]
----
FROM registry.redhat.io/rhel9/bootc-image-builder:latest
-RUN subscription-manager repos --enable rhacm-2.13-for-rhel-9-$(uname -m)-rpms && \
+RUN subscription-manager repos --enable ansible-automation-platform-2.5-for-rhel-9-x86_64-rpms
dnf -y install flightctl-agent && \
dnf -y clean all && \
systemctl enable flightctl-agent.service && \
diff --git a/downstream/modules/platform/proc-enable-hstore-extension.adoc b/downstream/modules/platform/proc-enable-hstore-extension.adoc
index eaf878e606..7c3eabe6e1 100644
--- a/downstream/modules/platform/proc-enable-hstore-extension.adoc
+++ b/downstream/modules/platform/proc-enable-hstore-extension.adoc
@@ -4,6 +4,7 @@
= Enabling the hstore extension for the {HubName} PostgreSQL database
+[role="_abstract"]
The database migration script uses `hstore` fields to store information, therefore the `hstore` extension must be enabled in the {HubName} PostgreSQL database.
This process is automatic when using the {PlatformNameShort} installer and a managed PostgreSQL server.
diff --git a/downstream/modules/platform/proc-enable-pods-ref-images.adoc b/downstream/modules/platform/proc-enable-pods-ref-images.adoc
index 16e9a8df73..dcf332dd92 100644
--- a/downstream/modules/platform/proc-enable-pods-ref-images.adoc
+++ b/downstream/modules/platform/proc-enable-pods-ref-images.adoc
@@ -11,12 +11,12 @@ Alternatively, if the `ImagePullSecret` already exists in the container group na
Note that the image used by a job running in a container group is always overridden by the Execution Environment associated with the job.
-.Use of pre-created ImagePullSecrets (Advanced)
+*Use of pre-created ImagePullSecrets (Advanced)*
If you want to use this workflow and pre-create the `ImagePullSecret`, you can source the necessary information to create it from your local `.dockercfg` file on a system that has previously accessed a secure container registry.
+The `.dockercfg file`, or `$HOME/.docker/config.json` for newer Docker clients, is a Docker credentials file that stores your information if you have previously logged into a secured or insecure registry.
.Procedure
-The `.dockercfg file`, or `$HOME/.docker/config.json` for newer Docker clients, is a Docker credentials file that stores your information if you have previously logged into a secured or insecure registry.
. If you already have a `.dockercfg` file for the secured registry, you can create a secret from that file by running the following command:
+
@@ -66,6 +66,8 @@ $ oc secrets link builder
+
. Optional: For builds, you must also reference the secret as the pull secret from within your build configuration.
+.Verification
+
When the container group is successfully created, the *Details* tab of the newly created container group remains. This allows you to review and edit your container group information.
This is the same menu that is opened if you click the btn:[Edit] icon *✎* from the *Instance Group* link.
You can also edit instances and review jobs associated with this instance group.
diff --git a/downstream/modules/platform/proc-enable-proxy-support.adoc b/downstream/modules/platform/proc-enable-proxy-support.adoc
index 86d7e87eb3..338bbad845 100644
--- a/downstream/modules/platform/proc-enable-proxy-support.adoc
+++ b/downstream/modules/platform/proc-enable-proxy-support.adoc
@@ -3,6 +3,7 @@
[id="proc-enable-proxy-support_{context}"]
= Enabling proxy support through a load balancer
+
//FYI - In 2.5 EA, the System menu is specific to controller so do not change to AAP.
A forward proxy deals with client traffic, regulating and securing it.
To provide proxy server support, {ControllerName} handles proxied requests (such as ALB, NLB , HAProxy, Squid, Nginx and tinyproxy in front of {ControllerName}) using the *REMOTE_HOST_HEADERS* list variable in the {ControllerName} settings. By default, *REMOTE_HOST_HEADERS* is set to `["REMOTE_ADDR", "REMOTE_HOST"]`.
diff --git a/downstream/modules/platform/proc-enabling-automation-hub-collection-and-container-signing.adoc b/downstream/modules/platform/proc-enabling-automation-hub-collection-and-container-signing.adoc
index 7de1eeacbb..be1320f250 100644
--- a/downstream/modules/platform/proc-enabling-automation-hub-collection-and-container-signing.adoc
+++ b/downstream/modules/platform/proc-enabling-automation-hub-collection-and-container-signing.adoc
@@ -3,6 +3,7 @@
[id="enabling-automation-hub-collection-and-container-signing_{context}"]
= Enabling automation content collection and container signing
+[role="_abstract"]
Automation content signing is disabled by default. To enable it, the following installation variables are required in the inventory file:
[source,yaml]
@@ -38,7 +39,7 @@ The algorithm and cipher used is the responsibility of the customer.
.Procedure
-. On a RHEL9 server run the following command to create a new key pair for collection signing:
+. On a RHEL server run the following command to create a new key pair for collection signing:
+
----
gpg --gen-key
@@ -135,13 +136,13 @@ j920hRy/3wJGRDBMFa4mlQg=
----
# Collection signing
hub_collection_signing=true
-hub_collection_signing_key=/home/aapuser/aap/ansible-automation-platform-containerized-setup-2.5-2/collection-signing-key.priv
+hub_collection_signing_key=/home/aapuser/aap/ansible-automation-platform-containerized-setup-/collection-signing-key.priv
# This variable is required if the key is protected by a passphrase
hub_collection_signing_pass=
# Container signing
hub_container_signing=true
-hub_container_signing_key=/home/aapuser/aap/ansible-automation-platform-containerized-setup-2.5-2/container-signing-key.priv
+hub_container_signing_key=/home/aapuser/aap/ansible-automation-platform-containerized-setup-/container-signing-key.priv
# This variable is required if the key is protected by a passphrase
hub_container_signing_pass=
----
diff --git a/downstream/modules/platform/proc-fetch-a-report-on-ocp.adoc b/downstream/modules/platform/proc-fetch-a-report-on-ocp.adoc
new file mode 100644
index 0000000000..5030308b1a
--- /dev/null
+++ b/downstream/modules/platform/proc-fetch-a-report-on-ocp.adoc
@@ -0,0 +1,90 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="proc-fetch-a-report-on-ocp"]
+
+= Fetching a monthly report on {OCPShort} from the {PlatformNameShort} Operator
+
+Use the following playbook to fetch a monthly consumption report for {PlatformNameShort} on {OCPShort}:
+
+----
+- name: Copy directory from Kubernetes PVC to local machine
+ hosts: localhost
+
+ vars:
+ report_dir_path: "/mnt/metrics/reports/{{ year }}/{{ month }}/"
+
+ tasks:
+ - name: Create a temporary pod to access PVC data
+ kubernetes.core.k8s:
+ definition:
+ apiVersion: v1
+ kind: Pod
+ metadata:
+ name: temp-pod
+ namespace: "{{ namespace_name }}"
+ spec:
+ containers:
+ - name: busybox
+ image: busybox
+ command: ["/bin/sh"]
+ args: ["-c", "sleep 3600"] # Keeps the container alive for 1 hour
+ volumeMounts:
+ - name: "{{ pvc }}"
+ mountPath: "/mnt/metrics"
+ volumes:
+ - name: "{{ pvc }}"
+ persistentVolumeClaim:
+ claimName: automationcontroller-metrics-utility
+ restartPolicy: Never
+ register: pod_creation
+
+ - name: Wait for both initContainer and main container to be ready
+ kubernetes.core.k8s_info:
+ kind: Pod
+ namespace: "{{ namespace_name }}"
+ name: temp-pod
+ register: pod_status
+ until: >
+ pod_status.resources[0].status.containerStatuses[0].ready
+ retries: 30
+ delay: 10
+
+ - name: Create a tarball of the directory of the report in the container
+ kubernetes.core.k8s_exec:
+ namespace: "{{ namespace_name }}"
+ pod: temp-pod
+ container: busybox
+ command: tar czf /tmp/metrics.tar.gz -C "{{ report_dir_path }}" .
+ register: tarball_creation
+
+ - name: Copy the report tarball from the container to the local machine
+ kubernetes.core.k8s_cp:
+ namespace: "{{ namespace_name }}"
+ pod: temp-pod
+ container: busybox
+ state: from_pod
+ remote_path: /tmp/metrics.tar.gz
+ local_path: "{{ local_dir }}/metrics.tar.gz"
+ when: tarball_creation is succeeded
+
+ - name: Ensure the local directory exists
+ ansible.builtin.file:
+ path: "{{ local_dir }}"
+ state: directory
+
+ - name: Extract the report tarball on the local machine
+ ansible.builtin.unarchive:
+ src: "{{ local_dir }}/metrics.tar.gz"
+ dest: "{{ local_dir }}"
+ remote_src: yes
+ extra_opts: "--strip-components=1"
+ when: tarball_creation is succeeded
+
+ - name: Delete the temporary pod
+ kubernetes.core.k8s:
+ api_version: v1
+ kind: Pod
+ namespace: "{{ namespace_name }}"
+ name: temp-pod
+ state: absent
+----
\ No newline at end of file
diff --git a/downstream/modules/platform/proc-fetch-a-report-on-rhel.adoc b/downstream/modules/platform/proc-fetch-a-report-on-rhel.adoc
new file mode 100644
index 0000000000..547ed97b82
--- /dev/null
+++ b/downstream/modules/platform/proc-fetch-a-report-on-rhel.adoc
@@ -0,0 +1,14 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="proc-fetch-a-report-on-rhel"]
+
+= Fetching a monthly report on {RHEL}
+
+Use the following procedure to fetch a monthly report on {RHEL}:
+
+.Procedure
+
+* Run:
+`scp -r username@controller_host:$METRICS_UTILITY_SHIP_PATH/data/// /local/directory/`
+
+The system saves the generated report as `CCSP--.xlsx` in the ship path that you specified.
diff --git a/downstream/modules/platform/proc-gw-allow-mapping.adoc b/downstream/modules/platform/proc-gw-allow-mapping.adoc
index a6805890c8..0f0b0eb688 100644
--- a/downstream/modules/platform/proc-gw-allow-mapping.adoc
+++ b/downstream/modules/platform/proc-gw-allow-mapping.adoc
@@ -1,4 +1,4 @@
-:_mod-docs-content-type: CONCEPT
+:_mod-docs-content-type: PROCEDURE
[id="gw-allow-mapping"]
diff --git a/downstream/modules/platform/proc-gw-create-roles.adoc b/downstream/modules/platform/proc-gw-create-roles.adoc
index 4717952dd3..021f2c6245 100644
--- a/downstream/modules/platform/proc-gw-create-roles.adoc
+++ b/downstream/modules/platform/proc-gw-create-roles.adoc
@@ -9,12 +9,12 @@
.Procedure
. From the navigation panel, select {MenuAMRoles}.
-. Select a tab for the component resource for which you want to create custom roles.
+// [[hherbly]This may need to be replaced with updated steps for 2.6.]. Select a tab for the component resource for which you want to create custom roles.
+
-include::snippets/snip-gw-roles-note-multiple-components.adoc[]
+// include::snippets/snip-gw-roles-note-multiple-components.adoc[]
+
. Click btn:[Create role].
. Provide a *Name* and optionally include a *Description* for the role.
. Select a *Content Type*.
-. Select the *Permissions* you want assigned to this role.
+. Select the *Permissions* you want assigned to this role from the drop-down menu.
. Click btn:[Create role] to create your new role.
diff --git a/downstream/modules/platform/proc-gw-define-rules-triggers.adoc b/downstream/modules/platform/proc-gw-define-rules-triggers.adoc
index 60bcefc454..826178fa8a 100644
--- a/downstream/modules/platform/proc-gw-define-rules-triggers.adoc
+++ b/downstream/modules/platform/proc-gw-define-rules-triggers.adoc
@@ -15,8 +15,8 @@ Authentication map types can be used with any type of authenticator. Each map ha
. Select a map type from the *Authentication mapping* list. See xref:gw-authenticator-map-types[Authenticator map types] for detailed descriptions of the different map types. Choices include:
+
* xref:gw-allow-mapping[Allow]
-* xref:ref-controller-organization-mapping[Organization]
-* xref:ref-controller-team-mapping[Team]
+* xref:proc-controller-organization-mapping[Organization]
+* xref:proc-controller-team-mapping[Team]
* xref:gw-role-mapping[Role]
* xref:gw-superuser-mapping[Is Superuser]
+
diff --git a/downstream/modules/platform/proc-gw-delete-roles.adoc b/downstream/modules/platform/proc-gw-delete-roles.adoc
index e67cde04ee..64e0edb746 100644
--- a/downstream/modules/platform/proc-gw-delete-roles.adoc
+++ b/downstream/modules/platform/proc-gw-delete-roles.adoc
@@ -4,14 +4,14 @@
= Deleting a role
-Built in roles can not be deleted, however, you can delete custom roles from the *Roles* list view.
+Built-in roles cannot be deleted, however, you can delete custom roles from the *Roles* list view.
.Procedure
. From the navigation panel, select {MenuAMRoles}.
-. Select a tab for the component resource for which you want to create custom roles.
+// [[hherbly]This may need to be replaced with updated steps for 2.6.]. Select a tab for the component resource for which you want to create custom roles.
+
-include::snippets/snip-gw-roles-note-multiple-components.adoc[]
+// include::snippets/snip-gw-roles-note-multiple-components.adoc[]
+
. Click the *More Actions* icon *{MoreActionsIcon}* next to the role you want and select *Delete role*.
. To delete roles in bulk, select the roles you want to delete from the *Roles* list view, click the *More Actions* icon *{MoreActionsIcon}*, and select *Delete roles*.
diff --git a/downstream/modules/platform/proc-gw-delete-team.adoc b/downstream/modules/platform/proc-gw-delete-team.adoc
index 42b74f96b5..735c5058e8 100644
--- a/downstream/modules/platform/proc-gw-delete-team.adoc
+++ b/downstream/modules/platform/proc-gw-delete-team.adoc
@@ -9,7 +9,7 @@ Before you can delete a team, you must have team permissions. When you delete a
.Procedure
. From the navigation panel, select {MenuAMTeams}.
-. Select the check box for the team that you want to remove.
+. Select the checkbox for the team that you want to remove.
. Select the {MoreActionsIcon} icon and select *Delete team*.
+
[NOTE]
diff --git a/downstream/modules/platform/proc-gw-edit-roles.adoc b/downstream/modules/platform/proc-gw-edit-roles.adoc
index 192a43733d..f4170abdc0 100644
--- a/downstream/modules/platform/proc-gw-edit-roles.adoc
+++ b/downstream/modules/platform/proc-gw-edit-roles.adoc
@@ -4,14 +4,14 @@
= Editing a role
-Built in roles can not be changed, however, you can modify custom roles from the *Roles* list view. The *Editable* column in the *Roles* list view indicates whether a role is _Built-in_ or _Editable_.
+Built-in roles cannot be changed, however, you can modify custom roles from the *Roles* list view. The *Editable* column in the *Roles* list view indicates whether a role is _Built-in_ or _Editable_.
.Procedure
. From the navigation panel, select {MenuAMRoles}.
-. Select a tab for the component resource for which you want to modify a custom role.
+// [[hherbly]This may need to be replaced with updated steps for 2.6.]. Select a tab for the component resource for which you want to modify a custom role.
+
-include::snippets/snip-gw-roles-note-multiple-components.adoc[]
+// include::snippets/snip-gw-roles-note-multiple-components.adoc[]
+
. Click the *Edit role* icon image:leftpencil.png[Edit,15,15] next to the role you want and modify the role settings as needed.
. Click btn:[Save role] to save your changes.
diff --git a/downstream/modules/platform/proc-gw-editing-a-user.adoc b/downstream/modules/platform/proc-gw-editing-a-user.adoc
index 527e591176..a313551465 100644
--- a/downstream/modules/platform/proc-gw-editing-a-user.adoc
+++ b/downstream/modules/platform/proc-gw-editing-a-user.adoc
@@ -6,13 +6,13 @@
You can modify the properties of a user account after it is created.
-In upgrade scenarios, there might be pre-existing user accounts from {ControllerName} or {HubName} services. When editing these user accounts, the *User type* checkboxes indicate whether the account had one of the following service level administrator privileges:
+// [[hherbly] removed for 2.6] In upgrade scenarios, there might be pre-existing user accounts from {ControllerName} or {HubName} services. When editing these user accounts, the *User type* checkboxes indicate whether the account had one of the following service level administrator privileges:
-Automation Execution Administrator:: A previously defined {ControllerName} administrator with full read and write privileges over automation execution resources only.
-Automation Decisions Administrator:: A previously defined {EDAName} administrator with full read and write privileges over automation decision resources only.
-Automation Content Administrator:: A previously defined {HubName} administrator with full read and write privileges over automation content resources only.
+// Automation Execution Administrator:: A previously defined {ControllerName} administrator with full read and write privileges over automation execution resources only.
+// Automation Decisions Administrator:: A previously defined {EDAName} administrator with full read and write privileges over automation decision resources only.
+// Automation Content Administrator:: A previously defined {HubName} administrator with full read and write privileges over automation content resources only.
-Platform administrators can revoke or assign administrator permissions for the individual services and designate the user as either an *{PlatformNameShort} Administrator*, *{PlatformNameShort} Auditor* or normal user. Assigning administrator privileges to all of the individual services automatically designates the user as an *{PlatformNameShort} Administrator*. See xref:proc-controller-creating-a-user[Creating a user] for more information about user types.
+// Platform administrators can revoke or assign administrator permissions for the individual services and designate the user as either an *{PlatformNameShort} Administrator*, *{PlatformNameShort} Auditor* or normal user. Assigning administrator privileges to all of the individual services automatically designates the user as an *{PlatformNameShort} Administrator*. See xref:proc-controller-creating-a-user[Creating a user] for more information about user types.
To see whether a user had service level auditor privileges, you must refer to the API.
@@ -25,15 +25,15 @@ Users previously designated as {ControllerName} or {HubName} administrators are
. From the navigation panel, select {MenuAMUsers}.
-. Select the check box for the user that you want to modify.
+. Select the checkbox for the user that you want to modify.
. Click the *Pencil* icon and select *Edit user*.
. The *Edit* user page is displayed where you can modify user details such as, *Password*, *Email*, *User type*, and *Organization*.
+
-[NOTE]
-====
-If the user account was migrated to {PlatformNameShort} 2.5 during the upgrade process and had administrator privileges for an individual service, additional User type checkboxes will be available. You can use these checkboxes to revoke or add individual privileges or designate the user as a platform administrator, system auditor or normal user.
-====
+// [NOTE]
+// ====
+// If the user account was migrated to {PlatformNameShort} 2.5 during the upgrade process and had administrator privileges for an individual service, additional User type checkboxes will be available. You can use these checkboxes to revoke or add individual privileges or designate the user as a platform administrator, system auditor or normal user.
+// ====
+
-. After your changes are complete, click *Save user*.
\ No newline at end of file
+. After your changes are complete, click *Save user*.
diff --git a/downstream/modules/platform/proc-gw-enable-oauth2-external-users.adoc b/downstream/modules/platform/proc-gw-enable-oauth2-external-users.adoc
new file mode 100644
index 0000000000..5aa59ea50e
--- /dev/null
+++ b/downstream/modules/platform/proc-gw-enable-oauth2-external-users.adoc
@@ -0,0 +1,19 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="gw-enable-oauth2-external-users"]
+
+= Enabling OAuth2 token creation for external users
+
+To enable external users to create OAuth2 tokens, change the appropriate setting in your {PlatformNameShort} environment.
+Ensure the implementation of compensating security controls after enabling this setting.
+
+.Procedure
+
+. From the navigation panel, go to menu:{MenuAEAdminSettings}[Platform gateway].
+. Click btn:[Edit platform gateway] settings.
+. Change the *Allow external users to create OAuth2 tokens* setting to *Enabled*.
+. Click btn:[Save platform gateway settings].
+
+.Next steps
+
+Implement the recommended security controls as described in _Implementing security controls for external user OAuth2 tokens_.
diff --git a/downstream/modules/platform/proc-gw-oauth2-security-controls.adoc b/downstream/modules/platform/proc-gw-oauth2-security-controls.adoc
new file mode 100644
index 0000000000..4c0ed96336
--- /dev/null
+++ b/downstream/modules/platform/proc-gw-oauth2-security-controls.adoc
@@ -0,0 +1,21 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="gw-oauth2-security-controls"]
+
+= Implementing security controls for external user OAuth2 tokens
+
+After enabling OAuth2 token creation for external users, implement the following compensating controls to keep a strong security posture.
+
+.Procedure
+
+* *Limit token lifetime*: Configure a shorter duration for OAuth2 tokens to reduce the window of exposure.
+** In your {PlatformNameShort} settings, adjust the `OAUTH2_ACCESS_TOKEN_EXPIRE_SECONDS value`.
+A value of 28800 (8 hours) is recommended, limiting token validity to a standard workday.
+* *Enforce strict role-based access control (RBAC)*: Grant users only the minimum necessary permissions.
+** Assign users who create tokens to *Teams* with highly restrictive roles.
+Avoid granting broad permissions that could lead to privilege escalation.
+* *Establish a clear offboarding process*: Integrate token revocation into your organizational offboarding procedures.
+Your HR and IT offboarding processes must include a step for an {PlatformNameShort} administrator to revoke all active tokens for a departing user.
+Tokens can be manually revoked from the user's profile under the *Tokens* tab.
+* *Audit and monitor*: Regularly review token-related activities for legitimacy in the *Activity Stream*.
+
diff --git a/downstream/modules/platform/proc-gw-remove-roles-user.adoc b/downstream/modules/platform/proc-gw-remove-roles-user.adoc
index f6e47671ce..aa33be9edb 100644
--- a/downstream/modules/platform/proc-gw-remove-roles-user.adoc
+++ b/downstream/modules/platform/proc-gw-remove-roles-user.adoc
@@ -3,6 +3,7 @@
[id="proc-gw-remove-roles-user"]
= Removing roles from a user
+
You can remove roles from a user by selecting the *-* icon next to the resource. This launches a confirmation dialog, asking you to confirm the removal.
.Procedure
diff --git a/downstream/modules/platform/proc-gw-role-mapping.adoc b/downstream/modules/platform/proc-gw-role-mapping.adoc
index 37769b6663..1b837d7faa 100644
--- a/downstream/modules/platform/proc-gw-role-mapping.adoc
+++ b/downstream/modules/platform/proc-gw-role-mapping.adoc
@@ -6,7 +6,7 @@
Role mapping is the mapping of a user either to a global role, such as Platform Auditor, or team or organization role.
-When a Team and/or Organization is specified together with the appropriate Role, the behavior is identical with Organization mapping or Team mapping.
+When a Team or Organization is specified together with the appropriate Role, the behavior is identical with Organization mapping or Team mapping.
Role mapping can be specified separately for each account authentication.
diff --git a/downstream/modules/platform/proc-gw-roles.adoc b/downstream/modules/platform/proc-gw-roles.adoc
index 8c2314b6d5..fadc8392f8 100644
--- a/downstream/modules/platform/proc-gw-roles.adoc
+++ b/downstream/modules/platform/proc-gw-roles.adoc
@@ -9,9 +9,9 @@ You can display the roles assigned for component resources from the menu:Access
.Procedure
. From the navigation panel, select {MenuAMRoles}.
-. Select a tab for the component resource for which you want to create custom roles.
+// [[hherbly]This may need to be replaced with updated steps for 2.6.] Select a tab for the component resource for which you want to create custom roles.
+
-include::snippets/snip-gw-roles-note-multiple-components.adoc[]
+// include::snippets/snip-gw-roles-note-multiple-components.adoc[]
+
-. From the table header, you can sort the list of roles by using the arrows for *Name*, *Description*, *Created* and *Editable* or by making sort selections in the *Sort* list.
+. From the table header, you can sort the list of roles by using the arrows for *Name*, *Description*, *Component*, *Resource Type*, and *Role Creation*, or by making sort selections in the *Sort* list.
. You can filter the list of roles by selecting *Name* or *Editable* from the filter list and clicking the arrow.
diff --git a/downstream/modules/platform/proc-gw-select-auth-type.adoc b/downstream/modules/platform/proc-gw-select-auth-type.adoc
index 21f90dff6e..955fd76fbe 100644
--- a/downstream/modules/platform/proc-gw-select-auth-type.adoc
+++ b/downstream/modules/platform/proc-gw-select-auth-type.adoc
@@ -30,9 +30,9 @@ Disabled:: Organizations and teams defined in the authenticator maps will not be
+
. Enable or disable *Remove Users*. If enabled, any access previously granted to a user is removed when they authenticate from this source. If disabled, permissions are only added or removed from the user based on the results of this authenticator's authenticator mappings.
+
-For example, assume a user has been granted the `is_superuser` permission in the system. And that user will log into an authenticator whose maps will not formulate an opinion as to whether or not the user should be a superuser.
+For example, assume a user has been granted the `is_superuser` permission in the system. And that user will log in to an authenticator whose maps will not formulate an opinion as to whether or not the user should be a superuser.
If *Remove Users* is enabled, the `is_superuser` permission will be removed from the user, the authenticator maps will not have an opinion as to whether it should be there or not so, after login the user will not have the `is_superuser` permission.
+
If *Remove Users* is disabled, the `is_superuser` permission _will not_ be removed from the user. The authenticator maps will not have an opinion as to whether it should be there or not so after login the user _will_ have the `is_superuser` permission.
+
-. Click btn:[Create mapping] and proceed to xref:gw-define-rules-triggers[Define authentication mapping rules and triggers].
+. Click btn:[Create Authentication Method] and proceed to xref:gw-define-rules-triggers[Define authentication mapping rules and triggers].
diff --git a/downstream/modules/platform/proc-gw-settings-insights-settings.adoc b/downstream/modules/platform/proc-gw-settings-insights-settings.adoc
new file mode 100644
index 0000000000..71eef01e10
--- /dev/null
+++ b/downstream/modules/platform/proc-gw-settings-insights-settings.adoc
@@ -0,0 +1,19 @@
+[id="proc-gw-settings-insights-settings"]
+
+= = Configuring miscellaneous options
+
+From the {Gateway} settings page, you can configure options for Insights, subscriptions and notifications.
+
+.Procedure
+. From the navigation panel, select {MenuSetGateway}.
+. The *{GatewayStart} settings* page is displayed.
+. To configure the options, click btn:[Edit {Gateway} settings].
+. You can configure the following options:
+
+* *Insights tracking state*: Enables the service to gather data on automation and send it to {Analytics}.
+* *Red Hat console URL*: This setting is used to to configure the upload URL for data collection for Automation Analytics.
+* *Red Hat password*: This password is used to send data to {Analytics}.
+* *Subscriptions password*: This password is used to retrieve subscription and content information.
+* *Automation analytics gather interval*: The maximum number of items allowed on a list page.
+* *Notification rss feed url*: URL for RSS feeds from which to load user notifications.
+* *Notifications rss feed enabled*: Enable or disable user notifications
\ No newline at end of file
diff --git a/downstream/modules/platform/proc-gw-team-access-resources.adoc b/downstream/modules/platform/proc-gw-team-access-resources.adoc
index 2ee8b1d0eb..226e0da0b3 100644
--- a/downstream/modules/platform/proc-gw-team-access-resources.adoc
+++ b/downstream/modules/platform/proc-gw-team-access-resources.adoc
@@ -3,6 +3,7 @@
[id="proc-gw-team-access"]
= Providing team access to a resource
+
You can grant users access based on their team membership. When you add a user as a member of a team, they inherit access to the roles and resources defined for that team.
[NOTE]
diff --git a/downstream/modules/platform/proc-gw-team-add-user.adoc b/downstream/modules/platform/proc-gw-team-add-user.adoc
index 8918eb6eee..8802ae05d9 100644
--- a/downstream/modules/platform/proc-gw-team-add-user.adoc
+++ b/downstream/modules/platform/proc-gw-team-add-user.adoc
@@ -3,15 +3,16 @@
[id="proc-gw-team-add-user"]
= Adding users to a team
+
To add a user to a team, the user must already have been created. For more information, see xref:proc-controller-creating-a-user[Creating a user]. Adding a user to a team adds them as a member only. Use the *Roles* tab to assign a role for different resources to the selected team.
-The following tab selections are available when adding users to a team. When user accounts from {ControllerName} or {HubName} organizations have been migrated to {PlatformNameShort} 2.5 during the upgrade process, the *Automation Execution* and *Automation Content* tabs show content based on whether the users were added to those organizations prior to migration.
+// [[hherbly]This may need to be replaced with updated steps for 2.6.] The following tab selections are available when adding users to a team. When user accounts from {ControllerName} or {HubName} organizations have been migrated to {PlatformNameShort} 2.5 during the upgrade process, the *Automation Execution* and *Automation Content* tabs show content based on whether the users were added to those organizations prior to migration.
-{PlatformNameShort}:: Reflects all users added to the organization at the platform level. From this tab, you can add users as organization members and, optionally provide specific organization level roles.
+// {PlatformNameShort}:: Reflects all users added to the organization at the platform level. From this tab, you can add users as organization members and, optionally provide specific organization level roles.
-Automation Execution:: Reflects users that were added directly to the {ControllerName} organization prior to an upgrade and migration. From this tab, you can only view existing memberships in {ControllerName} and remove those memberships but you can not add new memberships. New organization memberships must be added through the platform.
+// Automation Execution:: Reflects users that were added directly to the {ControllerName} organization prior to an upgrade and migration. From this tab, you can only view existing memberships in {ControllerName} and remove those memberships but you can not add new memberships. New organization memberships must be added through the platform.
-Automation Content:: Reflects users that were added directly to the {HubName} organization prior to an upgrade and migration. From this tab, you can only view existing memberships in {HubName} and remove those memberships but you can not add new memberships.
+// Automation Content:: Reflects users that were added directly to the {HubName} organization prior to an upgrade and migration. From this tab, you can only view existing memberships in {HubName} and remove those memberships but you can not add new memberships.
New user memberships to a team must be added at the platform level.
@@ -21,7 +22,7 @@ New user memberships to a team must be added at the platform level.
. From the navigation panel, select {MenuAMTeams}.
. Select the team to which you want to add users.
. Select the *Users* tab.
-. Select the *{PlatformNameShort}* tab and click btn:[Add users] to add user access to the team, or select the *Automation Execution* or *Automation Content* tab to view or remove user access from the team.
+// . Select the *{PlatformNameShort}* tab and click btn:[Add users] to add user access to the team, or select the *Automation Execution* or *Automation Content* tab to view or remove user access from the team.
. Select one or more users from the list by clicking the checkbox next to the name to add them as members of this team.
. Click btn:[Add users].
\ No newline at end of file
diff --git a/downstream/modules/platform/proc-install-cli-aap-operator.adoc b/downstream/modules/platform/proc-install-cli-aap-operator.adoc
index 21ed3ffa4d..748119cb39 100644
--- a/downstream/modules/platform/proc-install-cli-aap-operator.adoc
+++ b/downstream/modules/platform/proc-install-cli-aap-operator.adoc
@@ -49,7 +49,7 @@ metadata:
name: ansible-automation-platform
namespace: ansible-automation-platform
spec:
- channel: 'stable-2.5'
+ channel: 'stable-2.6'
installPlanApproval: Automatic
name: ansible-automation-platform-operator
source: redhat-operators
@@ -71,7 +71,7 @@ oc apply -f sub.yaml
oc get csv -n ansible-automation-platform
NAME DISPLAY VERSION REPLACES PHASE
-aap-operator.v2.5.0-0.1728520175 Ansible Automation Platform 2.5.0+0.1728520175 aap-operator.v2.5.0-0.1727875185 Succeeded
+aap-operator.v2.6.0-0.1728520175 Ansible Automation Platform 2.6.0+0.1728520175 aap-operator.v2.6.0-0.1727875185 Succeeded
-----
+
. Create an `AnsibleAutomationPlatform` object called `_example_` in the `ansible-automation-platform` namespace.
diff --git a/downstream/modules/platform/proc-installing-containerized-aap.adoc b/downstream/modules/platform/proc-installing-containerized-aap.adoc
index fc182dc49a..cfb8ddbdbe 100644
--- a/downstream/modules/platform/proc-installing-containerized-aap.adoc
+++ b/downstream/modules/platform/proc-installing-containerized-aap.adoc
@@ -4,6 +4,7 @@
= Installing containerized {PlatformNameShort}
+[role="_abstract"]
After you prepare the {RHEL} host, download {PlatformNameShort}, and configure the inventory file, run the `install` playbook to install containerized {PlatformNameShort}.
.Prerequisites
diff --git a/downstream/modules/platform/proc-modifying-the-run-schedule.adoc b/downstream/modules/platform/proc-modifying-the-run-schedule.adoc
index e0935adf64..20618f658d 100644
--- a/downstream/modules/platform/proc-modifying-the-run-schedule.adoc
+++ b/downstream/modules/platform/proc-modifying-the-run-schedule.adoc
@@ -1,5 +1,3 @@
-:_newdoc-version: 2.18.3
-:_template-generated: 2024-07-15
:_mod-docs-content-type: PROCEDURE
[id="modifying-the-run-schedule_{context}"]
@@ -14,17 +12,12 @@ To modify the run schedule on {RHEL} and on {OCPShort}, use one of the following
. From the command line, run:
+
-[source, ]
-----
-crontab -e
-----
-+
+`crontab -e`
+
. After the code editor has opened, update the `gather` and `build` parameters using cron syntax as shown below:
+
-[source, ]
-----
-*/2 * * * * metrics-utility gather_automation_controller_billing_data --ship --until=10m
-*/5 * * * * metrics-utility build_report
-----
+`*/2 * * * * metrics-utility gather_automation_controller_billing_data --ship --until=10m`
+
+`*/5 * * * * metrics-utility build_report`
+
. Save and close the file.
diff --git a/downstream/modules/platform/proc-object-storaage-with-s3.adoc b/downstream/modules/platform/proc-object-storaage-with-s3.adoc
new file mode 100644
index 0000000000..3e9668a08a
--- /dev/null
+++ b/downstream/modules/platform/proc-object-storaage-with-s3.adoc
@@ -0,0 +1,27 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="proc-object-storaage-with-s3"]
+
+= Object storage with S3 interface
+
+To use object storage with S3 interface, for example, with AWS S3, Ceph Object storage, or Minio, you must define environment variables for data gathering and report building commands and cronjobs.
++
+----
+################
+export METRICS_UTILITY_SHIP_TARGET=s3
+# Your path in the object storage
+export METRICS_UTILITY_SHIP_PATH=path_to_data_and_reports/...
+
+################
+# Define S3 config
+export METRICS_UTILITY_BUCKET_NAME=metricsutilitys3
+export METRICS_UTILITY_BUCKET_ENDPOINT="https://s3.us-east-1.amazonaws.com"
+# For AWS S3, define also a region
+export METRICS_UTILITY_BUCKET_REGION="us-east-1"
+
+################
+# Define S3 credentials
+export METRICS_UTILITY_BUCKET_ACCESS_KEY=
+export METRICS_UTILITY_BUCKET_SECRET_KEY=
+----
+
diff --git a/downstream/modules/platform/proc-object-storage-with-rhel.adoc b/downstream/modules/platform/proc-object-storage-with-rhel.adoc
new file mode 100644
index 0000000000..3da12e167c
--- /dev/null
+++ b/downstream/modules/platform/proc-object-storage-with-rhel.adoc
@@ -0,0 +1,16 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="proc-object-storage-with-rhel"]
+
+= Local disk
+
+For an installation of {PlatformNameShort} on {RHEL}, the default storage option is a local disk. Using an OpenShift deployment of {OCPShort}, default storage is a path inside the attached Persistent Volume Claim.
++
+----
+# Set needed ENV VARs for gathering data and generating reports
+export METRICS_UTILITY_SHIP_TARGET=directory
+# Your path on the local disk
+export METRICS_UTILITY_SHIP_PATH=/path_to_data_and_reports/...
+----
+
+
diff --git a/downstream/modules/platform/proc-obtaining-configuring-rpm-dependencies.adoc b/downstream/modules/platform/proc-obtaining-configuring-rpm-dependencies.adoc
new file mode 100644
index 0000000000..842ab75509
--- /dev/null
+++ b/downstream/modules/platform/proc-obtaining-configuring-rpm-dependencies.adoc
@@ -0,0 +1,14 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="obtaining-and-configuring-rpm-dependencies"]
+
+= Obtaining and configuring RPM source dependencies
+
+[role="_abstract"]
+The {PlatformNameShort} containerized setup bundle installation program does not include RPM source dependencies from the BaseOS and AppStream repositories. It relies on the host system's package manager to resolve these dependencies.
+
+To access these dependencies in a disconnected environment, you can use one of the following methods:
+
+* Use link:https://docs.redhat.com/en/documentation/red_hat_satellite/6.16/html/installing_satellite_server_in_a_disconnected_network_environment/index[Red Hat Satellite] to synchronize repositories in your disconnected environment.
+* Use a local repository that you create with the `reposync` command on a {RHEL} host that has an active internet connection.
+* Use a local repository that you create from a mounted {RHEL} Binary DVD ISO image.
diff --git a/downstream/modules/platform/proc-operator-deploy-central-config.adoc b/downstream/modules/platform/proc-operator-deploy-central-config.adoc
index fdc4d31f1e..1db99dec45 100644
--- a/downstream/modules/platform/proc-operator-deploy-central-config.adoc
+++ b/downstream/modules/platform/proc-operator-deploy-central-config.adoc
@@ -12,7 +12,7 @@ The following procedure simulates a scenario where you have {ControllerName} as
. Log in to {OCP}.
. Navigate to menu:Operators[Installed Operators].
. Select your {OperatorPlatformNameShort} deployment.
-. Click btn:[Subscriptions] and edit your *Update channel* to *stable-2.5*.
+. Click btn:[Subscriptions] and edit your *Update channel* to *stable-2.6*.
. Click btn:[Details] and on the *{PlatformNameShort}* tile click btn:[Create instance].
. From the *Create {PlatformNameShort}* page enter a name for your instance in the *Name* field.
* When deploying an {PlatformNameShort} instance, ensure that `auto_update` is set to the default value of `false` on your existing {ControllerName} instance in order for the integration to work.
diff --git a/downstream/modules/platform/proc-operator-external-db-controller.adoc b/downstream/modules/platform/proc-operator-external-db-controller.adoc
index a386db3774..ba3a322c6c 100644
--- a/downstream/modules/platform/proc-operator-external-db-controller.adoc
+++ b/downstream/modules/platform/proc-operator-external-db-controller.adoc
@@ -24,7 +24,9 @@ The external database must be a PostgreSQL database that is the version supporte
[NOTE]
====
-{PlatformNameShort} {PlatformVers} supports {PostgresVers}.
+{PlatformNameShort} {PlatformVers} supports {PostgresVers} for its managed databases and additionally supports PostgreSQL 15, 16, and 17 for external databases.
+
+If you choose to use an externally managed database with version 16 or 17 you must also rely on external backup and restore processes.
====
.Procedure
diff --git a/downstream/modules/platform/proc-operator-external-db-gateway.adoc b/downstream/modules/platform/proc-operator-external-db-gateway.adoc
index 0d75ae9014..5b8f240de4 100644
--- a/downstream/modules/platform/proc-operator-external-db-gateway.adoc
+++ b/downstream/modules/platform/proc-operator-external-db-gateway.adoc
@@ -44,7 +44,9 @@ The external database must be a PostgreSQL database that is the version supporte
[NOTE]
====
-{PlatformNameShort} {PlatformVers} supports {PostgresVers}.
+{PlatformNameShort} {PlatformVers} supports {PostgresVers} for its managed databases and additionally supports PostgreSQL 15, 16, and 17 for external databases.
+
+If you choose to use an externally managed database with version 16 or 17 you must also rely on external backup and restore processes.
====
.Procedure
diff --git a/downstream/modules/platform/proc-operator-external-db-hub.adoc b/downstream/modules/platform/proc-operator-external-db-hub.adoc
index 73f58776ed..68e8ef6919 100644
--- a/downstream/modules/platform/proc-operator-external-db-hub.adoc
+++ b/downstream/modules/platform/proc-operator-external-db-hub.adoc
@@ -25,7 +25,9 @@ The external postgres instance credentials and connection information will need
[NOTE]
====
-{PlatformNameShort} {PlatformVers} supports {PostgresVers}.
+{PlatformNameShort} {PlatformVers} supports {PostgresVers} for its managed databases and additionally supports PostgreSQL 15, 16, and 17 for external databases.
+
+If you choose to use an externally managed database with version 16 or 17 you must also rely on external backup and restore processes.
====
.Procedure
diff --git a/downstream/modules/platform/proc-operator-upgrade.adoc b/downstream/modules/platform/proc-operator-upgrade.adoc
index a35488a104..858a05bcb1 100644
--- a/downstream/modules/platform/proc-operator-upgrade.adoc
+++ b/downstream/modules/platform/proc-operator-upgrade.adoc
@@ -4,13 +4,18 @@
= Upgrading the {OperatorPlatformNameShort}
-To upgrade to the latest version of {OperatorPlatformNameShort} on {OCPShort}, you can do the following:
+To upgrade to the latest version of {OperatorPlatformNameShort} on {OCPShort}, you can use the following procedure:
+
+[NOTE]
+====
+If you are on version 2.4, it is recommended to skip 2.5 and upgrade straight to version {PlatformVers}.
+====
.Prerequisites
-* Read the link:{URLReleaseNotes}[{TitleReleaseNotes}] for 2.5
+* Read the {LinkReleaseNotes} for {PlatformVers}
-* [Optional] You need to deploy all of your {PlatformName} services ({ControllerNAme}, {HubName}, {EDAName}) to the same, single namespace before upgrading to 2.5 (only for existing deployments). For more information see, link:https://access.redhat.com/solutions/7092056[Migrating from one namespace to another].
+* [Optional] You must deploy all of your {PlatformName} services ({ControllerNAme}, {HubName}, {EDAName}) to the same, single namespace before upgrading to {PlatformVers} (only for existing deployments). For more information see, link:https://access.redhat.com/solutions/7092056[Migrating from one namespace to another].
* Review the link:{URLOperatorBackup}[{TitleOperatorBackup}] guide and backup your services:
** AutomationControllerBackup
** AutomationHubBackup
@@ -22,15 +27,26 @@ Upgrading from {EDAName} 2.4 is not supported. If you are using {EDAName} 2.4 in
====
.Procedure
+
. Log in to {OCPShort}.
. Navigate to menu:Operators[Installed Operators].
. Select the {OperatorPlatformNameShort} installed on your project namespace.
. Select the *Subscriptions* tab.
-. Change the channel from stable-2.4 to stable-2.5. An InstallPlan is created for the user.
-. Click btn:[Preview InstallPlan].
+. Change the channel:
+.. To upgrade from version 2.4, change the channel to *stable-2.6*.
+.. To upgrade from version 2.5, change the channel to *stable-2.6*.
+. This creates an InstallPlan for the user. Click btn:[Preview InstallPlan].
. Click btn:[Approve].
. Create a Custom Resource (CR) using the {PlatformNameShort} UI. The {ControllerName} and {HubName} UIs remain until all SSO configuration is supported in the {Gateway} UI.
+.Verification
+
+You can confirm you have upgraded successfully by navigating to menu:Operators[Installed Operators], here under {PlatformNameShort} you can see the version number, begins with 2.6.x.
+
+Additionally, go to your {OperatorPlatformNameShort} deployment and click btn:[All instances] to verify if all instances upgraded correctly.
+All pods should display either a *Running* or *Completed status*, with no pods displaying an error status.
+
+
[role="_additional-resources"]
.Additional resources
diff --git a/downstream/modules/platform/proc-perform-containerized-disconnected-installation.adoc b/downstream/modules/platform/proc-perform-containerized-disconnected-installation.adoc
new file mode 100644
index 0000000000..8f742ff739
--- /dev/null
+++ b/downstream/modules/platform/proc-perform-containerized-disconnected-installation.adoc
@@ -0,0 +1,31 @@
+:_mod-docs-content-type: PROCEDURE
+
+[id="perform-disconnected-installation"]
+
+= Performing a disconnected installation
+
+[role="_abstract"]
+Use the following steps to perform a disconnected installation of containerized {PlatformNameShort}.
+
+.Prerequisites
+
+You have done the following:
+
+* link:{URLContainerizedInstall}/aap-containerized-installation#preparing-the-rhel-host-for-containerized-installation[Prepared the {RHEL} host]
+* link:{URLContainerizedInstall}/aap-containerized-disconnected-installation#obtaining-and-configuring-rpm-dependencies[Obtained and configured the RPM source dependencies]. The installation program uses your host system's `dnf` package manager to resolve these dependencies.
+* link:{URLContainerizedInstall}/aap-containerized-installation#preparing-the-managed-nodes-for-containerized-installation[Prepared the managed nodes]
+* Downloaded the containerized {PlatformNameShort} setup bundle from the link:{PlatformDownloadUrl}[{PlatformNameShort} download page].
+
+.Procedure
+
+. Log in to the {RHEL} host as your non-root user.
+. Update the inventory file by following the steps in link:{URLContainerizedInstall}/aap-containerized-installation#configuring-inventory-file[Configuring the inventory file].
+. Ensure the following variables are included in your inventory file under the `[all:vars]` group:
++
+----
+bundle_install=true
+# The bundle directory must include /bundle in the path
+bundle_dir='{{ lookup("ansible.builtin.env", "PWD") }}/bundle'
+----
+
+. Follow the steps in link:{URLContainerizedInstall}/aap-containerized-installation#installing-containerized-aap[Installing containerized {PlatformNameShort}] to install containerized {PlatformNameShort} and verify your installation.
diff --git a/downstream/modules/platform/proc-preparing-the-managed-nodes-for-containerized-installation.adoc b/downstream/modules/platform/proc-preparing-the-managed-nodes-for-containerized-installation.adoc
index 34a0191adf..52585fb7cd 100644
--- a/downstream/modules/platform/proc-preparing-the-managed-nodes-for-containerized-installation.adoc
+++ b/downstream/modules/platform/proc-preparing-the-managed-nodes-for-containerized-installation.adoc
@@ -4,6 +4,7 @@
= Preparing the managed nodes for containerized installation
+[role="_abstract"]
Managed nodes, also referred to as hosts, are the devices that {PlatformNameShort} is configured to manage.
To ensure a consistent and secure setup of containerized {PlatformNameShort}, create a dedicated user on each host. {PlatformNameShort} connects as this user to run tasks on the host.
diff --git a/downstream/modules/platform/proc-preparing-the-rhel-host-for-containerized-installation.adoc b/downstream/modules/platform/proc-preparing-the-rhel-host-for-containerized-installation.adoc
index e9ff12f482..60e33bdfbb 100644
--- a/downstream/modules/platform/proc-preparing-the-rhel-host-for-containerized-installation.adoc
+++ b/downstream/modules/platform/proc-preparing-the-rhel-host-for-containerized-installation.adoc
@@ -4,6 +4,7 @@
= Preparing the {RHEL} host for containerized installation
+[role="_abstract"]
Containerized {PlatformNameShort} runs the component services as Podman based containers on top of a {RHEL} host. Prepare the {RHEL} host to ensure a successful installation.
.Procedure
@@ -25,13 +26,13 @@ aap.example.org
.. If the hostname is not a FQDN, you can set it with the following command:
+
----
-sudo hostnamectl set-hostname
+$ sudo hostnamectl set-hostname
----
+
. Register your {RHEL} host with `subscription-manager`:
+
----
-sudo subscription-manager register
+$ sudo subscription-manager register
----
+
@@ -49,19 +50,20 @@ repo id repo name
rhel-9-for-x86_64-appstream-rpms Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)
rhel-9-for-x86_64-baseos-rpms Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)
----
-+
+** For disconnected installations follow the steps in link:{URLContainerizedInstall}/aap-containerized-disconnected-installation#obtaining-and-configuring-rpm-dependencies[Obtaining and configuring RPM source dependencies] to access these repositories.
+
. Ensure the host can resolve host names and IP addresses using DNS. This is essential to ensure services can talk to one another.
. Install `ansible-core`:
+
----
-sudo dnf install -y ansible-core
+$ sudo dnf install -y ansible-core
----
+
. Optional: You can install additional utilities that can be useful for troubleshooting purposes, for example `wget`, `git-core`, `rsync`, and `vim`:
+
----
-sudo dnf install -y wget git-core rsync vim
+$ sudo dnf install -y wget git-core rsync vim
----
. Optional: To have the installation program automatically pick up and apply your {PlatformNameShort} subscription manifest license, follow the steps in link:{URLCentralAuth}/assembly-gateway-licensing#assembly-aap-obtain-manifest-files[Obtaining a manifest file].
diff --git a/downstream/modules/platform/proc-provide-custom-ca-cert.adoc b/downstream/modules/platform/proc-provide-custom-ca-cert.adoc
index 3db3fc75d1..e8b762e951 100644
--- a/downstream/modules/platform/proc-provide-custom-ca-cert.adoc
+++ b/downstream/modules/platform/proc-provide-custom-ca-cert.adoc
@@ -3,6 +3,7 @@
[id="providing-a-custom-ca-certificate"]
= Providing a custom CA certificate
+[role="_abstract"]
When you manually provide TLS certificates, those certificates might be signed by a custom CA. Provide a custom CA certificate to ensure proper authentication and secure communication within your environment. If you have multiple custom CA certificates, you must merge them into a single file.
.Procedure
diff --git a/downstream/modules/platform/proc-provide-custom-tls-certs-per-service.adoc b/downstream/modules/platform/proc-provide-custom-tls-certs-per-service.adoc
index 348f8b0de6..29ee2e2ec5 100644
--- a/downstream/modules/platform/proc-provide-custom-tls-certs-per-service.adoc
+++ b/downstream/modules/platform/proc-provide-custom-tls-certs-per-service.adoc
@@ -3,6 +3,7 @@
[id="proc-provide-custom-tls-certs-per-service"]
= Providing custom TLS certificates for each service
+[role="_abstract"]
Use this method if your organization manages TLS certificates outside of {PlatformNameShort} and requires manual provisioning.
.Procedure
diff --git a/downstream/modules/platform/proc-reinstalling-containerized-aap.adoc b/downstream/modules/platform/proc-reinstalling-containerized-aap.adoc
index 06a712e428..e2dc8a06d1 100644
--- a/downstream/modules/platform/proc-reinstalling-containerized-aap.adoc
+++ b/downstream/modules/platform/proc-reinstalling-containerized-aap.adoc
@@ -4,7 +4,6 @@
= Reinstalling containerized {PlatformNameShort}
[role="_abstract"]
-
To reinstall a containerized deployment after uninstalling and preserving the database, follow the steps in link:{URLContainerizedInstall}/aap-containerized-installation#installing-containerized-aap[Installing containerized {PlatformNameShort}] and include the existing secret key value in the playbook command:
----
diff --git a/downstream/modules/platform/proc-restore-aap-container.adoc b/downstream/modules/platform/proc-restore-aap-container.adoc
index 4ad37c217e..0be6e84ea0 100644
--- a/downstream/modules/platform/proc-restore-aap-container.adoc
+++ b/downstream/modules/platform/proc-restore-aap-container.adoc
@@ -3,11 +3,20 @@
[id="proc-restore-aap-container"]
= Restoring containerized {PlatformNameShort}
+[role="_abstract"]
Restore your {ContainerBase} of {PlatformNameShort} from a backup, or to a different environment.
+[NOTE]
+====
+When restoring {PlatformNameShort}, use the latest installation program available at the time of the restore. For example, if you are restoring a backup taken from version `2.6-1`, use the latest `2.6-x` installation program available at the time of the restore.
+
+Restore functionality only works with the PostgreSQL versions supported by your current {PlatformNameShort} version.
+For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/aap-containerized-installation#system-requirements[System requirements].
+====
+
.Prerequisites
* You have logged in to the {RHEL} host as your dedicated non-root user.
-* You have a backup of your {PlatformNameShort} deployment. For more information, see link:{URLContainerizedInstall}/aap-containerized-installation#backing-up-containerized-ansible-automation-platform[Backing up container-based {PlatformNameShort}].
+* You have a backup of your {PlatformNameShort} deployment. For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/aap-containerized-installation#backing-up-containerized-ansible-automation-platform[Backing up containerized {PlatformNameShort}].
* If restoring to a different environment with the same hostnames, you have performed a fresh installation on the target environment with the same topology as the original (source) environment.
* You have ensured that the administrator credentials on the target environment match the administrator credentials from the source environment.
@@ -39,7 +48,7 @@ Restoring to a different environment with different hostnames is not recommended
For example:
+
----
-$ cd ansible-automation-platform-containerized-setup-2.5-XX/backups
+$ cd ansible-automation-platform-containerized-setup-/backups
----
+
----
@@ -53,7 +62,7 @@ $ tar tvf gateway_env1-gateway-node1.tar.gz | grep db
For example:
+
----
-$ cd ansible-automation-platform-containerized-setup-2.5-XX/backups
+$ cd ansible-automation-platform-containerized-setup-/backups
----
+
----
@@ -64,7 +73,7 @@ $ mv gateway_env1-gateway-node1.tar.gz gateway_env2-gateway-node1.tar.gz
For example:
+
----
-$ cd ansible-automation-platform-containerized-setup-2.5-XX
+$ cd ansible-automation-platform-containerized-setup-
----
+
----
diff --git a/downstream/modules/platform/proc-set-EDA-proxy.adoc b/downstream/modules/platform/proc-set-EDA-proxy.adoc
index 3ff3255e95..695184390e 100644
--- a/downstream/modules/platform/proc-set-EDA-proxy.adoc
+++ b/downstream/modules/platform/proc-set-EDA-proxy.adoc
@@ -3,6 +3,7 @@
[id="proc-set-EDA-proxy"]
= Configuring proxy settings on {EDAName}
+
For {EDAName}, there are no global settings to set a proxy.
You must specify the proxy for every project.
diff --git a/downstream/modules/platform/proc-set-registry-username-password.adoc b/downstream/modules/platform/proc-set-registry-username-password.adoc
index e248ee27db..7bff6a9224 100644
--- a/downstream/modules/platform/proc-set-registry-username-password.adoc
+++ b/downstream/modules/platform/proc-set-registry-username-password.adoc
@@ -4,6 +4,7 @@
= Setting registry_username and registry_password
+[role="_abstract"]
When using the `registry_username` and `registry_password` variables for an online non-bundled installation, you need to create a new registry service account.
Registry service accounts are named tokens that can be used in environments where credentials will be shared, such as deployment systems.
diff --git a/downstream/modules/platform/proc-settings-gw-additional-options.adoc b/downstream/modules/platform/proc-settings-gw-additional-options.adoc
index 3923df9b52..8fc50016ff 100644
--- a/downstream/modules/platform/proc-settings-gw-additional-options.adoc
+++ b/downstream/modules/platform/proc-settings-gw-additional-options.adoc
@@ -27,10 +27,11 @@ This setting defaults to 2 seconds.
If you have a large latency between {Gateway} and your services and observe 401 responses you must increase this setting to lower the number of 401 responses.
* *Status endpoint backend timeout seconds*: Timeout (in seconds) for the status endpoint to wait when trying to connect to a backend.
* *Status endpoint backend verify*: Specifies whether SSL certificates of the services are verified when calling individual nodes for statuses.
+* *Resource client request timeout*: The timeout (in seconds) before the resource client will drop requests after forming connections.
* *Request timeout*: Specifies, in seconds, the length of time before the proxy will report a timeout and generate a 504.
-* *Allow external users to create OAuth2 tokens *: For security reasons, users from external authentication providers, such as LDAP, SAML, SSO, Radius, and others, are not allowed to create OAuth2 tokens.
-To change this behavior, enable this setting.
-Existing tokens are not deleted when this setting is turned off.
+* *Stream idle timeout*: Timeout in seconds for idle streaming connections, for example, for the {PlatformNameShort} Lightspeed chatbot. Stream is closed if no data is transmitted within this period.
+* *Max stream duration*: Maximum total duration in seconds for streaming connections, for example, for the {PlatformNameShort} Lightspeed chatbot. Stream is closed after this time regardless of activity.
+* *Aap deployment type*: The deployment type for this AAP instance.
+
. Click btn:[Save {Gateway} settings] to save the changes or proceed to configure the other platform options available.
diff --git a/downstream/modules/platform/proc-settings-gw-authentication.adoc b/downstream/modules/platform/proc-settings-gw-authentication.adoc
new file mode 100644
index 0000000000..44ad6b7433
--- /dev/null
+++ b/downstream/modules/platform/proc-settings-gw-authentication.adoc
@@ -0,0 +1,16 @@
+[id="proc-settings-gw-authentication"]
+
+= Enabling OAuth2 token creation for external users
+
+To enable external users to create OAuth2 tokens, change the appropriate setting in your {PlatformNameShort} environment. Ensure the implementation of compensating security controls after enabling this setting.
+
+.Procedure
+
+. From the navigation panel, go to {MenuSetGateway}.
+. Click btn:[Edit platform gateway settings].
+. Change the *Allow external users to create OAuth2 tokens* setting to *Enabled*.
+. Click btn:[Save platform gateway settings].
+
+.Next steps
+
+Implement the recommended security controls as described in link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/access_management_and_authentication/gw-token-based-authentication#gw-oauth2-security-controls[Implementing security controls for external user OAuth2 tokens].
\ No newline at end of file
diff --git a/downstream/modules/platform/proc-settings-gw-security-options.adoc b/downstream/modules/platform/proc-settings-gw-security-options.adoc
index 847743508e..b38d58b39e 100644
--- a/downstream/modules/platform/proc-settings-gw-security-options.adoc
+++ b/downstream/modules/platform/proc-settings-gw-security-options.adoc
@@ -14,23 +14,17 @@ From the *{GatewayStart} settings* page, you can configure platform security set
. To configure the options, click btn:[Edit].
. You can configure the following *Security* settings:
+
-* *Allow admin to set insecure*: Whether a superuser account can save an insecure password when editing any local user account.
+* *Allow system administrators to set insecure user passwords*: Whether a superuser account can save an insecure password when editing any local user account.
* *Gateway basic auth enabled*: Enable basic authentication to the {Gateway} API.
+
Turning this off prevents all basic authentication (local users), so customers need to make sure they have their alternative authentication mechanisms correctly configured before doing so.
+
Turning it off with only local authentication configured also prevents all access to the UI.
+
-*Social auth username is full email*: Enabling this setting alerts social authentication to use the full email as username instead of the full name.
-+
*Gateway token name*: The header name to push from the proxy to the backend service.
+
-[WARNING]
-====
-If this name is changed, backends must be updated to compensate.
-====
-+
* *Gateway access token expiration*: How long the access tokens are valid for.
++
* *Jwt private key*: The private key used to encrypt the JWT tokens sent to backend services.
+
This should be a private RSA key and one should be generated automatically on installation.
@@ -49,4 +43,12 @@ This should be a private RSA key and one should be generated automatically on in
See other services' documentation on how they consume this key.
====
+
+[WARNING]
+====
+If this name is changed, backends must be updated to compensate.
+====
++
+*Social auth username is full email*: Enabling this setting alerts social authentication to use the full email as username instead of the full name.
++
+* *Csrf trusted origins*: If the service is behind a reverse proxy or load balancer, use this setting to configure the `schema://addresses` from which the service should trust Origin header values.
. Click btn:[Save changes] to save the changes or proceed to configure the other platform options available.
\ No newline at end of file
diff --git a/downstream/modules/platform/proc-setup-ext-db-with-admin-creds.adoc b/downstream/modules/platform/proc-setup-ext-db-with-admin-creds.adoc
index 8a3c2fe975..de784ff3b0 100644
--- a/downstream/modules/platform/proc-setup-ext-db-with-admin-creds.adoc
+++ b/downstream/modules/platform/proc-setup-ext-db-with-admin-creds.adoc
@@ -3,6 +3,7 @@
[id="setup-ext-db-with-admin-creds"]
= Setting up an external database with PostgreSQL admin credentials
+[role="_abstract"]
If you have PostgreSQL admin credentials, you can supply them in the inventory file and the installation program creates the PostgreSQL users and databases for each component for you. The PostgreSQL admin account must have `SUPERUSER` privileges.
.Procedure
diff --git a/downstream/modules/platform/proc-setup-ext-db-without-admin-creds.adoc b/downstream/modules/platform/proc-setup-ext-db-without-admin-creds.adoc
index 80225bd41e..6eef822ea3 100644
--- a/downstream/modules/platform/proc-setup-ext-db-without-admin-creds.adoc
+++ b/downstream/modules/platform/proc-setup-ext-db-without-admin-creds.adoc
@@ -3,6 +3,7 @@
[id="setup-ext-db-without-admin-creds"]
= Setting up an external database without PostgreSQL admin credentials
+[role="_abstract"]
If you do not have PostgreSQL admin credentials, then PostgreSQL users and databases need to be created for each component ({Gateway}, {ControllerName}, {HubName}, and {EDAName}) before running the installation program.
.Procedure
diff --git a/downstream/modules/platform/proc-specify-nodes-job-execution.adoc b/downstream/modules/platform/proc-specify-nodes-job-execution.adoc
index 4c247bb4c9..aecff7fd0e 100644
--- a/downstream/modules/platform/proc-specify-nodes-job-execution.adoc
+++ b/downstream/modules/platform/proc-specify-nodes-job-execution.adoc
@@ -63,7 +63,7 @@ kubectl get nodes --show-labels
You can see that the `worker0` node now has a `disktype=ssd` label.
+
. In the {ControllerName} UI, specify that label in the metadata section of your customized pod specification in the container group.
-
++
[options="nowrap" subs="+quotes,attributes"]
----
apiVersion: v1
diff --git a/downstream/modules/platform/proc-troubleshoot-same-name.adoc b/downstream/modules/platform/proc-troubleshoot-same-name.adoc
index b5756e911f..2afdf8cf4b 100644
--- a/downstream/modules/platform/proc-troubleshoot-same-name.adoc
+++ b/downstream/modules/platform/proc-troubleshoot-same-name.adoc
@@ -10,6 +10,7 @@ The name specified for the new AutomationController custom resource must not mat
If your AutomationController customer resource matches an existing deployment, perform the following steps to resolve the issue.
.Procedure
+
. Delete the existing AutomationController and the associated postgres PVC:
+
-----
diff --git a/downstream/modules/platform/proc-uninstalling-containerized-aap.adoc b/downstream/modules/platform/proc-uninstalling-containerized-aap.adoc
index d900b7f72c..aef7669c0d 100644
--- a/downstream/modules/platform/proc-uninstalling-containerized-aap.adoc
+++ b/downstream/modules/platform/proc-uninstalling-containerized-aap.adoc
@@ -3,6 +3,7 @@
[id="uninstalling-containerized-aap"]
= Uninstalling containerized {PlatformNameShort}
+[role="_abstract"]
Uninstall your {ContainerBase} of {PlatformNameShort}.
.Prerequisites
diff --git a/downstream/modules/platform/proc-update-aap-container.adoc b/downstream/modules/platform/proc-update-aap-container.adoc
index 240528c6ff..03513bcdc5 100644
--- a/downstream/modules/platform/proc-update-aap-container.adoc
+++ b/downstream/modules/platform/proc-update-aap-container.adoc
@@ -3,9 +3,8 @@
= Updating containerized {PlatformNameShort}
-Perform a patch update for a {ContainerBase} of {PlatformNameShort} from 2.5 to 2.5.x.
-
-include::snippets/container-upgrades.adoc[]
+[role="_abstract"]
+Perform an upgrade of containerized {PlatformNameShort}.
.Prerequisites
diff --git a/downstream/modules/platform/proc-use-custom-ca-certs.adoc b/downstream/modules/platform/proc-use-custom-ca-certs.adoc
index ff193bd76e..b425367adb 100644
--- a/downstream/modules/platform/proc-use-custom-ca-certs.adoc
+++ b/downstream/modules/platform/proc-use-custom-ca-certs.adoc
@@ -3,6 +3,7 @@
[id="use-custom-ca-certs"]
= Using a custom CA to generate all TLS certificates
+[role="_abstract"]
Use this method when you want {PlatformNameShort} to generate all of the certificates, but you want them signed by a custom CA rather than the default self-signed certificates.
.Procedure
diff --git a/downstream/modules/platform/ref-adding-execution-nodes.adoc b/downstream/modules/platform/ref-adding-execution-nodes.adoc
index 6fae512a48..2b7aca1f97 100644
--- a/downstream/modules/platform/ref-adding-execution-nodes.adoc
+++ b/downstream/modules/platform/ref-adding-execution-nodes.adoc
@@ -1,11 +1,9 @@
-:_newdoc-version: 2.15.1
-:_template-generated: 2024-01-12
-
:_mod-docs-content-type: REFERENCE
[id="adding-execution-nodes_{context}"]
= Adding execution nodes
+[role="_abstract"]
Containerized {PlatformNameShort} can deploy remote execution nodes.
You can define remote execution nodes in the `[execution_nodes]` group of your inventory file:
diff --git a/downstream/modules/platform/ref-ansible-inventory-variables.adoc b/downstream/modules/platform/ref-ansible-inventory-variables.adoc
index 52d4eaf011..0834748f32 100644
--- a/downstream/modules/platform/ref-ansible-inventory-variables.adoc
+++ b/downstream/modules/platform/ref-ansible-inventory-variables.adoc
@@ -4,6 +4,7 @@
= Ansible variables
+[role="_abstract"]
The following variables control how {PlatformNameShort} interacts with remote hosts.
.Ansible variables
diff --git a/downstream/modules/platform/ref-assign-pods-to-nodes.adoc b/downstream/modules/platform/ref-assign-pods-to-nodes.adoc
index 9bdb82a788..cfc28cf2e6 100644
--- a/downstream/modules/platform/ref-assign-pods-to-nodes.adoc
+++ b/downstream/modules/platform/ref-assign-pods-to-nodes.adoc
@@ -30,7 +30,7 @@ For example, with the `maxSkew` parameter of this option set to `100`, this mean
So if there are three matching compute nodes and three pods, one pod will be assigned to each compute node.
This parameter helps prevent the control plane pods from competing for resources with each other.
-.Example of a custom configuration for constraining controller pods to specific nodes
+*Example of a custom configuration for constraining controller pods to specific nodes*
[options="nowrap" subs="+quotes,attributes"]
----
diff --git a/downstream/modules/platform/ref-automation-mesh-proxy.adoc b/downstream/modules/platform/ref-automation-mesh-proxy.adoc
index 152021bb4c..72dea081dd 100644
--- a/downstream/modules/platform/ref-automation-mesh-proxy.adoc
+++ b/downstream/modules/platform/ref-automation-mesh-proxy.adoc
@@ -3,7 +3,8 @@
[id="ref-automation-mesh-proxy"]
= Configuring proxy settings for {AutomationMesh}
-You can route outbound communication from the receptor on an {AutomatioinMesh} node through a proxy server.
+
+You can route outbound communication from the receptor on an {AutomationMesh} node through a proxy server.
If your proxy does not strip out TLS certificates then an installation of {PlatformNameShort} automatically supports the use of a proxy server.
Every node on the mesh must have a Certifying Authority that the installer creates on your behalf.
diff --git a/downstream/modules/platform/ref-aws-secrets-manager-lookup.adoc b/downstream/modules/platform/ref-aws-secrets-manager-lookup.adoc
index 906eccc013..92a5cf448b 100644
--- a/downstream/modules/platform/ref-aws-secrets-manager-lookup.adoc
+++ b/downstream/modules/platform/ref-aws-secrets-manager-lookup.adoc
@@ -7,7 +7,7 @@
This plugin enables {AWS} to be used as a credential input source to pull secrets from the {AWS} Secrets Manager.
The AWS Secrets Manager provides similar service to {Azure} Key Vault, and the AWS collection provides a lookup plugin for it.
-When AWS Secrets Manager lookup is selected for **Credential type**, give the following metadata to configure your lookup:
+When AWS Secrets Manager lookup is selected for *Credential type*, give the following metadata to configure your lookup:
* *AWS Access Key* (required): give the access key used for communicating with AWS key management system
* *AWS Secret Key* (required): give the secret as obtained by the AWS IAM console
diff --git a/downstream/modules/platform/ref-ccsp.adoc b/downstream/modules/platform/ref-ccsp.adoc
index be52239410..d18d04bb2b 100644
--- a/downstream/modules/platform/ref-ccsp.adoc
+++ b/downstream/modules/platform/ref-ccsp.adoc
@@ -5,74 +5,3 @@
= CCSP
`CCSP` is the original report format. It does not include many of the customization of CCSPv2, and it is intended to be used only for the CCSP partner program.
-
-== Optional collectors for `gather` command
-
-You can use the following optional collectors for the `gather` command:
-
-* `main_jobhostsummary`
-** If present by default, this incrementally collects the `main_jobhostsummary` table from the {ControllerName} database, containing information about jobs runs and managed nodes automated.
-* `main_host`
-** This collects daily snapshots of the `main_host` table from the {ControllerName} database and has managed nodes/hosts present across {ControllerName} inventories,
-* `main_jobevent`
-** This incrementally collects the `main_jobevent` table from the {ControllerName} database and contains information about which modules, roles, and ansible collections are being used.
-* main_indirectmanagednodeaudit
-** This incrementally collects the `main_indirectmanagednodeaudit` table from the {ControllerName} database and contains information about indirectly managed nodes,
-
-----
-# Example with all optional collectors
-export METRICS_UTILITY_OPTIONAL_COLLECTORS="main_host,main_jobevent,main_indirectmanagednodeaudit"
-----
-
-== Optional sheets for `build_report` command
-
-You may use the following optional sheets for the `build_report` command:
-
-* `ccsp_summary`
-** This is a landing page specifically for partners under the CCSP program. It shows managed node usage by each {ControllerName} organization.
-** This report takes additional parameters to customize the summary page. For more information, see the following example:
-
-----
-export METRICS_UTILITY_PRICE_PER_NODE=11.55 # in USD
-export METRICS_UTILITY_REPORT_SKU=MCT3752MO
-export METRICS_UTILITY_REPORT_SKU_DESCRIPTION="EX: Red Hat Ansible Automation Platform, Full Support (1 Managed Node, Dedicated, Monthly)"
-export METRICS_UTILITY_REPORT_H1_HEADING="CCSP Reporting : ANSIBLE Consumption"
-export METRICS_UTILITY_REPORT_COMPANY_NAME="Company Name"
-export METRICS_UTILITY_REPORT_EMAIL="email@email.com"
-export METRICS_UTILITY_REPORT_RHN_LOGIN="test_login"
-export METRICS_UTILITY_REPORT_COMPANY_BUSINESS_LEADER="BUSINESS LEADER"
-export METRICS_UTILITY_REPORT_COMPANY_PROCUREMENT_LEADER="PROCUREMENT LEADER"
-----
-
-* `managed_nodes`
-** This is a deduplicated list of managed nodes automated by {ControllerName}.
-* `indirectly_managed_nodes`
-** This is a deduplicated list of indirect managed nodes automated by {ControllerName}.
-* `inventory_scope`
-** This is a deduplicated list of managed nodes present across all inventories of {ControllerName}.
-* `usage_by_collections`
-** This is a list of Ansible collections used in {ControllerName} job runs.
-* `usage_by_roles`
-** This is a list of roles used in {ControllerName} job runs.
-*`usage_by_modules`
-** This is a list of modules used in {ControllerName}job runs.
-
-----
-# Example with all optional sheets
-export METRICS_UTILITY_OPTIONAL_CCSP_REPORT_SHEETS='ccsp_summary,managed_nodes,indirectly_managed_nodes,inventory_scope,usage_by_collections,usage_by_roles,usage_by_modules'
-----
-
-== Selecting a date range for your CCSP report
-
-The default behavior of this report is to build a report for the previous month. The following examples describe how to override this default behavior to select a specific date range for your report:
-
-----
-# Builds report for a previous month
-metrics-utility build_report
-
-# Build report for a specific month
-metrics-utility build_report --month=2025-03
-
-# Build report for a specific month overriding an existing report
-metrics-utility build_report --month=2025-03 --force
-----
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-ccspv2.adoc b/downstream/modules/platform/ref-ccspv2.adoc
index 8964526159..56de2a7c2d 100644
--- a/downstream/modules/platform/ref-ccspv2.adoc
+++ b/downstream/modules/platform/ref-ccspv2.adoc
@@ -12,104 +12,4 @@ CCSPv2 is a report which shows the following:
The primary use of this report is for partners under the link:https://connect.redhat.com/en/programs/certified-cloud-service-provider[CCSP] program, but all customers can use it to obtain on-premise reporting showing managed nodes, jobs and content usage across their {ControllerName} organizations.
-Set the report type using `METRICS_UTILITY_REPORT_TYPE=CCSPv2`.
-
-== Optional collectors for `gather` command
-
-You can use the following optional collectors for the `gather` command:
-
-* `main_jobhostsummary`
-** If present by default, this incrementally collects data from the `main_jobhostsummary` table in the {ControllerName} database, containing information about jobs runs and managed nodes automated.
-* `main_host`
-** This collects daily snapshots of the `main_host` table in the {ControllerName} database and has managed nodes and hosts present across {ControllerName} inventories.
-* `main_jobevent`
-** This incrementally collects data from the `main_jobevent` table in the {ControllerName} database and contains information about which modules, roles, and Ansible collections are being used.
-* `main_indirectmanagednodeaudit`
-** This incrementally collects data from the `main_indirectmanagednodeaudit` table in the {ControllerName} database and contains information about indirectly managed nodes.
-
-----
-# Example with all optional collectors
-export METRICS_UTILITY_OPTIONAL_COLLECTORS="main_host,main_jobevent,main_indirectmanagednodeaudit"
-----
-
-== Optional sheets for `build_report` command
-
-You can use the following optional sheets for the `build_report` command:
-
-* `ccsp_summary`
-** This is a landing page specifically for partners under CCSP program.
-This report takes additional parameters to customize the summary page. For more information, see the following example:
-+
-----
-export METRICS_UTILITY_PRICE_PER_NODE=11.55 # in USD
-export METRICS_UTILITY_REPORT_SKU=MCT3752MO
-export METRICS_UTILITY_REPORT_SKU_DESCRIPTION="EX: Red Hat Ansible Automation Platform, Full Support (1 Managed Node, Dedicated, Monthly)"
-export METRICS_UTILITY_REPORT_H1_HEADING="CCSP NA Direct Reporting Template"
-export METRICS_UTILITY_REPORT_COMPANY_NAME="Partner A"
-export METRICS_UTILITY_REPORT_EMAIL="email@email.com"
-export METRICS_UTILITY_REPORT_RHN_LOGIN="test_login"
-export METRICS_UTILITY_REPORT_PO_NUMBER="123"
-export METRICS_UTILITY_REPORT_END_USER_COMPANY_NAME="Customer A"
-export METRICS_UTILITY_REPORT_END_USER_CITY="Springfield"
-export METRICS_UTILITY_REPORT_END_USER_STATE="TX"
-export METRICS_UTILITY_REPORT_END_USER_COUNTRY="US"
-----
-* `jobs`
-** This is a list of {ControllerName} jobs launched. It is grouped by job template.
-* `managed_nodes`
-** This is a deduplicated list of managed nodes automated by {ControllerName}.
-* `indirectly_managed_nodes`
-** This is a deduplicated list of indirect managed nodes automated by {ControllerName}.
-* `inventory_scope`
-** This is a deduplicated list of managed nodes present across all inventories of {ControllerName}.
-* `usage_by_organizations`
-** This is a list of all {ControllerName} organizations with several metrics showing the organizations usage. This provides data suitable for doing internal chargeback.
-* `usage_by_collections`
-** This is a list of Ansible collections used in a {ControllerName} job runs.
-* `usage_by_roles`
-** This is a list of roles used in {ControllerName} job runs.
-* `usage_by_modules`
-** This is a list of modules used in {ControllerName} job runs.
-* `managed_nodes_by_organization`
-** This generates a sheet per organization, listing managed nodes for every organization with the same content as the managed_nodes sheet.
-* `data_collection_status`
-** This generates a sheet with the status of every data collection done by the `gather` command for the date range the report is built for.
-
-To outline the quality of data collected it also lists:
-
-*** unusual gaps between collections (based on collection_start_timestamp)
-*** gaps in collected intervals (based on since vs until)
-+
-----
-# Example with all optional sheets
-export METRICS_UTILITY_OPTIONAL_CCSP_REPORT_SHEETS='ccsp_summary,jobs,managed_nodes,indirectly_managed_nodes,inventory_scope,usage_by_organizations,usage_by_collections,usage_by_roles,usage_by_modules,data_collection_status'
-----
-
-== Filtering reports by organization
-To filter your report so that only certain organizations are present, use this environment variable with a semicolon separated list of organization names.
-
-`export METRICS_UTILITY_ORGANIZATION_FILTER="ACME;Organization 1"`
-
-This renders only the data from these organizations in the built report. This filter currently does not have any effect on the following optional sheets:
-
-* `usage_by_collections`
-* `usage_by_roles`
-* `usage_by_modules`
-
-== Selecting a date range for your CCSPv2 report
-
-The default behavior of the CCSPv2 report is to build a report for the previous month. The following examples describe how to override this default behavior to select a specific date range for your report:
-
-----
-# Build report for a specific month
-metrics-utility build_report --month=2025-03
-
-# Build report for a specific date range, icluding the prvided days
-metrics-utility build_report --since=2025-03-01 --until=2025-03-31
-
-# Build report for a last 6 months from a current date
-metrics-utility build_report --since=6months
-
-# Build report for a last 6 months from a current date overriding an exisitng report
-metrics-utility build_report --since=6months --force
-----
\ No newline at end of file
+Set the report type using `METRICS_UTILITY_REPORT_TYPE=CCSPv2`.
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-configuring-inventory-file.adoc b/downstream/modules/platform/ref-configuring-inventory-file.adoc
index f2a95d0caa..862a816ec5 100644
--- a/downstream/modules/platform/ref-configuring-inventory-file.adoc
+++ b/downstream/modules/platform/ref-configuring-inventory-file.adoc
@@ -3,6 +3,7 @@
[id="configuring-inventory-file"]
= Configuring the inventory file
+[role="_abstract"]
You can control the installation of {PlatformNameShort} with inventory files. Inventory files define the information needed to customize the installation. For example, host details, certificate details, and various component-specific settings.
Example inventory files are available in this document that you can copy and change to quickly get started.
@@ -41,14 +42,3 @@ include::snippets/inventory-cont-b-env-a.adoc[]
.Additional resources
* link:{URLTopologies}/container-topologies#infrastructure_topology_6[Container {EnterpriseTopology}]
* link:{URLPlanningGuide}/ha-redis_planning[Caching and queueing system]
-
-
-== Performing an offline or bundled installation
-
-To perform an offline installation, add the following under the `[all:vars]` group:
-
-----
-bundle_install=true
-# The bundle directory must include /bundle in the path
-bundle_dir=
-----
diff --git a/downstream/modules/platform/ref-cont-aap-system-requirements.adoc b/downstream/modules/platform/ref-cont-aap-system-requirements.adoc
index 9a746d1bad..9502c3c085 100644
--- a/downstream/modules/platform/ref-cont-aap-system-requirements.adoc
+++ b/downstream/modules/platform/ref-cont-aap-system-requirements.adoc
@@ -4,6 +4,7 @@
= System requirements
+[role="_abstract"]
Use this information when planning your installation of containerized {PlatformNameShort}.
== Prerequisites
diff --git a/downstream/modules/platform/ref-containerized-troubleshoot-config.adoc b/downstream/modules/platform/ref-containerized-troubleshoot-config.adoc
index 2dc10a8ec6..8f4211e9a8 100644
--- a/downstream/modules/platform/ref-containerized-troubleshoot-config.adoc
+++ b/downstream/modules/platform/ref-containerized-troubleshoot-config.adoc
@@ -3,6 +3,9 @@
= Troubleshooting containerized {PlatformNameShort} configuration
+[role="_abstract"]
+Use this information to troubleshoot your containerized {PlatformNameShort} configuration.
+
*Sometimes the post install for seeding my {PlatformNameShort} content errors out*
This could manifest itself as output similar to this:
diff --git a/downstream/modules/platform/ref-containerized-troubleshoot-diagnosing.adoc b/downstream/modules/platform/ref-containerized-troubleshoot-diagnosing.adoc
index fb8d42e8f5..e4884292c3 100644
--- a/downstream/modules/platform/ref-containerized-troubleshoot-diagnosing.adoc
+++ b/downstream/modules/platform/ref-containerized-troubleshoot-diagnosing.adoc
@@ -3,6 +3,7 @@
= Diagnosing the problem
+[role="_abstract"]
For general container-based troubleshooting, you can inspect the container logs for any running service to help troubleshoot underlying issues.
*Identifying the running containers*
@@ -13,36 +14,91 @@ To get a list of the running container names run the following command:
$ podman ps --all --format "{{.Names}}"
----
-Example output:
-
-----
-postgresql
-redis-unix
-redis-tcp
-receptor
-automation-controller-rsyslog
-automation-controller-task
-automation-controller-web
-automation-eda-api
-automation-eda-daphne
-automation-eda-web
-automation-eda-worker-1
-automation-eda-worker-2
-automation-eda-activation-worker-1
-automation-eda-activation-worker-2
-automation-eda-scheduler
-automation-gateway-proxy
-automation-gateway
-automation-hub-api
-automation-hub-content
-automation-hub-web
-automation-hub-worker-1
-automation-hub-worker-2
-----
+.Container details
+[options="header" cols="1,1,2"]
+|===
+|Component group |Container name |Purpose
+
+|{ControllerNameStart}
+|`automation-controller-rsyslog`
+|Handles centralized logging for {ControllerName}.
+
+|{ControllerNameStart}
+|`automation-controller-task`
+|Manages and runs tasks related to {ControllerName}, such as running playbooks and interacting with inventories.
+
+|{ControllerNameStart}
+|`automation-controller-web`
+|A web server that provides a REST API for {ControllerName}. This is accessed and routed through {Gateway} for user interaction.
+
+|{EDAName}
+|`automation-eda-api`
+|Exposes the API for {EDAName}, allowing external systems to trigger and manage event-driven automations.
+
+|{EDAName}
+|`automation-eda-daphne`
+|A web server for {EDAName}, handling WebSocket connections and serving static files.
+
+|{EDAName}
+|`automation-eda-web`
+|A web server that provides a REST API for {EDAName}. This is accessed and routed through {Gateway} for user interaction.
+
+|{EDAName}
+|`automation-eda-worker-`
+|These containers run the automation rules and playbooks based on incoming events.
+
+|{EDAName}
+|`automation-eda-activation-worker-`
+|These containers manage the activation of automation rules, ensuring they run when specific conditions are met.
+
+|{EDAName}
+|`automation-eda-scheduler`
+|Responsible for scheduling and managing recurring tasks and rule activations.
+
+|{GatewayStart}
+|`automation-gateway-proxy`
+|Acts as a reverse proxy, routing incoming requests to the appropriate {PlatformNameShort} services.
+
+|{GatewayStart}
+|`automation-gateway`
+|Responsible for authentication, authorization, and overall request handling for the platform, all of which is exposed through a REST API and served by a web server.
+
+|{HubNameStart}
+|`automation-hub-api`
+|Provides the API for {HubName}, enabling interaction with collection content, user management, and other {HubName} functionality.
+
+|{HubNameStart}
+|`automation-hub-content`
+|Manages and serves Ansible Content Collections, roles, and modules stored in {HubName}.
+
+|{HubNameStart}
+|`automation-hub-web`
+|A web server that provides a REST API for {HubName}. This is accessed and routed through {Gateway} for user interaction.
+
+|{HubNameStart}
+|`automation-hub-worker-`
+|These containers handle background tasks for {HubName}, such as content synchronization, indexing, and validation.
+
+|Performance Co-Pilot
+|`pcp`
+|If Performance Co-Pilot Monitoring is enabled, this container is used for system performance monitoring and data collection.
+
+|PostgreSQL
+|`postgresql`
+|Hosts the PostgreSQL database for {PlatformNameShort}.
+
+|Receptor
+|`receptor`
+|Facilitates secure and reliable communication within {PlatformNameShort}.
+
+|Redis
+|`redis-`
+|Responsible for caching, real-time analytics and fast data retrieval.
+|===
*Inspecting the logs*
-To inspect any running container logs, run the `journalctl` command:
+Containerized {PlatformNameShort} uses `journald` for Podman logging. To inspect any running container logs, run the `journalctl` command:
----
$ journalctl CONTAINER_NAME=
diff --git a/downstream/modules/platform/ref-containerized-troubleshoot-install.adoc b/downstream/modules/platform/ref-containerized-troubleshoot-install.adoc
index b5e829eb53..2dd4ef0ddd 100644
--- a/downstream/modules/platform/ref-containerized-troubleshoot-install.adoc
+++ b/downstream/modules/platform/ref-containerized-troubleshoot-install.adoc
@@ -3,6 +3,9 @@
= Troubleshooting containerized {PlatformNameShort} installation
+[role="_abstract"]
+Use this information to troubleshoot your containerized installation of {PlatformNameShort}.
+
*The installation takes a long time, or has errors, what should I check?*
. Ensure your system meets the minimum requirements as outlined in link:{URLContainerizedInstall}/aap-containerized-installation#system-requirements[System requirements]. Factors such as improper storage choices and high latency when distributing across many hosts will all have an impact on installation time.
diff --git a/downstream/modules/platform/ref-containerized-troubleshoot-ref.adoc b/downstream/modules/platform/ref-containerized-troubleshoot-ref.adoc
index 0fc287132a..461e76a0cd 100644
--- a/downstream/modules/platform/ref-containerized-troubleshoot-ref.adoc
+++ b/downstream/modules/platform/ref-containerized-troubleshoot-ref.adoc
@@ -4,35 +4,16 @@
= Containerized {PlatformNameShort} reference
+[role="_abstract"]
+Use this information to understand the architecture for your containerized {PlatformNameShort} deployment.
+
*Can you give details of the architecture for the {PlatformNameShort} containerized design?*
We use as much of the underlying native {RHEL} technology as possible. Podman is used for the container runtime and management of services.
-Use `podman ps` to list the running containers on the system:
-
-----
-$ podman ps
-
-CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
-88ed40495117 registry.redhat.io/rhel8/postgresql-13:latest run-postgresql 48 minutes ago Up 47 minutes postgresql
-8f55ba612f04 registry.redhat.io/rhel8/redis-6:latest run-redis 47 minutes ago Up 47 minutes redis
-56c40445c590 registry.redhat.io/ansible-automation-platform-24/ee-supported-rhel8:latest /usr/bin/receptor... 47 minutes ago Up 47 minutes receptor
-f346f05d56ee registry.redhat.io/ansible-automation-platform-24/controller-rhel8:latest /usr/bin/launch_a... 47 minutes ago Up 45 minutes automation-controller-rsyslog
-26e3221963e3 registry.redhat.io/ansible-automation-platform-24/controller-rhel8:latest /usr/bin/launch_a... 46 minutes ago Up 45 minutes automation-controller-task
-c7ac92a1e8a1 registry.redhat.io/ansible-automation-platform-24/controller-rhel8:latest /usr/bin/launch_a... 46 minutes ago Up 28 minutes automation-controller-web
-----
+Use `podman ps` to list the running containers on the system.
-Use `podman images` to display information about locally stored images:
-
-----
-$ podman images
-
-REPOSITORY TAG IMAGE ID CREATED SIZE
-registry.redhat.io/ansible-automation-platform-24/ee-supported-rhel8 latest b497bdbee59e 10 days ago 3.16 GB
-registry.redhat.io/ansible-automation-platform-24/controller-rhel8 latest ed8ebb1c1baa 10 days ago 1.48 GB
-registry.redhat.io/rhel8/redis-6 latest 78905519bb05 2 weeks ago 357 MB
-registry.redhat.io/rhel8/postgresql-13 latest 9b65bc3d0413 2 weeks ago 765 MB
-----
+Use `podman images` to display information about locally stored images.
Containerized {PlatformNameShort} runs as rootless containers for enhanced security by default. This means you can install containerized {PlatformNameShort} by using any local unprivileged user account. Privilege escalation is only needed for certain root level tasks, and by default is not needed to use root directly.
diff --git a/downstream/modules/platform/ref-controller-activity-stream-schema.adoc b/downstream/modules/platform/ref-controller-activity-stream-schema.adoc
index f27fbccc62..00a1db719c 100644
--- a/downstream/modules/platform/ref-controller-activity-stream-schema.adoc
+++ b/downstream/modules/platform/ref-controller-activity-stream-schema.adoc
@@ -4,7 +4,7 @@
= Activity stream schema
-This uses the fields common to all loggers listed in xref:ref-controller-log-message-schema[Log message schema].
+This uses the fields common to all loggers listed in link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlatformVers)/html/configuring_automation_execution/assembly-controller-logging-aggregation#ref-controller-log-message-schema[Log message schema].
It has the following additional fields:
@@ -12,4 +12,10 @@ It has the following additional fields:
* `changes`: JSON summary of what fields changed, and their old or new values.
* `operation`: The basic category of the changes logged in the activity stream, for instance, "associate".
* `object1`: Information about the primary object being operated on, consistent with what is shown in the activity stream.
-* `object2`: If applicable, the second object involved in the action.
\ No newline at end of file
+* `object2`: If applicable, the second object involved in the action.
+
+This logger reflects the data being saved into job events, except when they would otherwise conflict with expected standard fields from the logger, in which case the fields are nested.
+Notably, the field host on the `job_event` model is given as `event_host`.
+There is also a sub-dictionary field, `event_data` within the payload, which contains different fields depending on the specifics of the Ansible event.
+
+This logger also includes the common fields in link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-logging-aggregation#ref-controller-log-message-schema[Log message schema].[Log message schema].
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-controller-available-resources.adoc b/downstream/modules/platform/ref-controller-available-resources.adoc
index 09bdd0c4a8..2e941b3d46 100644
--- a/downstream/modules/platform/ref-controller-available-resources.adoc
+++ b/downstream/modules/platform/ref-controller-available-resources.adoc
@@ -8,6 +8,6 @@ Several resources exist in {ControllerName} and elsewhere to ensure a secure pla
Consider using the following functionalities:
//* xref:controller-audit-functionality[Audit and logging functionality]
-* xref:controller-existing-security[Existing security functionality]
-* xref:controller-external-account-stores[External account stores]
-* xref:controller-django-password-policies[Django password policies]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/configuring_automation_execution/controller-security-best-practices#controller-existing-security[Existing security functionality]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/configuring_automation_execution/controller-security-best-practices#controller-external-account-stores[External account stores]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/configuring_automation_execution/controller-security-best-practices#controller-django-password-policies[Django password policies]
diff --git a/downstream/modules/platform/ref-controller-backup-restore-clustered-environments.adoc b/downstream/modules/platform/ref-controller-backup-restore-clustered-environments.adoc
index f23fb4535a..a75883f49d 100644
--- a/downstream/modules/platform/ref-controller-backup-restore-clustered-environments.adoc
+++ b/downstream/modules/platform/ref-controller-backup-restore-clustered-environments.adoc
@@ -8,12 +8,12 @@ The procedure for backup and restore for a clustered environment is similar to a
[NOTE]
====
-For more information on installing clustered environments, see the xref:controller-cluster-install[Install and configure] section.
+For more information about installing clustered environments, see the xref:controller-cluster-install[Install and configure] section.
====
* If restoring to a new cluster, ensure that the old cluster is shut down before proceeding because they can conflict with each other when accessing the database.
* Per-node backups are only restored to nodes bearing the same hostname as the backup.
-* When restoring to an existing cluster, the restore contains the following:
+* When restoring to an existing cluster, the restore has the following:
** A dump of the PostgreSQL database
** UI artifacts, included in the database dump
diff --git a/downstream/modules/platform/ref-controller-backup-restore-considerations.adoc b/downstream/modules/platform/ref-controller-backup-restore-considerations.adoc
index 97b1c1df82..9e8d81c16f 100644
--- a/downstream/modules/platform/ref-controller-backup-restore-considerations.adoc
+++ b/downstream/modules/platform/ref-controller-backup-restore-considerations.adoc
@@ -20,7 +20,7 @@ The {PlatformNameShort} database backups are staged on each node at `/var/backup
Version:: You must always use the most recent minor version of a release to backup or restore your {PlatformNameShort} installation version.
For example, if the current platform version you are on is 2.0.x, only use the latest 2.0 installer.
-File path:: When using `setup.sh` in order to do a restore from the default restore file path, `/var/lib/awx`, `-r` is still required in order to do the restore, but it no longer accepts an argument.
+File path:: When using `setup.sh` to do a restore from the default restore file path, `/var/lib/awx`, `-r` is still required to do the restore, but it no longer accepts an argument.
If a non-default restore file path is needed, you must provide this as an extra_var (`root@localhost:~# ./setup.sh -e 'restore_backup_file=/path/to/nondefault/backup.tar.gz' -r`).
Directory:: If the backup file is placed in the same directory as the `setup.sh` installer, the restore playbook automatically locates the restore files.
diff --git a/downstream/modules/platform/ref-controller-cleanup-old-data.adoc b/downstream/modules/platform/ref-controller-cleanup-old-data.adoc
index 87f598adb7..c13bcbb260 100644
--- a/downstream/modules/platform/ref-controller-cleanup-old-data.adoc
+++ b/downstream/modules/platform/ref-controller-cleanup-old-data.adoc
@@ -7,16 +7,10 @@
`awx-manage` has a variety of commands used to clean old data from {ControllerName}.
{ControllerNameStart} administrators can use the {ControllerName} *Management Jobs* interface for access or use the command line.
-[literal, options="nowrap" subs="+attributes"]
-----
-awx-manage cleanup_jobs [--help]
-----
+* `awx-manage cleanup_jobs [--help]`
This permanently deletes the job details and job output for jobs older than a specified number of days.
-[literal, options="nowrap" subs="+attributes"]
-----
-awx-manage cleanup_activitystream [--help]
-----
+* `awx-manage cleanup_activitystream [--help]`
This permanently deletes any [Activity stream] data older than a specific number of days.
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-controller-cluster-management.adoc b/downstream/modules/platform/ref-controller-cluster-management.adoc
index 9e44018426..ca7d31c048 100644
--- a/downstream/modules/platform/ref-controller-cluster-management.adoc
+++ b/downstream/modules/platform/ref-controller-cluster-management.adoc
@@ -4,7 +4,7 @@
= Cluster management
-For more information about the `awx-manage provision_instance` and `awx-manage deprovision_instance` commands, see xref:controller-clustering[Clustering].
+For more information about the `awx-manage provision_instance` and `awx-manage deprovision_instance` commands, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/controller-clustering[Clustering].
[NOTE]
====
diff --git a/downstream/modules/platform/ref-controller-connection-security.adoc b/downstream/modules/platform/ref-controller-connection-security.adoc
new file mode 100644
index 0000000000..7a5e8b41a4
--- /dev/null
+++ b/downstream/modules/platform/ref-controller-connection-security.adoc
@@ -0,0 +1,18 @@
+:_mod-docs-content-type: REFERENCE
+
+[id="ref-controller-connection-security"]
+
+= Connection security
+
+{ControllerNameStart} allows for connections to internal services, external access, and managed nodes.
+
+[NOTE]
+====
+You must have 'local' user access for the following users:
+
+* postgres
+* awx
+* redis
+* receptor
+* nginx
+====
diff --git a/downstream/modules/platform/ref-controller-credential-hashiCorp-vault.adoc b/downstream/modules/platform/ref-controller-credential-hashiCorp-vault.adoc
index 615276f5db..593d389330 100644
--- a/downstream/modules/platform/ref-controller-credential-hashiCorp-vault.adoc
+++ b/downstream/modules/platform/ref-controller-credential-hashiCorp-vault.adoc
@@ -6,4 +6,4 @@
This is considered part of the secret management capability.
-For more information, see link:{URLControllerAdminGuide}/controller-credentials#ref-controller-credential-hasiCorp-secret[HashiCorp Vault Signed SSH].
\ No newline at end of file
+For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-secret-management#ref-hashicorp-vault-lookup[HashiCorp Vault Signed SSH].
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-controller-credential-network.adoc b/downstream/modules/platform/ref-controller-credential-network.adoc
index 5d183bb299..d43a982467 100644
--- a/downstream/modules/platform/ref-controller-credential-network.adoc
+++ b/downstream/modules/platform/ref-controller-credential-network.adoc
@@ -14,7 +14,7 @@ When connecting to network devices, the credential type must match the connectio
* For `local` connections using `provider`, credential type should be *Network*.
* For all other network connections (`httpapi`, `netconf`, and `network_cli`), the credential type should be *Machine*.
-For more information about connection types available for network devices, see link:{URLControllerUserGuide}/using_automation_execution/controller-credentials#ref-controller-multiple-connection-protocols[Multiple Communication Protocols].
+For more information about connection types available for network devices, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/using_automation_execution/controller-credentials#ref-controller-multiple-connection-protocols[Multiple Communication Protocols].
{ControllerNameStart} uses the following environment variables for Network credentials:
diff --git a/downstream/modules/platform/ref-controller-django-password-policies.adoc b/downstream/modules/platform/ref-controller-django-password-policies.adoc
index 7b5ac56f4c..f1ab53d0fd 100644
--- a/downstream/modules/platform/ref-controller-django-password-policies.adoc
+++ b/downstream/modules/platform/ref-controller-django-password-policies.adoc
@@ -28,8 +28,10 @@ AUTH_PASSWORD_VALIDATORS = [
]
----
+Ensure that you restart your {ControllerName} instance for the change to take effect.
+For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/controller-start-stop-controller[Start, stop, and restart {ControllerName}].
+
+[role="_additional-resources"]
.Additional resources
-* For more information, see link:https://docs.djangoproject.com/en/3.2/topics/auth/passwords/#module-django.contrib.auth.password_validation[Password validation] in Django in addition to the preceding example.
-* Ensure that you restart your {ControllerName} instance for the change to take effect.
-For more information, see xref:controller-start-stop-controller[Start, stop, and restart {ControllerName}].
+link:https://docs.djangoproject.com/en/3.2/topics/auth/passwords/#module-django.contrib.auth.password_validation[Password validation]
diff --git a/downstream/modules/platform/ref-controller-existing-security.adoc b/downstream/modules/platform/ref-controller-existing-security.adoc
index 5825764461..ca05087742 100644
--- a/downstream/modules/platform/ref-controller-existing-security.adoc
+++ b/downstream/modules/platform/ref-controller-existing-security.adoc
@@ -4,9 +4,9 @@
= Existing security functionality
-Do not disable SELinux or {ControllerName}'s existing multi-tenant containment.
-Use {ControllerName}'s role-based access control (RBAC) to delegate the minimum level of privileges required to run automation.
-Use teams in {ControllerName} to assign permissions to groups of users rather than to users individually.
+Note the following:
+
+* Do not disable SELinux or {ControllerName}'s existing multi-tenant containment.
+* Use {ControllerName}'s role-based access control (RBAC) to delegate the minimum level of privileges required to run automation. For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/access_management_and_authentication/gw-managing-access[Managing access with role based access control]
+* Use teams in {ControllerName} to assign permissions to groups of users rather than to users individually.
-.Additional resources
-For more information, see link:https://docs.ansible.com/automation-controller/4.4/html/userguide/security.html#rbac-ug[Role-Based Access Controls] in _{ControllerUG}_.
diff --git a/downstream/modules/platform/ref-controller-external-access.adoc b/downstream/modules/platform/ref-controller-external-access.adoc
index 774e3f97f5..223b3e2f63 100644
--- a/downstream/modules/platform/ref-controller-external-access.adoc
+++ b/downstream/modules/platform/ref-controller-external-access.adoc
@@ -4,7 +4,7 @@
= External access
-{ControllerNameStart} is accessed via standard HTTP/HTTPS on standard ports, provided by Nginx.
+{ControllerNameStart} is accessed using standard HTTP/HTTPS on standard ports, provided by Nginx.
A self-signed certificate or key is installed by default; you can provide a locally appropriate certificate and key.
SSL/TLS algorithm support is configured in the `/etc/nginx/nginx.conf` configuration file.
An "intermediate" profile is used by default, that you can configure.
diff --git a/downstream/modules/platform/ref-controller-inventory-import.adoc b/downstream/modules/platform/ref-controller-inventory-import.adoc
index 75309c9bab..a032eb8c0d 100644
--- a/downstream/modules/platform/ref-controller-inventory-import.adoc
+++ b/downstream/modules/platform/ref-controller-inventory-import.adoc
@@ -10,19 +10,13 @@ To use `awx-manage` properly, you must first create an inventory in {ControllerN
For help with `awx-manage`, run the following command:
-[literal, options="nowrap" subs="+attributes"]
-----
-awx-manage inventory_import [--help]
-----
+`awx-manage inventory_import [--help]`
The `inventory_import` command synchronizes an {ControllerName} inventory object with a text-based inventory file, dynamic inventory script, or a directory of one or more, as supported by core Ansible.
When running this command, specify either an `--inventory-id` or `--inventory-name`, and the path to the Ansible inventory source (`--source`).
-[literal, options="nowrap" subs="+attributes"]
-----
-awx-manage inventory_import --source=/ansible/inventory/ --inventory-id=1
-----
+`awx-manage inventory_import --source=/ansible/inventory/ --inventory-id=1`
By default, inventory data already stored in {ControllerName} blends with data from the external source.
@@ -32,10 +26,7 @@ To specify that any existing hosts get variable data exclusively from the `--sou
The default behavior adds any new variables from the external source, overwriting keys that already exist, but preserving any variables that were not sourced from the external data source.
-[literal, options="nowrap" subs="+attributes"]
-----
-awx-manage inventory_import --source=/ansible/inventory/ --inventory-id=1 --overwrite
-----
+`awx-manage inventory_import --source=/ansible/inventory/ --inventory-id=1 --overwrite`
[NOTE]
====
diff --git a/downstream/modules/platform/ref-controller-job-status-changes.adoc b/downstream/modules/platform/ref-controller-job-status-changes.adoc
index 03d76f4650..edb153c795 100644
--- a/downstream/modules/platform/ref-controller-job-status-changes.adoc
+++ b/downstream/modules/platform/ref-controller-job-status-changes.adoc
@@ -6,4 +6,4 @@
This is a lower-volume source of information about changes in job states compared to job events, and captures changes to types of unified jobs other than job template based jobs.
-This logger also includes the common fields in xref:ref-controller-log-message-schema[Log message schema] and fields present on the job model.
\ No newline at end of file
+This logger also includes the common fields in link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlatformVers}/html/configuring_automation_execution/assembly-controller-logging-aggregation#ref-controller-log-message-schema[Log message schema] and fields present on the job model.
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-controller-log-aggregators.adoc b/downstream/modules/platform/ref-controller-log-aggregators.adoc
index f40c63560d..a782e81095 100644
--- a/downstream/modules/platform/ref-controller-log-aggregators.adoc
+++ b/downstream/modules/platform/ref-controller-log-aggregators.adoc
@@ -6,7 +6,7 @@
The logging aggregator service works with the following monitoring and data analysis systems:
-* xref:ref-controller-logging-splunk[Splunk]
-* xref:ref-controller-logging-loggly[Loggly]
-* xref:ref-controller-logging-sumologic[Sumologic]
-* xref:ref-controller-logging-elastic-stack[Elastic Stack (formerly ELK stack)]
\ No newline at end of file
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlatformVers}/html/configuring_automation_execution/assembly-controller-logging-aggregation#ref-controller-logging-splunk[Splunk]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlatformVers}/html/configuring_automation_execution/assembly-controller-logging-aggregation#ref-controller-logging-loggly[Loggly]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlatformVers}/html/configuring_automation_execution/assembly-controller-logging-aggregation#ref-controller-logging-sumologic[Sumologic]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlaformVers}/html/configuring_automation_execution/assembly-controller-logging-aggregation#ref-controller-logging-elastic-stack[Elastic Stack (formerly ELK stack)]
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-controller-log-files-containerized.adoc b/downstream/modules/platform/ref-controller-log-files-containerized.adoc
new file mode 100644
index 0000000000..4a77368e2f
--- /dev/null
+++ b/downstream/modules/platform/ref-controller-log-files-containerized.adoc
@@ -0,0 +1,15 @@
+:_mod-docs-content-type: REFERENCE
+
+[id="ref-controller-log-files-containerized"]
+
+= Accessing {ControllerName} logs for containerized {PlatformNameShort}
+
+Logs for containerized {PlatformNameShort} are not saved to specific files. The application logs are sent to the container `stdout` and handled by Podman with `journald`.
+
+The three containers associated with {ControllerName} are:
+
+* `automation-controller-rsyslog`
+* `automation-controller-task`
+* `automation-controller-web`
+
+For more information about the purpose of each of these containers and how to inspect the logs, see link:{URLContainerizedInstall}/troubleshooting-containerized-ansible-automation-platform#diagnosing-the-problem_troubleshooting-containerized-aap[Diagnosing the problem] in _{TitleContainerizedInstall}_.
diff --git a/downstream/modules/platform/ref-controller-log-files.adoc b/downstream/modules/platform/ref-controller-log-files.adoc
new file mode 100644
index 0000000000..9880379890
--- /dev/null
+++ b/downstream/modules/platform/ref-controller-log-files.adoc
@@ -0,0 +1,56 @@
+:_mod-docs-content-type: REFERENCE
+
+[id="ref-controller-log-files"]
+
+= Accessing {ControllerName} logs for RPM-based {PlatformNameShort}
+
+{ControllerNameStart} logfiles can be accessed from two centralized locations:
+
+* `/var/log/tower/`
+* `/var/log/supervisor/`
+
+In the `/var/log/tower/` directory, you can view logfiles captured by:
+
+* *tower.log:* Captures the log messages such as runtime errors that occur when the job is executed.
+* *callback_receiver.log:* Captures callback receiver logs that handles callback events when running ansible jobs.
+* *dispatcher.log:* Captures log messages for the {ControllerName} dispatcher worker service.
+* *job_lifecycle.log:* Captures details of the job run, whether it is blocked, and what condition is blocking it.
+* *management_playbooks.log:* Captures the logs of management playbook runs, and isolated job runs such as copying the metadata.
+* *rsyslog.err:* Captures rsyslog errors authenticating with external logging services when sending logs to them.
+* *task_system.log:* Captures the logs of tasks that {ControllerName} is running in the background, such as adding cluster instances and logs related to information gathering or processing for analytics.
+* *tower_rbac_migrations.log:* Captures the logs for rbac database migration or upgrade.
+* *tower_system_tracking_migrations.log:* Captures the logs of the controller system tracking migration or upgrade.
+* *wsbroadcast.log:* Captures the logs of websocket connections in the controller nodes.
+
+In the `/var/log/supervisor/` directory, you can view logfiles captured by:
+
+* *awx-callback-receiver.log:* Captures the log of callback receiver that handles callback events when running ansible jobs, managed by `supervisord`.
+* *awx-daphne.log:* Captures the logs of Websocket communication of WebUI.
+* *awx-dispatcher.log:* Captures the logs that occur when dispatching a task to an {ControllerName} instance, such as when running a job.
+* *awx-rsyslog.log:* Captures the logs for the `rsyslog` service.
+* *awx-uwsgi.log:* Captures the logs related to uWSGI, which is an application server.
+* *awx-wsbroadcast.log:* Captures the logs of the websocket service that is used by {ControllerName}.
+* *failure-event-handler.stderr.log:* Captures the standard errors for `/usr/bin/failure-event-handler` supervisord's subprocess.
+* *supervisord.log:* Captures the logs related to `supervisord` itself.
+* *wsrelay.log:* Captures the communication logs within the websocket relay server.
+* *ws_heartbeat.log:* Captures the periodic checks on the health of services running on the host.
+* *rsyslog_configurer.log:* Captures rsyslog configuration activity associated with authenticating with external logging services.
+
+The `/var/log/supervisor/` directory includes `stdout` files for all services as well.
+
+You can expect the following log paths to be generated by services used by {ControllerName} (and {PlatformNameShort}):
+
+* */var/log/nginx/*
+* */var/lib/pgsql/data/pg_log/*
+* */var/log/redis/*
+
+.Troubleshooting
+
+Error logs can be found in the following locations:
+
+* {ControllerNameStart} server errors are logged in `/var/log/tower`.
+* Supervisors logs can be found in `/var/log/supervisor/`.
+* Nginx web server errors are logged in the httpd error log.
+* Configure other {ControllerName} logging needs in `/etc/tower/conf.d/`.
+
+Explore client-side issues using the JavaScript console built into most browsers and report any errors to Ansible through the Red Hat Customer portal at: https://access.redhat.com/.
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-controller-logs.adoc b/downstream/modules/platform/ref-controller-logs.adoc
index 36b34a2048..1cf63b7b3b 100644
--- a/downstream/modules/platform/ref-controller-logs.adoc
+++ b/downstream/modules/platform/ref-controller-logs.adoc
@@ -4,8 +4,9 @@
= {ControllerNameStart} logs
-This logger also includes the common fields in xref:ref-controller-log-message-schema[Log message schema].
+This logger also includes the common fields in link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlatformVers}/html/configuring_automation_execution/assembly-controller-logging-aggregation#ref-controller-log-message-schema[Log message schema].
In addition, this contains a `msg` field with the log message.
Errors contain a separate `traceback` field.
-From the navigation panel, select {MenuSetLogging}. On the *Logging Settings* page click btn:[Edit] and use the *ENABLE EXTERNAL LOGGING* option to enable or disable the logging components.
+From the navigation panel, select {MenuSetLogging}.
+On the *Logging Settings* page click btn:[Edit] and use the *ENABLE EXTERNAL LOGGING* option to enable or disable the logging components.
diff --git a/downstream/modules/platform/ref-controller-managed-nodes.adoc b/downstream/modules/platform/ref-controller-managed-nodes.adoc
index b287395fa7..9b9e99bd9f 100644
--- a/downstream/modules/platform/ref-controller-managed-nodes.adoc
+++ b/downstream/modules/platform/ref-controller-managed-nodes.adoc
@@ -6,4 +6,5 @@
{ControllerNameStart} connects to managed machines and services as part of automation.
All connections to managed machines are done by standard secure mechanisms, such as SSH, WinRM, or SSL/TLS.
+
Each of these inherits configuration from the system configuration for the feature in question, such as the system OpenSSL configuration.
diff --git a/downstream/modules/platform/ref-controller-metadata-credential-input.adoc b/downstream/modules/platform/ref-controller-metadata-credential-input.adoc
index 3ad1b88744..8a8595a4a8 100644
--- a/downstream/modules/platform/ref-controller-metadata-credential-input.adoc
+++ b/downstream/modules/platform/ref-controller-metadata-credential-input.adoc
@@ -6,8 +6,7 @@
The information required for the *Metadata* tab of the input source.
-[discrete]
-== AWS Secrets Manager Lookup
+*AWS Secrets Manager Lookup*
[cols="25%,50%",options="header"]
|===
@@ -16,9 +15,7 @@ The information required for the *Metadata* tab of the input source.
| AWS Secret Name (required) | Specify the AWS secret name that was generated by the AWS access key.
|===
-
-[discrete]
-== Centrify Vault Credential Provider Lookup
+*Centrify Vault Credential Provider Lookup*
[cols="25%,50%",options="header"]
|===
@@ -27,8 +24,7 @@ The information required for the *Metadata* tab of the input source.
| System Name | Specify the name used by the Centrify portal.
|===
-[discrete]
-== CyberArk Central Credential Provider Lookup
+*CyberArk Central Credential Provider Lookup*
[cols="25%,50%",options="header"]
|===
@@ -39,8 +35,7 @@ The information required for the *Metadata* tab of the input source.
| Reason | If required for the object's policy, supply a reason for checking out the secret, as CyberArk logs those.
|===
-[discrete]
-== CyberArk Conjur Secrets Lookup
+*CyberArk Conjur Secrets Lookup*
[cols="25%,50%",options="header"]
|===
@@ -49,8 +44,7 @@ The information required for the *Metadata* tab of the input source.
| Secret Version | Specify a version of the secret, if necessary, otherwise, leave it empty to use the latest version.
|===
-[discrete]
-== HashiVault Secret Lookup
+*HashiVault Secret Lookup*
[cols="25%,50%",options="header"]
|===
@@ -62,8 +56,7 @@ Leave it blank to use the first path segment of the *Path to Secret* field inste
| Secret Version (V2 Only) | Specify a version if necessary, otherwise, leave it empty to use the latest version.
|===
-[discrete]
-== HashiCorp Signed SSH
+*HashiCorp Signed SSH*
[cols="25%,50%",options="header"]
|===
@@ -78,8 +71,7 @@ So you could have a role that is permitted to get a certificate signed for root,
Hashi vault has a default user for whom it signs, for example, ec2-user.
|===
-[discrete]
-== {Azure} KMS
+*{Azure} KMS*
[cols="25%,50%",options="header"]
|===
@@ -88,8 +80,7 @@ Hashi vault has a default user for whom it signs, for example, ec2-user.
| Secret Version | Specify a version of the secret, if necessary, otherwise, leave it empty to use the latest version.
|===
-[discrete]
-== Thycotic DevOps Secrets Vault
+*Thycotic DevOps Secrets Vault*
[cols="25%,50%",options="header"]
|===
@@ -97,8 +88,8 @@ Hashi vault has a default user for whom it signs, for example, ec2-user.
| Secret Path (required) |Specify the path to where the secret information is stored, for example, /path/username.
|===
-[discrete]
-== Thycotic Secret Server
+*Thycotic Secret Server*
+
[cols="25%,50%",options="header"]
|===
| Metadata | Description
diff --git a/downstream/modules/platform/ref-controller-old-job-history.adoc b/downstream/modules/platform/ref-controller-old-job-history.adoc
index 2aeb57c2e1..4683985856 100644
--- a/downstream/modules/platform/ref-controller-old-job-history.adoc
+++ b/downstream/modules/platform/ref-controller-old-job-history.adoc
@@ -19,6 +19,6 @@ retention value.
You can review or set a schedule for cleaning up old job history by performing the same procedure described for activity stream management
jobs.
-For more information, see link:{ControllerAdminGuide}/assembly-controller-management-jobs#proc-controller-scheduling-deletion[Scheduling deletion].
+For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-management-jobs#proc-controller-scheduling-deletion[Scheduling deletion].
-You can also set or review notifications associated with this management job in the same way as described in link:{ControllerAdminGuide}/assembly-controller-management-jobs#proc-controller-management-notifications[Setting notifications] for activity stream management jobs, or for more information, see link:{URLControllerUserGuide}/controller-notifications[Notifiers] in _{ControllerUG}_.
+You can also set or review notifications associated with this management job in the same way as described in link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/configuring_automation_execution/assembly-controller-management-jobs#proc-controller-management-notifications[Setting notifications] for activity stream management jobs, or for more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/using_automation_execution/controller-notifications[Notifiers].
diff --git a/downstream/modules/platform/ref-controller-scan-fact-tracking-schema.adoc b/downstream/modules/platform/ref-controller-scan-fact-tracking-schema.adoc
index c12dc3baf5..cad23f8648 100644
--- a/downstream/modules/platform/ref-controller-scan-fact-tracking-schema.adoc
+++ b/downstream/modules/platform/ref-controller-scan-fact-tracking-schema.adoc
@@ -17,4 +17,4 @@ Periods are not allowed by elastic search in names, and are replaced with "_" by
* `host`: Name of the host the scan applies to.
* `inventory_id`: The inventory id the host is inside of.
-This logger also includes the common fields in xref:ref-controller-log-message-schema[Log message schema].
\ No newline at end of file
+This logger also includes the common fields in link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlatformVers}/html/configuring_automation_execution/assembly-controller-logging-aggregation#ref-controller-log-message-schema[Log message schema].
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-controller-token-session-management.adoc b/downstream/modules/platform/ref-controller-token-session-management.adoc
index 9101517bee..62dbcd346d 100644
--- a/downstream/modules/platform/ref-controller-token-session-management.adoc
+++ b/downstream/modules/platform/ref-controller-token-session-management.adoc
@@ -7,9 +7,14 @@
{PlatformNameShort} supports the following commands for OAuth2 token management:
* xref:ref-controller-create-oauth2-token[`create_oauth2_token`]
+
* xref:ref-controller-revoke-oauth2-token[`revoke_oauth2_tokens`]
+
* xref:ref-controller-clear-sessions[`cleartokens`]
+
//[emcwhinn - Temporarily hiding expire sessions module as it does not yet exist for gateway as per AAP-35735]
//* xref:ref-controller-expire-sessions[`expire_sessions`]
+
* xref:ref-controller-clear-sessions[`clearsessions`]
+
diff --git a/downstream/modules/platform/ref-controller-troubleshoot-logging.adoc b/downstream/modules/platform/ref-controller-troubleshoot-logging.adoc
index 2f906669ac..c163c44c29 100644
--- a/downstream/modules/platform/ref-controller-troubleshoot-logging.adoc
+++ b/downstream/modules/platform/ref-controller-troubleshoot-logging.adoc
@@ -4,27 +4,23 @@
= Troubleshooting logging
-[discrete]
-=== Logging Aggregation
+*Logging Aggregation*
If you have sent a message with the test button to your configured logging service through http or https, but did not receive the message, check the `/var/log/tower/rsyslog.err` log file.
This is where errors are stored if they occurred when authenticating rsyslog with an http or https external logging service.
Note that if there are no errors, this file does not exist.
-[discrete]
-=== API 4XX Errors
+*API 4XX Errors*
You can include the API error message for 4XX errors by modifying the log format for those messages.
-Refer to the xref:proc-controller-api-4xx-error-config[API 4XX Error Configuration].
+Refer to the link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlatformVers}/html/configuring_automation_execution/assembly-controller-logging-aggregation#proc-controller-api-4xx-error-config[API 4XX Error Configuration].
-[discrete]
-=== LDAP
+*LDAP*
You can enable logging messages for the LDAP adapter.
-For more information, see xref:proc-controller-api-4xx-error-config[API 4XX Error Configuration].
+For more information, see link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/{PlatformVers}/html/configuring_automation_execution/assembly-controller-logging-aggregation#proc-controller-api-4xx-error-config[API 4XX Error Configuration].
-[discrete]
-=== SAML
+*SAML*
You can enable logging messages for the SAML adapter the same way you can enable logging for LDAP.
//Refer to the xref:controller-enable-logging-LDAP[Enabling logging for LDAP] section for more detail.
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-controller-variables.adoc b/downstream/modules/platform/ref-controller-variables.adoc
index ee3da4d132..186d5a0be0 100644
--- a/downstream/modules/platform/ref-controller-variables.adoc
+++ b/downstream/modules/platform/ref-controller-variables.adoc
@@ -4,6 +4,9 @@
= {ControllerNameStart} variables
+[role="_abstract"]
+Inventory file variables for {ControllerName}.
+
[cols="25%,25%,30%,10%,10%",options="header"]
|===
| RPM variable name | Container variable name | Description | Required or optional | Default
@@ -112,7 +115,7 @@ Set this variable to `true` to disable HTTPS.
| `controller_nginx_https_protocols`
| Protocols that {ControllerName} supports when handling HTTPS traffic.
| Optional
-| RPM = `[TLSv1.2]`. Container = `[TLSv1.2, TLSv1.3]`
+| `[TLSv1.2, TLSv1.3]`
| `nginx_user_headers`
| `controller_nginx_user_headers`
diff --git a/downstream/modules/platform/ref-database-inventory-variables.adoc b/downstream/modules/platform/ref-database-inventory-variables.adoc
index cc3b0e41a3..327b9e0b0e 100644
--- a/downstream/modules/platform/ref-database-inventory-variables.adoc
+++ b/downstream/modules/platform/ref-database-inventory-variables.adoc
@@ -4,6 +4,9 @@
= Database variables
+[role="_abstract"]
+Inventory file variables for the database used with {PlatformNameShort}.
+
[cols="25%,25%,30%,10%,10%",options="header"]
|===
| RPM variable name | Container variable name | Description | Required or optional | Default
@@ -14,6 +17,24 @@
| Optional
| `5432`
+| `postgres_extra_settings`
+| `postgresql_extra_settings`
+a| Defines additional settings for use by PostgreSQL.
+
+Example usage for RPM:
+----
+postgresql_extra_settings:
+ ssl_ciphers: 'HIGH:!aNULL:!MD5'
+----
+Example usage for containerized:
+----
+postgresql_extra_settings:
+ - setting: ssl_ciphers
+ value: 'HIGH:!aNULL:!MD5'
+----
+| Optional
+|
+
| `postgres_firewalld_zone`
| `postgresql_firewall_zone`
| The firewall zone where PostgreSQL related firewall rules are applied. This controls which networks can access PostgreSQL based on the zone's trust level.
diff --git a/downstream/modules/platform/ref-deprovisioning.adoc b/downstream/modules/platform/ref-deprovisioning.adoc
index e6db948a1d..35b2ac9d92 100644
--- a/downstream/modules/platform/ref-deprovisioning.adoc
+++ b/downstream/modules/platform/ref-deprovisioning.adoc
@@ -3,6 +3,7 @@
[id="ref-deprovisioning"]
= Deprovisioning nodes or groups
+
You can deprovision nodes and instance groups using the {PlatformNameShort} installer.
Running the installer will remove all configuration files and logs attached to the nodes in the group.
diff --git a/downstream/modules/platform/ref-eda-controller-variables.adoc b/downstream/modules/platform/ref-eda-controller-variables.adoc
index a0f8b989c5..99498338d6 100644
--- a/downstream/modules/platform/ref-eda-controller-variables.adoc
+++ b/downstream/modules/platform/ref-eda-controller-variables.adoc
@@ -4,6 +4,9 @@
= {EDAcontroller} variables
+[role="_abstract"]
+Inventory file variables for {EDAcontroller}.
+
[cols="25%,25%,30%,10%,10%",options="header"]
|===
| RPM variable name | Container variable name | Description | Required or optional | Default
@@ -104,12 +107,6 @@
| Optional
| RPM = `443`. Container = `8445`.
-| `automationedacontroller_max_running_activations`
-| `eda_max_running_activations`
-| Number of maximum activations running concurrently per node. This is an integer that must be greater than 0.
-| Optional
-| `12`
-
| `automationedacontroller_nginx_tls_files_remote`
|
| Denote whether the web cert sources are local to the installation program (`false`) or on the remote component server (`true`).
@@ -302,7 +299,7 @@ eda_extra_settings:
| `eda_nginx_https_protocols`
| Protocols that {EDAName} supports when handling HTTPS traffic.
| Optional
-| RPM = `[TLSv1.2]`. Container = `[TLSv1.2, TLSv1.3]`.
+| `[TLSv1.2, TLSv1.3]`
|
| `eda_pg_socket`
diff --git a/downstream/modules/platform/ref-eda-system-requirements.adoc b/downstream/modules/platform/ref-eda-system-requirements.adoc
index f2203f8dff..427ce834fa 100644
--- a/downstream/modules/platform/ref-eda-system-requirements.adoc
+++ b/downstream/modules/platform/ref-eda-system-requirements.adoc
@@ -11,7 +11,7 @@ The {EDAcontroller} is a single-node system capable of handling a variable numbe
If you want to use {EDAName} 2.5 with a 2.4 {ControllerName} version, see link:{BaseURL}/red_hat_ansible_automation_platform/2.4/html-single/using_event-driven_ansible_2.5_with_ansible_automation_platform_2.4/index[Using {EDAName} 2.5 with {PlatformNameShort} 2.4].
====
-Use the following minimum requirements to run, by default, a maximum of 12 simultaneous activations:
+Use the following minimum requirements for {EDAcontroller}:
[cols=2*,options="header"]
|===
@@ -34,5 +34,4 @@ However, the actual memory consumption can vary significantly based on the compl
In scenarios where a large number of events are anticipated or the rulebook complexity is high, conduct a preliminary assessment of resource usage in a staging environment.
This ensures that your maximum number of activations is based on the capacity of your resources.
-For an example of setting {EDAController} maximumrunning activations, see xref:ref-gateway-controller-hub-eda-ext-db[Single {ControllerName}, single {HubName}, and single {EDAcontroller} node with external (installer managed) database].
====
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-fetching-a-monthly-report.adoc b/downstream/modules/platform/ref-fetching-a-monthly-report.adoc
index cc61c1e00f..599f70ea24 100644
--- a/downstream/modules/platform/ref-fetching-a-monthly-report.adoc
+++ b/downstream/modules/platform/ref-fetching-a-monthly-report.adoc
@@ -6,101 +6,3 @@
Fetch a monthly report from {PlatformNameShort} to gather usage metrics and create a consumption-based billing report. To fetch a monthly report on {RHEL} or on {OCPShort}, use the following procedures:
-== Fetching a monthly report on {RHEL}
-
-Use the following procedure to fetch a monthly report on {RHEL}:
-
-.Procedure
-
-. Run:
-`scp -r username@controller_host:$METRICS_UTILITY_SHIP_PATH/data/// /local/directory/`
-
-The system savess the generated report as `CCSP--.xlsx` in the ship path that you specified.
-
-== Fetching a monthly report on {OCPShort} from the {PlatformNameShort} Operator
-
-Use the following playbook to fetch a monthly consumption report for {PlatformNameShort} on {OCPShort}:
-
-----
-- name: Copy directory from Kubernetes PVC to local machine
- hosts: localhost
-
- vars:
- report_dir_path: "/mnt/metrics/reports/{{ year }}/{{ month }}/"
-
- tasks:
- - name: Create a temporary pod to access PVC data
- kubernetes.core.k8s:
- definition:
- apiVersion: v1
- kind: Pod
- metadata:
- name: temp-pod
- namespace: "{{ namespace_name }}"
- spec:
- containers:
- - name: busybox
- image: busybox
- command: ["/bin/sh"]
- args: ["-c", "sleep 3600"] # Keeps the container alive for 1 hour
- volumeMounts:
- - name: "{{ pvc }}"
- mountPath: "/mnt/metrics"
- volumes:
- - name: "{{ pvc }}"
- persistentVolumeClaim:
- claimName: automationcontroller-metrics-utility
- restartPolicy: Never
- register: pod_creation
-
- - name: Wait for both initContainer and main container to be ready
- kubernetes.core.k8s_info:
- kind: Pod
- namespace: "{{ namespace_name }}"
- name: temp-pod
- register: pod_status
- until: >
- pod_status.resources[0].status.containerStatuses[0].ready
- retries: 30
- delay: 10
-
- - name: Create a tarball of the directory of the report in the container
- kubernetes.core.k8s_exec:
- namespace: "{{ namespace_name }}"
- pod: temp-pod
- container: busybox
- command: tar czf /tmp/metrics.tar.gz -C "{{ report_dir_path }}" .
- register: tarball_creation
-
- - name: Copy the report tarball from the container to the local machine
- kubernetes.core.k8s_cp:
- namespace: "{{ namespace_name }}"
- pod: temp-pod
- container: busybox
- state: from_pod
- remote_path: /tmp/metrics.tar.gz
- local_path: "{{ local_dir }}/metrics.tar.gz"
- when: tarball_creation is succeeded
-
- - name: Ensure the local directory exists
- ansible.builtin.file:
- path: "{{ local_dir }}"
- state: directory
-
- - name: Extract the report tarball on the local machine
- ansible.builtin.unarchive:
- src: "{{ local_dir }}/metrics.tar.gz"
- dest: "{{ local_dir }}"
- remote_src: yes
- extra_opts: "--strip-components=1"
- when: tarball_creation is succeeded
-
- - name: Delete the temporary pod
- kubernetes.core.k8s:
- api_version: v1
- kind: Pod
- namespace: "{{ namespace_name }}"
- name: temp-pod
- state: absent
-----
-
diff --git a/downstream/modules/platform/ref-filter-by-organization.adoc b/downstream/modules/platform/ref-filter-by-organization.adoc
new file mode 100644
index 0000000000..f17411cf48
--- /dev/null
+++ b/downstream/modules/platform/ref-filter-by-organization.adoc
@@ -0,0 +1,15 @@
+:_mod-docs-content-type: REFERENCE
+
+[id="ref-filter-by-organization"]
+
+= Filtering reports by organization
+
+To filter your report so that only certain organizations are present, use this environment variable with a semicolon separated list of organization names.
+
+`export METRICS_UTILITY_ORGANIZATION_FILTER="ACME;Organization 1"`
+
+This renders only the data from these organizations in the built report. This filter currently does not have any effect on the following optional sheets:
+
+* `usage_by_collections`
+* `usage_by_roles`
+* `usage_by_modules`
diff --git a/downstream/modules/platform/ref-gateway-controller-hub-eda-ext-db.adoc b/downstream/modules/platform/ref-gateway-controller-hub-eda-ext-db.adoc
index 6b449699d8..915e671ba9 100644
--- a/downstream/modules/platform/ref-gateway-controller-hub-eda-ext-db.adoc
+++ b/downstream/modules/platform/ref-gateway-controller-hub-eda-ext-db.adoc
@@ -16,8 +16,6 @@ Use this example to populate the inventory file to deploy single instances of {G
* When an {EDAName} rulebook is activated under standard conditions, it uses approximately 250 MB of memory. However, the actual memory consumption can vary significantly based on the complexity of the rules and the volume and size of the events processed.
In scenarios where a large number of events are anticipated or the rulebook complexity is high, conduct a preliminary assessment of resource usage in a staging environment.
This ensures that the maximum number of activations is based on the resource capacity.
-In the following example, the default `automationedacontroller_max_running_activations` setting is 12, but can be adjusted according to fit capacity.
-
====
[literal, subs="+attributes"]
diff --git a/downstream/modules/platform/ref-gateway-variables.adoc b/downstream/modules/platform/ref-gateway-variables.adoc
index 1a3769f1f3..e58807df68 100644
--- a/downstream/modules/platform/ref-gateway-variables.adoc
+++ b/downstream/modules/platform/ref-gateway-variables.adoc
@@ -1,9 +1,11 @@
:_mod-docs-content-type: REFERENCE
[id="platform-gateway-variables"]
-
= {GatewayStart} variables
+[role="_abstract"]
+Inventory file variables for {Gateway}.
+
[cols="25%,25%,30%,10%,10%",options="header"]
|===
| RPM variable name | Container variable name | Description | Required or optional | Default
@@ -219,6 +221,12 @@
| Optional
| `false`
+| `automationgateway_uwsgi_processes`
+| `gateway_uwsgi_processes`
+| The number of `uwsgi` processes for the {Gateway} container. The value is calculated based on the number of available vCPUs (virtual CPUs).
+| Optional
+| The number of vCPUs multiplied by two, plus one.
+
| `automationgateway_use_archive_compression`
| `gateway_use_archive_compression`
| Controls whether archive compression is enabled or disabled for {Gateway}. You can control this functionality globally by using `use_archive_compression`.
@@ -265,7 +273,7 @@
| `gateway_nginx_https_protocols`
| Protocols that {Gateway} will support when handling HTTPS traffic.
| Optional
-| RPM = `[TLSv1.2]`. Container = `[TLSv1.2, TLSv1.3]`.
+| `[TLSv1.2, TLSv1.3]`
| `redis_disable_tls`
| `gateway_redis_disable_tls`
diff --git a/downstream/modules/platform/ref-general-inventory-variables.adoc b/downstream/modules/platform/ref-general-inventory-variables.adoc
index ef9701840b..92d450e34c 100644
--- a/downstream/modules/platform/ref-general-inventory-variables.adoc
+++ b/downstream/modules/platform/ref-general-inventory-variables.adoc
@@ -4,6 +4,9 @@
= General variables
+[role="_abstract"]
+General inventory file variables for {PlatformNameShort}.
+
[cols="25%,25%,30%,10%,10%",options="header"]
|===
| RPM variable name | Container variable name | Description | Required or optional | Default
diff --git a/downstream/modules/platform/ref-hub-variables.adoc b/downstream/modules/platform/ref-hub-variables.adoc
index 5bde6f9d01..4db6b79b43 100644
--- a/downstream/modules/platform/ref-hub-variables.adoc
+++ b/downstream/modules/platform/ref-hub-variables.adoc
@@ -4,6 +4,9 @@
= {HubNameStart} variables
+[role="_abstract"]
+Inventory file variables for {HubName}.
+
[cols="25%,25%,30%,10%,10%",options="header"]
|===
| RPM variable name | Container variable name | Description | Required or optional | Default
@@ -86,6 +89,12 @@ Valid options include: `true`, `false`, `auto`
| Optional
| `false`
+|
+| `hub_data_path_exclude`
+| {HubName} backup path to exclude.
+| Optional
+| `[]`
+
| `automationhub_disable_hsts`
| `hub_nginx_disable_hsts`
| Controls whether HTTP Strict Transport Security (HSTS) is enabled or disabled for {HubName}.
@@ -370,7 +379,7 @@ For more information about the list of parameters, see link:https://django-stora
| `hub_nginx_https_protocols`
| Protocols that {HubName} will support when handling HTTPS traffic.
| Optional
-| RPM = `[TLSv1.2]`. Container = `[TLSv1.2, TLSv1.3]`.
+| `[TLSv1.2, TLSv1.3]`
|
| `hub_pg_socket`
diff --git a/downstream/modules/platform/ref-images-inventory-variables.adoc b/downstream/modules/platform/ref-images-inventory-variables.adoc
index aa98d67f2e..0e9e1ffc98 100644
--- a/downstream/modules/platform/ref-images-inventory-variables.adoc
+++ b/downstream/modules/platform/ref-images-inventory-variables.adoc
@@ -4,6 +4,9 @@
= Image variables
+[role="_abstract"]
+Inventory file variables for images.
+
[cols="25%,25%,30%,10%,10%",options="header"]
|===
| RPM variable name | Container variable name | Description | Required or optional | Default
@@ -18,7 +21,7 @@
| `controller_image`
| Container image for {ControllerName}.
| Optional
-| `controller-rhel8:latest`
+| `controller-rhel9:latest`
|
| `de_extra_images`
@@ -30,19 +33,19 @@
| `de_supported_image`
| Supported decision environment container image.
| Optional
-| `de-supported-rhel8:latest`
+| `de-supported-rhel9:latest`
|
| `eda_image`
| Backend container image for {EDAName}.
| Optional
-| `eda-controller-rhel8:latest`
+| `eda-controller-rhel9:latest`
|
| `eda_web_image`
| Front-end container image for {EDAName}.
| Optional
-| `eda-controller-ui-rhel8:latest`
+| `eda-controller-ui-rhel9:latest`
|
| `ee_extra_images`
@@ -54,37 +57,37 @@
| `ee_minimal_image`
| Minimal {ExecEnvShort} container image.
| Optional
-| `ee-minimal-rhel8:latest`
+| `ee-minimal-rhel9:latest`
|
| `ee_supported_image`
| Supported {ExecEnvShort} container image.
| Optional
-| `ee-supported-rhel8:latest`
+| `ee-supported-rhel9:latest`
|
| `gateway_image`
| Container image for {Gateway}.
| Optional
-| `gateway-rhel8:latest`
+| `gateway-rhel9:latest`
|
| `gateway_proxy_image`
| Container image for {Gateway} proxy.
| Optional
-| `gateway-proxy-rhel8:latest`
+| `gateway-proxy-rhel9:latest`
|
| `hub_image`
| Backend container image for {HubName}.
| Optional
-| `hub-rhel8:latest`
+| `hub-rhel9:latest`
|
| `hub_web_image`
| Front-end container image for {HubName}.
| Optional
-| `hub-web-rhel8:latest`
+| `hub-web-rhel9:latest`
|
| `pcp_image`
@@ -102,7 +105,7 @@
| `receptor_image`
| Container image for receptor.
| Optional
-| `receptor-rhel8:latest`
+| `receptor-rhel9:latest`
|
| `redis_image`
diff --git a/downstream/modules/platform/ref-operator-crs.adoc b/downstream/modules/platform/ref-operator-crs.adoc
index d99ebc94a7..2ffe940e36 100644
--- a/downstream/modules/platform/ref-operator-crs.adoc
+++ b/downstream/modules/platform/ref-operator-crs.adoc
@@ -650,19 +650,3 @@ spec:
# * {LightspeedShortName} is not deployed
----
-== eda-max-running-activations.yml
-
-[subs="+attributes"]
-----
----
-apiVersion: aap.ansible.com/v1alpha1
-kind: AnsibleAutomationPlatform
-metadata:
- name: myaap
-spec:
- eda:
- extra_settings:
- - setting: EDA_MAX_RUNNING_ACTIVATIONS
- value: "15" # Setting this value to "-1" means there will be no limit
-
-----
diff --git a/downstream/modules/platform/ref-optional-build-sheets.adoc b/downstream/modules/platform/ref-optional-build-sheets.adoc
new file mode 100644
index 0000000000..180254ff1b
--- /dev/null
+++ b/downstream/modules/platform/ref-optional-build-sheets.adoc
@@ -0,0 +1,41 @@
+:_mod-docs-content-type: REFERENCE
+
+[id="ref-optional-build-sheets"]
+
+= Optional sheets for `build_report` command
+
+You may use the following optional sheets for the `build_report` command:
+
+* `ccsp_summary`
+** This is a landing page specifically for partners under the CCSP program. It shows managed node usage by each {ControllerName} organization.
+** This report takes additional parameters to customize the summary page. For more information, see the following example:
++
+----
+export METRICS_UTILITY_PRICE_PER_NODE=11.55 # in USD
+export METRICS_UTILITY_REPORT_SKU=MCT3752MO
+export METRICS_UTILITY_REPORT_SKU_DESCRIPTION="EX: Red Hat Ansible Automation Platform, Full Support (1 Managed Node, Dedicated, Monthly)"
+export METRICS_UTILITY_REPORT_H1_HEADING="CCSP Reporting : ANSIBLE Consumption"
+export METRICS_UTILITY_REPORT_COMPANY_NAME="Company Name"
+export METRICS_UTILITY_REPORT_EMAIL="email@email.com"
+export METRICS_UTILITY_REPORT_RHN_LOGIN="test_login"
+export METRICS_UTILITY_REPORT_COMPANY_BUSINESS_LEADER="BUSINESS LEADER"
+export METRICS_UTILITY_REPORT_COMPANY_PROCUREMENT_LEADER="PROCUREMENT LEADER"
+----
+
+* `managed_nodes`
+** This is a deduplicated list of managed nodes automated by {ControllerName}.
+* `indirectly_managed_nodes`
+** This is a deduplicated list of indirect managed nodes automated by {ControllerName}.
+* `inventory_scope`
+** This is a deduplicated list of managed nodes present across all inventories of {ControllerName}.
+* `usage_by_collections`
+** This is a list of Ansible collections used in {ControllerName} job runs.
+* `usage_by_roles`
+** This is a list of roles used in {ControllerName} job runs.
+*`usage_by_modules`
+** This is a list of modules used in {ControllerName}job runs.
+
+----
+# Example with all optional sheets
+export METRICS_UTILITY_OPTIONAL_CCSP_REPORT_SHEETS='ccsp_summary,managed_nodes,indirectly_managed_nodes,inventory_scope,usage_by_collections,usage_by_roles,usage_by_modules'
+----
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-optional-collectors.adoc b/downstream/modules/platform/ref-optional-collectors.adoc
new file mode 100644
index 0000000000..81f2a5a284
--- /dev/null
+++ b/downstream/modules/platform/ref-optional-collectors.adoc
@@ -0,0 +1,21 @@
+:_mod-docs-content-type: REFERENCE
+
+[id="ref-optional-collectors"]
+
+= Optional collectors for `gather` command
+
+You can use the following optional collectors for the `gather` command:
+
+* `main_jobhostsummary`
+** If present by default, this incrementally collects data from the `main_jobhostsummary` table in the {ControllerName} database, containing information about jobs runs and managed nodes automated.
+* `main_host`
+** This collects daily snapshots of the `main_host` table in the {ControllerName} database and has managed nodes and hosts present across {ControllerName} inventories.
+* `main_jobevent`
+** This incrementally collects data from the `main_jobevent` table in the {ControllerName} database and contains information about which modules, roles, and Ansible collections are being used.
+* `main_indirectmanagednodeaudit`
+** This incrementally collects data from the `main_indirectmanagednodeaudit` table in the {ControllerName} database and contains information about indirectly managed nodes.
++
+----
+# Example with all optional collectors
+export METRICS_UTILITY_OPTIONAL_COLLECTORS="main_host,main_jobevent,main_indirectmanagednodeaudit"
+----
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-optional-gather-collectors.adoc b/downstream/modules/platform/ref-optional-gather-collectors.adoc
new file mode 100644
index 0000000000..65898a2209
--- /dev/null
+++ b/downstream/modules/platform/ref-optional-gather-collectors.adoc
@@ -0,0 +1,21 @@
+:_mod-docs-content-type: REFERENCE
+
+[id="ref-optional-gather-collectors"]
+
+= Optional collectors for `gather` command
+
+You can use the following optional collectors for the `gather` command:
+
+* `main_jobhostsummary`
+** If present by default, this incrementally collects the `main_jobhostsummary` table from the {ControllerName} database, containing information about jobs runs and managed nodes automated.
+* `main_host`
+** This collects daily snapshots of the `main_host` table from the {ControllerName} database and has managed nodes/hosts present across {ControllerName} inventories,
+* `main_jobevent`
+** This incrementally collects the `main_jobevent` table from the {ControllerName} database and contains information about which modules, roles, and ansible collections are being used.
+* main_indirectmanagednodeaudit
+** This incrementally collects the `main_indirectmanagednodeaudit` table from the {ControllerName} database and contains information about indirectly managed nodes,
+
+----
+# Example with all optional collectors
+export METRICS_UTILITY_OPTIONAL_COLLECTORS="main_host,main_jobevent,main_indirectmanagednodeaudit"
+----
diff --git a/downstream/modules/platform/ref-optional-sheets.adoc b/downstream/modules/platform/ref-optional-sheets.adoc
new file mode 100644
index 0000000000..47641fcb68
--- /dev/null
+++ b/downstream/modules/platform/ref-optional-sheets.adoc
@@ -0,0 +1,56 @@
+:_mod-docs-content-type: REFERENCE
+
+[id="ref-optional-sheets"]
+
+= Optional sheets for `build_report` command
+
+You can use the following optional sheets for the `build_report` command:
+
+* `ccsp_summary`
+** This is a landing page specifically for partners under CCSP program.
+This report takes additional parameters to customize the summary page. For more information, see the following example:
++
+----
+export METRICS_UTILITY_PRICE_PER_NODE=11.55 # in USD
+export METRICS_UTILITY_REPORT_SKU=MCT3752MO
+export METRICS_UTILITY_REPORT_SKU_DESCRIPTION="EX: Red Hat Ansible Automation Platform, Full Support (1 Managed Node, Dedicated, Monthly)"
+export METRICS_UTILITY_REPORT_H1_HEADING="CCSP NA Direct Reporting Template"
+export METRICS_UTILITY_REPORT_COMPANY_NAME="Partner A"
+export METRICS_UTILITY_REPORT_EMAIL="email@email.com"
+export METRICS_UTILITY_REPORT_RHN_LOGIN="test_login"
+export METRICS_UTILITY_REPORT_PO_NUMBER="123"
+export METRICS_UTILITY_REPORT_END_USER_COMPANY_NAME="Customer A"
+export METRICS_UTILITY_REPORT_END_USER_CITY="Springfield"
+export METRICS_UTILITY_REPORT_END_USER_STATE="TX"
+export METRICS_UTILITY_REPORT_END_USER_COUNTRY="US"
+----
+* `jobs`
+** This is a list of {ControllerName} jobs launched. It is grouped by job template.
+* `managed_nodes`
+** This is a deduplicated list of managed nodes automated by {ControllerName}.
+* `indirectly_managed_nodes`
+** This is a deduplicated list of indirect managed nodes automated by {ControllerName}.
+* `inventory_scope`
+** This is a deduplicated list of managed nodes present across all inventories of {ControllerName}.
+* `usage_by_organizations`
+** This is a list of all {ControllerName} organizations with several metrics showing the organizations usage. This provides data suitable for doing internal chargeback.
+* `usage_by_collections`
+** This is a list of Ansible collections used in a {ControllerName} job runs.
+* `usage_by_roles`
+** This is a list of roles used in {ControllerName} job runs.
+* `usage_by_modules`
+** This is a list of modules used in {ControllerName} job runs.
+* `managed_nodes_by_organization`
+** This generates a sheet per organization, listing managed nodes for every organization with the same content as the managed_nodes sheet.
+* `data_collection_status`
+** This generates a sheet with the status of every data collection done by the `gather` command for the date range the report is built for.
+
+To outline the quality of data collected it also lists:
+
+*** unusual gaps between collections (based on collection_start_timestamp)
+*** gaps in collected intervals (based on since vs until)
++
+----
+# Example with all optional sheets
+export METRICS_UTILITY_OPTIONAL_CCSP_REPORT_SHEETS='ccsp_summary,jobs,managed_nodes,indirectly_managed_nodes,inventory_scope,usage_by_organizations,usage_by_collections,usage_by_roles,usage_by_modules,data_collection_status'
+----
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-receptor-inventory-variables.adoc b/downstream/modules/platform/ref-receptor-inventory-variables.adoc
index f5fbc46901..d8f7a58cf8 100644
--- a/downstream/modules/platform/ref-receptor-inventory-variables.adoc
+++ b/downstream/modules/platform/ref-receptor-inventory-variables.adoc
@@ -4,6 +4,9 @@
= Receptor variables
+[role="_abstract"]
+Inventory file variables for Receptor.
+
[cols="25%,25%,30%,10%,10%",options="header"]
|===
| RPM variable name | Container variable name | Description | Required or optional | Default
diff --git a/downstream/modules/platform/ref-redis-inventory-variables.adoc b/downstream/modules/platform/ref-redis-inventory-variables.adoc
index 8f13f49822..fd0da1df38 100644
--- a/downstream/modules/platform/ref-redis-inventory-variables.adoc
+++ b/downstream/modules/platform/ref-redis-inventory-variables.adoc
@@ -4,6 +4,9 @@
= Redis variables
+[role="_abstract"]
+Inventory file variables for Redis.
+
[cols="25%,25%,30%,10%,10%",options="header"]
|===
| RPM variable name | Container variable name | Description | Required or optional | Default
diff --git a/downstream/modules/platform/ref-renewal-guidance.adoc b/downstream/modules/platform/ref-renewal-guidance.adoc
index 82cfc7cf07..3de0ee8811 100644
--- a/downstream/modules/platform/ref-renewal-guidance.adoc
+++ b/downstream/modules/platform/ref-renewal-guidance.adoc
@@ -3,6 +3,7 @@
[id="ref-renewal-guidance"]
= `RENEWAL_GUIDANCE`
+
The `RENEWAL_GUIDANCE` report provides historical usage from the HostMetric table, applying deduplication and showing real historical usage for renewal guidance purposes.
To generate this report, set the report type to
diff --git a/downstream/modules/platform/ref-report-types.adoc b/downstream/modules/platform/ref-report-types.adoc
index f7aae82afe..b20ad7132a 100644
--- a/downstream/modules/platform/ref-report-types.adoc
+++ b/downstream/modules/platform/ref-report-types.adoc
@@ -3,6 +3,7 @@
[id="ref-report-types"]
= Report types
+
This section provides additional configurations for data gathering and report building based on a report type. Apply the environment variables to each report type based on your {PlatformNameShort} installation.
////
diff --git a/downstream/modules/platform/ref-resource-types.adoc b/downstream/modules/platform/ref-resource-types.adoc
index ee63b283fb..2b4ff3d0cc 100644
--- a/downstream/modules/platform/ref-resource-types.adoc
+++ b/downstream/modules/platform/ref-resource-types.adoc
@@ -30,7 +30,7 @@ For a particular resource, a pod resource request or limit is the sum of the res
== Resource units in Kubernetes
-.CPU resource units
+*CPU resource units*
Limits and requests for CPU resources are measured in CPU units.
In Kubernetes, one CPU unit is equal to one physical processor core, or one virtual core, depending on whether the node is a physical host or a virtual machine running inside a physical machine.
@@ -47,7 +47,7 @@ To specify CPU units less than 1.0 or 1000m you must use the milliCPU form.
For example, use 5m, not 0.005 CPU.
====
-.Memory resource units
+*Memory resource units*
Limits and requests for memory are measured in bytes.
You can express memory as a plain integer or as a fixed-point number using one of these quantity suffixes: E, P, T, G, M, k.
You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki.
@@ -61,7 +61,7 @@ For example, the following represent roughly the same value:
Pay attention to the case of the suffixes.
If you request 400m of memory, this is a request for 0.4 bytes, not 400 mebibytes (400Mi) or 400 megabytes (400M).
-.Example CPU and memory specification
+*Example CPU and memory specification*
The following cluster has enough free resources to schedule a task pod with a dedicated 100m CPU and 250Mi.
The cluster can also withstand bursts over that dedicated usage up to 2000m CPU and 2Gi memory.
diff --git a/downstream/modules/platform/ref-select-a-date-range-ccspv2.adoc b/downstream/modules/platform/ref-select-a-date-range-ccspv2.adoc
new file mode 100644
index 0000000000..c2c6f9f542
--- /dev/null
+++ b/downstream/modules/platform/ref-select-a-date-range-ccspv2.adoc
@@ -0,0 +1,21 @@
+:_mod-docs-content-type: REFERENCE
+
+[id="ref-select-a-date-range-ccspv2"]
+
+= Selecting a date range for your CCSPv2 report
+
+The default behavior of the CCSPv2 report is to build a report for the previous month. The following examples describe how to override this default behavior to select a specific date range for your report:
+
+----
+# Build report for a specific month
+metrics-utility build_report --month=2025-03
+
+# Build report for a specific date range, icluding the prvided days
+metrics-utility build_report --since=2025-03-01 --until=2025-03-31
+
+# Build report for a last 6 months from a current date
+metrics-utility build_report --since=6months
+
+# Build report for a last 6 months from a current date overriding an exisitng report
+metrics-utility build_report --since=6months --force
+----
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-select-report-date-range.adoc b/downstream/modules/platform/ref-select-report-date-range.adoc
new file mode 100644
index 0000000000..c987298e2a
--- /dev/null
+++ b/downstream/modules/platform/ref-select-report-date-range.adoc
@@ -0,0 +1,18 @@
+:_mod-docs-content-type: REFERENCE
+
+[id="ref-select-report-date-range"]
+
+= Selecting a date range for your CCSP report
+
+The default behavior of this report is to build a report for the previous month. The following examples describe how to override this default behavior to select a specific date range for your report:
+
+----
+# Builds report for a previous month
+metrics-utility build_report
+
+# Build report for a specific month
+metrics-utility build_report --month=2025-03
+
+# Build report for a specific month overriding an existing report
+metrics-utility build_report --month=2025-03 --force
+----
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-set-custom-pod-timeout.adoc b/downstream/modules/platform/ref-set-custom-pod-timeout.adoc
index 75ad2e90ef..9a110e2652 100644
--- a/downstream/modules/platform/ref-set-custom-pod-timeout.adoc
+++ b/downstream/modules/platform/ref-set-custom-pod-timeout.adoc
@@ -3,6 +3,7 @@
[id="ref-set-custom-pod-timeout_{context}"]
= Extra settings
+
With `extra_settings`, you can pass many custom settings by using the awx-operator.
The parameter `extra_settings` is appended to `/etc/tower/settings.py` and can be an alternative to the `extra_volumes` parameter.
@@ -12,7 +13,7 @@ The parameter `extra_settings` is appended to `/etc/tower/settings.py` and can b
| `extra_settings` | Extra settings | ‘’
|====
-.Example configuration of `extra_settings` parameter
+*Example configuration of `extra_settings` parameter*
[options="nowrap" subs="+quotes,attributes"]
----
@@ -28,7 +29,7 @@ The parameter `extra_settings` is appended to `/etc/tower/settings.py` and can b
value: "500"
----
-.Custom pod timeouts
+*Custom pod timeouts*
A container group job in {ControllerName} transitions to the `running` state just before you submit the pod to the Kubernetes API.
{ControllerNameStart} then expects the pod to enter the `Running` state before `AWX_CONTAINER_GROUP_POD_PENDING_TIMEOUT` seconds has elapsed.
diff --git a/downstream/modules/platform/ref-storage-invocation.adoc b/downstream/modules/platform/ref-storage-invocation.adoc
index 3387ec0857..f8309b338e 100644
--- a/downstream/modules/platform/ref-storage-invocation.adoc
+++ b/downstream/modules/platform/ref-storage-invocation.adoc
@@ -3,6 +3,7 @@
[id="ref-storage-invocation"]
= Storage and invocation
+
The `RENEWAL_GUIDANCE` report supports the use of only local disk storage to store the report results. This report does not have a gather data step. It reads directly from the controller HostMetric table, so it does not store any raw data under the `METRICS_UTILITY_SHIP_PATH`.
----
diff --git a/downstream/modules/platform/ref-supported-storage.adoc b/downstream/modules/platform/ref-supported-storage.adoc
index 04012db9f8..35f23c0f13 100644
--- a/downstream/modules/platform/ref-supported-storage.adoc
+++ b/downstream/modules/platform/ref-supported-storage.adoc
@@ -6,35 +6,3 @@
Supported storage is available for storing the raw data obtained by using the `metrics-utility gather_automation_controller_billing_data` command and storing the generated reports obtained by using the `metrics-utility build_report` command.
Apply the environment variables to this storage based on your {PlatformNameShort} installation.
-
-== Local disk
-For an installation of {PlatformNameShort} on {RHEL}, the default storage option is a local disk. Using an OpenShift deployment of {OCPShort}, default storage is a path inside the attached Persistent Volume Claim.
-
-----
-# Set needed ENV VARs for gathering data and generating reports
-export METRICS_UTILITY_SHIP_TARGET=directory
-# Your path on the local disk
-export METRICS_UTILITY_SHIP_PATH=/path_to_data_and_reports/...
-----
-
-== Object storage with S3 interface
-
-To use object storage with S3 interface, for example, with AWS S3, Ceph Object storage, or Minio, you must define environment variables for data gathering and report building commands and cronjobs.
-----
-################
-export METRICS_UTILITY_SHIP_TARGET=s3
-# Your path in the object storage
-export METRICS_UTILITY_SHIP_PATH=path_to_data_and_reports/...
-
-################
-# Define S3 config
-export METRICS_UTILITY_BUCKET_NAME=metricsutilitys3
-export METRICS_UTILITY_BUCKET_ENDPOINT="https://s3.us-east-1.amazonaws.com"
-# For AWS S3, define also a region
-export METRICS_UTILITY_BUCKET_REGION="us-east-1"
-
-################
-# Define S3 credentials
-export METRICS_UTILITY_BUCKET_ACCESS_KEY=
-export METRICS_UTILITY_BUCKET_SECRET_KEY=
-----
\ No newline at end of file
diff --git a/downstream/modules/platform/ref-system-proxy-config.adoc b/downstream/modules/platform/ref-system-proxy-config.adoc
index 7d399ae3b3..fec3776322 100644
--- a/downstream/modules/platform/ref-system-proxy-config.adoc
+++ b/downstream/modules/platform/ref-system-proxy-config.adoc
@@ -3,6 +3,7 @@
[id="ref-system-proxy-config"]
= System proxy configuration
+
The outbound proxy is configured on the system level for all the nodes in the control plane.
The following environment variables must be set:
diff --git a/downstream/modules/platform/ref_proxy-backends.adoc b/downstream/modules/platform/ref_proxy-backends.adoc
index a1b6c47361..7a11f6e0db 100644
--- a/downstream/modules/platform/ref_proxy-backends.adoc
+++ b/downstream/modules/platform/ref_proxy-backends.adoc
@@ -3,6 +3,7 @@
[id="ref_proxy-backends"]
= Proxy backends
+
For HTTP and HTTPS proxies you can use a squid server.
Squid is a forward proxy for the Web supporting HTTP, HTTPS, and FTP, reducing bandwidth and improving response times by caching and reusing frequently-requested web pages.
It is licensed under the GNU GPL.
diff --git a/downstream/modules/playbooks/proc-starting-automation.adoc b/downstream/modules/playbooks/proc-starting-automation.adoc
index 24e22c9a19..ea1f4c5d7a 100644
--- a/downstream/modules/playbooks/proc-starting-automation.adoc
+++ b/downstream/modules/playbooks/proc-starting-automation.adoc
@@ -1,6 +1,7 @@
[id="proc-starting-automation"]
= Starting automation with Ansible
+
Get started with Ansible by creating an automation project, building an inventory, and creating a `Hello World` playbook.
.Prerequisites
diff --git a/downstream/modules/playbooks/ref-create-variables.adoc b/downstream/modules/playbooks/ref-create-variables.adoc
index 15d9d514a4..b2f85edf3d 100644
--- a/downstream/modules/playbooks/ref-create-variables.adoc
+++ b/downstream/modules/playbooks/ref-create-variables.adoc
@@ -1,6 +1,7 @@
[id="ref-create-variables"]
= Create variables
+
Variables set values for managed nodes, such as the IP address, FQDN, operating system, and SSH user, so you do not need to pass them when running Ansible commands.
Variables can apply to specific hosts.
diff --git a/downstream/modules/playbooks/ref-run-network-command.adoc b/downstream/modules/playbooks/ref-run-network-command.adoc
index e6f43ed122..aa8130f183 100644
--- a/downstream/modules/playbooks/ref-run-network-command.adoc
+++ b/downstream/modules/playbooks/ref-run-network-command.adoc
@@ -1,6 +1,7 @@
[id="ref-run-network-command"]
= Run a network Ansible command
+
Instead of manually connecting and running a command on the network device, you can retrieve its configuration with a single Ansible command.
----
diff --git a/downstream/modules/playbooks/ref-use-meta-groups.adoc b/downstream/modules/playbooks/ref-use-meta-groups.adoc
index 0338fec612..2294a0bde8 100644
--- a/downstream/modules/playbooks/ref-use-meta-groups.adoc
+++ b/downstream/modules/playbooks/ref-use-meta-groups.adoc
@@ -1,6 +1,7 @@
[id="ref-use-meta-groups"]
= Use metagroups
+
Create a metagroup that organizes multiple groups in your inventory with the following syntax:
----
diff --git a/downstream/modules/security/con-about-firewall-policy-management.adoc b/downstream/modules/security/con-about-firewall-policy-management.adoc
index 57de0ee84c..0a1c73f252 100644
--- a/downstream/modules/security/con-about-firewall-policy-management.adoc
+++ b/downstream/modules/security/con-about-firewall-policy-management.adoc
@@ -1,10 +1,8 @@
+:_mod-docs-content-type: CONCEPT
+
[id="con-about-firewall-policy-management_{context}"]
= About firewall policy management
-////
-[role="_abstract"]
-Manage multiple firewall policies across various products and vendors with Ansible security automation.
-////
An organization’s network firewall is the first line of defense against an attack and a vital component for maintaining a secure environment. As a security operator, you construct and manage secure networks to ensure that your firewall only allows inbound and outbound network traffic defined by your organization’s firewall policies. A firewall policy consists of security rules that protect the network against harmful incoming and outgoing traffic.
diff --git a/downstream/modules/security/con-automate-idps-rules.adoc b/downstream/modules/security/con-automate-idps-rules.adoc
index 4a5d3a08d9..f8aa274b88 100644
--- a/downstream/modules/security/con-automate-idps-rules.adoc
+++ b/downstream/modules/security/con-automate-idps-rules.adoc
@@ -1,10 +1,12 @@
[id="con-automate-ids-rules_{context}"]
-= Automating your IDPS rules with Ansible
+= Automating your IDPS rules with {PlatformNameShort}
-To automate your IDPS, use the `ids_rule` role to create and change Snort rules. Snort uses rule-based language that analyzes your network traffic and compares it against the given rule set.
+To automate your IDPS, use the `ids_rule` role to create and change Snort rules.
+Snort uses rule-based language that analyzes your network traffic and compares it against the given rule set.
-The following lab environment demonstrates what an Ansible security automation integration would look like. A machine called “Attacker” simulates a potential attack pattern on the target machine on which the IDPS is running.
+The following lab environment demonstrates what an Ansible security automation integration would look like.
+A machine called “Attacker” simulates a potential attack pattern on the target machine on which the IDPS is running.
Keep in mind that a real world setup will feature other vendors and technologies.
diff --git a/downstream/modules/security/con-automating-firewall-rules.adoc b/downstream/modules/security/con-automating-firewall-rules.adoc
index f3a130f59d..32eeda0ac8 100644
--- a/downstream/modules/security/con-automating-firewall-rules.adoc
+++ b/downstream/modules/security/con-automating-firewall-rules.adoc
@@ -1,22 +1,19 @@
-////
-Base the file name and the ID on the module title. For example:
-* file name: con-my-concept-module-a.adoc
-* ID: [id="con-my-concept-module-a_{context}"]
-* Title: = My concept module A
-////
+:_mod-docs-content-type: CONCEPT
[id="con-automating-firewall-rules_{context}"]
= Automate firewall rules
-////
-In the title of concept modules, include nouns or noun phrases that are used in the body text. This helps readers and search engines find the information quickly. Do not start the title of concept modules with a verb. See also _Wording of headings_ in _The IBM Style Guide_.
-////
-Ansible security automation enables you to automate various firewall policies that require a series of actions across various products. You can use an Ansible role, such as the https://github.com/ansible-security/acl_manager[acl_manager] role to manage your Access Control Lists (ACLs) for many firewall devices such as blocking or unblocking an IP or URL. Roles let you automatically load related vars, files, tasks, handlers, and other Ansible artifacts based on a known file structure. After you group your content in roles, you can easily reuse them and share them with other users.
+Ansible security automation enables you to automate various firewall policies that require a series of actions across various products.
+You can use an Ansible role, such as the https://github.com/ansible-security/acl_manager[acl_manager] role to manage your _Access Control Lists_ (ACLs) for many firewall devices such as blocking or unblocking an IP or URL.
+Roles let you automatically load related vars, files, tasks, handlers, and other Ansible artifacts based on a known file structure.
+After you group your content in roles, you can easily reuse them and share them with other users.
-The below lab environment is a simplified example of a real-world enterprise security architecture, which can be more complex and include additional vendor-specific tools. This is a typical incident response scenario where you receive an intrusion alert and immediately execute a playbook with the acl_manger role that blocks the attacker’s IP address.
+The following lab environment is a simplified example of a real-world enterprise security architecture, which can be more complex and include additional vendor-specific tools.
+This is a typical incident response scenario where you receive an intrusion alert and immediately execute a playbook with the acl_manger role that blocks the attacker’s IP address.
-Your entire team can use Ansible security automation to address investigations, threat hunting, and incident response all on one platform. https://www.redhat.com/en/technologies/management/ansible[Red Hat Ansible Automation Platform] provides you with certified content collections that are easy to consume and reuse within your security team.
+Your entire team can use Ansible security automation to address investigations, threat hunting, and incident response all on one platform.
+https://www.redhat.com/en/technologies/management/ansible[Red Hat Ansible Automation Platform] provides you with certified content collections that are easy to consume and reuse within your security team.
image::security-lab-environment.png[Simplified security lab environment]
diff --git a/downstream/modules/security/con-requirements.adoc b/downstream/modules/security/con-requirements.adoc
index 628b13933b..50a89d68b5 100644
--- a/downstream/modules/security/con-requirements.adoc
+++ b/downstream/modules/security/con-requirements.adoc
@@ -1,8 +1,10 @@
+:_mod-docs-content-type: CONCEPT
+
[id="con-requirements_{context}"]
= Requirements and prerequisites
-Before you begin automating your IDPS with Ansible, ensure that you have the proper installations and configurations necessary to successfully manage your IDPS.
+Before you begin automating your IDPS with {PlatformNameShort}, ensure that you have the proper installations and configurations necessary to successfully manage your IDPS.
* You have installed Ansible-core 2.15 or later.
* SSH connection and keys are configured.
diff --git a/downstream/modules/security/proc-creating-firewall-rule.adoc b/downstream/modules/security/proc-creating-firewall-rule.adoc
index 038c93a712..4c5381e17f 100644
--- a/downstream/modules/security/proc-creating-firewall-rule.adoc
+++ b/downstream/modules/security/proc-creating-firewall-rule.adoc
@@ -1,15 +1,8 @@
-////
-Base the file name and the ID on the module title. For example:
-* file name: proc-doing-procedure-a.adoc
-* ID: [id="doing-procedure-a_{context}"]
-* Title: = Doing procedure A
-
-The ID is an anchor that links to the module. Avoid changing it after the module has been published to ensure existing links are not broken.
-////
+:_mod-docs-content-type: PROCEDURE
[id="proc-creating-firewall-rule_{context}"]
-== Creating a new firewall rule
+= Creating a new firewall rule
[role="_abstract"]
Use the acl_manager role to create a new firewall rule for blocking a source IP address from accessing a destination IP address.
diff --git a/downstream/modules/security/proc-creating-idps-rule.adoc b/downstream/modules/security/proc-creating-idps-rule.adoc
index 99c61037df..434e38fffb 100644
--- a/downstream/modules/security/proc-creating-idps-rule.adoc
+++ b/downstream/modules/security/proc-creating-idps-rule.adoc
@@ -1,3 +1,5 @@
+:_mod-docs-content-type: PROCEDURE
+
[id="proc-creating-ids-rule_{context}"]
= Creating a new IDPS rule
diff --git a/downstream/modules/security/proc-deleting-firewall-rule.adoc b/downstream/modules/security/proc-deleting-firewall-rule.adoc
index b52f55cee1..a52654700c 100644
--- a/downstream/modules/security/proc-deleting-firewall-rule.adoc
+++ b/downstream/modules/security/proc-deleting-firewall-rule.adoc
@@ -1,15 +1,8 @@
-////
-Base the file name and the ID on the module title. For example:
-* file name: proc-doing-procedure-a.adoc
-* ID: [id="doing-procedure-a_{context}"]
-* Title: = Doing procedure A
-
-The ID is an anchor that links to the module. Avoid changing it after the module has been published to ensure existing links are not broken.
-////
+:_mod-docs-content-type: PROCEDURE
[id="proc-deleting-rule_{context}"]
-== Deleting a firewall rule
+= Deleting a firewall rule
[role="_abstract"]
Use the acl_manager role to delete a security rule.
@@ -27,7 +20,7 @@ Use the acl_manager role to delete a security rule.
$ ansible-galaxy install ansible_security.acl_manager
----
-. Using CLI, create a new playbook with the acl_manger role and set the parameters (e.g., source object, destination object, access rule between the two objects):
+. Using CLI, create a new playbook with the acl_manger role and set the parameters, for example, source object, destination object, access rule between the two objects:
+
----
- name: delete block list entry
@@ -43,7 +36,7 @@ $ ansible-galaxy install ansible_security.acl_manager
ansible_network_os: checkpoint
----
-. Run the playbook $ ansible-navigator run --ee false :
+. Run the playbook `$ ansible-navigator run --ee false `:
+
image::security-delete-rule.png[Playbook with deleted firewall rule]
diff --git a/downstream/modules/security/proc-verifying-idps-install.adoc b/downstream/modules/security/proc-verifying-idps-install.adoc
index e590e9cd2c..54a7434880 100644
--- a/downstream/modules/security/proc-verifying-idps-install.adoc
+++ b/downstream/modules/security/proc-verifying-idps-install.adoc
@@ -1,18 +1,14 @@
-////
-Base the file name and the ID on the module title. For example:
-* file name: proc-doing-procedure-a.adoc
-* ID: [id="doing-procedure-a_{context}"]
-* Title: = Doing procedure A
-
-The ID is an anchor that links to the module. Avoid changing it after the module has been published to ensure existing links are not broken.
-////
+:_mod-docs-content-type: PROCEDURE
[id="proc-verifying-ids-install_{context}"]
= Verifying your IDPS installation
-To verify that Snort has been configured successfully, call it via `sudo` and ask for the version:
+Use the following procedure to verify that Snort has been configured successfully:
+.Procedure
+. Call snort using `sudo` and ask for the version:
++
----
$ sudo snort --version
@@ -26,8 +22,10 @@ To verify that Snort has been configured successfully, call it via `sudo` and as
Using ZLIB version: 1.2.7
----
-Verify that the service is actively running via `sudo systemctl`:
-
+. Verify that the service is actively running using the following command:
++
+`sudo systemctl`:
++
----
$ sudo systemctl status snort
● snort.service - Snort service
@@ -39,6 +37,6 @@ $ sudo systemctl status snort
[...]
----
-If the Snort service is not actively running, restart it with `systemctl restart snort` and recheck the status.
+. If the Snort service is not actively running, restart it with `systemctl restart snort` and recheck the status.
-Once you confirm the service is actively running, exit the Snort server by simultaneously pressing `CTRL` and `D`, or by typing `exit` on the command line. All further interaction will be done through Ansible from the Ansible control host.
+. When you confirm that the service is actively running, exit the Snort server by simultaneously pressing `CTRL` and `D`, or by typing `exit` on the command line. All further interaction will be done through {PlatformNameShort} from the Ansible control host.
diff --git a/downstream/modules/topologies/ref-cont-a-env-a.adoc b/downstream/modules/topologies/ref-cont-a-env-a.adoc
index cc932ea004..c0c1ebc774 100644
--- a/downstream/modules/topologies/ref-cont-a-env-a.adoc
+++ b/downstream/modules/topologies/ref-cont-a-env-a.adoc
@@ -2,6 +2,7 @@
[id="cont-a-env-a"]
= Container {GrowthTopology}
+[role="_abstract"]
include::snippets/growth-topologies.adoc[]
== Infrastructure topology
diff --git a/downstream/modules/topologies/ref-cont-b-env-a.adoc b/downstream/modules/topologies/ref-cont-b-env-a.adoc
index 504cfc3377..8a7662a07d 100644
--- a/downstream/modules/topologies/ref-cont-b-env-a.adoc
+++ b/downstream/modules/topologies/ref-cont-b-env-a.adoc
@@ -2,6 +2,7 @@
[id="cont-b-env-a"]
= Container {EnterpriseTopology}
+[role="_abstract"]
include::snippets/enterprise-topologies.adoc[]
== Infrastructure topology
diff --git a/downstream/modules/topologies/ref-installation-deployment-models.adoc b/downstream/modules/topologies/ref-installation-deployment-models.adoc
index ffc550ddf2..e9872d65ac 100644
--- a/downstream/modules/topologies/ref-installation-deployment-models.adoc
+++ b/downstream/modules/topologies/ref-installation-deployment-models.adoc
@@ -3,27 +3,31 @@
= Installation and deployment models
+[role="_abstract"]
The following table outlines the different ways to install or deploy {PlatformNameShort}:
.{PlatformNameShort} installation and deployment models
[options="header"]
|====
| Mode | Infrastructure | Description | Tested topologies
-| RPM | Virtual machines and bare metal | The RPM installer deploys {PlatformNameShort} on {RHEL} by using RPMs to install the platform on host machines. Customers manage the product and infrastructure lifecycle.
-a|
-* link:{URLTopologies}/rpm-topologies#rpm-a-env-a[RPM {GrowthTopology}]
-* link:{URLTopologies}/rpm-topologies#rpm-b-env-a[RPM {EnterpriseTopology}]
| Containers
| Virtual machines and bare metal
| The containerized installer deploys {PlatformNameShort} on {RHEL} by using Podman which runs the platform in containers on host machines. Customers manage the product and infrastructure lifecycle.
a|
-* link:{URLTopologies}/container-topologies#cont-a-env-a[Container {GrowthTopology}]
-* link:{URLTopologies}/container-topologies#cont-b-env-a[Container {EnterpriseTopology}]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/tested_deployment_models/container-topologies#cont-a-env-a[Container {GrowthTopology}]
+
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/tested_deployment_models/container-topologies#cont-b-env-a[Container {EnterpriseTopology}]
| Operator
| Red Hat OpenShift
| The Operator uses Red Hat OpenShift Operators to deploy {PlatformNameShort} within Red Hat OpenShift. Customers manage the product and infrastructure lifecycle.
a|
-* link:{URLTopologies}/ocp-topologies#ocp-a-env-a[Operator {GrowthTopology}]
-* link:{URLTopologies}/ocp-topologies#ocp-b-env-a[Operator {EnterpriseTopology}]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/tested_deployment_models/ocp-topologies#ocp-a-env-a[Operator {GrowthTopology}]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/tested_deployment_models/ocp-topologies#ocp-b-env-a[Operator {EnterpriseTopology}]
+
+| RPM | Virtual machines and bare metal | The RPM installer deploys {PlatformNameShort} on {RHEL} by using RPMs to install the platform on host machines. Customers manage the product and infrastructure lifecycle.
+a|
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/tested_deployment_models/rpm-topologies#rpm-a-env-a[RPM {GrowthTopology}]
+* link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/tested_deployment_models/rpm-topologies#rpm-b-env-a[RPM {EnterpriseTopology}]
+
|====
diff --git a/downstream/modules/topologies/ref-mesh-nodes.adoc b/downstream/modules/topologies/ref-mesh-nodes.adoc
index 0e3b47b64a..c15eb67d78 100644
--- a/downstream/modules/topologies/ref-mesh-nodes.adoc
+++ b/downstream/modules/topologies/ref-mesh-nodes.adoc
@@ -1,6 +1,8 @@
+:_mod-docs-content-type: REFERENCE
[id="mesh-nodes"]
= {AutomationMeshStart} nodes
+[role="_abstract"]
{AutomationMeshStart} is an overlay network intended to ease the distribution of work across a large and dispersed collection of workers. This is done through nodes that establish peer-to-peer connections with each other by using existing networks.
== Tested system configurations
diff --git a/downstream/modules/topologies/ref-ocp-a-env-a.adoc b/downstream/modules/topologies/ref-ocp-a-env-a.adoc
index 56139bb13c..e7c9be7115 100644
--- a/downstream/modules/topologies/ref-ocp-a-env-a.adoc
+++ b/downstream/modules/topologies/ref-ocp-a-env-a.adoc
@@ -1,6 +1,8 @@
+:_mod-docs-content-type: REFERENCE
[id="ocp-a-env-a"]
= Operator {GrowthTopology}
+[role="_abstract"]
include::snippets/growth-topologies.adoc[]
== Infrastructure topology
@@ -44,18 +46,25 @@ Red{nbsp}Hat has tested the following configurations to install and run {Platfor
.Tested system configurations
[options="header"]
|====
-| Type | Description
-| Subscription | Valid {PlatformName} subscription
-| Operating system | {RHEL} 9.2 or later minor versions of {RHEL} 9
-| CPU architecture | x86_64, AArch64, s390x (IBM Z), ppc64le (IBM Power)
+| Type | Description | Notes
+| Subscription | Valid {PlatformName} subscription |
+| Operating system | {RHEL} 9.2 or later minor versions of {RHEL} 9 |
+| CPU architecture | x86_64, AArch64, s390x (IBM Z), ppc64le (IBM Power) |
| Red Hat OpenShift
a|
* Version: 4.14
* num_of_control_nodes: 1
* num_of_worker_nodes: 1
-| Ansible-core | Ansible-core version {CoreUseVers} or later
-| Browser | A currently supported version of Mozilla Firefox or Google Chrome.
-| Database | {PostgresVers}
+|
+| Ansible-core | Ansible-core version {CoreUseVers} or later |
+| Browser | A currently supported version of Mozilla Firefox or Google Chrome. |
+| Database
+a|
+* For {PlatformNameShort} managed databases: {PostgresVers}
+* For customer provided (external) databases: {PostgresVers}, 16, or 17.
+a|
+* External (customer supported) databases require ICU support.
+* External databases using PostgreSQL 16 or 17 must rely on external backup and restore processes. Backup and restore functionality is dependent on utilities provided with {PostgresVers}.
|====
== Example custom resource file
diff --git a/downstream/modules/topologies/ref-ocp-b-env-a.adoc b/downstream/modules/topologies/ref-ocp-b-env-a.adoc
index 3e44787345..838662180e 100644
--- a/downstream/modules/topologies/ref-ocp-b-env-a.adoc
+++ b/downstream/modules/topologies/ref-ocp-b-env-a.adoc
@@ -1,6 +1,8 @@
+:_mod-docs-content-type: REFERENCE
[id="ocp-b-env-a"]
= Operator {EnterpriseTopology}
+[role="_abstract"]
include::snippets/enterprise-topologies.adoc[]
== Infrastructure topology
diff --git a/downstream/modules/topologies/ref-rpm-a-env-a.adoc b/downstream/modules/topologies/ref-rpm-a-env-a.adoc
index 41a943dfc5..239c1604c5 100644
--- a/downstream/modules/topologies/ref-rpm-a-env-a.adoc
+++ b/downstream/modules/topologies/ref-rpm-a-env-a.adoc
@@ -2,6 +2,7 @@
[id="rpm-a-env-a"]
= RPM {GrowthTopology}
+[role="_abstract"]
include::snippets/growth-topologies.adoc[]
== Infrastructure topology
diff --git a/downstream/modules/topologies/ref-rpm-b-env-a.adoc b/downstream/modules/topologies/ref-rpm-b-env-a.adoc
index f0dfbe22ea..504c803bae 100644
--- a/downstream/modules/topologies/ref-rpm-b-env-a.adoc
+++ b/downstream/modules/topologies/ref-rpm-b-env-a.adoc
@@ -2,6 +2,7 @@
[id="rpm-b-env-a"]
= RPM {EnterpriseTopology}
+[role="_abstract"]
include::snippets/enterprise-topologies.adoc[]
== Infrastructure topology
@@ -30,7 +31,8 @@ include::snippets/rpm-tested-vm-config.adoc[]
[NOTE]
====
-6 VMs are required for a Redis high availability (HA) compatible deployment. Redis can be colocated on each {PlatformNameShort} component VM except for {ControllerName}, execution nodes, or the PostgreSQL database.
+* 6 VMs are required for a Redis high availability (HA) compatible deployment. Redis can be colocated on each {PlatformNameShort} component VM except for {ControllerName}, execution nodes, or the PostgreSQL database.
+* External Redis is not supported for RPM-based deployments of {PlatformNameShort}.
====
== Tested system configurations
diff --git a/downstream/modules/troubleshooting-aap/proc-troubleshoot-aap-packages.adoc b/downstream/modules/troubleshooting-aap/proc-troubleshoot-aap-packages.adoc
index a2d21f4a5f..0d84cbe253 100644
--- a/downstream/modules/troubleshooting-aap/proc-troubleshoot-aap-packages.adoc
+++ b/downstream/modules/troubleshooting-aap/proc-troubleshoot-aap-packages.adoc
@@ -1,6 +1,8 @@
+:_mod-docs-content-type: PROCEDURE
[id="troubleshoot-aap-packages"]
= Issue - Cannot locate certain packages that come bundled with the {PlatformNameShort} installer
+[role="_abstract"]
You cannot locate certain packages that come bundled with the {PlatformNameShort} installer, or you are seeing a "Repositories disabled by configuration" message.
-To resolve this issue, enable the repository by using the `subscription-manager` command in the command line. For more information about resolving this issue, see the _Troubleshooting_ section of link:{URLCentralAuth}/assembly-gateway-licensing#proc-attaching-subscriptions[Attaching your {PlatformName} subscription] in _{TitleCentralAuth}_.
\ No newline at end of file
+To resolve this issue, enable the repository by using the `subscription-manager` command in the command line. For more information about resolving this issue, see the _Troubleshooting_ section of link:{URLCentralAuth}/assembly-gateway-licensing#proc-attaching-subscriptions[Attaching your {PlatformName} subscription] in _{TitleCentralAuth}_.
diff --git a/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-pending.adoc b/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-pending.adoc
index e393e55b46..0243e50aed 100644
--- a/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-pending.adoc
+++ b/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-pending.adoc
@@ -1,6 +1,8 @@
+:_mod-docs-content-type: PROCEDURE
[id="troubleshoot-job-pending"]
= Issue - Jobs in {ControllerName} are stuck in a pending state
+[role="_abstract"]
After launching jobs in {ControllerName}, the jobs stay in a pending state and do not start.
There are a few reasons jobs can become stuck in a pending state. For more information about troubleshooting this issue, see link:{URLControllerAdminGuide}/controller-troubleshooting#controller-playbook-pending[Playbook stays in pending] in _{TitleControllerAdminGuide}_
diff --git a/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-permissions.adoc b/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-permissions.adoc
index a851de36b1..93c88a3c1e 100644
--- a/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-permissions.adoc
+++ b/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-permissions.adoc
@@ -2,6 +2,7 @@
[id="troubleshoot-job-permissions"]
= Issue - Jobs in {PrivateHubName} are failing with "denied: requested access to the resource is denied, unauthorized: Insufficient permissions" error message
+[role="_abstract"]
Jobs are failing with the error message "denied: requested access to the resource is denied, unauthorized: Insufficient permissions" when using an {ExecEnvShort} in {PrivateHubName}.
This issue happens when your {PrivateHubName} is protected with a password or token and the registry credential is not assigned to the {ExecEnvShort}.
diff --git a/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-resolve-module.adoc b/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-resolve-module.adoc
index 13f6316387..83776b047e 100644
--- a/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-resolve-module.adoc
+++ b/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-resolve-module.adoc
@@ -3,6 +3,7 @@
[id="troubleshoot-job-resolve-module"]
= Issue - Jobs are failing with “ERROR! couldn’t resolve module/action” error message
+[role="_abstract"]
Jobs are failing with the error message “ERROR! couldn't resolve module/action 'module name'. This often indicates a misspelling, missing collection, or incorrect module path”.
This error can happen when the collection associated with the module is missing from the {ExecEnvShort}.
diff --git a/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-timeout.adoc b/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-timeout.adoc
index e8a6d7a3d9..645d003bea 100644
--- a/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-timeout.adoc
+++ b/downstream/modules/troubleshooting-aap/proc-troubleshoot-job-timeout.adoc
@@ -3,6 +3,7 @@
[id="troubleshoot-job-timeout"]
= Issue - Jobs are failing with “Timeout (12s) waiting for privilege escalation prompt” error message
+[role="_abstract"]
This error can happen when the timeout value is too small, causing the job to stop before completion. The default timeout value for connection plugins is `10`.
To resolve the issue, increase the timeout value by completing one of the following methods.
diff --git a/downstream/modules/troubleshooting-aap/proc-troubleshoot-must-gather.adoc b/downstream/modules/troubleshooting-aap/proc-troubleshoot-must-gather.adoc
index 1f6ab25d0d..c6b8842cb4 100644
--- a/downstream/modules/troubleshooting-aap/proc-troubleshoot-must-gather.adoc
+++ b/downstream/modules/troubleshooting-aap/proc-troubleshoot-must-gather.adoc
@@ -3,6 +3,7 @@
[id="troubleshoot-must-gather"]
= Troubleshooting {PlatformNameShort} on {OCPShort} by using the must-gather command
+[role="_abstract"]
The `oc adm must-gather` command line interface (CLI) command collects information from your {PlatformNameShort} installation deployed on {OCPShort}. It gathers information that is often needed for debugging issues, including resource definitions and service logs.
Running the `oc adm must-gather` CLI command creates a new directory containing the collected data that you can use to troubleshoot or attach to your support case.
diff --git a/downstream/modules/troubleshooting-aap/proc-troubleshoot-sosreport.adoc b/downstream/modules/troubleshooting-aap/proc-troubleshoot-sosreport.adoc
index 8c8419e31f..fe085d4b5d 100644
--- a/downstream/modules/troubleshooting-aap/proc-troubleshoot-sosreport.adoc
+++ b/downstream/modules/troubleshooting-aap/proc-troubleshoot-sosreport.adoc
@@ -1,6 +1,8 @@
+:_mod-docs-content-type: PROCEDURE
[id="troubleshoot-sosreport"]
= Troubleshooting {PlatformNameShort} on VM-based installations by generating an sos report
+[role="_abstract"]
The `sos` utility collects configuration, diagnostic, and troubleshooting data from your {PlatformNameShort} on a {VMBase}.
For more information about installing and using the `sos` utility, see link:{BaseURL}/red_hat_enterprise_linux/9/html-single/getting_the_most_from_your_support_experience/index#generating-an-sos-report-for-technical-support_getting-the-most-from-your-support-experience[Generating an sos report for technical support].
diff --git a/downstream/modules/troubleshooting-aap/proc-troubleshoot-ssl-tls-issues.adoc b/downstream/modules/troubleshooting-aap/proc-troubleshoot-ssl-tls-issues.adoc
index 8d64308bbf..32f19b35cd 100644
--- a/downstream/modules/troubleshooting-aap/proc-troubleshoot-ssl-tls-issues.adoc
+++ b/downstream/modules/troubleshooting-aap/proc-troubleshoot-ssl-tls-issues.adoc
@@ -4,6 +4,7 @@
= Troubleshooting SSL/TLS issues
+[role="_abstract"]
To troubleshoot issues with SSL/TLS, verify the certificate chain, use the correct certificates, and confirm that a trusted Certificate Authority (CA) signed the certificate.
.Procedure
diff --git a/downstream/modules/troubleshooting-aap/proc-troubleshoot-subnet-conflict.adoc b/downstream/modules/troubleshooting-aap/proc-troubleshoot-subnet-conflict.adoc
index 9b4ab507fe..3625049276 100644
--- a/downstream/modules/troubleshooting-aap/proc-troubleshoot-subnet-conflict.adoc
+++ b/downstream/modules/troubleshooting-aap/proc-troubleshoot-subnet-conflict.adoc
@@ -1,6 +1,8 @@
+:_mod-docs-content-type: PROCEDURE
[id="troubleshoot-subnet-conflict"]
= Issue - The default subnet used in {PlatformNameShort} containers conflicts with the internal network
+[role="_abstract"]
The default subnet used in {PlatformNameShort} containers conflicts with the internal network resulting in "No route to host" errors.
To resolve this issue, update the default classless inter-domain routing (CIDR) value so it does not conflict with the CIDR used by the default Podman networking plugin.
diff --git a/downstream/modules/troubleshooting-aap/proc-troubleshoot-use-in-controller.adoc b/downstream/modules/troubleshooting-aap/proc-troubleshoot-use-in-controller.adoc
index 744f6829f6..3167584127 100644
--- a/downstream/modules/troubleshooting-aap/proc-troubleshoot-use-in-controller.adoc
+++ b/downstream/modules/troubleshooting-aap/proc-troubleshoot-use-in-controller.adoc
@@ -1,6 +1,9 @@
+:_mod-docs-content-type: PROCEDURE
[id="troubleshoot-use-in-controller"]
+
= Issue - Cannot select the "Use in Controller" option for {ExecEnvShort} image on {PrivateHubName}
+[role="_abstract"]
You cannot use the *Use in Controller* option for an {ExecEnvShort} image on {PrivateHubName}. You also receive the error message: “No Controllers available”.
To resolve this issue, connect {ControllerName} to your {PrivateHubName} instance.
@@ -44,10 +47,6 @@ CONNECTED_ANSIBLE_CONTROLLERS = ['__', '_
@@ -53,14 +53,14 @@ registry_password=
redis_mode=standalone
# {GatewayStart}
-# {URLContainerizedInstall}/appendix-inventory-files-vars#platform-gateway-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/appendix-inventory-files-vars#platform-gateway-variables
# -----------------------------------------------------
gateway_admin_password=
gateway_pg_host=aap.example.org
gateway_pg_password=
# {ControllerNameStart}
-# {URLContainerizedInstall}/appendix-inventory-files-vars#controller-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/appendix-inventory-files-vars#controller-variables
# -----------------------------------------------------
controller_admin_password=
controller_pg_host=aap.example.org
@@ -68,7 +68,7 @@ controller_pg_password=
controller_percent_memory_capacity=0.5
# {HubNameStart}
-# {URLContainerizedInstall}/appendix-inventory-files-vars#hub-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/appendix-inventory-files-vars#hub-variables
# -----------------------------------------------------
hub_admin_password=
hub_pg_host=aap.example.org
@@ -76,7 +76,7 @@ hub_pg_password=
hub_seed_collections=false
# {EDAcontroller}
-# {URLContainerizedInstall}/appendix-inventory-files-vars#event-driven-ansible-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/appendix-inventory-files-vars#event-driven-ansible-variables
# -----------------------------------------------------
eda_admin_password=
eda_pg_host=aap.example.org
diff --git a/downstream/snippets/inventory-cont-b-env-a.adoc b/downstream/snippets/inventory-cont-b-env-a.adoc
index fe8c9c8ff5..2cd515390e 100644
--- a/downstream/snippets/inventory-cont-b-env-a.adoc
+++ b/downstream/snippets/inventory-cont-b-env-a.adoc
@@ -6,7 +6,7 @@
# Consult the docs if you are unsure what to add
# For all optional variables consult the included README.md
# or the Red Hat documentation:
-# {URLContainerizedInstall}
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation
# This section is for your {Gateway} hosts
# -----------------------------------------------------
@@ -50,7 +50,7 @@ eda2.example.org
[all:vars]
# Common variables
-# {URLContainerizedInstall}/appendix-inventory-files-vars#general-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/appendix-inventory-files-vars#general-variables
# -----------------------------------------------------
postgresql_admin_username=
postgresql_admin_password=
@@ -58,7 +58,7 @@ registry_username=
registry_password=
# {GatewayStart}
-# {URLContainerizedInstall}/appendix-inventory-files-vars#platform-gateway-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/appendix-inventory-files-vars#platform-gateway-variables
# -----------------------------------------------------
gateway_admin_password=
gateway_pg_host=externaldb.example.org
@@ -67,7 +67,7 @@ gateway_pg_username=
gateway_pg_password=
# {ControllerNameStart}
-# {URLContainerizedInstall}/appendix-inventory-files-vars#controller-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/appendix-inventory-files-vars#controller-variables
# -----------------------------------------------------
controller_admin_password=
controller_pg_host=externaldb.example.org
@@ -76,7 +76,7 @@ controller_pg_username=
controller_pg_password=
# {HubNameStart}
-# {URLContainerizedInstall}/appendix-inventory-files-vars#hub-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/appendix-inventory-files-vars#hub-variables
# -----------------------------------------------------
hub_admin_password=
hub_pg_host=externaldb.example.org
@@ -85,7 +85,7 @@ hub_pg_username=
hub_pg_password=
# {EDAcontroller}
-# {URLContainerizedInstall}/appendix-inventory-files-vars#event-driven-ansible-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/containerized_installation/appendix-inventory-files-vars#event-driven-ansible-variables
# -----------------------------------------------------
eda_admin_password=
eda_pg_host=externaldb.example.org
diff --git a/downstream/snippets/inventory-rpm-a-env-a.adoc b/downstream/snippets/inventory-rpm-a-env-a.adoc
index 0b3d680733..aa01e2baba 100644
--- a/downstream/snippets/inventory-rpm-a-env-a.adoc
+++ b/downstream/snippets/inventory-rpm-a-env-a.adoc
@@ -4,11 +4,11 @@
----
# This is the {PlatformNameShort} installer inventory file intended for the RPM growth deployment topology.
# Consult the {PlatformNameShort} product documentation about this topology's tested hardware configuration.
-# {URLTopologies}/rpm-topologies
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/tested_deployment_models/rpm-topologies
#
# Consult the docs if you are unsure what to add
# For all optional variables consult the {PlatformNameShort} documentation:
-# {URLInstallationGuide}
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/index
# This section is for your {Gateway} hosts
@@ -47,7 +47,7 @@ db.example.org
[all:vars]
# Common variables
-# {URLInstallationGuide}/appendix-inventory-files-vars#general-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/appendix-inventory-files-vars#general-variables
# -----------------------------------------------------
registry_username=
registry_password=
@@ -55,30 +55,30 @@ registry_password=
redis_mode=standalone
# {GatewayStart}
-# {URLInstallationGuide}/appendix-inventory-files-vars#platform-gateway-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/appendix-inventory-files-vars#platform-gateway-variables
# -----------------------------------------------------
automationgateway_admin_password=
automationgateway_pg_host=db.example.org
automationgateway_pg_password=
# {ControllerNameStart}
-# {URLInstallationGuide}/appendix-inventory-files-vars#controller-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/appendix-inventory-files-vars#controller-variables
# -----------------------------------------------------
admin_password=
pg_host=db.example.org
pg_password=
# {HubNameStart}
-# {URLInstallationGuide}/appendix-inventory-files-vars#hub-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/appendix-inventory-files-vars#hub-variables
# -----------------------------------------------------
automationhub_admin_password=
automationhub_pg_host=db.example.org
automationhub_pg_password=
# {EDAcontroller}
-# {URLInstallationGuide}/appendix-inventory-files-vars#event-driven-ansible-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/appendix-inventory-files-vars#event-driven-ansible-variables
# -----------------------------------------------------
automationedacontroller_admin_password=
automationedacontroller_pg_host=db.example.org
automationedacontroller_pg_password=
-----
\ No newline at end of file
+----
diff --git a/downstream/snippets/inventory-rpm-b-env-a.adoc b/downstream/snippets/inventory-rpm-b-env-a.adoc
index fce25e63de..c42f3be2be 100644
--- a/downstream/snippets/inventory-rpm-b-env-a.adoc
+++ b/downstream/snippets/inventory-rpm-b-env-a.adoc
@@ -5,7 +5,7 @@
# This is the {PlatformNameShort} enterprise installer inventory file
# Consult the docs if you are unsure what to add
# For all optional variables consult the Red Hat documentation:
-# {URLInstallationGuide}
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/index
# This section is for your {Gateway} hosts
# -----------------------------------------------------
@@ -51,13 +51,13 @@ eda2.example.org
[all:vars]
# Common variables
-# {URLInstallationGuide}/appendix-inventory-files-vars#general-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/appendix-inventory-files-vars#general-variables
# -----------------------------------------------------
registry_username=
registry_password=
# {GatewayStart}
-# {URLInstallationGuide}/appendix-inventory-files-vars#platform-gateway-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/appendix-inventory-files-vars#platform-gateway-variables
# -----------------------------------------------------
automationgateway_admin_password=
automationgateway_pg_host=
@@ -66,7 +66,7 @@ automationgateway_pg_username=
automationgateway_pg_password=
# {ControllerNameStart}
-# {URLInstallationGuide}/appendix-inventory-files-vars#controller-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/appendix-inventory-files-vars#controller-variables
# -----------------------------------------------------
admin_password=
pg_host=
@@ -75,7 +75,7 @@ pg_username=
pg_password=
# {HubNameStart}
-# {URLInstallationGuide}/appendix-inventory-files-vars#hub-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/appendix-inventory-files-vars#hub-variables
# -----------------------------------------------------
automationhub_admin_password=
automationhub_pg_host=
@@ -84,11 +84,11 @@ automationhub_pg_username=
automationhub_pg_password=
# {EDAcontroller}
-# {URLInstallationGuide}/appendix-inventory-files-vars#event-driven-ansible-variables
+# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/rpm_installation/appendix-inventory-files-vars#event-driven-ansible-variables
# -----------------------------------------------------
automationedacontroller_admin_password=
automationedacontroller_pg_host=
automationedacontroller_pg_database=
automationedacontroller_pg_username=
automationedacontroller_pg_password=
-----
\ No newline at end of file
+----
diff --git a/downstream/snippets/redis-colocation-containerized.adoc b/downstream/snippets/redis-colocation-containerized.adoc
index d4de91f5d0..c5f748107d 100644
--- a/downstream/snippets/redis-colocation-containerized.adoc
+++ b/downstream/snippets/redis-colocation-containerized.adoc
@@ -1,2 +1,3 @@
//This snippet details the colocation configuration for a containerized install of AAP - note that it can be colocated with controller.
* 6 VMs are required for a Redis high availability (HA) compatible deployment. When installing {PlatformNameShort} with the containerized installer, Redis can be colocated on any {PlatformNameShort} component VMs of your choice except for execution nodes or the PostgreSQL database. They might also be assigned VMs specifically for Redis use.
+* External Redis is not supported for containerized {PlatformNameShort}.
\ No newline at end of file
diff --git a/downstream/snippets/rpm-env-a-tested-system-config.adoc b/downstream/snippets/rpm-env-a-tested-system-config.adoc
index 4593c2ffdb..35a89aabeb 100644
--- a/downstream/snippets/rpm-env-a-tested-system-config.adoc
+++ b/downstream/snippets/rpm-env-a-tested-system-config.adoc
@@ -4,12 +4,15 @@
|====
| Type | Description |
| Subscription | Valid {PlatformName} subscription |
-| Operating system
-a|
-* {RHEL} 8.8 or later minor versions of {RHEL} 8.
-* {RHEL} 9.2 or later minor versions of {RHEL} 9. |
+| Operating system | {RHEL} 9.4 or later minor versions of {RHEL} 9. |
| CPU architecture | x86_64, AArch64, s390x (IBM Z), ppc64le (IBM Power) |
| `ansible-core` | `ansible-core` version {CoreUseVers} or later | {PlatformNameShort} uses the system-wide ansible-core package to install the platform, but uses ansible-core 2.16 for both its control plane and built-in execution environments.
| Browser | A currently supported version of Mozilla Firefox or Google Chrome |
-| Database | {PostgresVers} | External (customer supported) databases require ICU support.
-|====
\ No newline at end of file
+| Database
+a|
+* For {PlatformNameShort} managed databases: {PostgresVers}
+* For customer provided (external) databases: {PostgresVers}, 16, or 17.
+a|
+* External (customer supported) databases require ICU support.
+* External databases using PostgreSQL 16 or 17 must rely on external backup and restore processes. Backup and restore functionality is dependent on utilities provided with {PostgresVers}.
+|====
diff --git a/downstream/titles/aap-containerized-install/docinfo.xml b/downstream/titles/aap-containerized-install/docinfo.xml
index 47f1005992..c9143dc17b 100644
--- a/downstream/titles/aap-containerized-install/docinfo.xml
+++ b/downstream/titles/aap-containerized-install/docinfo.xml
@@ -1,6 +1,6 @@
Containerized installation
Red Hat Ansible Automation Platform
-2.5
+2.6
Install the containerized version of Ansible Automation Platform
This guide helps you to understand the installation requirements and processes behind our containerized version of Ansible Automation Platform.
diff --git a/downstream/titles/aap-containerized-install/master.adoc b/downstream/titles/aap-containerized-install/master.adoc
index bd7e1671d3..b7e0a4e175 100644
--- a/downstream/titles/aap-containerized-install/master.adoc
+++ b/downstream/titles/aap-containerized-install/master.adoc
@@ -14,6 +14,8 @@ include::platform/assembly-gateway-licensing.adoc[leveloffset=+1]
include::platform/assembly-aap-containerized-installation.adoc[leveloffset=+1]
+include::platform/assembly-aap-containerized-disconnected-installation.adoc[leveloffset=+1]
+
include::platform/assembly-horizontal-scaling.adoc[leveloffset=+1]
[appendix]
diff --git a/downstream/titles/aap-hardening/docinfo.xml b/downstream/titles/aap-hardening/docinfo.xml
index a5430ad33c..c6256b39f1 100644
--- a/downstream/titles/aap-hardening/docinfo.xml
+++ b/downstream/titles/aap-hardening/docinfo.xml
@@ -1,6 +1,6 @@
Hardening and compliance
Red Hat Ansible Automation Platform
-2.5
+2.6
Install, configure, and maintain Ansible Automation Platform running on Red Hat Enterprise Linux in a secure manner
This guide provides recommended practices for various processes needed to install, configure, and maintain {PlatformNameShort} on Red Hat Enterprise Linux in a secure manner.
diff --git a/downstream/titles/aap-installation-guide/docinfo.xml b/downstream/titles/aap-installation-guide/docinfo.xml
index 1153b284cc..621715bbf9 100644
--- a/downstream/titles/aap-installation-guide/docinfo.xml
+++ b/downstream/titles/aap-installation-guide/docinfo.xml
@@ -1,6 +1,6 @@
RPM installation
Red Hat Ansible Automation Platform
-2.5
+2.6
Install the RPM version of Ansible Automation Platform
This guide shows you how to install Red Hat Ansible Automation Platform based on supported installation scenarios.
diff --git a/downstream/titles/aap-migration/docinfo.xml b/downstream/titles/aap-migration/docinfo.xml
index b307c93a17..fb4aaab677 100644
--- a/downstream/titles/aap-migration/docinfo.xml
+++ b/downstream/titles/aap-migration/docinfo.xml
@@ -1,6 +1,6 @@
Ansible Automation Platform migration
Red Hat Ansible Automation Platform
-2.5
+2.6
Migrate your deployment of Ansible Automation Platform from one installation type to another
diff --git a/downstream/titles/aap-operations-guide/docinfo.xml b/downstream/titles/aap-operations-guide/docinfo.xml
index 5ff53ae44c..2c3234d608 100644
--- a/downstream/titles/aap-operations-guide/docinfo.xml
+++ b/downstream/titles/aap-operations-guide/docinfo.xml
@@ -1,6 +1,6 @@
Operating Ansible Automation Platform
Red Hat Ansible Automation Platform
-2.5
+2.6
Post installation configurations to ensure a smooth deployment of Ansible Automation Platform installation
diff --git a/downstream/titles/aap-operator-backup/docinfo.xml b/downstream/titles/aap-operator-backup/docinfo.xml
index 8b76b1f66a..01906ad090 100644
--- a/downstream/titles/aap-operator-backup/docinfo.xml
+++ b/downstream/titles/aap-operator-backup/docinfo.xml
@@ -1,6 +1,6 @@
Backup and recovery for operator environments
Red Hat Ansible Automation Platform
-2.5
+2.6
Safeguard against data loss with backup and recovery of Ansible Automation Platform operator on OpenShift Container Platform
diff --git a/downstream/titles/aap-operator-installation/docinfo.xml b/downstream/titles/aap-operator-installation/docinfo.xml
index 2b16dbedcf..0c50f1a2bb 100644
--- a/downstream/titles/aap-operator-installation/docinfo.xml
+++ b/downstream/titles/aap-operator-installation/docinfo.xml
@@ -1,6 +1,6 @@
Installing on OpenShift Container Platform
Red Hat Ansible Automation Platform
-2.5
+2.6
Install and configure Ansible Automation Platform operator on OpenShift Container Platform
This guide provides procedures and reference information for the supported installation scenarios for the Red Hat Ansible Automation Platform operator on OpenShift Container Platform.
diff --git a/downstream/titles/aap-planning-guide/docinfo.xml b/downstream/titles/aap-planning-guide/docinfo.xml
index 1d7ad68203..663cc79ad1 100644
--- a/downstream/titles/aap-planning-guide/docinfo.xml
+++ b/downstream/titles/aap-planning-guide/docinfo.xml
@@ -1,6 +1,6 @@
Planning your installation
Red Hat Ansible Automation Platform
-2.5
+2.6
Plan for installation of Ansible Automation Platform
diff --git a/downstream/titles/aap-plugin-rhdh-install/docinfo.xml b/downstream/titles/aap-plugin-rhdh-install/docinfo.xml
index 8445ef71f4..9adf1e0c8c 100644
--- a/downstream/titles/aap-plugin-rhdh-install/docinfo.xml
+++ b/downstream/titles/aap-plugin-rhdh-install/docinfo.xml
@@ -1,6 +1,6 @@
Installing Ansible plug-ins for Red Hat Developer Hub
Red Hat Ansible Automation Platform
-2.5
+2.6
Install and configure Ansible plug-ins for Red Hat Developer Hub
This guide describes how to install and configure Ansible plug-ins for Red Hat Developer Hub so that users can learn about Ansible, explore curated collections, and develop automation projects.
diff --git a/downstream/titles/aap-plugin-rhdh-using/docinfo.xml b/downstream/titles/aap-plugin-rhdh-using/docinfo.xml
index 84f78c8be9..1c812f1a74 100644
--- a/downstream/titles/aap-plugin-rhdh-using/docinfo.xml
+++ b/downstream/titles/aap-plugin-rhdh-using/docinfo.xml
@@ -1,6 +1,6 @@
Using Ansible plug-ins for Red Hat Developer Hub
Red Hat Ansible Automation Platform
-2.4
+2.6
Use Ansible plug-ins for Red Hat Developer Hub
This guide describes how to use Ansible plug-ins for Red Hat Developer Hub to learn about Ansible, explore curated collections, and create playbook projects.
diff --git a/downstream/titles/analytics/docinfo.xml b/downstream/titles/analytics/docinfo.xml
index a15b8b438d..39215c69fe 100644
--- a/downstream/titles/analytics/docinfo.xml
+++ b/downstream/titles/analytics/docinfo.xml
@@ -1,6 +1,6 @@
Using automation analytics
Red Hat Ansible Automation Platform
-2.5
+2.6
Evaluate the cost savings associated with automated processes
This guide shows how to use the features of automation analytics to evaluate how automation is deployed across your environments and the savings associated with it.
diff --git a/downstream/titles/updating-aap/aap-common b/downstream/titles/automation-dashboard/aap-common
similarity index 100%
rename from downstream/titles/updating-aap/aap-common
rename to downstream/titles/automation-dashboard/aap-common
diff --git a/downstream/titles/automation-dashboard/analytics b/downstream/titles/automation-dashboard/analytics
new file mode 120000
index 0000000000..398799683d
--- /dev/null
+++ b/downstream/titles/automation-dashboard/analytics
@@ -0,0 +1 @@
+../../assemblies/analytics/
\ No newline at end of file
diff --git a/downstream/titles/updating-aap/attributes b/downstream/titles/automation-dashboard/attributes
similarity index 100%
rename from downstream/titles/updating-aap/attributes
rename to downstream/titles/automation-dashboard/attributes
diff --git a/downstream/titles/automation-dashboard/docinfo.xml b/downstream/titles/automation-dashboard/docinfo.xml
new file mode 100644
index 0000000000..295b72afe2
--- /dev/null
+++ b/downstream/titles/automation-dashboard/docinfo.xml
@@ -0,0 +1,11 @@
+Using Automation Dashboard
+Red Hat Ansible Automation Platform
+2.5
+Visualize, measure, and optimize automation usage
+
+This guide describes how to install and configure Automation Dashboard to evaluate automation usage across your environments and the savings associated with it.
+
+
+ Red Hat Customer Content Services
+
+
diff --git a/downstream/titles/updating-aap/images b/downstream/titles/automation-dashboard/images
similarity index 100%
rename from downstream/titles/updating-aap/images
rename to downstream/titles/automation-dashboard/images
diff --git a/downstream/titles/automation-dashboard/master.adoc b/downstream/titles/automation-dashboard/master.adoc
new file mode 100644
index 0000000000..61c5a2f423
--- /dev/null
+++ b/downstream/titles/automation-dashboard/master.adoc
@@ -0,0 +1,20 @@
+:imagesdir: images
+:numbered:
+:toclevels: 1
+
+:experimental:
+
+include::attributes/attributes.adoc[]
+
+
+// Book Title
+= Using Automation Dashboard
+
+This guide describes how to install and configure {AutomationDashboardName} to evaluate automation usage across your environments and the savings associated with it.
+
+// Downstream content only
+include::{Boilerplate}[]
+
+// Contents
+// Test assembly: replace with content for Automation Dashboard
+include::analytics/assembly-data-dictionary.adoc[leveloffset=+1]
diff --git a/downstream/titles/automation-dashboard/snippets b/downstream/titles/automation-dashboard/snippets
new file mode 120000
index 0000000000..5a3f5add14
--- /dev/null
+++ b/downstream/titles/automation-dashboard/snippets
@@ -0,0 +1 @@
+../../snippets/
\ No newline at end of file
diff --git a/downstream/titles/automation-mesh/docinfo.xml b/downstream/titles/automation-mesh/docinfo.xml
index 21d82d8834..2ca8c07e96 100644
--- a/downstream/titles/automation-mesh/docinfo.xml
+++ b/downstream/titles/automation-mesh/docinfo.xml
@@ -1,6 +1,6 @@
Automation mesh for VM environments
Red Hat Ansible Automation Platform
-2.5
+2.6
Automate at scale in a cloud-native way
This guide shows how to deploy automation mesh as part of your VM-based Ansible Automation Platform environment.
diff --git a/downstream/titles/builder/docinfo.xml b/downstream/titles/builder/docinfo.xml
index 55235fd4a1..30c1885715 100644
--- a/downstream/titles/builder/docinfo.xml
+++ b/downstream/titles/builder/docinfo.xml
@@ -1,6 +1,6 @@
Creating and using execution environments
Red Hat Ansible Automation Platform
-2.5
+2.6
Create and use execution environment containers
This guide shows how to create consistent and reproducible automation execution environments for your Red Hat Ansible Automation Platform.
diff --git a/downstream/titles/central-auth/docinfo.xml b/downstream/titles/central-auth/docinfo.xml
index 8a66af0c12..33a0664ee0 100644
--- a/downstream/titles/central-auth/docinfo.xml
+++ b/downstream/titles/central-auth/docinfo.xml
@@ -1,6 +1,6 @@
Access management and authentication
Red Hat Ansible Automation Platform
-2.5
+2.6
Configure role based access control, authenticators and authenticator maps in Ansible Automation Platform
diff --git a/downstream/titles/controller/controller-admin-guide/docinfo.xml b/downstream/titles/controller/controller-admin-guide/docinfo.xml
index 6e76c749b6..735933cf2a 100644
--- a/downstream/titles/controller/controller-admin-guide/docinfo.xml
+++ b/downstream/titles/controller/controller-admin-guide/docinfo.xml
@@ -1,6 +1,6 @@
Configuring automation execution
Red Hat Ansible Automation Platform
-2.5
+2.6
Learn how to manage, monitor, and use automation controller
This guide shows how to manage automation controller with custom scripts, management jobs, and more.
diff --git a/downstream/titles/controller/controller-api-overview/docinfo.xml b/downstream/titles/controller/controller-api-overview/docinfo.xml
index 7047335f62..5b1885eef3 100644
--- a/downstream/titles/controller/controller-api-overview/docinfo.xml
+++ b/downstream/titles/controller/controller-api-overview/docinfo.xml
@@ -1,6 +1,6 @@
Automation execution API overview
Red Hat Ansible Automation Platform
-2.5
+2.6
Developer overview for the {ControllerName} API
Explore the {ControllerName} API Overview for streamlined automation solutions, empowering developers and administrators with efficient infrastructure management.
diff --git a/downstream/titles/controller/controller-user-guide/docinfo.xml b/downstream/titles/controller/controller-user-guide/docinfo.xml
index 0138758634..3df7c804f2 100644
--- a/downstream/titles/controller/controller-user-guide/docinfo.xml
+++ b/downstream/titles/controller/controller-user-guide/docinfo.xml
@@ -1,6 +1,6 @@
Using automation execution
Red Hat Ansible Automation Platform
-2.5
+2.6
Use automation execution to deploy, define, operate, scale and delegate automation
This guide shows you how to use automation controller to define, operate, scale and delegate automation across your enterprise.
diff --git a/downstream/titles/develop-automation-content/docinfo.xml b/downstream/titles/develop-automation-content/docinfo.xml
index 1473821ead..bab86d6bd8 100644
--- a/downstream/titles/develop-automation-content/docinfo.xml
+++ b/downstream/titles/develop-automation-content/docinfo.xml
@@ -1,6 +1,6 @@
Developing automation content
Red Hat Ansible Automation Platform
-2.5
+2.6
Develop Ansible automation content to run automation jobs
This guide describes how to develop Ansible automation content and how to use it to run automation jobs from Red Hat Ansible Automation Platforms.
diff --git a/downstream/titles/eda/eda-user-guide/docinfo.xml b/downstream/titles/eda/eda-user-guide/docinfo.xml
index 4a544938ec..90c4892452 100644
--- a/downstream/titles/eda/eda-user-guide/docinfo.xml
+++ b/downstream/titles/eda/eda-user-guide/docinfo.xml
@@ -1,6 +1,6 @@
Using automation decisions
Red Hat Ansible Automation Platform
-2.5
+2.6
Configure and use {EDAcontroller} to enhance and expand automation
Learn how to configure your {EDAcontroller} to set up credentials, new projects, decision environments, tokens to authenticate to Ansible Automation Platform Controller, and rulebook activation.
diff --git a/downstream/titles/edge-manager/edge-manager-user-guide/docinfo.xml b/downstream/titles/edge-manager/edge-manager-user-guide/docinfo.xml
index d7492d723a..31377ecbfa 100644
--- a/downstream/titles/edge-manager/edge-manager-user-guide/docinfo.xml
+++ b/downstream/titles/edge-manager/edge-manager-user-guide/docinfo.xml
@@ -1,6 +1,6 @@
Managing device fleets with the Red Hat Edge Manager
Red Hat Ansible Automation Platform
-2.5
+2.6
Install, configure, and use the Red Hat Edge Manager to manage individual and fleets of devices
Learn about components that you can use for scalable and secure edge management.
diff --git a/downstream/titles/getting-started/docinfo.xml b/downstream/titles/getting-started/docinfo.xml
index e1b8436be6..1950768d09 100644
--- a/downstream/titles/getting-started/docinfo.xml
+++ b/downstream/titles/getting-started/docinfo.xml
@@ -1,6 +1,6 @@
Getting started with Ansible Automation Platform
Red Hat Ansible Automation Platform
-2.5
+2.6
Get started with Ansible Automation Platform
This guide shows how to get started with Ansible Automation Platform.
diff --git a/downstream/titles/getting-started/master.adoc b/downstream/titles/getting-started/master.adoc
index 20fe389e59..123b7a018f 100644
--- a/downstream/titles/getting-started/master.adoc
+++ b/downstream/titles/getting-started/master.adoc
@@ -27,5 +27,3 @@ include::platform/assembly-gs-platform-admin.adoc[leveloffset=+1]
include::platform/assembly-gs-auto-dev.adoc[leveloffset=+1]
include::platform/assembly-gs-auto-op.adoc[leveloffset=+1]
-
-include::platform/platform/con-aap-notifications-feed.adoc[leveloffset=+1]
diff --git a/downstream/titles/hub/managing-content/docinfo.xml b/downstream/titles/hub/managing-content/docinfo.xml
index 26b6154d33..efe3b1ce54 100644
--- a/downstream/titles/hub/managing-content/docinfo.xml
+++ b/downstream/titles/hub/managing-content/docinfo.xml
@@ -1,6 +1,6 @@
Managing automation content
Red Hat Ansible Automation Platform
-2.5
+2.6
Create and manage collections, content and repositories in automation hub
This guide shows you how to create, edit, delete, and move content in automation hub.
diff --git a/downstream/titles/navigator-guide/docinfo.xml b/downstream/titles/navigator-guide/docinfo.xml
index 4d80c41c38..318c9fdb5c 100644
--- a/downstream/titles/navigator-guide/docinfo.xml
+++ b/downstream/titles/navigator-guide/docinfo.xml
@@ -1,6 +1,6 @@
Using content navigator
Red Hat Ansible Automation Platform
-2.5
+2.6
Develop content that is compatible with Ansible Automation Platform
diff --git a/downstream/titles/ocp_performance_guide/docinfo.xml b/downstream/titles/ocp_performance_guide/docinfo.xml
index 0771bd481b..aeef0254f4 100644
--- a/downstream/titles/ocp_performance_guide/docinfo.xml
+++ b/downstream/titles/ocp_performance_guide/docinfo.xml
@@ -1,6 +1,6 @@
Performance considerations for operator environments
Red Hat Ansible Automation Platform
-2.5
+2.6
Configure automation controller for improved performance on operator based installations
diff --git a/downstream/titles/operator-mesh/docinfo.xml b/downstream/titles/operator-mesh/docinfo.xml
index d7f34fed3b..3470fce58f 100644
--- a/downstream/titles/operator-mesh/docinfo.xml
+++ b/downstream/titles/operator-mesh/docinfo.xml
@@ -1,6 +1,6 @@
Automation mesh for managed cloud or operator environments
Red Hat Ansible Automation Platform
-2.5
+2.6
Automate at scale in a cloud-native way
This guide shows how to deploy automation mesh as part of your operator-based Ansible Automation Platform environment.
diff --git a/downstream/titles/playbooks/playbooks-getting-started/docinfo.xml b/downstream/titles/playbooks/playbooks-getting-started/docinfo.xml
index 5dc012241f..dae897928d 100644
--- a/downstream/titles/playbooks/playbooks-getting-started/docinfo.xml
+++ b/downstream/titles/playbooks/playbooks-getting-started/docinfo.xml
@@ -1,6 +1,6 @@
Getting started with playbooks
Red Hat Ansible Automation Platform
-2.5
+2.6
Get started with Ansible Playbooks
This guide shows how to create and use playbooks to address your automation requirements.
diff --git a/downstream/titles/playbooks/playbooks-reference/docinfo.xml b/downstream/titles/playbooks/playbooks-reference/docinfo.xml
index 58966318a4..785035a5cd 100644
--- a/downstream/titles/playbooks/playbooks-reference/docinfo.xml
+++ b/downstream/titles/playbooks/playbooks-reference/docinfo.xml
@@ -1,6 +1,6 @@
Reference guide to Ansible Playbooks
Red Hat Ansible Automation Platform
-2.5
+2.6
Learn about the different approaches for creating playbooks
This guide provides a reference for the differing approaches to the creating of Ansible playbooks.
diff --git a/downstream/titles/release-notes/async/aap-25-20250409.adoc b/downstream/titles/release-notes/async/aap-25-20250409.adoc
index e028310664..80ceed8dec 100644
--- a/downstream/titles/release-notes/async/aap-25-20250409.adoc
+++ b/downstream/titles/release-notes/async/aap-25-20250409.adoc
@@ -62,11 +62,11 @@ With this update, the following CVEs have been addressed:
=== Container based {PlatformNameShort}
-* Fixed an issue where backup and restore jobs would fail to restore on `CONT` jobs. Implemented validation and cleanup for service nodes on a restore to a new cluster.(AAP-42781)
+* Fixed an issue where the restore to a new node would fail. Implemented validation and cleanup for service nodes on a restore to a new cluster.(AAP-42781)
* Fixed an issue where podman logs did not show any log messages if the user was not part of the local *administrator* or `systemd-journal` group.(AAP-42755)
-* Fixed an issue where the {PlatformNameShort} 2.5 containerized installer was unable to read custom configurations.(AAP-40798)
+* Fixed an issue where the containerized installer was unable to apply extra settings for {ControllerName}, {EDAName}, {Gateway}, and {HubName}.(AAP-40798)
* Fixed an issue where a remote user was not part of the `systemd-journal` group and could not access container logs.(AAP-42755)
diff --git a/downstream/titles/release-notes/async/aap-25-20250730.adoc b/downstream/titles/release-notes/async/aap-25-20250730.adoc
new file mode 100644
index 0000000000..480cd31278
--- /dev/null
+++ b/downstream/titles/release-notes/async/aap-25-20250730.adoc
@@ -0,0 +1,125 @@
+[[aap-25-20250730]]
+
+= {PlatformNameShort} patch release July 30, 2025
+
+This release includes the following components and versions:
+
+[cols="1a,3a", options="header"]
+|===
+| Release date | Component versions
+
+| July 30, 2025|
+* {ControllerNameStart} 4.6.18
+* {HubNameStart} 4.10.6
+* {EDAName} 1.1.11
+* Container-based installer {PlatformNameShort} (bundle) 2.5-17
+* Container-based installer {PlatformNameShort} (online) 2.5-17
+* Receptor 1.5.7
+* RPM-based installer {PlatformNameShort} (bundle) 2.5-16
+* RPM-based installer {PlatformNameShort} (online) 2.5-16
+
+|===
+
+CSV Versions in this release:
+
+* Namespace-scoped Bundle: aap-operator.v2.5.0-0.1753402603
+
+* Cluster-scoped Bundle: aap-operator.v2.5.0-0.1753403065
+
+
+
+== General
+
+* The `redhat.rhel_system_roles` collection has been updated to 1.95.7.(AAP-49916)
+
+* The `ansible.windows` collection has been updated to 2.8.0.(AAP-49923)
+
+* The `ansible.eda` collection has been updated to 2.8.2.(AAP-49997)
+
+
+
+== CVE
+
+With this update, the following CVEs have been addressed:
+
+* link:https://access.redhat.com/security/cve/CVE-2025-7738[CVE-2025-7738] `python3.11-django-ansible-base`: Hide plain text *OAuth2* secrets on GitHub Enterprise and GitHub Enterprise organization authenticator configuration views in platform-gateway.(AAP-49561)
+
+* link:https://access.redhat.com/security/cve/CVE-2025-2099[CVE-2025-2099] `ansible-automation-platform-25/lightspeed-chatbot-rhel8`: Regular Expression Denial of Service (ReDoS) in uggingface/transformers.(AAP-48621)
+
+* link:https://access.redhat.com/security/cve/CVE-2025-5988[CVE-2025-5988] `automation-gateway`: CSRF origin checking is enabled.(AAP-50374)
+
+
+
+== {PlatformNameShort}
+
+=== Features
+
+* `PosixUIDGroupType` can be selected for LDAP Group Type.(AAP-49347)
+
+=== Enhancements
+
+* Optimized the handling of web socket messages from the Workflow Visualizer.(AAP-46800)
+
+=== Bug fixes
+
+* Fixed the fields `content_type` for role user assignments to indicate that null values are valid responses from the API.(AAP-49494)
+
+* Fixed the fields `team_ansible_id` for role team assignments to indicate that null values can be POSTed to the API.(AAP-49812)
+
+* Fixed an issue where `auto-complete` was not disabled on all forms for sensitive information such as usernames, passwords, secret keys, etc.(AAP-49079)
+
+* Fixed an issue related to workflow job template limits overriding workflow job template node limits upon save.(AAP-48946)
+
+* Fixed the *Min* and *Max* Limit values displayed on the *Edit Survey* form.(AAP-39933)
+
+* Fixed an issue where the case insensitivity for authentication map user attribute names and values and for group names was not available. Feature flag `FEATURE_CASE_INSENSITIVE_AUTH_MAPS` must be set to true to enable case insensitive comparisons.(AAP-49327)
+
+* Fixed an issue that adds an OIDC Callback URL field that, after creation of authenticator, displays the URL to use in setting up the IdP. The URL field is displayed on the creation page and this field is to be left blank.(AAP-49874)
+
+
+
+== {ControllerNameStart}
+
+=== Enhancements
+
+* Update the injectors for the {PlatformNameShort} credential type to work across collection.(AAP-47877)
+
+=== Bug Fixes
+
+* Removed API version from hard-coded URL in inventory plugin.(AAP-48443)
+
+* Fixed a *404* error for workflow nodes.(AAP-47362)
+
+* Fixed an issue where the {ControllerName} pod was not working after an upgrade to `aap-operator.v2.5.0-0.1750901870`.(AAP-48771)
+
+
+
+== Container-based {PlatformNameShort}
+
+=== Enhancements
+
+* Added an exclusion parameter for Container-based {PlatformNameShort} Backup, allowing users to specify snapshot paths to be excluded from the backup process.(AAP-50114)
+
+=== Bug Fixes
+
+* Fixed the issue where execution instances removed from the inventory would still be visible on the Topology View.(AAP-48615)
+
+* Fixed a bug when restoring {HubName} to a new cluster when using NFS for the hub data filesystem.(AAP-48568)
+
+* Fixed permission issues when restoring {HubName} when using NFS storage.(AAP-50118)
+
+
+
+== RPM-based {PlatformNameShort}
+
+=== Bug Fixes
+
+* {EDAName} node type is now properly checked during restore.(AAP-49004)
+
+* Fixed an issue where *gRPC* server port was not configured properly when non-default value was used.(AAP-48543)
+
+* Fixed an issue where the firewall role logic improperly restricted {EDAName} event stream ports. Firewall ports are now restricted to event hosts, enhancing network security for {EDAName} users.(AAP-49792)
+
+* Fixed an issue where the gunicorn timeout to {EDAName} API service unit was not passed.(AAP-49858)
+
+* Fixed an issue where envoy, nginx, web server, and jwt token timeouts were not aligned, and caused issues where requests time out but work continues, or tokens expire before they are used.(AAP-49153)
diff --git a/downstream/titles/release-notes/docinfo.xml b/downstream/titles/release-notes/docinfo.xml
index 097f5a79e4..9c946d5e4f 100644
--- a/downstream/titles/release-notes/docinfo.xml
+++ b/downstream/titles/release-notes/docinfo.xml
@@ -1,6 +1,6 @@
Release notes
Red Hat Ansible Automation Platform
-2.5
+2.6
New features, enhancements, and bug fix information
diff --git a/downstream/titles/release-notes/master.adoc b/downstream/titles/release-notes/master.adoc
index 579b9b8054..15b4de17ed 100644
--- a/downstream/titles/release-notes/master.adoc
+++ b/downstream/titles/release-notes/master.adoc
@@ -34,6 +34,8 @@ include::topics/docs-25.adoc[leveloffset=+1]
// == Asynchronous updates
include::async/async-updates.adoc[leveloffset=+1]
+// Async release 2.5-07-30-2025
+include::async/aap-25-20250730.adoc[leveloffset=+2]
// Async release 2.5-07-02-2025
include::async/aap-25-20250702.adoc[leveloffset=+2]
// Async release 2.5-06-11-2025
diff --git a/downstream/titles/release-notes/topics/aap-25.adoc b/downstream/titles/release-notes/topics/aap-25.adoc
index 0fd57c8997..f4527fc096 100644
--- a/downstream/titles/release-notes/topics/aap-25.adoc
+++ b/downstream/titles/release-notes/topics/aap-25.adoc
@@ -67,7 +67,7 @@ With {PlatformNameShort} 2.5, {EDAName} functionality has been enhanced with the
* Simplified event routing capabilities introduce event streams. Event streams are an easy way to connect your sources to your rulebooks. This new capability lets you create a single endpoint to receive alerts from an event source and then use the events in multiple rulebooks. This simplifies rulebook activation setup, reduces maintenance demands, and helps lower risk by eliminating the need for additional ports to be open to external traffic.
-* {EDAName} in the {PlatformNameShort} 2.5 now supports horizontal scalability and enables high-availability deployments of the {EDAController}. These capabilities allow for the installation of multiple {EDAName} nodes and thus enable you to create highly available deployments.
+* {EDAName} in the {PlatformNameShort} 2.5 now supports horizontal scaling, allowing you to install multiple {EDAName} nodes to handle increased event volume.
* Migration to the new platform-wide {PlatformName} credential type replaces the legacy controller token for enabling rulebook activations to call jobs in the {ControllerName}.
diff --git a/downstream/titles/release-notes/topics/tech-preview.adoc b/downstream/titles/release-notes/topics/tech-preview.adoc
index 818c9c6f81..3a748bde54 100644
--- a/downstream/titles/release-notes/topics/tech-preview.adoc
+++ b/downstream/titles/release-notes/topics/tech-preview.adoc
@@ -20,6 +20,18 @@ include::../snippets/technology-preview.adoc[]
// You can now configure the Controller Access Token for each resource with the `connection_secret` parameter, rather than the `tower_auth_secret` parameter. This change is compatible with earlier versions, but the `tower_auth_secret` parameter is now deprecated and will be removed in a future release.
+=== Ansible-core 2.19
+
+This link:https://access.redhat.com/articles/7128367[technical preview] includes an overhaul of the templating system and a new feature labeled Data Tagging. These changes enable reporting of numerous problematic behaviors that went undetected in previous releases, with wide-ranging positive effects on security, performance, and user experience.
+
+Backward compatibility has been preserved where practical, but some breaking changes were necessary. This guide describes some common problem scenarios with example content, error messages, and suggested solutions.
+
+We recommend you test your playbooks and roles in a staging environment with this release to determine where you may need to make changes.
+
+For further information see the link:https://ansible.readthedocs.io/projects/ansible-core/devel/porting_guides/porting_guide_core_2.19.html#id3[Ansible Porting Guide].
+
+
+
=== Availability of {AAPchatbot}
The {AAPchatbot} is now available on {PlatformNameShort} 2.5 on {OCP} as a Technology Preview release. It is an intuitive chat interface embedded within the {PlatformNameShort}, utilizing generative artificial intelligence (AI) to answer questions about the {PlatformNameShort}.
diff --git a/downstream/titles/security-guide/docinfo.xml b/downstream/titles/security-guide/docinfo.xml
index fb847664c8..b769853b80 100644
--- a/downstream/titles/security-guide/docinfo.xml
+++ b/downstream/titles/security-guide/docinfo.xml
@@ -1,6 +1,6 @@
Implementing security automation
Red Hat Ansible Automation Platform
-2.5
+2.6
Identify and manage security events using Ansible
This guide provides procedures for automating and streamlining various security processes needed to identify, triage, and respond to security events using Ansible.
diff --git a/downstream/titles/self-service-install/docinfo.xml b/downstream/titles/self-service-install/docinfo.xml
index 6eae8aa3ed..21a5562a0c 100644
--- a/downstream/titles/self-service-install/docinfo.xml
+++ b/downstream/titles/self-service-install/docinfo.xml
@@ -1,6 +1,6 @@
Installing Ansible Automation Platform self-service technology preview
Red Hat Ansible Automation Platform
-2.5
+2.6
Install and configure Ansible Automation Platform self-service technology preview
This guide describes how to install and configure Ansible Automation Platform self-service technology preview so that users can run automation.
diff --git a/downstream/titles/self-service-using/docinfo.xml b/downstream/titles/self-service-using/docinfo.xml
index 985a3dcc23..be9e80274c 100644
--- a/downstream/titles/self-service-using/docinfo.xml
+++ b/downstream/titles/self-service-using/docinfo.xml
@@ -1,6 +1,6 @@
Using Ansible Automation Platform self-service technology preview
Red Hat Ansible Automation Platform
-2.5
+2.6
Use Ansible Automation Platform self-service technology preview
This guide describes how to use Ansible Automation Platform self-service technology preview to implement role-based access control and run automation.
diff --git a/downstream/titles/terraform-aap/terraform-aap-getting-started/docinfo.xml b/downstream/titles/terraform-aap/terraform-aap-getting-started/docinfo.xml
index 4c420f3afc..9dd6558c9e 100644
--- a/downstream/titles/terraform-aap/terraform-aap-getting-started/docinfo.xml
+++ b/downstream/titles/terraform-aap/terraform-aap-getting-started/docinfo.xml
@@ -1,6 +1,6 @@
Getting started with Terraform and Ansible Automation Platform
Red Hat Ansible Automation Platform
-2.5
+2.6
Integrate Terraform with Ansible Automation Platform
Learn how to configure Ansible Automation Platform with Terraform Enterprise or HCP Terraform, and migrate from Terraform Community.
diff --git a/downstream/titles/topologies/docinfo.xml b/downstream/titles/topologies/docinfo.xml
index e29d8807e5..0ffc6bf4c3 100644
--- a/downstream/titles/topologies/docinfo.xml
+++ b/downstream/titles/topologies/docinfo.xml
@@ -1,6 +1,6 @@
Tested deployment models
Red Hat Ansible Automation Platform
-2.5
+2.6
Plan your deployment of Ansible Automation Platform
diff --git a/downstream/titles/topologies/master.adoc b/downstream/titles/topologies/master.adoc
index 9b3ab3721c..ff960894d4 100644
--- a/downstream/titles/topologies/master.adoc
+++ b/downstream/titles/topologies/master.adoc
@@ -11,15 +11,15 @@ include::{Boilerplate}[]
include::topologies/assembly-overview-tested-deployment-models.adoc[leveloffset=+1]
-//RPM topologies
-include::topologies/assembly-rpm-topologies.adoc[leveloffset=+1]
-
//Container topologies
include::topologies/assembly-container-topologies.adoc[leveloffset=+1]
//Operator topologies
include::topologies/assembly-ocp-topologies.adoc[leveloffset=+1]
+//RPM topologies
+include::topologies/assembly-rpm-topologies.adoc[leveloffset=+1]
+
//Automation mesh nodes
include::topologies/topologies/ref-mesh-nodes.adoc[leveloffset=+1]
diff --git a/downstream/titles/troubleshooting-aap/docinfo.xml b/downstream/titles/troubleshooting-aap/docinfo.xml
index 4375bb5626..97233bf22e 100644
--- a/downstream/titles/troubleshooting-aap/docinfo.xml
+++ b/downstream/titles/troubleshooting-aap/docinfo.xml
@@ -1,6 +1,6 @@
Troubleshooting Ansible Automation Platform
Red Hat Ansible Automation Platform
-2.5
+2.6
Troubleshoot issues with Ansible Automation Platform
diff --git a/downstream/titles/updating-aap/platform b/downstream/titles/updating-aap/platform
deleted file mode 120000
index 06b49528ee..0000000000
--- a/downstream/titles/updating-aap/platform
+++ /dev/null
@@ -1 +0,0 @@
-../../assemblies/platform
\ No newline at end of file
diff --git a/downstream/titles/upgrade/docinfo.xml b/downstream/titles/upgrade/docinfo.xml
index 0def8006be..4b483cfa6e 100644
--- a/downstream/titles/upgrade/docinfo.xml
+++ b/downstream/titles/upgrade/docinfo.xml
@@ -1,6 +1,6 @@
RPM upgrade and migration
Red Hat Ansible Automation Platform
-2.5
+2.6
Upgrade and migrate legacy deployments of Ansible Automation Platform
This guide shows you how to upgrade to the latest version of Ansible Automation Platform and migrate legacy virtual environments to automation execution environments.