From 4fb4739fabba88a22a8abe2919815afbb524cf16 Mon Sep 17 00:00:00 2001 From: Eric Ponvelle Date: Fri, 6 May 2022 17:06:53 -0400 Subject: [PATCH] OSD Restructure --- _topic_maps/_topic_map_osd.yml | 188 ++++++++---------- images/osd-nodes-machinepools-about-f7619.png | Bin 0 -> 33525 bytes modules/access-cluster.adoc | 2 +- modules/config-idp.adoc | 2 +- modules/deleting-cluster.adoc | 2 +- modules/deploy-app.adoc | 2 +- modules/osd-create-cluster-ccs.adoc | 2 +- .../osd-create-cluster-red-hat-account.adoc | 2 +- modules/osd-intro.adoc | 2 +- modules/scaling-cluster.adoc | 2 +- modules/upgrade.adoc | 2 +- .../configuring-cluster-wide-proxy.adoc | 2 +- osd_architecture/osd-support.adoc | 23 +++ osd_architecture/osd-understanding.adoc | 4 +- .../osd_policy}/_attributes | 0 .../osd_policy}/images | 0 .../osd_policy}/modules | 0 .../osd_policy}/osd-life-cycle.adoc | 0 .../osd_policy}/osd-service-definition.adoc | 0 .../osd_policy}/policy-process-security.adoc | 0 .../policy-responsibility-matrix.adoc | 0 .../policy-understand-availability.adoc | 0 .../osd_policy}/snippets | 0 .../_attributes | 0 .../cluster-admin-role.adoc | 0 .../dedicated-admin-role.adoc | 0 .../images | 0 .../modules | 0 .../osd-admin-roles.adoc | 0 .../osd_monitoring}/_attributes | 0 osd_cluster_admin/osd_monitoring/images | 1 + osd_cluster_admin/osd_monitoring/modules | 1 + ...-monitoring-for-user-defined-projects.adoc | 23 +++ .../osd-configuring-the-monitoring-stack.adoc | 82 ++++++++ .../osd_monitoring/osd-managing-alerts.adoc | 13 ++ .../osd_monitoring}/osd-managing-metrics.adoc | 10 +- .../osd-reviewing-monitoring-dashboards.adoc | 32 +++ ...osd-troubleshooting-monitoring-issues.adoc | 11 + ...sd-understanding-the-monitoring-stack.adoc | 33 +++ .../osd_monitoring}/snippets | 0 .../osd_nodes}/_attributes | 0 .../osd_nodes}/images | 0 .../osd_nodes}/modules | 0 .../osd_nodes/osd-managing-worker-nodes.adoc | 24 +++ .../osd-nodes-about-autoscaling-nodes.adoc | 56 ++++++ .../osd-nodes-machinepools-about.adoc | 35 ++++ .../osd_nodes}/snippets | 0 .../osd_private_connections}/_attributes | 0 .../aws-private-connections.adoc | 0 .../osd_private_connections}/images | 0 .../osd_private_connections}/modules | 0 .../private-cluster.adoc | 0 .../osd_private_connections}/snippets | 0 .../snippets | 0 .../_attributes | 0 .../images | 0 .../modules | 0 osd_getting_started/osd-getting-started.adoc | 78 ++++++++ ...tanding-your-cloud-deployment-options.adoc | 4 +- .../snippets | 0 osd_install_access_delete_cluster/_attributes | 1 + .../config-identity-providers.adoc | 0 .../creating-a-gcp-cluster.adoc | 10 +- .../creating-an-aws-cluster.adoc | 10 +- .../images | 0 .../modules | 0 .../notifications.adoc | 0 osd_install_access_delete_cluster/snippets | 1 + osd_quickstart/osd-quickstart.adoc | 78 -------- osd_support/_attributes | 1 + osd_support/images | 1 + osd_support/modules | 1 + osd_support/osd-managed-resources.adoc | 54 +++++ ...sd-summarizing-cluster-specifications.adoc | 13 ++ .../remote_health_monitoring/_attributes | 1 + .../about-remote-health-monitoring.adoc | 123 ++++++++++++ .../enabling-remote-health-reporting.adoc | 20 ++ osd_support/remote_health_monitoring/images | 1 + .../insights-operator-simple-access.adoc | 23 +++ osd_support/remote_health_monitoring/modules | 1 + ...opting-out-of-remote-health-reporting.adoc | 35 ++++ ...lth-reporting-from-restricted-network.adoc | 28 +++ ...collected-by-remote-health-monitoring.adoc | 16 ++ osd_support/remote_health_monitoring/snippets | 1 + ...-to-identify-issues-with-your-cluster.adoc | 20 ++ osd_support/snippets | 1 + 86 files changed, 870 insertions(+), 208 deletions(-) create mode 100644 images/osd-nodes-machinepools-about-f7619.png create mode 100644 osd_architecture/osd-support.adoc rename {administering_a_cluster => osd_architecture/osd_policy}/_attributes (100%) rename {osd_cluster_create => osd_architecture/osd_policy}/images (100%) rename {osd_cluster_create => osd_architecture/osd_policy}/modules (100%) rename {osd_policy => osd_architecture/osd_policy}/osd-life-cycle.adoc (100%) rename {osd_policy => osd_architecture/osd_policy}/osd-service-definition.adoc (100%) rename {osd_policy => osd_architecture/osd_policy}/policy-process-security.adoc (100%) rename {osd_policy => osd_architecture/osd_policy}/policy-responsibility-matrix.adoc (100%) rename {osd_policy => osd_architecture/osd_policy}/policy-understand-availability.adoc (100%) rename {administering_a_cluster => osd_architecture/osd_policy}/snippets (100%) rename {osd_cluster_create => osd_cluster_admin}/_attributes (100%) rename {administering_a_cluster => osd_cluster_admin}/cluster-admin-role.adoc (100%) rename {administering_a_cluster => osd_cluster_admin}/dedicated-admin-role.adoc (100%) rename {administering_a_cluster => osd_cluster_admin}/images (100%) rename {administering_a_cluster => osd_cluster_admin}/modules (100%) rename {administering_a_cluster => osd_cluster_admin}/osd-admin-roles.adoc (100%) rename {osd_notifications => osd_cluster_admin/osd_monitoring}/_attributes (100%) create mode 120000 osd_cluster_admin/osd_monitoring/images create mode 120000 osd_cluster_admin/osd_monitoring/modules create mode 100644 osd_cluster_admin/osd_monitoring/osd-accessing-monitoring-for-user-defined-projects.adoc create mode 100644 osd_cluster_admin/osd_monitoring/osd-configuring-the-monitoring-stack.adoc create mode 100644 osd_cluster_admin/osd_monitoring/osd-managing-alerts.adoc rename {monitoring => osd_cluster_admin/osd_monitoring}/osd-managing-metrics.adoc (66%) create mode 100644 osd_cluster_admin/osd_monitoring/osd-reviewing-monitoring-dashboards.adoc create mode 100644 osd_cluster_admin/osd_monitoring/osd-troubleshooting-monitoring-issues.adoc create mode 100644 osd_cluster_admin/osd_monitoring/osd-understanding-the-monitoring-stack.adoc rename {osd_cluster_create => osd_cluster_admin/osd_monitoring}/snippets (100%) rename {osd_policy => osd_cluster_admin/osd_nodes}/_attributes (100%) rename {osd_notifications => osd_cluster_admin/osd_nodes}/images (100%) rename {osd_notifications => osd_cluster_admin/osd_nodes}/modules (100%) create mode 100644 osd_cluster_admin/osd_nodes/osd-managing-worker-nodes.adoc create mode 100644 osd_cluster_admin/osd_nodes/osd-nodes-about-autoscaling-nodes.adoc create mode 100644 osd_cluster_admin/osd_nodes/osd-nodes-machinepools-about.adoc rename {osd_notifications => osd_cluster_admin/osd_nodes}/snippets (100%) rename {osd_private_connections => osd_cluster_admin/osd_private_connections}/_attributes (100%) rename {osd_private_connections => osd_cluster_admin/osd_private_connections}/aws-private-connections.adoc (100%) rename {osd_policy => osd_cluster_admin/osd_private_connections}/images (100%) rename {osd_policy => osd_cluster_admin/osd_private_connections}/modules (100%) rename {osd_private_connections => osd_cluster_admin/osd_private_connections}/private-cluster.adoc (100%) rename {osd_policy => osd_cluster_admin/osd_private_connections}/snippets (100%) rename {osd_private_connections => osd_cluster_admin}/snippets (100%) rename {osd_quickstart => osd_getting_started}/_attributes (100%) rename {osd_private_connections => osd_getting_started}/images (100%) rename {osd_private_connections => osd_getting_started}/modules (100%) create mode 100644 osd_getting_started/osd-getting-started.adoc rename {osd_cluster_create => osd_getting_started}/osd-understanding-your-cloud-deployment-options.adoc (70%) rename {osd_quickstart => osd_getting_started}/snippets (100%) create mode 120000 osd_install_access_delete_cluster/_attributes rename {identity_providers => osd_install_access_delete_cluster}/config-identity-providers.adoc (100%) rename {osd_cluster_create => osd_install_access_delete_cluster}/creating-a-gcp-cluster.adoc (59%) rename {osd_cluster_create => osd_install_access_delete_cluster}/creating-an-aws-cluster.adoc (63%) rename {osd_quickstart => osd_install_access_delete_cluster}/images (100%) rename {osd_quickstart => osd_install_access_delete_cluster}/modules (100%) rename {osd_notifications => osd_install_access_delete_cluster}/notifications.adoc (100%) create mode 120000 osd_install_access_delete_cluster/snippets delete mode 100644 osd_quickstart/osd-quickstart.adoc create mode 120000 osd_support/_attributes create mode 120000 osd_support/images create mode 120000 osd_support/modules create mode 100644 osd_support/osd-managed-resources.adoc create mode 100644 osd_support/osd-summarizing-cluster-specifications.adoc create mode 120000 osd_support/remote_health_monitoring/_attributes create mode 100644 osd_support/remote_health_monitoring/about-remote-health-monitoring.adoc create mode 100644 osd_support/remote_health_monitoring/enabling-remote-health-reporting.adoc create mode 120000 osd_support/remote_health_monitoring/images create mode 100644 osd_support/remote_health_monitoring/insights-operator-simple-access.adoc create mode 120000 osd_support/remote_health_monitoring/modules create mode 100644 osd_support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc create mode 100644 osd_support/remote_health_monitoring/remote-health-reporting-from-restricted-network.adoc create mode 100644 osd_support/remote_health_monitoring/showing-data-collected-by-remote-health-monitoring.adoc create mode 120000 osd_support/remote_health_monitoring/snippets create mode 100644 osd_support/remote_health_monitoring/using-insights-to-identify-issues-with-your-cluster.adoc create mode 120000 osd_support/snippets diff --git a/_topic_maps/_topic_map_osd.yml b/_topic_maps/_topic_map_osd.yml index 2985c8e307..964ee4a2da 100644 --- a/_topic_maps/_topic_map_osd.yml +++ b/_topic_maps/_topic_map_osd.yml @@ -32,16 +32,40 @@ Topics: File: legal-notice Distros: openshift-dedicated --- -Name: Architecture +Name: Introduction to OpenShift Dedicated Dir: osd_architecture Distros: openshift-dedicated Topics: -- Name: Introduction to OpenShift Dedicated +- Name: Understanding OpenShift Dedicated File: osd-understanding - Name: Architecture concepts File: osd-architecture +- Name: Policies and service definition + Dir: osd_policy + Distros: openshift-dedicated + Topics: + - Name: OpenShift Dedicated service definition + File: osd-service-definition + - Name: Responsibility assignment matrix + File: policy-responsibility-matrix + - Name: Understanding process and security for OpenShift Dedicated + File: policy-process-security + - Name: About availability for OpenShift Dedicated + File: policy-understand-availability + - Name: Update life cycle + File: osd-life-cycle +- Name: Support for OpenShift Dedicated + File: osd-support + Distros: openshift-dedicated --- -Name: Planning +Name: Red Hat OpenShift Cluster Manager +Dir: ocm +Distros: openshift-dedicated +Topics: +- Name: Red Hat OpenShift Cluster Manager + File: ocm-overview +--- +Name: Planning your environment Dir: osd_planning Distros: openshift-dedicated Topics: @@ -51,45 +75,71 @@ Topics: File: gcp-ccs --- Name: Getting started -Dir: osd_quickstart -Distros: openshift-dedicated -Topics: -- Name: Getting started with OpenShift Dedicated - File: osd-quickstart ---- -Name: Red Hat OpenShift Cluster Manager -Dir: ocm -Distros: openshift-dedicated -Topics: -- Name: Red Hat OpenShift Cluster Manager - File: ocm-overview ---- -Name: Creating a cluster -Dir: osd_cluster_create +Dir: osd_getting_started Distros: openshift-dedicated Topics: - Name: Understanding your cloud deployment options File: osd-understanding-your-cloud-deployment-options +- Name: Getting started with OpenShift Dedicated + File: osd-getting-started +--- +Name: Installing, accessing, and deleting OpenShift Dedicated clusters +Dir: osd_install_access_delete_cluster +Distros: openshift-dedicated +Topics: - Name: Creating a cluster on AWS File: creating-an-aws-cluster - Name: Creating a cluster on GCP File: creating-a-gcp-cluster ---- -Name: Configuring identity providers -Dir: identity_providers -Distros: openshift-dedicated -Topics: - Name: Configuring your identity providers File: config-identity-providers +- Name: Notifications for OpenShift Dedicated clusters + File: notifications --- -Name: Administering your cluster -Dir: administering_a_cluster +Name: Cluster administration +Dir: osd_cluster_admin Distros: openshift-dedicated Topics: - Name: Managing administration roles and users File: osd-admin-roles +- Name: Configuring private connections + Dir: osd_private_connections + Distros: openshift-dedicated + Topics: + - Name: Configuring private connections for AWS + File: aws-private-connections + - Name: Configuring a private cluster + File: private-cluster +- Name: Nodes + Dir: osd_nodes + Distros: openshift-dedicated + Topics: + - Name: About machine pools + File: osd-nodes-machinepools-about + - Name: Managing compute nodes + File: osd-managing-worker-nodes + - Name: About autoscaling nodes on a cluster + File: osd-nodes-about-autoscaling-nodes +- Name: Monitoring user-defined projects + Dir: osd_monitoring + Distros: openshift-dedicated + Topics: + - Name: Understanding the monitoring stack + File: osd-understanding-the-monitoring-stack + - Name: Configuring the monitoring stack + File: osd-configuring-the-monitoring-stack + - Name: Accessing monitoring for user-defined projects + File: osd-accessing-monitoring-for-user-defined-projects + - Name: Managing metrics + File: osd-managing-metrics + - Name: Managing alerts + File: osd-managing-alerts + - Name: Reviewing monitoring dashboards + File: osd-reviewing-monitoring-dashboards + - Name: Troubleshooting monitoring issues + File: osd-troubleshooting-monitoring-issues --- -Name: Authentication and authorization +Name: Cluster security Dir: authentication Distros: openshift-dedicated Topics: @@ -107,13 +157,6 @@ Topics: File: osd-upgrades Distros: openshift-dedicated --- -Name: Cluster notifications -Dir: osd_notifications -Distros: openshift-dedicated -Topics: -- Name: Notifications for OpenShift Dedicated clusters - File: notifications ---- Name: Add-on services Dir: adding_service_cluster Distros: openshift-dedicated @@ -124,14 +167,16 @@ Topics: File: available-services Distros: openshift-dedicated --- -Name: Configuring private connections -Dir: osd_private_connections +Name: Storage +Dir: storage Distros: openshift-dedicated Topics: -- Name: Configuring private connections for AWS - File: aws-private-connections -- Name: Configuring a private cluster - File: private-cluster +- Name: Persistent storage + Dir: persistent_storage + Distros: openshift-dedicated + Topics: + - Name: Persistent storage using AWS EFS + File: osd-persistent-storage-aws --- Name: Networking Dir: networking @@ -147,47 +192,6 @@ Topics: - Name: CIDR range definitions File: cidr-range-definitions --- -Name: Nodes -Dir: nodes -Distros: openshift-dedicated -Topics: -- Name: About machine pools - File: nodes-machinepools-about -- Name: Managing compute nodes - File: rosa-managing-worker-nodes -- Name: About autoscaling nodes on a cluster - File: nodes-about-autoscaling-nodes ---- -Name: Monitoring user-defined projects -Dir: monitoring -Distros: openshift-dedicated -Topics: -- Name: Understanding the monitoring stack - File: osd-understanding-the-monitoring-stack -- Name: Configuring the monitoring stack - File: osd-configuring-the-monitoring-stack -- Name: Accessing monitoring for user-defined projects - File: osd-accessing-monitoring-for-user-defined-projects -- Name: Managing metrics - File: osd-managing-metrics -- Name: Managing alerts - File: osd-managing-alerts -- Name: Reviewing monitoring dashboards - File: osd-reviewing-monitoring-dashboards -- Name: Troubleshooting monitoring issues - File: osd-troubleshooting-monitoring-issues ---- -Name: Storage -Dir: storage -Distros: openshift-dedicated -Topics: -- Name: Persistent storage - Dir: persistent_storage - Distros: openshift-dedicated - Topics: - - Name: Persistent storage using AWS EFS - File: osd-persistent-storage-aws ---- Name: Applications Dir: applications Distros: openshift-dedicated @@ -199,21 +203,6 @@ Topics: - Name: Configuring custom domains for applications File: osd-config-custom-domains-applications --- -Name: Policies and service definition -Dir: osd_policy -Distros: openshift-dedicated -Topics: -- Name: OpenShift Dedicated service definition - File: osd-service-definition -- Name: Responsibility assignment matrix - File: policy-responsibility-matrix -- Name: Understanding process and security for OpenShift Dedicated - File: policy-process-security -- Name: About availability for OpenShift Dedicated - File: policy-understand-availability -- Name: Update life cycle - File: osd-life-cycle ---- Name: Serverless Dir: serverless Distros: openshift-dedicated @@ -363,13 +352,10 @@ Topics: - Name: Functions development reference guide File: serverless-functions-reference-guide --- -Name: Support -Dir: support +Name: Troubleshooting +Dir: osd_support Distros: openshift-dedicated Topics: -- Name: Getting support - File: getting-support - Distros: openshift-dedicated - Name: Remote health monitoring with connected clusters Dir: remote_health_monitoring Distros: openshift-dedicated @@ -383,7 +369,7 @@ Topics: - Name: Using Insights to identify issues with your cluster File: using-insights-to-identify-issues-with-your-cluster - Name: Summarizing cluster specifications - File: summarizing-cluster-specifications + File: osd-summarizing-cluster-specifications Distros: openshift-dedicated - Name: OpenShift Dedicated managed resources File: osd-managed-resources diff --git a/images/osd-nodes-machinepools-about-f7619.png b/images/osd-nodes-machinepools-about-f7619.png new file mode 100644 index 0000000000000000000000000000000000000000..80c5e309b255210d698e91968e9ec29413f07eb1 GIT binary patch literal 33525 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 Y2->WtQ+@NEhXOwmBC^6ILOQ?x7h*dh7ytkO literal 0 HcmV?d00001 diff --git a/modules/access-cluster.adoc b/modules/access-cluster.adoc index 2ae27ad82d..a698d85226 100644 --- a/modules/access-cluster.adoc +++ b/modules/access-cluster.adoc @@ -1,6 +1,6 @@ // Module included in the following assemblies: // -// * osd_quickstart/osd-quickstart.adoc +// * osd_getting_started/osd-getting-started.adoc // * identity_providers/config-identity-providers.adoc :_content-type: PROCEDURE diff --git a/modules/config-idp.adoc b/modules/config-idp.adoc index 82c6999700..7bcf85cbc9 100644 --- a/modules/config-idp.adoc +++ b/modules/config-idp.adoc @@ -1,6 +1,6 @@ // Module included in the following assemblies: // -// * osd_quickstart/osd-quickstart.adoc +// * osd_getting_started/osd-getting-started.adoc :_content-type: PROCEDURE [id="config-idp_{context}"] diff --git a/modules/deleting-cluster.adoc b/modules/deleting-cluster.adoc index e3f0d85078..1918ed5b2c 100644 --- a/modules/deleting-cluster.adoc +++ b/modules/deleting-cluster.adoc @@ -1,7 +1,7 @@ // Module included in the following assemblies: // -// * osd_quickstart/osd-quickstart.adoc +// * osd_getting_started/osd-getting-started.adoc :_content-type: PROCEDURE [id="deleting-cluster_{context}"] diff --git a/modules/deploy-app.adoc b/modules/deploy-app.adoc index 2f4df92438..e7ddafe7e2 100644 --- a/modules/deploy-app.adoc +++ b/modules/deploy-app.adoc @@ -1,7 +1,7 @@ // Module included in the following assemblies: // // * rosa_getting_started/rosa-getting-started.adoc -// * osd_quickstart/osd-quickstart.adoc +// * osd_getting_started/osd-getting-started.adoc :_content-type: PROCEDURE [id="deploy-app_{context}"] diff --git a/modules/osd-create-cluster-ccs.adoc b/modules/osd-create-cluster-ccs.adoc index baced458a2..c509efd029 100644 --- a/modules/osd-create-cluster-ccs.adoc +++ b/modules/osd-create-cluster-ccs.adoc @@ -1,6 +1,6 @@ // Module included in the following assemblies: // -// * osd_quickstart/osd-quickstart.adoc +// * osd_getting_started/osd-getting-started.adoc // * osd_cluster_create/creating-an-aws-cluster.adoc // * osd_cluster_create/creating-a-gcp-cluster.adoc diff --git a/modules/osd-create-cluster-red-hat-account.adoc b/modules/osd-create-cluster-red-hat-account.adoc index 2ec25646a3..6eff68d61c 100644 --- a/modules/osd-create-cluster-red-hat-account.adoc +++ b/modules/osd-create-cluster-red-hat-account.adoc @@ -1,6 +1,6 @@ // Module included in the following assemblies: // -// * osd_quickstart/osd-quickstart.adoc +// * osd_getting_started/osd-getting-started.adoc // * osd_cluster_create/creating-an-aws-cluster.adoc // * osd_cluster_create/creating-a-gcp-cluster.adoc diff --git a/modules/osd-intro.adoc b/modules/osd-intro.adoc index b98ed37a8d..a4dfe3ee02 100644 --- a/modules/osd-intro.adoc +++ b/modules/osd-intro.adoc @@ -4,7 +4,7 @@ // * assemblies/osd-architecture.adoc [id="osd-intro_{context}"] -= Introduction to {product-title} += An overview of {product-title} {product-title} is professionally managed by Red Hat and hosted on {AWS} or {GCP}. Each {product-title} cluster comes with a fully managed link:https://access.redhat.com/documentation/en-us/openshift_container_platform/4.7/html/architecture/control-plane[control plane] (Control and Infrastructure nodes), application nodes, installation and management by Red Hat Site Reliability Engineers (SRE), premium Red Hat Support, and cluster services such as logging, metrics, monitoring, notifications portal, and a cluster portal. diff --git a/modules/scaling-cluster.adoc b/modules/scaling-cluster.adoc index d8c9369ae3..d450f9dd19 100644 --- a/modules/scaling-cluster.adoc +++ b/modules/scaling-cluster.adoc @@ -1,6 +1,6 @@ // Module included in the following assemblies: // -// * osd_quickstart/osd-quickstart.adoc +// * osd_getting_started/osd-getting-started.adoc :_content-type: PROCEDURE [id="scaling-cluster_{context}"] diff --git a/modules/upgrade.adoc b/modules/upgrade.adoc index 1db6d76e69..14b6dd7821 100644 --- a/modules/upgrade.adoc +++ b/modules/upgrade.adoc @@ -32,7 +32,7 @@ Automatic upgrade policies are optional and if they are not set, the upgrade pol [id="upgrade-manual_upgrades_{context}"] == Manual upgrades -If you opt for manual upgrades, you are responsible for updating your cluster. If your cluster version falls too far behind, it will transition to a limited support status. For more information on OpenShift life cycle policies, see xref:../osd_policy/osd-life-cycle.adoc#osd-life-cycle[{product-title} update life cycle]. +If you opt for manual upgrades, you are responsible for updating your cluster. If your cluster version falls too far behind, it will transition to a limited support status. For more information on OpenShift life cycle policies, see xref:../osd_architecture/osd_policy/osd-life-cycle.adoc#osd-life-cycle[{product-title} update life cycle]. [id="upgrade-notifications_{context}"] == Upgrade notifications diff --git a/networking/configuring-cluster-wide-proxy.adoc b/networking/configuring-cluster-wide-proxy.adoc index b94204e399..846bfd23d2 100644 --- a/networking/configuring-cluster-wide-proxy.adoc +++ b/networking/configuring-cluster-wide-proxy.adoc @@ -29,7 +29,7 @@ ifdef::openshift-rosa[] For information about standard installation prerequisites, see xref:../rosa_install_access_delete_clusters/rosa_getting_started_iam/rosa-aws-prereqs.adoc#prerequisites[AWS prerequisites for ROSA]. For information about the prerequisites for installation using AWS Security Token Service (STS), see xref:../rosa_planning/rosa-sts-aws-prereqs.adoc#rosa-sts-aws-prerequisites[AWS prerequisites for ROSA with STS]. endif::[] ifdef::openshift-dedicated[] -For more information, see xref:../osd_quickstart/osd-quickstart.adoc#osd-getting-started[Getting started with {product-title}] for a basic cluster installation workflow. +For more information, see xref:../osd_getting_started/osd-getting-started.adoc#osd-getting-started[Getting started with {product-title}] for a basic cluster installation workflow. endif::[] //OSDOCS-3290 Transparent Proxy Update diff --git a/osd_architecture/osd-support.adoc b/osd_architecture/osd-support.adoc new file mode 100644 index 0000000000..0cdcd8efb2 --- /dev/null +++ b/osd_architecture/osd-support.adoc @@ -0,0 +1,23 @@ +:_content-type: ASSEMBLY +[id="osd-getting-support"] += Getting support +include::_attributes/common-attributes.adoc[] +ifdef::openshift-dedicated[] +include::_attributes/attributes-openshift-dedicated.adoc[] +endif::[] +:context: osd-getting-support + +toc::[] + +Get support for {product-title}. + +include::modules/support.adoc[leveloffset=+1] +include::modules/support-knowledgebase-about.adoc[leveloffset=+1] +include::modules/support-knowledgebase-search.adoc[leveloffset=+1] +include::modules/support-submitting-a-case.adoc[leveloffset=+1] + +[id="osd-getting-support-additional-resources"] +[role="_additional-resources"] +== Additional resources + +* For details about identifying issues with your cluster, see xref:../osd_support/remote_health_monitoring/using-insights-to-identify-issues-with-your-cluster.adoc#using-insights-to-identify-issues-with-your-cluster[Using Insights to identify issues with your cluster]. diff --git a/osd_architecture/osd-understanding.adoc b/osd_architecture/osd-understanding.adoc index b9708ba555..650495f878 100644 --- a/osd_architecture/osd-understanding.adoc +++ b/osd_architecture/osd-understanding.adoc @@ -1,6 +1,6 @@ :_content-type: ASSEMBLY [id="osd-understanding"] -= Introduction to {product-title} += Understanding {product-title} include::_attributes/attributes-openshift-dedicated.adoc[] :context: osd-understanding @@ -13,4 +13,4 @@ include::modules/osd-intro.adoc[leveloffset=+1] [role="_additional-resources"] .Additional resources -* For more information about Telemetry and remote health monitoring for {product-title} clusters, see xref:../support/remote_health_monitoring/about-remote-health-monitoring.adoc#about-remote-health-monitoring[About remote health monitoring] +* For more information about Telemetry and remote health monitoring for {product-title} clusters, see xref:../osd_support/remote_health_monitoring/about-remote-health-monitoring.adoc#about-remote-health-monitoring[About remote health monitoring] diff --git a/administering_a_cluster/_attributes b/osd_architecture/osd_policy/_attributes similarity index 100% rename from administering_a_cluster/_attributes rename to osd_architecture/osd_policy/_attributes diff --git a/osd_cluster_create/images b/osd_architecture/osd_policy/images similarity index 100% rename from osd_cluster_create/images rename to osd_architecture/osd_policy/images diff --git a/osd_cluster_create/modules b/osd_architecture/osd_policy/modules similarity index 100% rename from osd_cluster_create/modules rename to osd_architecture/osd_policy/modules diff --git a/osd_policy/osd-life-cycle.adoc b/osd_architecture/osd_policy/osd-life-cycle.adoc similarity index 100% rename from osd_policy/osd-life-cycle.adoc rename to osd_architecture/osd_policy/osd-life-cycle.adoc diff --git a/osd_policy/osd-service-definition.adoc b/osd_architecture/osd_policy/osd-service-definition.adoc similarity index 100% rename from osd_policy/osd-service-definition.adoc rename to osd_architecture/osd_policy/osd-service-definition.adoc diff --git a/osd_policy/policy-process-security.adoc b/osd_architecture/osd_policy/policy-process-security.adoc similarity index 100% rename from osd_policy/policy-process-security.adoc rename to osd_architecture/osd_policy/policy-process-security.adoc diff --git a/osd_policy/policy-responsibility-matrix.adoc b/osd_architecture/osd_policy/policy-responsibility-matrix.adoc similarity index 100% rename from osd_policy/policy-responsibility-matrix.adoc rename to osd_architecture/osd_policy/policy-responsibility-matrix.adoc diff --git a/osd_policy/policy-understand-availability.adoc b/osd_architecture/osd_policy/policy-understand-availability.adoc similarity index 100% rename from osd_policy/policy-understand-availability.adoc rename to osd_architecture/osd_policy/policy-understand-availability.adoc diff --git a/administering_a_cluster/snippets b/osd_architecture/osd_policy/snippets similarity index 100% rename from administering_a_cluster/snippets rename to osd_architecture/osd_policy/snippets diff --git a/osd_cluster_create/_attributes b/osd_cluster_admin/_attributes similarity index 100% rename from osd_cluster_create/_attributes rename to osd_cluster_admin/_attributes diff --git a/administering_a_cluster/cluster-admin-role.adoc b/osd_cluster_admin/cluster-admin-role.adoc similarity index 100% rename from administering_a_cluster/cluster-admin-role.adoc rename to osd_cluster_admin/cluster-admin-role.adoc diff --git a/administering_a_cluster/dedicated-admin-role.adoc b/osd_cluster_admin/dedicated-admin-role.adoc similarity index 100% rename from administering_a_cluster/dedicated-admin-role.adoc rename to osd_cluster_admin/dedicated-admin-role.adoc diff --git a/administering_a_cluster/images b/osd_cluster_admin/images similarity index 100% rename from administering_a_cluster/images rename to osd_cluster_admin/images diff --git a/administering_a_cluster/modules b/osd_cluster_admin/modules similarity index 100% rename from administering_a_cluster/modules rename to osd_cluster_admin/modules diff --git a/administering_a_cluster/osd-admin-roles.adoc b/osd_cluster_admin/osd-admin-roles.adoc similarity index 100% rename from administering_a_cluster/osd-admin-roles.adoc rename to osd_cluster_admin/osd-admin-roles.adoc diff --git a/osd_notifications/_attributes b/osd_cluster_admin/osd_monitoring/_attributes similarity index 100% rename from osd_notifications/_attributes rename to osd_cluster_admin/osd_monitoring/_attributes diff --git a/osd_cluster_admin/osd_monitoring/images b/osd_cluster_admin/osd_monitoring/images new file mode 120000 index 0000000000..e4c5bd02a1 --- /dev/null +++ b/osd_cluster_admin/osd_monitoring/images @@ -0,0 +1 @@ +../images/ \ No newline at end of file diff --git a/osd_cluster_admin/osd_monitoring/modules b/osd_cluster_admin/osd_monitoring/modules new file mode 120000 index 0000000000..43aab75b53 --- /dev/null +++ b/osd_cluster_admin/osd_monitoring/modules @@ -0,0 +1 @@ +../modules/ \ No newline at end of file diff --git a/osd_cluster_admin/osd_monitoring/osd-accessing-monitoring-for-user-defined-projects.adoc b/osd_cluster_admin/osd_monitoring/osd-accessing-monitoring-for-user-defined-projects.adoc new file mode 100644 index 0000000000..87022a59e5 --- /dev/null +++ b/osd_cluster_admin/osd_monitoring/osd-accessing-monitoring-for-user-defined-projects.adoc @@ -0,0 +1,23 @@ +:_content-type: ASSEMBLY +[id="osd-accessing-monitoring-for-user-defined-projects"] += Accessing monitoring for user-defined projects +include::_attributes/attributes-openshift-dedicated.adoc[] +:context: osd-accessing-monitoring-for-user-defined-projects + +toc::[] + +By default, centralized monitoring for user-defined projects and platform monitoring are enabled. You can monitor your own projects in {product-title} without the need for an additional monitoring solution. + +The monitoring of user-defined projects cannot be disabled. + +The `dedicated-admin` user has default permissions to configure and access monitoring for user-defined projects. + +[NOTE] +==== +Custom Prometheus instances and the Prometheus Operator installed through Operator Lifecycle Manager (OLM) can cause issues with user-defined project monitoring if it is enabled. Custom Prometheus instances are not supported. +==== + +[id="accessing-user-defined-monitoring-next-steps"] +== Next steps + +* xref:../../osd_cluster_admin/osd_monitoring/osd-managing-metrics.adoc#osd-managing-metrics[Managing metrics] diff --git a/osd_cluster_admin/osd_monitoring/osd-configuring-the-monitoring-stack.adoc b/osd_cluster_admin/osd_monitoring/osd-configuring-the-monitoring-stack.adoc new file mode 100644 index 0000000000..e4a6ecd443 --- /dev/null +++ b/osd_cluster_admin/osd_monitoring/osd-configuring-the-monitoring-stack.adoc @@ -0,0 +1,82 @@ +:_content-type: ASSEMBLY +[id="osd-configuring-the-monitoring-stack"] += Configuring the monitoring stack +include::_attributes/attributes-openshift-dedicated.adoc[] +:context: osd-configuring-the-monitoring-stack + +toc::[] + +After you configure the monitoring stack, you can review common configuration scenarios and configure monitoring of user-defined projects. + +// Maintenance and support for monitoring +include::modules/osd-monitoring-maintenance-and-support.adoc[leveloffset=+1] +include::modules/osd-monitoring-support-considerations.adoc[leveloffset=+2] + +// Configuring the monitoring stack +include::modules/osd-monitoring-configuring-the-monitoring-stack.adoc[leveloffset=+1] + +// Configurable monitoring components +include::modules/osd-monitoring-configurable-monitoring-components.adoc[leveloffset=+1] + +// Moving monitoring components to different nodes +include::modules/osd-monitoring-moving-monitoring-components-to-different-nodes.adoc[leveloffset=+1] + +[role="_additional-resources"] +.Additional resources + +* link:https://docs.openshift.com/container-platform/4.7/nodes/nodes/nodes-nodes-working.html#nodes-nodes-working-updating_nodes-nodes-working[Understanding how to update labels on nodes] +* link:https://docs.openshift.com/container-platform/4.7/nodes/scheduling/nodes-scheduler-node-selectors.html[Placing pods on specific nodes using node selectors] +* See the link:https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector[Kubernetes documentation] for details on the `nodeSelector` constraint + +// TODO: Same question about whether links out to OCP docs should explicitly mention that? (I won't point out any more, but could easily search to find other instances in the repo). + +// Assigning tolerations to monitoring components +include::modules/osd-monitoring-assigning-tolerations-to-monitoring-components.adoc[leveloffset=+1] + +[role="_additional-resources"] +.Additional resources + +* See the link:https://docs.openshift.com/container-platform/4.7/nodes/scheduling/nodes-scheduler-taints-tolerations.html#nodes-scheduler-taints-tolerations[OpenShift Container Platform documentation] on taints and tolerations +* See the link:https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/[Kubernetes documentation] on taints and tolerations + +// Configuring persistent storage +[id="configuring-persistent-storage"] +== Configuring persistent storage + +Running cluster monitoring with persistent storage means that your metrics are stored to a persistent volume (PV) and can survive a pod being restarted or recreated. This is ideal if you require your metrics data to be guarded from data loss. For production environments, it is highly recommended to configure persistent storage. Because of the high IO demands, it is advantageous to use local storage. + +[IMPORTANT] +==== +See link:https://docs.openshift.com/container-platform/4.7/scalability_and_performance/optimizing-storage.html#recommended-configurable-storage-technology_persistent-storage[Recommended configurable storage technology]. +==== + +[id="persistent-storage-prerequisites"] +=== Persistent storage prerequisites + +* Use the block type of storage. + +include::modules/osd-monitoring-configuring-a-local-persistent-volume-claim.adoc[leveloffset=+2] +include::modules/osd-monitoring-modifying-retention-time-for-prometheus-metrics-data.adoc[leveloffset=+2] + +[role="_additional-resources"] +.Additional resources + +* link:https://docs.openshift.com/container-platform/4.7/storage/understanding-persistent-storage.html[Understanding persistent storage] +* link:https://docs.openshift.com/container-platform/4.7/scalability_and_performance/optimizing-storage.html[Optimizing storage] + +// Managing scrape sample limits for user-defined projects +include::modules/osd-monitoring-limiting-scrape-samples-in-user-defined-projects.adoc[leveloffset=+1] +include::modules/osd-monitoring-setting-a-scrape-sample-limit-for-user-defined-projects.adoc[leveloffset=+2] + +[role="_additional-resources"] +.Additional resources + +* link:https://docs.openshift.com/container-platform/4.7/monitoring/troubleshooting-monitoring-issues.html#determining-why-prometheus-is-consuming-disk-space_troubleshooting-monitoring-issues[Determining why Prometheus is consuming a lot of disk space] for steps to query which metrics have the highest number of scrape samples + +// Setting log levels for monitoring components +include::modules/osd-monitoring-setting-log-levels-for-monitoring-components.adoc[leveloffset=+1] + +[id="configuring-the-monitoring-stack-next-steps"] +== Next steps + +* xref:../../osd_cluster_admin/osd_monitoring/osd-accessing-monitoring-for-user-defined-projects.adoc#osd-accessing-monitoring-for-user-defined-projects[Accessing monitoring for user-defined projects] diff --git a/osd_cluster_admin/osd_monitoring/osd-managing-alerts.adoc b/osd_cluster_admin/osd_monitoring/osd-managing-alerts.adoc new file mode 100644 index 0000000000..ffc7a283ab --- /dev/null +++ b/osd_cluster_admin/osd_monitoring/osd-managing-alerts.adoc @@ -0,0 +1,13 @@ +:_content-type: ASSEMBLY +[id="osd-managing-alerts"] += Alerts +include::_attributes/attributes-openshift-dedicated.adoc[] +:context: osd-managing-alerts + +toc::[] + +Alerts for monitoring workloads in user-defined projects are not currently supported in this {product-title}. + +[id="alerts-next-steps"] +== Next steps +* xref:../../osd_cluster_admin/osd_monitoring/osd-reviewing-monitoring-dashboards.adoc#osd-reviewing-monitoring-dashboards[Reviewing monitoring dashboards] diff --git a/monitoring/osd-managing-metrics.adoc b/osd_cluster_admin/osd_monitoring/osd-managing-metrics.adoc similarity index 66% rename from monitoring/osd-managing-metrics.adoc rename to osd_cluster_admin/osd_monitoring/osd-managing-metrics.adoc index 39837552ac..f1627dbf10 100644 --- a/monitoring/osd-managing-metrics.adoc +++ b/osd_cluster_admin/osd_monitoring/osd-managing-metrics.adoc @@ -20,7 +20,7 @@ include::modules/osd-monitoring-specifying-how-a-service-is-monitored.adoc[level .Additional resources * See the link:https://github.com/openshift/prometheus-operator/blob/release-4.7/Documentation/api.md[Prometheus Operator API documentation] for more information on `ServiceMonitor` and `PodMonitor` resources. -* xref:../monitoring/osd-accessing-monitoring-for-user-defined-projects.adoc#osd-accessing-monitoring-for-user-defined-projects[Accessing monitoring for user-defined projects]. +* xref:../../osd_cluster_admin/osd_monitoring/osd-accessing-monitoring-for-user-defined-projects.adoc#osd-accessing-monitoring-for-user-defined-projects[Accessing monitoring for user-defined projects]. // Querying metrics include::modules/osd-monitoring-querying-metrics.adoc[leveloffset=+1] @@ -31,7 +31,7 @@ include::modules/osd-monitoring-querying-metrics-for-user-defined-projects-as-a- .Additional resources * See the link:https://prometheus.io/docs/prometheus/latest/querying/basics/[Prometheus query documentation] for more information about creating PromQL queries. -* See the xref:../monitoring/osd-managing-metrics.adoc#querying-metrics-for-user-defined-projects-as-a-developer_osd-managing-metrics[Querying metrics for user-defined projects as a developer] for details on accessing non-cluster metrics as a developer or a privileged user +* See the xref:../../osd_cluster_admin/osd_monitoring/osd-managing-metrics.adoc#querying-metrics-for-user-defined-projects-as-a-developer_osd-managing-metrics[Querying metrics for user-defined projects as a developer] for details on accessing non-cluster metrics as a developer or a privileged user // TODO: The above additional resource points to the same module that it's an additional resource of include::modules/osd-monitoring-exploring-the-visualized-metrics.adoc[leveloffset=+2] @@ -39,11 +39,11 @@ include::modules/osd-monitoring-exploring-the-visualized-metrics.adoc[leveloffse [role="_additional-resources"] .Additional resources -* See the xref:../monitoring/osd-managing-metrics.adoc#querying-metrics_osd-managing-metrics[Querying metrics] section on using the PromQL interface -* xref:../monitoring/osd-troubleshooting-monitoring-issues.adoc#osd-troubleshooting-monitoring-issues[Troubleshooting monitoring issues] +* See the xref:../../osd_cluster_admin/osd_monitoring/osd-managing-metrics.adoc#querying-metrics_osd-managing-metrics[Querying metrics] section on using the PromQL interface +* xref:../../osd_cluster_admin/osd_monitoring/osd-troubleshooting-monitoring-issues.adoc#osd-troubleshooting-monitoring-issues[Troubleshooting monitoring issues] [id="managing-metrics-next-steps"] == Next steps -* xref:../monitoring/osd-managing-alerts.adoc#osd-managing-alerts[Alerts] +* xref:../../osd_cluster_admin/osd_monitoring/osd-managing-alerts.adoc#osd-managing-alerts[Alerts] // TODO: Why is alerts a next step if alerts aren't supported? Can this be removed? diff --git a/osd_cluster_admin/osd_monitoring/osd-reviewing-monitoring-dashboards.adoc b/osd_cluster_admin/osd_monitoring/osd-reviewing-monitoring-dashboards.adoc new file mode 100644 index 0000000000..411fcec833 --- /dev/null +++ b/osd_cluster_admin/osd_monitoring/osd-reviewing-monitoring-dashboards.adoc @@ -0,0 +1,32 @@ +:_content-type: ASSEMBLY +[id="osd-reviewing-monitoring-dashboards"] += Reviewing monitoring dashboards +include::_attributes/common-attributes.adoc[] +:context: osd-reviewing-monitoring-dashboards + +toc::[] + +{product-title} provides monitoring dashboards that help you understand the state of user-defined projects. + +In the *Developer* perspective, you can access dashboards that provide the following statistics for a selected project: + +* CPU usage +* Memory usage +* Bandwidth information +* Packet rate information + +.Example dashboard in the Developer perspective +image::monitoring-dashboard-developer.png[] + +[NOTE] +==== +In the *Developer* perspective, you can view dashboards for only one project at a time. +==== + +// Reviewing monitoring dashboards as a developer +include::modules/osd-monitoring-reviewing-monitoring-dashboards-developer.adoc[leveloffset=+1] + +[id="monitoring-dashboards-next-steps"] +== Next steps + +* xref:../../osd_cluster_admin/osd_monitoring/osd-troubleshooting-monitoring-issues.adoc#osd-troubleshooting-monitoring-issues[Troubleshooting monitoring issues] diff --git a/osd_cluster_admin/osd_monitoring/osd-troubleshooting-monitoring-issues.adoc b/osd_cluster_admin/osd_monitoring/osd-troubleshooting-monitoring-issues.adoc new file mode 100644 index 0000000000..3610f6c0ec --- /dev/null +++ b/osd_cluster_admin/osd_monitoring/osd-troubleshooting-monitoring-issues.adoc @@ -0,0 +1,11 @@ +:_content-type: ASSEMBLY +[id="osd-troubleshooting-monitoring-issues"] += Troubleshooting monitoring issues +include::_attributes/attributes-openshift-dedicated.adoc[] +:context: osd-troubleshooting-monitoring-issues + +toc::[] + +Find troubleshooting steps for common monitoring issues with user-defined projects. + +include::modules/osd-monitoring-troubleshooting-issues.adoc[leveloffset=+1] diff --git a/osd_cluster_admin/osd_monitoring/osd-understanding-the-monitoring-stack.adoc b/osd_cluster_admin/osd_monitoring/osd-understanding-the-monitoring-stack.adoc new file mode 100644 index 0000000000..f6db14dbcd --- /dev/null +++ b/osd_cluster_admin/osd_monitoring/osd-understanding-the-monitoring-stack.adoc @@ -0,0 +1,33 @@ +:_content-type: ASSEMBLY +[id="osd-understanding-the-monitoring-stack"] += Understanding the monitoring stack +include::_attributes/attributes-openshift-dedicated.adoc[] +:context: osd-understanding-the-monitoring-stack + +toc::[] + +In {product-title}, you can monitor your own projects in isolation from Red Hat Site Reliability Engineer (SRE) platform metrics. You can monitor your own projects without the need for an additional monitoring solution. + +[NOTE] +==== +Follow the instructions in this document carefully to configure a supported Prometheus instance for monitoring user-defined projects. Custom Prometheus instances are not supported by {product-title}. +==== + +// Understanding the monitoring stack +include::modules/osd-monitoring-understanding-the-monitoring-stack.adoc[leveloffset=+1] +include::modules/osd-monitoring-components-for-monitoring-user-defined-projects.adoc[leveloffset=+2] +include::modules/osd-monitoring-targets-for-user-defined-projects.adoc[leveloffset=+2] + +[role="_additional-resources"] +[id="understanding-the-monitoring-stack-additional-resources"] +== Additional resources + +* xref:../../osd_cluster_admin/osd_monitoring/osd-accessing-monitoring-for-user-defined-projects.adoc#osd-accessing-monitoring-for-user-defined-projects[Accessing monitoring for user-defined projects] +* link:https://access.redhat.com/documentation/en-us/openshift_container_platform/4.7/html/monitoring/monitoring-overview#default-monitoring-components_monitoring-overview[Default monitoring components] +* link:https://access.redhat.com/documentation/en-us/openshift_container_platform/4.7/html/monitoring/monitoring-overview#default-monitoring-targets_monitoring-overview[Default monitoring targets] +// TODO: When there is a link to the OCP docs, should that be explicit, so they're not surprised when they find themselves in another doc set? + +[id="understanding-the-monitoring-stack-next-steps"] +== Next steps + +* xref:../../osd_cluster_admin/osd_monitoring/osd-configuring-the-monitoring-stack.adoc#osd-configuring-the-monitoring-stack[Configuring the monitoring stack] diff --git a/osd_cluster_create/snippets b/osd_cluster_admin/osd_monitoring/snippets similarity index 100% rename from osd_cluster_create/snippets rename to osd_cluster_admin/osd_monitoring/snippets diff --git a/osd_policy/_attributes b/osd_cluster_admin/osd_nodes/_attributes similarity index 100% rename from osd_policy/_attributes rename to osd_cluster_admin/osd_nodes/_attributes diff --git a/osd_notifications/images b/osd_cluster_admin/osd_nodes/images similarity index 100% rename from osd_notifications/images rename to osd_cluster_admin/osd_nodes/images diff --git a/osd_notifications/modules b/osd_cluster_admin/osd_nodes/modules similarity index 100% rename from osd_notifications/modules rename to osd_cluster_admin/osd_nodes/modules diff --git a/osd_cluster_admin/osd_nodes/osd-managing-worker-nodes.adoc b/osd_cluster_admin/osd_nodes/osd-managing-worker-nodes.adoc new file mode 100644 index 0000000000..f50877ebd0 --- /dev/null +++ b/osd_cluster_admin/osd_nodes/osd-managing-worker-nodes.adoc @@ -0,0 +1,24 @@ +:_content-type: ASSEMBLY +include::_attributes/attributes-openshift-dedicated.adoc[] +[id="osd-managing-worker-nodes"] += Managing compute nodes +:context: osd-managing-worker-nodes +toc::[] + +This document describes how to manage compute (also known as worker) nodes with {product-title}. + +The majority of changes for compute nodes are configured on machine pools. A machine pool is a group of compute nodes in a cluster that have the same configuration, providing ease of management. + +You can edit machine pool configuration options such as scaling, adding node labels, and adding taints. + +include::modules/creating-a-machine-pool-ocm.adoc[leveloffset=+1] +include::modules/rosa-scaling-worker-nodes.adoc[leveloffset=+1] +include::modules/rosa-adding-node-labels.adoc[leveloffset=+1] +include::modules/rosa-adding-taints.adoc[leveloffset=+1] + +[role="_additional-resources"] +== Additional resources +* xref:../../osd_cluster_admin/osd_nodes/osd-nodes-machinepools-about.adoc#osd-machinepools-about[About machine pools] +* xref:../../osd_cluster_admin/osd_nodes/osd-nodes-about-autoscaling-nodes.adoc#osd-nodes-enabling-autoscaling-nodes[Enabling autoscaling] +* xref:../../osd_cluster_admin/osd_nodes/osd-nodes-about-autoscaling-nodes.adoc#osd-nodes-disabling-autoscaling-nodes[Disabling autoscaling] +* xref:../../osd_architecture/osd_policy/osd-service-definition.adoc#osd-service-definition[{product-title} service definition] diff --git a/osd_cluster_admin/osd_nodes/osd-nodes-about-autoscaling-nodes.adoc b/osd_cluster_admin/osd_nodes/osd-nodes-about-autoscaling-nodes.adoc new file mode 100644 index 0000000000..a065b1e0e6 --- /dev/null +++ b/osd_cluster_admin/osd_nodes/osd-nodes-about-autoscaling-nodes.adoc @@ -0,0 +1,56 @@ +:_content-type: ASSEMBLY +include::_attributes/attributes-openshift-dedicated.adoc[] +[id="osd-nodes-about-autoscaling-nodes"] += About autoscaling nodes on a cluster +:context: osd-nodes-about-autoscaling-nodes +toc::[] + +[IMPORTANT] +==== +Autoscaling is available only on clusters that were purchased through the Red Hat Marketplace. +==== + +The autoscaler option can be configured to automatically scale the number of machines in a cluster. + +The cluster autoscaler increases the size of the cluster when there are pods that failed to schedule on any of the current nodes due to insufficient resources or when another node is necessary to meet deployment needs. The cluster autoscaler does not increase the cluster resources beyond the limits that you specify. + +Additionally, the cluster autoscaler decreases the size of the cluster when some nodes are consistently not needed for a significant period, such as when it has low resource use and all of its important pods can fit on other nodes. + +When you enable autoscaling, you must also set a minimum and maximum number of worker nodes. + +[NOTE] +==== +Only cluster owners and organization admins can scale or delete a cluster. +==== + +[id="osd-nodes-enabling-autoscaling-nodes"] +== Enabling autoscaling nodes on a cluster + +You can enable autoscaling on worker nodes to increase or decrease the number of nodes available by editing the machine pool definition for an existing cluster. + +[discrete] +include::modules/ocm-enabling-autoscaling-nodes.adoc[leveloffset=+2] + +[id="osd-nodes-disabling-autoscaling-nodes"] +== Disabling autoscaling nodes on a cluster + +You can disable autoscaling on worker nodes to increase or decrease the number of nodes available by editing the machine pool definition for an existing cluster. + +You can disable autoscaling on a cluster using {cluster-manager} console. + +[discrete] +include::modules/ocm-disabling-autoscaling-nodes.adoc[leveloffset=+2] + +Applying autoscaling to an {product-title} cluster involves deploying a cluster autoscaler and then deploying machine autoscalers for each machine type in your cluster. + +[IMPORTANT] +==== +You can configure the cluster autoscaler only in clusters where the Machine API is operational. +==== + +include::modules/cluster-autoscaler-about.adoc[leveloffset=+1] + +[role="_additional-resources"] +[id="nodes-about-autoscaling-nodes-additional-resources"] +== Additional resources +* xref:../../osd_cluster_admin/osd_nodes/osd-nodes-machinepools-about.adoc#osd-machinepools-about[About machinepools] diff --git a/osd_cluster_admin/osd_nodes/osd-nodes-machinepools-about.adoc b/osd_cluster_admin/osd_nodes/osd-nodes-machinepools-about.adoc new file mode 100644 index 0000000000..0b749027de --- /dev/null +++ b/osd_cluster_admin/osd_nodes/osd-nodes-machinepools-about.adoc @@ -0,0 +1,35 @@ +:_content-type: ASSEMBLY +include::_attributes/attributes-openshift-dedicated.adoc[] +[id="osd-machinepools-about"] += About machine pools +:context: osd-machinepools-about +toc::[] + +{product-title} uses machine pools as an elastic, dynamic provisioning method on top of your cloud infrastructure. + +The primary resources are machines, machine sets, and machine pools. + +== Machines +A machine is a fundamental unit that describes the host for a worker node. + +== Machine sets +`MachineSet` resources are groups of machines. If you need more machines or must scale them down, change the number of replicas in the machine pool to which the machine sets belong. + +== Machine pools +Machine pools are a higher level construct to machine sets. + +A machine pool creates machine sets that are all clones of the same configuration across availability zones. Machine pools perform all of the host node provisioning management actions on a worker node. If you need more machines or must scale them down, change the number of replicas in the machine pool to meet your compute needs. You can manually configure scaling or set autoscaling. + +By default, a cluster is created with one machine pool. You can add additional machine pools to an existing cluster, modify the default machine pool, and delete machine pools. + +Multiple machine pools can exist on a single cluster, and they can each have different types or different size nodes. + +== Machine pools in multiple zone clusters +When you create a machine pool in a multiple availability zone (Multi-AZ) cluster, that one machine pool has 3 zones. The machine pool, in turn, creates a total of 3 machine sets - one machine set for each zone in the cluster. Each of those machine sets manages one or more machines in its respective availability zone. + +If you create a new Multi-AZ cluster, the machine pools are replicated to those zones automatically. If you add a machine pool to an existing Multi-AZ, the new pool is automatically created in those zones. Similarly, deleting a machine pool will delete it from all zones. +Due to this multiplicative effect, using machine pools in Multi-AZ cluster can consume more of your project's quota for a specific region when creating machine pools. + +[role="_additional-resources"] +== Additional resources +* xref:../../osd_cluster_admin/osd_nodes/osd-nodes-about-autoscaling-nodes.adoc#osd-nodes-about-autoscaling-nodes[About autoscaling] diff --git a/osd_notifications/snippets b/osd_cluster_admin/osd_nodes/snippets similarity index 100% rename from osd_notifications/snippets rename to osd_cluster_admin/osd_nodes/snippets diff --git a/osd_private_connections/_attributes b/osd_cluster_admin/osd_private_connections/_attributes similarity index 100% rename from osd_private_connections/_attributes rename to osd_cluster_admin/osd_private_connections/_attributes diff --git a/osd_private_connections/aws-private-connections.adoc b/osd_cluster_admin/osd_private_connections/aws-private-connections.adoc similarity index 100% rename from osd_private_connections/aws-private-connections.adoc rename to osd_cluster_admin/osd_private_connections/aws-private-connections.adoc diff --git a/osd_policy/images b/osd_cluster_admin/osd_private_connections/images similarity index 100% rename from osd_policy/images rename to osd_cluster_admin/osd_private_connections/images diff --git a/osd_policy/modules b/osd_cluster_admin/osd_private_connections/modules similarity index 100% rename from osd_policy/modules rename to osd_cluster_admin/osd_private_connections/modules diff --git a/osd_private_connections/private-cluster.adoc b/osd_cluster_admin/osd_private_connections/private-cluster.adoc similarity index 100% rename from osd_private_connections/private-cluster.adoc rename to osd_cluster_admin/osd_private_connections/private-cluster.adoc diff --git a/osd_policy/snippets b/osd_cluster_admin/osd_private_connections/snippets similarity index 100% rename from osd_policy/snippets rename to osd_cluster_admin/osd_private_connections/snippets diff --git a/osd_private_connections/snippets b/osd_cluster_admin/snippets similarity index 100% rename from osd_private_connections/snippets rename to osd_cluster_admin/snippets diff --git a/osd_quickstart/_attributes b/osd_getting_started/_attributes similarity index 100% rename from osd_quickstart/_attributes rename to osd_getting_started/_attributes diff --git a/osd_private_connections/images b/osd_getting_started/images similarity index 100% rename from osd_private_connections/images rename to osd_getting_started/images diff --git a/osd_private_connections/modules b/osd_getting_started/modules similarity index 100% rename from osd_private_connections/modules rename to osd_getting_started/modules diff --git a/osd_getting_started/osd-getting-started.adoc b/osd_getting_started/osd-getting-started.adoc new file mode 100644 index 0000000000..a013e79cc1 --- /dev/null +++ b/osd_getting_started/osd-getting-started.adoc @@ -0,0 +1,78 @@ +:_content-type: ASSEMBLY +[id="osd-getting-started"] += Getting started with {product-title} +include::_attributes/attributes-openshift-dedicated.adoc[] +:context: osd-getting-started + +toc::[] + +[role="_abstract"] +Follow this getting started document to quickly create a {product-title} cluster, grant user access, deploy your first application, and learn how to scale and delete your cluster. + +[id="osd-getting-started-prerequisites"] +== Prerequisites + +* You reviewed the xref:../osd_architecture/osd-understanding.adoc#osd-understanding[introduction to {product-title}] and the documentation on xref:../osd_architecture/osd-architecture.adoc#osd-architecture[architecture concepts]. +* You reviewed the xref:../osd_getting_started/osd-understanding-your-cloud-deployment-options.adoc#osd-understanding-your-cloud-deployment-options[{product-title} cloud deployment options]. + +[id="osd-getting-started-create-cluster"] +== Creating an {product-title} cluster + +You can install {product-title} in your own cloud provider account through the Customer Cloud Subscription (CCS) model or in a cloud account that is owned by Red Hat. For more information about the deployment options for {product-title}, see xref:../osd_getting_started/osd-understanding-your-cloud-deployment-options.adoc#osd-understanding-your-cloud-deployment-options[Understanding your cloud deployment options]. + +Choose from one of the following methods to deploy your cluster. + +[id="osd-getting-started-create-cluster-ccs"] +=== Creating a cluster using the CCS model + +Complete the steps in one of the following sections to deploy {product-title} in a cloud account that you own: + +* *xref:../osd_install_access_delete_cluster/creating-an-aws-cluster.adoc#osd-create-aws-cluster-ccs_osd-creating-a-cluster-on-aws[Creating a cluster on AWS with CCS]*: You can install {product-title} in your own {AWS} account by using the CCS model. + +* *xref:../osd_install_access_delete_cluster/creating-a-gcp-cluster.adoc#osd-create-gcp-cluster-ccs_osd-creating-a-cluster-on-gcp[Creating a cluster on GCP with CCS]*: You can install {product-title} in your own {GCP} account by using the CCS model. + +[id="osd-getting-started-create-cluster-red-hat-cloud-account"] +=== Creating a cluster using a Red Hat cloud account + +Complete the steps in one of the following sections to deploy {product-title} in a cloud account that is owned by Red Hat: + +* *xref:../osd_install_access_delete_cluster/creating-an-aws-cluster.adoc#osd-create-aws-cluster-red-hat-account_osd-creating-a-cluster-on-aws[Creating a cluster on AWS with a Red Hat cloud account]*: You can install {product-title} in an AWS account that is owned by Red Hat. + +* *xref:../osd_install_access_delete_cluster/creating-a-gcp-cluster.adoc#osd-create-aws-cluster-ccs_osd-creating-a-cluster-on-gcp[Creating a cluster on GCP with a Red Hat cloud account]*: You can install {product-title} in an GCP account that is owned by Red Hat. + +include::modules/config-idp.adoc[leveloffset=+1] + +.Additional resources + +* For detailed steps to configure each of the supported identity provider types, see xref:../osd_install_access_delete_cluster/config-identity-providers.adoc#config-identity-providers[Configuring identity providers]. + +include::modules/osd-grant-admin-privileges.adoc[leveloffset=+1] +include::modules/access-cluster.adoc[leveloffset=+1] +include::modules/deploy-app.adoc[leveloffset=+1] +include::modules/scaling-cluster.adoc[leveloffset=+1] + +.Additional resources + +* For information about machine pools, see xref:../osd_cluster_admin/osd_nodes/osd-nodes-machinepools-about.adoc#osd-machine-pools-about[About machine pools]. +* For detailed steps to enable autoscaling for compute nodes in your cluster, see xref:../osd_cluster_admin/osd_nodes/osd-nodes-about-autoscaling-nodes.adoc#nodes-about-autoscaling-nodes[About autoscaling nodes on a cluster]. + +include::modules/osd-revoke-admin-privileges.adoc[leveloffset=+1] +include::modules/osd-revoke-user-access.adoc[leveloffset=+1] +include::modules/deleting-cluster.adoc[leveloffset=+1] + +[id="next-steps_{context}"] +== Next steps + +* xref:../adding_service_cluster/adding-service.adoc#adding-service[Adding services to a cluster using the {cluster-manager} console] +* xref:../osd_cluster_admin/osd_nodes/osd-nodes-machinepools-about.adoc#osd-machine-pools-about[About machine pools] +* xref:../osd_cluster_admin/osd_nodes/osd-nodes-about-autoscaling-nodes.adoc#nodes-about-autoscaling-nodes[About autoscaling nodes on a cluster] +* xref:../osd_cluster_admin/osd_monitoring/osd-configuring-the-monitoring-stack.adoc#osd-configuring-the-monitoring-stack[Configuring the monitoring stack] + +[id="additional-resources_{context}"] +== Additional resources + +* For information about the end-of-life dates for {product-title} versions, see the xref:../osd_architecture/osd_policy/osd-life-cycle.adoc#osd-life-cycle[{product-title} update life cycle]. + +* For more information about deploying {product-title} clusters, see xref:../osd_install_access_delete_cluster/creating-an-aws-cluster.adoc#osd-creating-a-cluster-on-aws[Creating a cluster on AWS] and xref:../osd_install_access_delete_cluster/creating-a-gcp-cluster.adoc#osd-creating-a-cluster-on-gcp[Creating a cluster on GCP]. + +* For documentation on upgrading your cluster, see xref:../upgrading/osd-upgrades.adoc#osd-upgrades[{product-title} cluster upgrades]. diff --git a/osd_cluster_create/osd-understanding-your-cloud-deployment-options.adoc b/osd_getting_started/osd-understanding-your-cloud-deployment-options.adoc similarity index 70% rename from osd_cluster_create/osd-understanding-your-cloud-deployment-options.adoc rename to osd_getting_started/osd-understanding-your-cloud-deployment-options.adoc index 9539122ed6..cb84f0dcad 100644 --- a/osd_cluster_create/osd-understanding-your-cloud-deployment-options.adoc +++ b/osd_getting_started/osd-understanding-your-cloud-deployment-options.adoc @@ -14,5 +14,5 @@ include::modules/understanding-clusters.adoc[leveloffset=+1] [id="next-steps_{context}"] == Next steps -* xref:../osd_cluster_create/creating-an-aws-cluster.adoc#osd-creating-a-cluster-on-aws[Creating a cluster on AWS] -* xref:../osd_cluster_create/creating-a-gcp-cluster.adoc#osd-creating-a-cluster-on-gcp[Creating a cluster on GCP] +* xref:../osd_install_access_delete_cluster/creating-an-aws-cluster.adoc#osd-creating-a-cluster-on-aws[Creating a cluster on AWS] +* xref:../osd_install_access_delete_cluster/creating-a-gcp-cluster.adoc#osd-creating-a-cluster-on-gcp[Creating a cluster on GCP] diff --git a/osd_quickstart/snippets b/osd_getting_started/snippets similarity index 100% rename from osd_quickstart/snippets rename to osd_getting_started/snippets diff --git a/osd_install_access_delete_cluster/_attributes b/osd_install_access_delete_cluster/_attributes new file mode 120000 index 0000000000..f27fd275ea --- /dev/null +++ b/osd_install_access_delete_cluster/_attributes @@ -0,0 +1 @@ +../_attributes/ \ No newline at end of file diff --git a/identity_providers/config-identity-providers.adoc b/osd_install_access_delete_cluster/config-identity-providers.adoc similarity index 100% rename from identity_providers/config-identity-providers.adoc rename to osd_install_access_delete_cluster/config-identity-providers.adoc diff --git a/osd_cluster_create/creating-a-gcp-cluster.adoc b/osd_install_access_delete_cluster/creating-a-gcp-cluster.adoc similarity index 59% rename from osd_cluster_create/creating-a-gcp-cluster.adoc rename to osd_install_access_delete_cluster/creating-a-gcp-cluster.adoc index 2b906cad32..46b123fb1d 100644 --- a/osd_cluster_create/creating-a-gcp-cluster.adoc +++ b/osd_install_access_delete_cluster/creating-a-gcp-cluster.adoc @@ -13,7 +13,7 @@ You can install {product-title} on {GCP} by using your own GCP account through t == Prerequisites * You reviewed the xref:../osd_architecture/osd-understanding.adoc#osd-understanding[introduction to {product-title}] and the documentation on xref:../osd_architecture/osd-architecture.adoc#osd-architecture[architecture concepts]. -* You reviewed the xref:../osd_cluster_create/osd-understanding-your-cloud-deployment-options.adoc#osd-understanding-your-cloud-deployment-options[{product-title} cloud deployment options]. +* You reviewed the xref:../osd_getting_started/osd-understanding-your-cloud-deployment-options.adoc#osd-understanding-your-cloud-deployment-options[{product-title} cloud deployment options]. include::modules/osd-create-cluster-ccs.adoc[leveloffset=+1] include::modules/osd-create-cluster-red-hat-account.adoc[leveloffset=+1] @@ -21,7 +21,7 @@ include::modules/osd-create-cluster-red-hat-account.adoc[leveloffset=+1] [id="additional-resources_{context}"] == Additional resources -* For information about persistent storage for {product-title}, see the xref:../osd_policy/osd-service-definition.adoc#sdpolicy-storage_osd-service-definition[Storage] section in the {product-title} service definition. -* For information about load balancers for {product-title}, see the xref:../osd_policy/osd-service-definition.adoc#load-balancers_osd-service-definition[Load balancers] section in the {product-title} service definition. -* For more information about etcd encryption, see the xref:../osd_policy/osd-service-definition.adoc#etcd-encryption_osd-service-definition[etcd encryption service definition]. -* For information about the end-of-life dates for {product-title} versions, see the xref:../osd_policy/osd-life-cycle.adoc#osd-life-cycle[{product-title} update life cycle]. +* For information about persistent storage for {product-title}, see the xref:../osd_architecture/osd_policy/osd-service-definition.adoc#sdpolicy-storage_osd-service-definition[Storage] section in the {product-title} service definition. +* For information about load balancers for {product-title}, see the xref:../osd_architecture/osd_policy/osd-service-definition.adoc#load-balancers_osd-service-definition[Load balancers] section in the {product-title} service definition. +* For more information about etcd encryption, see the xref:../osd_architecture/osd_policy/osd-service-definition.adoc#etcd-encryption_osd-service-definition[etcd encryption service definition]. +* For information about the end-of-life dates for {product-title} versions, see the xref:../osd_architecture/osd_policy/osd-life-cycle.adoc#osd-life-cycle[{product-title} update life cycle]. diff --git a/osd_cluster_create/creating-an-aws-cluster.adoc b/osd_install_access_delete_cluster/creating-an-aws-cluster.adoc similarity index 63% rename from osd_cluster_create/creating-an-aws-cluster.adoc rename to osd_install_access_delete_cluster/creating-an-aws-cluster.adoc index 509cdb6f62..b3b6f572f4 100644 --- a/osd_cluster_create/creating-an-aws-cluster.adoc +++ b/osd_install_access_delete_cluster/creating-an-aws-cluster.adoc @@ -13,7 +13,7 @@ You can install {product-title} on {AWS} by using your own AWS account through t == Prerequisites * You reviewed the xref:../osd_architecture/osd-understanding.adoc#osd-understanding[introduction to {product-title}] and the documentation on xref:../osd_architecture/osd-architecture.adoc#osd-architecture[architecture concepts]. -* You reviewed the xref:../osd_cluster_create/osd-understanding-your-cloud-deployment-options.adoc#osd-understanding-your-cloud-deployment-options[{product-title} cloud deployment options]. +* You reviewed the xref:../osd_getting_started/osd-understanding-your-cloud-deployment-options.adoc#osd-understanding-your-cloud-deployment-options[{product-title} cloud deployment options]. include::modules/osd-create-cluster-ccs.adoc[leveloffset=+1] include::modules/osd-create-cluster-red-hat-account.adoc[leveloffset=+1] @@ -22,7 +22,7 @@ include::modules/osd-create-cluster-red-hat-account.adoc[leveloffset=+1] == Additional resources * For details about the AWS service control policies required for CCS deployments, see xref:../osd_planning/aws-ccs.adoc#ccs-aws-scp_aws-ccs[Minimum required service control policy (SCP)]. -* For information about persistent storage for {product-title}, see the xref:../osd_policy/osd-service-definition.adoc#sdpolicy-storage_osd-service-definition[Storage] section in the {product-title} service definition. -* For information about load balancers for {product-title}, see the xref:../osd_policy/osd-service-definition.adoc#load-balancers_osd-service-definition[Load balancers] section in the {product-title} service definition. -* For more information about etcd encryption, see the xref:../osd_policy/osd-service-definition.adoc#etcd-encryption_osd-service-definition[etcd encryption service definition]. -* For information about the end-of-life dates for {product-title} versions, see the xref:../osd_policy/osd-life-cycle.adoc#osd-life-cycle[{product-title} update life cycle]. +* For information about persistent storage for {product-title}, see the xref:../osd_architecture/osd_policy/osd-service-definition.adoc#sdpolicy-storage_osd-service-definition[Storage] section in the {product-title} service definition. +* For information about load balancers for {product-title}, see the xref:../osd_architecture/osd_policy/osd-service-definition.adoc#load-balancers_osd-service-definition[Load balancers] section in the {product-title} service definition. +* For more information about etcd encryption, see the xref:../osd_architecture/osd_policy/osd-service-definition.adoc#etcd-encryption_osd-service-definition[etcd encryption service definition]. +* For information about the end-of-life dates for {product-title} versions, see the xref:../osd_architecture/osd_policy/osd-life-cycle.adoc#osd-life-cycle[{product-title} update life cycle]. diff --git a/osd_quickstart/images b/osd_install_access_delete_cluster/images similarity index 100% rename from osd_quickstart/images rename to osd_install_access_delete_cluster/images diff --git a/osd_quickstart/modules b/osd_install_access_delete_cluster/modules similarity index 100% rename from osd_quickstart/modules rename to osd_install_access_delete_cluster/modules diff --git a/osd_notifications/notifications.adoc b/osd_install_access_delete_cluster/notifications.adoc similarity index 100% rename from osd_notifications/notifications.adoc rename to osd_install_access_delete_cluster/notifications.adoc diff --git a/osd_install_access_delete_cluster/snippets b/osd_install_access_delete_cluster/snippets new file mode 120000 index 0000000000..9f5bc7e4dd --- /dev/null +++ b/osd_install_access_delete_cluster/snippets @@ -0,0 +1 @@ +../snippets \ No newline at end of file diff --git a/osd_quickstart/osd-quickstart.adoc b/osd_quickstart/osd-quickstart.adoc deleted file mode 100644 index aac7857ab0..0000000000 --- a/osd_quickstart/osd-quickstart.adoc +++ /dev/null @@ -1,78 +0,0 @@ -:_content-type: ASSEMBLY -[id="osd-getting-started"] -= Getting started with {product-title} -include::_attributes/attributes-openshift-dedicated.adoc[] -:context: osd-getting-started - -toc::[] - -[role="_abstract"] -Follow this getting started document to quickly create a {product-title} cluster, grant user access, deploy your first application, and learn how to scale and delete your cluster. - -[id="osd-getting-started-prerequisites"] -== Prerequisites - -* You reviewed the xref:../osd_architecture/osd-understanding.adoc#osd-understanding[introduction to {product-title}] and the documentation on xref:../osd_architecture/osd-architecture.adoc#osd-architecture[architecture concepts]. -* You reviewed the xref:../osd_cluster_create/osd-understanding-your-cloud-deployment-options.adoc#osd-understanding-your-cloud-deployment-options[{product-title} cloud deployment options]. - -[id="osd-getting-started-create-cluster"] -== Creating an {product-title} cluster - -You can install {product-title} in your own cloud provider account through the Customer Cloud Subscription (CCS) model or in a cloud account that is owned by Red Hat. For more information about the deployment options for {product-title}, see xref:../osd_cluster_create/osd-understanding-your-cloud-deployment-options.adoc#osd-understanding-your-cloud-deployment-options[Understanding your cloud deployment options]. - -Choose from one of the following methods to deploy your cluster. - -[id="osd-getting-started-create-cluster-ccs"] -=== Creating a cluster using the CCS model - -Complete the steps in one of the following sections to deploy {product-title} in a cloud account that you own: - -* *xref:../osd_cluster_create/creating-an-aws-cluster.adoc#osd-create-aws-cluster-ccs_osd-creating-a-cluster-on-aws[Creating a cluster on AWS with CCS]*: You can install {product-title} in your own {AWS} account by using the CCS model. - -* *xref:../osd_cluster_create/creating-a-gcp-cluster.adoc#osd-create-gcp-cluster-ccs_osd-creating-a-cluster-on-gcp[Creating a cluster on GCP with CCS]*: You can install {product-title} in your own {GCP} account by using the CCS model. - -[id="osd-getting-started-create-cluster-red-hat-cloud-account"] -=== Creating a cluster using a Red Hat cloud account - -Complete the steps in one of the following sections to deploy {product-title} in a cloud account that is owned by Red Hat: - -* *xref:../osd_cluster_create/creating-an-aws-cluster.adoc#osd-create-aws-cluster-red-hat-account_osd-creating-a-cluster-on-aws[Creating a cluster on AWS with a Red Hat cloud account]*: You can install {product-title} in an AWS account that is owned by Red Hat. - -* *xref:../osd_cluster_create/creating-a-gcp-cluster.adoc#osd-create-aws-cluster-ccs_osd-creating-a-cluster-on-gcp[Creating a cluster on GCP with a Red Hat cloud account]*: You can install {product-title} in an GCP account that is owned by Red Hat. - -include::modules/config-idp.adoc[leveloffset=+1] - -.Additional resources - -* For detailed steps to configure each of the supported identity provider types, see xref:../identity_providers/config-identity-providers.adoc#config-identity-providers[Configuring identity providers]. - -include::modules/osd-grant-admin-privileges.adoc[leveloffset=+1] -include::modules/access-cluster.adoc[leveloffset=+1] -include::modules/deploy-app.adoc[leveloffset=+1] -include::modules/scaling-cluster.adoc[leveloffset=+1] - -.Additional resources - -* For information about machine pools, see xref:../nodes/nodes-machinepools-about.adoc#machine-pools-about[About machine pools]. -* For detailed steps to enable autoscaling for compute nodes in your cluster, see xref:../nodes/nodes-about-autoscaling-nodes.adoc#nodes-about-autoscaling-nodes[About autoscaling nodes on a cluster]. - -include::modules/osd-revoke-admin-privileges.adoc[leveloffset=+1] -include::modules/osd-revoke-user-access.adoc[leveloffset=+1] -include::modules/deleting-cluster.adoc[leveloffset=+1] - -[id="next-steps_{context}"] -== Next steps - -* xref:../adding_service_cluster/adding-service.adoc#adding-service[Adding services to a cluster using the {cluster-manager} console] -* xref:../nodes/nodes-machinepools-about.adoc#machine-pools-about[About machine pools] -* xref:../nodes/nodes-about-autoscaling-nodes.adoc#nodes-about-autoscaling-nodes[About autoscaling nodes on a cluster] -* xref:../monitoring/osd-configuring-the-monitoring-stack.adoc#osd-configuring-the-monitoring-stack[Configuring the monitoring stack] - -[id="additional-resources_{context}"] -== Additional resources - -* For information about the end-of-life dates for {product-title} versions, see the xref:../osd_policy/osd-life-cycle.adoc#osd-life-cycle[{product-title} update life cycle]. - -* For more information about deploying {product-title} clusters, see xref:../osd_cluster_create/creating-an-aws-cluster.adoc#osd-creating-a-cluster-on-aws[Creating a cluster on AWS] and xref:../osd_cluster_create/creating-a-gcp-cluster.adoc#osd-creating-a-cluster-on-gcp[Creating a cluster on GCP]. - -* For documentation on upgrading your cluster, see xref:../upgrading/osd-upgrades.adoc#osd-upgrades[{product-title} cluster upgrades]. diff --git a/osd_support/_attributes b/osd_support/_attributes new file mode 120000 index 0000000000..f27fd275ea --- /dev/null +++ b/osd_support/_attributes @@ -0,0 +1 @@ +../_attributes/ \ No newline at end of file diff --git a/osd_support/images b/osd_support/images new file mode 120000 index 0000000000..5e67573196 --- /dev/null +++ b/osd_support/images @@ -0,0 +1 @@ +../images \ No newline at end of file diff --git a/osd_support/modules b/osd_support/modules new file mode 120000 index 0000000000..464b823aca --- /dev/null +++ b/osd_support/modules @@ -0,0 +1 @@ +../modules \ No newline at end of file diff --git a/osd_support/osd-managed-resources.adoc b/osd_support/osd-managed-resources.adoc new file mode 100644 index 0000000000..1b08284fe5 --- /dev/null +++ b/osd_support/osd-managed-resources.adoc @@ -0,0 +1,54 @@ +:_content-type: ASSEMBLY +[id="osd-managed-resources"] += {product-title} managed resources +include::_attributes/attributes-openshift-dedicated.adoc[] +:context: osd-managed-resources + +toc::[] + +[id="osd-managed-resources-overview"] +== Overview + +The following covers all resources managed or protected by the Service Reliability Engineering Platform (SRE-P) Team. Customers should not attempt to modify these resources because doing so can lead to cluster instability. + +[id="osd-managed-resources-all"] +== Hive managed resources + +The following list displays the {product-title} resources managed by OpenShift Hive, the centralized fleet configuration management system. These resources are in addition to the OpenShift Container Platform resources created during installation. OpenShift Hive continually attempts to maintain consistency across all {product-title} clusters. Changes to {product-title} resources should be made through {cluster-manager} so that {cluster-manager} and Hive are synchronized. Contact ocm-feedback@redhat.com if {cluster-manager} does not support modifying the resources in question. + +.List of Hive managed resources +[%collapsible] +==== +[source,yaml] +---- +include::https://raw.githubusercontent.com/openshift/managed-cluster-config/master/resources/managed/all-osd-resources.yaml[] +---- +==== + +[id="osd-add-on-managed-namespaces"] +== {product-title} add-on namespaces + +{product-title} add-ons are services available for installation after cluster installation. These additional services include AWS CloudWatch, Red Hat CodeReady Workspaces, Red Hat OpenShift API Management, and Cluster Logging Operator. Any changes to resources within the following namespaces might be overridden by the add-on during upgrades, which can lead to unsupported configurations for the add-on functionality. + +.List of add-on managed namespaces +[%collapsible] +==== +[source,yaml] +---- +include::https://raw.githubusercontent.com/openshift/managed-cluster-config/master/resources/addons-namespaces/main.yaml[] +---- +==== + +[id="osd-validating-webhooks"] +== {product-title} validating webhooks + +{product-title} validating webhooks are a set of dynamic admission controls maintained by the OpenShift SRE team. These HTTP callbacks, also known as webhooks, are called for various types of requests to ensure cluster stability. Upon request the webhooks accept or reject the request. The following list describes the various webhooks with rules containing the registered operations and resources that are controlled. Any attempt to circumvent these validating webhooks could affect the stability and supportability of the cluster. + +.List of validating webhooks +[%collapsible] +==== +[source,json] +---- +include::https://raw.githubusercontent.com/openshift/managed-cluster-validating-webhooks/master/docs/webhooks.json[] +---- +==== diff --git a/osd_support/osd-summarizing-cluster-specifications.adoc b/osd_support/osd-summarizing-cluster-specifications.adoc new file mode 100644 index 0000000000..5c7495db81 --- /dev/null +++ b/osd_support/osd-summarizing-cluster-specifications.adoc @@ -0,0 +1,13 @@ +:_content-type: ASSEMBLY +[id="summarizing-cluster-specifications"] += Summarizing cluster specifications +include::_attributes/common-attributes.adoc[] +ifdef::openshift-dedicated[] +include::_attributes/attributes-openshift-dedicated.adoc[] +endif::[] +:context: summarizing-cluster-specifications + +toc::[] + +// Summarizing cluster specifications through `clusterversion` +include::modules/summarizing-cluster-specifications-through-clusterversion.adoc[leveloffset=+1] diff --git a/osd_support/remote_health_monitoring/_attributes b/osd_support/remote_health_monitoring/_attributes new file mode 120000 index 0000000000..20cc1dcb77 --- /dev/null +++ b/osd_support/remote_health_monitoring/_attributes @@ -0,0 +1 @@ +../../_attributes/ \ No newline at end of file diff --git a/osd_support/remote_health_monitoring/about-remote-health-monitoring.adoc b/osd_support/remote_health_monitoring/about-remote-health-monitoring.adoc new file mode 100644 index 0000000000..a2b89e9059 --- /dev/null +++ b/osd_support/remote_health_monitoring/about-remote-health-monitoring.adoc @@ -0,0 +1,123 @@ +:_content-type: ASSEMBLY +[id="about-remote-health-monitoring"] += About remote health monitoring +include::_attributes/common-attributes.adoc[] +ifdef::openshift-dedicated[] +include::_attributes/attributes-openshift-dedicated.adoc[] +endif::[] +:context: about-remote-health-monitoring + +toc::[] + +{product-title} collects telemetry and configuration data about your cluster and reports it to Red Hat by using the Telemeter Client and the Insights Operator. The data that is provided to Red Hat enables the benefits outlined in this document. + +A cluster that reports data to Red Hat through Telemetry and the Insights Operator is considered a _connected cluster_. + +*Telemetry* is the term that Red Hat uses to describe the information being sent to Red Hat by the {product-title} Telemeter Client. Lightweight attributes are sent from connected clusters to Red Hat to enable subscription management automation, monitor the health of clusters, assist with support, and improve customer experience. + +The *Insights Operator* gathers {product-title} configuration data and sends it to Red Hat. The data is used to produce insights about potential issues that a cluster might be exposed to. These insights are communicated to cluster administrators on {cluster-manager-url}. + +More information is provided in this document about these two processes. + +.Telemetry and Insights Operator benefits + +Telemetry and the Insights Operator enable the following benefits for end-users: + +* *Enhanced identification and resolution of issues*. Events that might seem normal to an end-user can be observed by Red Hat from a broader perspective across a fleet of clusters. Some issues can be more rapidly identified from this point of view and resolved without an end-user needing to open a support case or file a Bugzilla. + +* *Advanced release management*. {product-title} offers the `candidate`, `fast`, and `stable` release channels, which enable you to choose an update strategy. The graduation of a release from `fast` to `stable` is dependent on the success rate of updates and on the events seen during upgrades. With the information provided by connected clusters, Red Hat can improve the quality of releases to `stable` channels and react more rapidly to issues found in the `fast` channels. + +* *Targeted prioritization of new features and functionality*. The data collected provides insights about which areas of {product-title} are used most. With this information, Red Hat can focus on developing the new features and functionality that have the greatest impact for our customers. + +* *A streamlined support experience*. You can provide a cluster ID for a connected cluster when creating a support ticket on the link:https://access.redhat.com/support/[Red Hat Customer Portal]. This enables Red Hat to deliver a streamlined support experience that is specific to your cluster, by using the connected information. This document provides more information about that enhanced support experience. + +* *Predictive analytics*. The insights displayed for your cluster on {cluster-manager-url} are enabled by the information collected from connected clusters. Red Hat is investing in applying deep learning, machine learning, and artificial intelligence automation to help identify issues that {product-title} clusters are exposed to. + +ifdef::openshift-origin[] +{product-title} may be installed without a pull secret received at console.redhat.com. In this case default imagestreams will not be imported and telemetry data will not be sent. +endif::[] + +include::modules/telemetry-about-telemetry.adoc[leveloffset=+1] + +ifndef::openshift-dedicated[] + +[role="_additional-resources"] +.Additional resources + +* See the xref:../../updating/updating-cluster-within-minor.adoc#updating-cluster-within-minor[{product-title} update documentation] for more information about updating or upgrading a cluster. +endif::[] + +include::modules/telemetry-what-information-is-collected.adoc[leveloffset=+2] + +ifndef::openshift-dedicated[] + +[role="_additional-resources"] +.Additional resources + +* See xref:../../osd_support/remote_health_monitoring/showing-data-collected-by-remote-health-monitoring.adoc#showing-data-collected-from-the-cluster_showing-data-collected-by-remote-health-monitoring[Showing data collected by Telemetry] for details about how to list the attributes that Telemetry gathers from Prometheus in {product-title}. + +* See the link:https://github.com/openshift/cluster-monitoring-operator/blob/master/manifests/0000_50_cluster-monitoring-operator_04-config.yaml[upstream cluster-monitoring-operator source code] for a list of the attributes that Telemetry gathers from Prometheus. + +* Telemetry is installed and enabled by default. If you need to opt out of remote health reporting, see xref:../../osd_support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc#opting-out-remote-health-reporting[Opting out of remote health reporting]. +endif::[] + +include::modules/insights-operator-about.adoc[leveloffset=+1] + +[role="_additional-resources"] +.Additional resources + +* The Insights Operator is installed and enabled by default. If you need to opt out of remote health reporting, see xref:../../osd_support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc#opting-out-remote-health-reporting[Opting out of remote health reporting]. + +ifdef::openshift-dedicated[] +// TODO: When you click on that link, you actually can't opt out. Should this additional resources link be removed? +endif::[] + +include::modules/insights-operator-what-information-is-collected.adoc[leveloffset=+2] + +[role="_additional-resources"] +.Additional resources + +ifndef::openshift-dedicated[] +* See xref:../../osd_support/remote_health_monitoring/showing-data-collected-by-remote-health-monitoring.html#insights-operator-showing-data-collected-from-the-cluster_showing-data-collected-by-remote-health-monitoring[Showing data collected by the Insights Operator] for details about how to review the data that is collected by the Insights Operator. +endif::[] + +* The Insights Operator source code is available for review and contribution. See the link:https://github.com/openshift/insights-operator/blob/master/docs/gathered-data.md[Insights Operator upstream project] for a list of the items collected by the Insights Operator. + +include::modules/understanding-telemetry-and-insights-operator-data-flow.adoc[leveloffset=+1] + +ifndef::openshift-dedicated[] + +[role="_additional-resources"] +.Additional resources + +* See xref:../../monitoring/monitoring-overview.adoc#monitoring-overview_monitoring-overview[Monitoring overview] for more information about the {product-title} monitoring stack. + +* See xref:../../installing/install_config/configuring-firewall.adoc#configuring-firewall[Configuring your firewall] for details about configuring a firewall and enabling endpoints for Telemetry and Insights +endif::[] + +[id="additional-details-about-how-remote-health-monitoring-data-is-used"] +== Additional details about how remote health monitoring data is used + +The information collected to enable remote health monitoring is detailed in xref:../../osd_support/remote_health_monitoring/about-remote-health-monitoring.adoc#what-information-is-collected_about-remote-health-monitoring[Information collected by Telemetry] and xref:../../osd_support/remote_health_monitoring/about-remote-health-monitoring.adoc#insights-operator-what-information-is-collected_about-remote-health-monitoring[Information collected by the Insights Operator]. + +As further described in the preceding sections of this document, Red Hat collects data about your use of the Red Hat Product(s) for purposes such as providing support and upgrades, optimizing performance or configuration, minimizing service impacts, identifying and remediating threats, troubleshooting, improving the offerings and user experience, responding to issues, and for billing purposes if applicable. + +.Collection safeguards + +Red Hat employs technical and organizational measures designed to protect the telemetry and configuration data. + +.Sharing + +Red Hat may share the data collected through Telemetry and the Insights Operator internally within Red Hat to improve your user experience. Red Hat may share telemetry and configuration data with its business partners in an aggregated form that does not identify customers to help the partners better understand their markets and their customers’ use of Red Hat offerings or to ensure the successful integration of products jointly supported by those partners. + +.Third parties + +Red Hat may engage certain third parties to assist in the collection, analysis, and storage of the Telemetry and configuration data. + +.User control / enabling and disabling telemetry and configuration data collection + +You may disable {product-title} Telemetry and the Insights Operator by following the instructions in xref:../../osd_support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc#opting-out-remote-health-reporting[Opting out of remote health reporting]. + +ifdef::openshift-dedicated[] +// TODO: Same question about should this be removed or updated, since you can't actually opt out for dedicated? +endif::[] diff --git a/osd_support/remote_health_monitoring/enabling-remote-health-reporting.adoc b/osd_support/remote_health_monitoring/enabling-remote-health-reporting.adoc new file mode 100644 index 0000000000..3addca1d15 --- /dev/null +++ b/osd_support/remote_health_monitoring/enabling-remote-health-reporting.adoc @@ -0,0 +1,20 @@ +:_content-type: ASSEMBLY +[id="enabling-remote-health-reporting"] += Enabling remote health reporting +include::_attributes/common-attributes.adoc[] + +:context: enabling-remote-health-reporting + +toc::[] + + +If you or your organization have disabled remote health reporting, you can enable this feature again. You can see that remote health reporting is disabled from the message "Insights not available" in the *Status* tile on the {product-title} Web Console Overview page. + +To enable remote health reporting, you must xref:../../support/remote_health_monitoring/enabling-remote-health-reporting.adoc#insights-operator-new-pull-secret-enable_enabling-remote-health-reporting[Modify the global cluster pull secret] with a new authorization token. + +[NOTE] +==== +Enabling remote health reporting enables both Insights Operator and Telemetry. +==== + +include::modules/insights-operator-new-pull-secret-enable.adoc[leveloffset=+1] diff --git a/osd_support/remote_health_monitoring/images b/osd_support/remote_health_monitoring/images new file mode 120000 index 0000000000..5fa6987088 --- /dev/null +++ b/osd_support/remote_health_monitoring/images @@ -0,0 +1 @@ +../../images \ No newline at end of file diff --git a/osd_support/remote_health_monitoring/insights-operator-simple-access.adoc b/osd_support/remote_health_monitoring/insights-operator-simple-access.adoc new file mode 100644 index 0000000000..39fd51c636 --- /dev/null +++ b/osd_support/remote_health_monitoring/insights-operator-simple-access.adoc @@ -0,0 +1,23 @@ +:_content-type: ASSEMBLY +[id="insights-operator-simple-access"] += Importing simple content access certificates with Insights Operator +include::_attributes/common-attributes.adoc[] +:context: remote-health-reporting-from-restricted-network +:FeatureName: `InsightsOperatorPullingSCA` + +toc::[] + +Insights Operator periodically imports your simple content access certificates from {cluster-manager-url} and stores them in the `etc-pki-entitlement` secret in the `openshift-config-managed` namespace. Simple content access is a capability in Red Hat subscription tools which simplifies the behavior of the entitlement tooling. This feature makes it easier to consume the content provided by your Red Hat subscriptions without the complexity of configuring subscription tooling. + +Insights Operator imports simple content access certificates every 8 hours by default, but can be configured or disabled using the `support` secret in the `openshift-config` namespace. + +[role="_additional-resources"] +.Additional resources + +* See link:https://access.redhat.com/documentation/en-us/subscription_central/2021/html-single/getting_started_with_simple_content_access/index#assembly-about-simplecontent[About simple content access] in the Red Hat Subscription Central documentation, for more information about simple content access. + +* See xref:../../cicd/builds/running-entitled-builds.adoc[Using Red Hat subscriptions in builds], for more information about using simple content access certificates in {product-title} entitled builds. + +include::modules/insights-operator-configuring-sca.adoc[leveloffset=+1] + +include::modules/insights-operator-disabling-sca.adoc[leveloffset=+1] diff --git a/osd_support/remote_health_monitoring/modules b/osd_support/remote_health_monitoring/modules new file mode 120000 index 0000000000..8b0e854007 --- /dev/null +++ b/osd_support/remote_health_monitoring/modules @@ -0,0 +1 @@ +../../modules \ No newline at end of file diff --git a/osd_support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc b/osd_support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc new file mode 100644 index 0000000000..f9e5dd9a27 --- /dev/null +++ b/osd_support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc @@ -0,0 +1,35 @@ +:_content-type: ASSEMBLY +[id="opting-out-remote-health-reporting"] += Opting out of remote health reporting +include::_attributes/common-attributes.adoc[] +ifdef::openshift-dedicated[] +include::_attributes/attributes-openshift-dedicated.adoc[] +endif::[] +:context: opting-out-remote-health-reporting + +toc::[] + +ifdef::openshift-enterprise,openshift-webscale,openshift-origin[] +You may choose to opt out of reporting health and usage data for your cluster. +endif::[] + +ifdef::openshift-dedicated[] +On {product-title}, remote health reporting is always enabled. You cannot opt out. + +// TODO: Is there even a reason to include this assembly for OSD? Could you remove it, and just mention in the other assemblies that you can't opt out? +endif::[] + +ifdef::openshift-enterprise,openshift-webscale,openshift-origin[] + +To opt out of remote health reporting, you must: + +. xref:../../support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc#insights-operator-new-pull-secret_opting-out-remote-health-reporting[Modify the global cluster pull secret] to disable remote health reporting. +. xref:../../support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc#images-update-global-pull-secret_opting-out-remote-health-reporting[Update the cluster] to use this modified pull secret. + +include::modules/telemetry-consequences-of-disabling-telemetry.adoc[leveloffset=+1] + +include::modules/insights-operator-new-pull-secret-disabled.adoc[leveloffset=+1] + +include::modules/images-update-global-pull-secret.adoc[leveloffset=+1] + +endif::[] diff --git a/osd_support/remote_health_monitoring/remote-health-reporting-from-restricted-network.adoc b/osd_support/remote_health_monitoring/remote-health-reporting-from-restricted-network.adoc new file mode 100644 index 0000000000..64d76d1d4c --- /dev/null +++ b/osd_support/remote_health_monitoring/remote-health-reporting-from-restricted-network.adoc @@ -0,0 +1,28 @@ +:_content-type: ASSEMBLY +[id="remote-health-reporting-from-restricted-network"] += Using remote health reporting in a restricted network +include::_attributes/common-attributes.adoc[] +:context: remote-health-reporting-from-restricted-network + +toc::[] + +You can manually gather and upload Insights Operator archives to diagnose issues from a restricted network. + +To use the Insights Operator in a restricted network, you must: + +* Create a copy of your Insights Operator archive. +* Upload the Insights Operator archive to link:https://console.redhat.com[console.redhat.com]. + +Additionally, you can choose to xref:../../support/remote_health_monitoring/remote-health-reporting-from-restricted-network.adoc#insights-operator-enable-obfuscation_remote-health-reporting-from-restricted-network[obfuscate] the Insights Operator data before upload. + + +include::modules/insights-operator-one-time-gather.adoc[leveloffset=+1] + +include::modules/insights-operator-manual-upload.adoc[leveloffset=+1] + +include::modules/insights-operator-enable-obfuscation.adoc[leveloffset=+1] + +[role="_additional-resources"] +.Additional resources + +* For more information on how to download your Insights Operator archive, see xref:../../support/remote_health_monitoring/showing-data-collected-by-remote-health-monitoring.adoc#insights-operator-showing-data-collected-from-the-cluster_showing-data-collected-by-remote-health-monitoring[Showing data collected by the Insights Operator]. diff --git a/osd_support/remote_health_monitoring/showing-data-collected-by-remote-health-monitoring.adoc b/osd_support/remote_health_monitoring/showing-data-collected-by-remote-health-monitoring.adoc new file mode 100644 index 0000000000..d4ac74ca6e --- /dev/null +++ b/osd_support/remote_health_monitoring/showing-data-collected-by-remote-health-monitoring.adoc @@ -0,0 +1,16 @@ +:_content-type: ASSEMBLY +[id="showing-data-collected-by-remote-health-monitoring"] += Showing data collected by remote health monitoring +include::_attributes/common-attributes.adoc[] +ifdef::openshift-dedicated[] +include::_attributes/attributes-openshift-dedicated.adoc[] +endif::[] +:context: showing-data-collected-by-remote-health-monitoring + +toc::[] + +As an administrator, you can review the metrics collected by Telemetry and the Insights Operator. + +include::modules/telemetry-showing-data-collected-from-the-cluster.adoc[leveloffset=+1] + +include::modules/insights-operator-showing-data-collected-from-the-cluster.adoc[leveloffset=+1] diff --git a/osd_support/remote_health_monitoring/snippets b/osd_support/remote_health_monitoring/snippets new file mode 120000 index 0000000000..7bf6da9a51 --- /dev/null +++ b/osd_support/remote_health_monitoring/snippets @@ -0,0 +1 @@ +../../snippets \ No newline at end of file diff --git a/osd_support/remote_health_monitoring/using-insights-to-identify-issues-with-your-cluster.adoc b/osd_support/remote_health_monitoring/using-insights-to-identify-issues-with-your-cluster.adoc new file mode 100644 index 0000000000..b4380a8969 --- /dev/null +++ b/osd_support/remote_health_monitoring/using-insights-to-identify-issues-with-your-cluster.adoc @@ -0,0 +1,20 @@ +:_content-type: ASSEMBLY +[id="using-insights-to-identify-issues-with-your-cluster"] += Using Insights to identify issues with your cluster +include::_attributes/common-attributes.adoc[] +ifdef::openshift-dedicated[] +include::_attributes/attributes-openshift-dedicated.adoc[] +endif::[] +:context: using-insights-to-identify-issues-with-your-cluster + +toc::[] + +Insights repeatedly analyzes the data Insights Operator sends. Users of {product-title} can display the report in the *Insights* tab of each cluster on {cluster-manager-url}. + +include::modules/insights-operator-advisor-overview.adoc[leveloffset=+1] +include::modules/insights-operator-advisor-recommendations.adoc[leveloffset=+1] +include::modules/displaying-potential-issues-with-your-cluster.adoc[leveloffset=+1] +include::modules/displaying-all-insights-advisor-recommendations.adoc[leveloffset=+1] +include::modules/disabling-insights-advisor-recommendations.adoc[leveloffset=+1] +include::modules/enabling-insights-advisor-recommendations.adoc[leveloffset=+1] +include::modules/displaying-the-insights-status-in-the-web-console.adoc[leveloffset=+1] diff --git a/osd_support/snippets b/osd_support/snippets new file mode 120000 index 0000000000..9f5bc7e4dd --- /dev/null +++ b/osd_support/snippets @@ -0,0 +1 @@ +../snippets \ No newline at end of file