Skip to content

Commit e696f2e

Browse files
dmbarrasuseaacevedoosorioakashraj4261craffitrb3ckers
authored
STAC-23862: Add release notes 2.6.3 release and update with staging changes (#133)
* STAC-23751: Document procedure to lower retention on SG and recover data immediately * Update docs/latest/modules/en/pages/setup/data-management/data_retention.adoc Co-authored-by: akashraj4261 <[email protected]> * Update docs/latest/modules/en/pages/setup/data-management/data_retention.adoc Co-authored-by: akashraj4261 <[email protected]> * Update docs/latest/modules/en/pages/setup/data-management/data_retention.adoc Co-authored-by: akashraj4261 <[email protected]> * Update docs/latest/modules/en/pages/setup/data-management/data_retention.adoc Co-authored-by: akashraj4261 <[email protected]> * Update docs/latest/modules/en/pages/setup/data-management/data_retention.adoc Co-authored-by: akashraj4261 <[email protected]> * Update docs/latest/modules/en/pages/setup/data-management/data_retention.adoc Co-authored-by: akashraj4261 <[email protected]> * Update docs/latest/modules/en/pages/setup/data-management/data_retention.adoc Co-authored-by: akashraj4261 <[email protected]> * STAC-23748: Add workload observer to logs collector * STAC-23748: Add workload observer to ack persistent volumes * STAC-23748: Also fix tephra * STAC-23748: Typo * Mergin staging and main to create release notes (#131) * STAC-23822 Add hdfs status report to log collection * STAC-23822 Fix boolean logic for ES and helm values collection * STAC-23822 Add collection of hbase and hdfs reports * Only keep the relevant parts of the helm config * STAC-0: Some clarification around sizing * Bump product-docs-common from `4dc90cb` to `c31fda2` Bumps [product-docs-common](https://github.com/rancher/product-docs-common) from `4dc90cb` to `c31fda2`. - [Commits](rancher/product-docs-common@4dc90cb...c31fda2) --- updated-dependencies: - dependency-name: product-docs-common dependency-version: c31fda22fd075ddf1eb97b92045d05db8f8a38a7 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> * Update docs/latest/modules/en/pages/k8s-suse-rancher-prime.adoc Co-authored-by: akashraj4261 <[email protected]> * Update docs/latest/modules/en/pages/k8s-suse-rancher-prime.adoc Co-authored-by: akashraj4261 <[email protected]> * Update docs/latest/modules/en/pages/k8s-suse-rancher-prime.adoc Co-authored-by: akashraj4261 <[email protected]> * STAC-23583: rewrite rbac roles description in easier digestible format (#123) * STAC-23583: rewrite rbac roles description in easier digestible format * STAC-23583: try to remove potentially confusing phrases * Apply suggestions from code review Co-authored-by: akashraj4261 <[email protected]> --------- Co-authored-by: akashraj4261 <[email protected]> * Aligned the local attributes with the global attributes. Signed-off-by: akashraj4261 <[email protected]> * Fix api endpoints documentation to avoid confusion * Fix mistake * Fix condition * Fix condition Co-authored-by: rb3ckers <[email protected]> --------- Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: akashraj4261 <[email protected]> Co-authored-by: Remco Beckers <[email protected]> Co-authored-by: Bram Schuur <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bram Schuur <[email protected]> Co-authored-by: akashraj4261 <[email protected]> Co-authored-by: Frank van Lankvelt <[email protected]> * STAC-23862: Add release notes 2.6.3 --------- Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: akashraj4261 <[email protected]> Co-authored-by: Alejandro Acevedo <[email protected]> Co-authored-by: akashraj4261 <[email protected]> Co-authored-by: Bram Schuur <[email protected]> Co-authored-by: Remco Beckers <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bram Schuur <[email protected]> Co-authored-by: Frank van Lankvelt <[email protected]>
1 parent 693e068 commit e696f2e

File tree

7 files changed

+167
-18
lines changed

7 files changed

+167
-18
lines changed

docs/latest/modules/en/attachments/suse-observability_logs_collector.sh

100644100755
Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/bin/bash
22

3+
ELASTICSEARCH_LOGS=false
34
ELASTICSEARCH_LOGS=false
45
ELASTICSEARCH_RANGE="7d"
56
while getopts "her:" option; do
@@ -24,6 +25,7 @@ EOF
2425
exit 0;;
2526
e) # Collect elasticsearch logs
2627
ELASTICSEARCH_LOGS=true;;
28+
ELASTICSEARCH_LOGS=true;;
2729
r) # Time range for elasticsearch logs
2830
ELASTICSEARCH_RANGE=$OPTARG;;
2931
\?) # Invalid option
@@ -50,19 +52,25 @@ done
5052

5153
# skip helm release analysis when not all its dependencies are present
5254
HELM_RELEASES=true
55+
HELM_RELEASES=true
5356
for cmd in base64 gzip jq
5457
do
5558
if ! command -v $cmd &>/dev/null; then
5659
echo "$cmd is not installed. Skipping analysis of helm releases."
5760
HELM_RELEASES=false
61+
HELM_RELEASES=false
5862
fi
5963
done
6064

6165
# Check if KUBECONFIG is set
62-
if [[ -z "$KUBECONFIG" || ! -f "$KUBECONFIG" ]]; then
63-
echo "Error: KUBECONFIG is not set. Please ensure KUBECONFIG is set to the path of a valid kubeconfig file before running this script."
64-
echo "If kubeconfig is not set, use the command: export KUBECONFIG=PATH-TO-YOUR/kubeconfig. Exiting..."
65-
exit 1
66+
if ! kubectl config current-context > /dev/null; then
67+
echo "Error: Could not find kubernetes cluster to connect to."
68+
echo "Please ensure KUBECONFIG is set to the path of a valid kubeconfig file before running this script."
69+
echo "If kubeconfig is not set, use the command: export KUBECONFIG=PATH-TO-YOUR/kubeconfig. Exiting..."
70+
exit 1
71+
else
72+
CONTEXT=$(kubectl config current-context)
73+
echo "Retrieving logs from kubernetes context: $CONTEXT"
6674
fi
6775

6876
# Check if namespace exist or not
@@ -71,7 +79,7 @@ if ! kubectl get namespace "$NAMESPACE" &>/dev/null; then
7179
exit 1
7280
fi
7381
# Directory to store logs
74-
OUTPUT_DIR="${NAMESPACE}_logs_$(date +%Y%m%d%H%M%S)"
82+
OUTPUT_DIR="${NAMESPACE}_logs_$(date -u +%Y-%m-%d_%H-%M-%SZ)"
7583
ARCHIVE_FILE="${OUTPUT_DIR}.tar.gz"
7684

7785
techo() {
@@ -131,6 +139,20 @@ collect_helm_releases() {
131139
techo "Collecting helm releases..."
132140
mkdir -p "$OUTPUT_DIR/releases"
133141

142+
# Restrict keys extracted from Helm values to only this include-list to avoid including any
143+
included_keys='["resources", "affinity", "nodeSelector", "tolerations"]'
144+
145+
# 1. --argjson keys "$included_keys": Passes the shell variable as a JSON array $keys.
146+
# 2. . as $input: Saves the entire original JSON into a variable $input.
147+
# 3. [ paths | ... ]: Gathers all paths from the JSON.
148+
# 4. select(.[-1] as $last | $keys | index($last)): Selects only paths where
149+
# the last element (.[-1]) is found inside the $keys array.
150+
# 5. reduce .[] as $p (null; ...): Starts with an empty (null) document
151+
# and iterates over every path ($p) that was selected.
152+
# 6. setpath($p; $input | getpath($p)): For each path, it sets that path
153+
# in the *new* document, pulling the *value* from the original $input.
154+
155+
134156
# Restrict keys extracted from Helm values to only this include-list to avoid including any
135157
included_keys='["resources", "affinity", "nodeSelector", "tolerations"]'
136158

@@ -149,6 +171,7 @@ collect_helm_releases() {
149171
kubectl -n "$NAMESPACE" get secret "$release" -o jsonpath='{.data.release}' | \
150172
base64 --decode | base64 --decode | gzip -d | \
151173
jq --argjson keys "$included_keys" '{ info: .info, metadata: .chart.metadata, config: ( .config as $input | [ .config | paths | select(.[-1] as $last | $keys | index($last)) ] | reduce .[] as $p (null; setpath($p; $input | getpath($p)))) }' > "$OUTPUT_DIR/releases/$release"
174+
jq --argjson keys "$included_keys" '{ info: .info, metadata: .chart.metadata, config: ( .config as $input | [ .config | paths | select(.[-1] as $last | $keys | index($last)) ] | reduce .[] as $p (null; setpath($p; $input | getpath($p)))) }' > "$OUTPUT_DIR/releases/$release"
152175
done
153176
}
154177

@@ -290,6 +313,18 @@ collect_hbase_report() {
290313
fi
291314
}
292315

316+
collect_workload_observer_data() {
317+
techo "Collecting workload observer data..."
318+
POD=$(kubectl -n "$NAMESPACE" get pod -l app.kubernetes.io/component=workload-observer -o jsonpath='{.items[0].metadata.name}' 2>/dev/null)
319+
if [ "$POD" == "" ]; then
320+
techo "INFO: No workload observer pod found, skipping"
321+
return
322+
fi
323+
324+
mkdir -p "$OUTPUT_DIR/workload-observer-data"
325+
kubectl -n "$NAMESPACE" cp "$POD:/report-data" "$OUTPUT_DIR/workload-observer-data/" > /dev/null 2>&1 &
326+
}
327+
293328
archive_and_cleanup() {
294329
echo "Creating archive $ARCHIVE_FILE..."
295330
tar -czf "$ARCHIVE_FILE" "$OUTPUT_DIR"
@@ -348,10 +383,14 @@ collect_pod_logs
348383
collect_pod_disk_usage
349384
collect_hdfs_report
350385
collect_hbase_report
386+
collect_hdfs_report
387+
collect_hbase_report
351388
collect_yaml_configs
389+
collect_workload_observer_data
352390
if $HELM_RELEASES; then
353391
collect_helm_releases
354392
fi
393+
if $ELASTICSEARCH_LOGS; then
355394
if $ELASTICSEARCH_LOGS; then
356395
collect_pod_logs_from_elasticsearch
357396
fi

docs/latest/modules/en/nav.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@
139139
*** xref:setup/release-notes/v2.6.0.adoc[v2.6.0 - 29/Sep/2025]
140140
*** xref:setup/release-notes/v2.6.1.adoc[v2.6.1 - 13/Oct/2025]
141141
*** xref:setup/release-notes/v2.6.2.adoc[v2.6.2 - 03/Nov/2025]
142+
*** xref:setup/release-notes/v2.6.3.adoc[v2.6.3 - 25/Nov/2025]
142143
** xref:setup/upgrade-stackstate/README.adoc[Upgrade SUSE Observability]
143144
*** xref:setup/upgrade-stackstate/migrate-from-6.adoc[Migration from StackState]
144145
*** xref:setup/upgrade-stackstate/steps-to-upgrade.adoc[Steps to upgrade]

docs/latest/modules/en/pages/setup/data-management/data_retention.adoc

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,54 @@ Note that by adding more time to the data retention period, the amount of data s
2424

2525
When lowering the retention period, it can take some time until disk space is freed up (at least 15 minutes).
2626

27+
=== Troubleshooting topology disk space issues
28+
In case of running into disk space issues, a log line - `Not enough replicas was chosen. Reason: {NOT_ENOUGH_STORAGE_SPACE=1` appears in the namenode. Follow the below steps to deal with this scenario:
29+
30+
* Lower the retention, prepare the instance to recover disk space immediately, and trigger a helm upgrade:
31+
[,yaml]
32+
----
33+
stackstate:
34+
topology:
35+
# Retention set to 1 week in case you are running with the default 1 month
36+
retentionHours: 144
37+
hbase:
38+
console:
39+
enabled: true
40+
replicaCount: 1
41+
hdfs:
42+
datanode:
43+
extraEnv:
44+
open:
45+
HDFS_CONF_dfs_datanode_du_reserved_pct: "0"
46+
----
47+
48+
[NOTE]
49+
====
50+
Wait until all the hbase and hdfs pods are stable before moving on to the next step.
51+
====
52+
53+
* Trigger the compaction of historic data:
54+
[,bash]
55+
----
56+
kubectl exec -t --namespace suse-observability $(kubectl get pods --namespace suse-observability --no-headers | grep "console" | awk '{print $1}' | head -n 1) -- /bin/bash -c "stackgraph-console run println\(retention.removeExpiredDataImmediately\(\)\)"
57+
----
58+
59+
* Follow the progress using:
60+
----
61+
kubectl exec -t --namespace suse-observability $(kubectl get pods --namespace suse-observability --no-headers | grep "console" | awk '{print $1}' | head -n 1) -- /bin/bash -c "stackgraph-console run println\(retention.removeExpiredDataImmediatelyStatus\(\)\)"
62+
----
63+
64+
* In case the budgeted disk space is insufficient, contact <support-portal-link>.
65+
66+
* Restore the settings. Once the status is no longer in progress - `Status(inProgress = false, lastFailure = null)`, trigger a helm upgrade to preserving the new retention as part of your values.
67+
[,yaml]
68+
----
69+
stackstate:
70+
topology:
71+
# Retention set to 1 week in case you are running with the default 1 month
72+
retentionHours: 144
73+
----
74+
2775
== Retention of events and logs
2876

2977
=== SUSE Observability data store

docs/latest/modules/en/pages/setup/install-stackstate/kubernetes_openshift/ack.adoc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ We provide a dedicated set of Helm values that adjusts all volume sizes to meet
1515
zookeeper:
1616
persistence:
1717
size: 20Gi
18+
hbase:
19+
tephra:
20+
persistence:
21+
size: 20Gi
1822
stackstate:
1923
components:
2024
checks:
@@ -34,6 +38,9 @@ stackstate:
3438
vmagent:
3539
persistence:
3640
size: 20Gi
41+
workloadObserver:
42+
persistence:
43+
size: 20Gi
3744
features:
3845
storeTransactionLogsToPVC:
3946
volumeSize: 20Gi
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
= v2.6.3 - 25/Nov/2025
2+
:revdate: 2025-11-25
3+
:page-revdate: {revdate}
4+
:description: SUSE Observability Self-hosted
5+
6+
== Release Notes: {stackstate-product-name} Helm Chart v2.6.3
7+
8+
== New Features & Enhancements
9+
10+
* *HDFS Upgrade:* HDFS (Hadoop Distributed File System) and its associated dependencies have been upgraded.
11+
* *StackPack: Partial Topology Sync Monitor:* A new monitor has been added to the StackState StackPack to alert on **partial Topology Synchronization snapshots**.
12+
* *vmagent Resource Increase:* The memory and CPU resource requirements for the `vmagent` component have been increased in the `4000-ha` profile.
13+
* *Image Upgrades:*
14+
** The **Kafka** container image has been upgraded.
15+
** The **ClickHouse** container image has been upgraded.
16+
17+
== Bug Fixes
18+
19+
* *OpenTelemetry Metric Scoping:* Fixed a critical issue where metrics ingested via the OpenTelemetry collector were missing the `_scope_` label. This prevented **scoped users** from being able to observe these metrics.
20+
* *Metric Explorer Sorting:* The **Metric Explorer** now uses numerical sorting for values in the value column.
21+
* *Platform: StackGraph Corruption (Timed-Out Transactions):* Fixed a **StackGraph corruption issue** where data from timed-out transactions that should have been rolled back could inadvertently reappear.
22+
* *Platform: State Pod Validation:* Added **additional data validation and logging** to the state pod for improved stability and debugging.
23+
* *StackGraph: Edge Deletion Invariant:* Added an invariant to prevent inconsistent edge references when performing a delete edge operation in **StackGraph**.
24+
* *StackGraph Integrity Verifier:* An **experimental perpetual integrity verifier** has been added for StackGraph. It can be enabled by setting `hbase.console.integrity.enabled=true`.
25+
* *StackPack Remediation Guides:* Fixed several remediation guides within the SUSE Observability stackpack that incorrectly referenced `tags` instead of the correct term, **`labels`**.
26+
* *Duplicate OpenTelemetry StackPack:* Removed a duplicate **OpenTelemetry stackpack** installation.
27+
* *Platform: Agent Restart Snapshot Loop:* Fixed an issue where a restart of an agent could cause the **'active snapshot'** to continuously occur.
28+
* *Platform: Kafka JMX OOM Fix:* Resolved an Out-Of-Memory (OOM) issue for the Kafka JMX container on RKE2 Kubernetes versions 1.31 and 1.30.
29+
30+
=== Agent Bug Fixes
31+
32+
* *Agent: /proc/<pid>/stat Panic:* The agent now includes a fix to prevent a panic when a `/proc/<pid>/stat` file is found to be empty.git c

docs/latest/modules/en/pages/setup/security/rbac/rbac_rancher.adoc

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,28 @@ For Rancher RBAC to function,
1616
* the {stackstate-product-name} Agent must have the RBAC Agent enabled and must authenticate using a service token.
1717
====
1818

19-
Every authenticated user has the *Instance Basic Access* role that allows them to use the system. These permissions provide access to the views, settings, metric bindings, and lets a user see system notifications. They do NOT grant access to any {stackstate-product-name} data. To see any data, a user needs to be given an additional role. Two directions for extending the *Instance Basic Access* role are provided with Rancher *Role Templates*:
19+
Every authenticated user has the *Instance Basic Access* role that allows them to use the system. These permissions provide access to the views, settings, metric bindings, and lets a user see system notifications. They do NOT grant access to any {stackstate-product-name} data. In order to see any data, a user needs to be given an additional role. Two directions for extending the *Instance Basic Access* role are provided with Rancher *Role Templates*:
2020

21-
Instance Roles:: Enables you to configure or personalize {stackstate-product-name}.
21+
Instance Roles:: Enables you to configure or personalize {stacktate-product-name}.
2222
Scoped Roles:: Grants access to {stackstate-product-name} data from observed clusters.
2323

2424
== Instance roles
2525

26-
You can assign the *Role Templates* for *Instance Roles* to users or groups in the *Project* that is running {stackstate-product-name}. If no instance roles are explicitly assigned to a member of a project, then the permissions of the *Instance Basic Access* role is applied.
26+
You can assign the *Role Templates* for *Instance Roles* to users or groups in the *Project* that is running {stackstate-product-name}. If no instance roles are explicitly assigned to a member of a project, then they will have the permissions of the *Instance Basic Access* role.
2727

2828
=== Instance roles with access to {stackstate-product-name} data
2929

30-
A couple of "global" roles allow access to all {stackstate-product-name} data - in any of the observed clusters. These roles are intended to be used for setting up the system and for troubleshooting system-level problems. For users with any of these roles, it is not necessary to configure xref:scoped[Scoped Roles].
30+
A couple of "global" roles allow access to all {stackstate-product-name} data - in any of the observed clusters. These roles are intended to be used for setting up the system and for troubleshooting system-level problems. For users with any of these roles, it is not necessary to configure xref:scoped[Scoped Roles].
3131

3232
Instance Admin:: Grants full access to all views and all permissions.
33-
Instance Troubleshooter:: Grants all permissions required to use SUSE Observability for troubleshooting, including the ability to enable/disable monitors, create custom views, and use the CLI.
34-
Instance Observer:: Grants access to all data in a SUSE Observability instance.
33+
Instance Troubleshooter:: Grants all permissions required to use SUSE Observability for troubleshooting, including the ability to enable/disable monitors, create custom views, and use the CLI.
34+
Instance Observer:: Grants access to all data in a SUSE Observability instance.
3535

3636
=== Instance roles without access to {stackstate-product-name} data
3737

38-
These roles need to be combined with the *Instance Observer* role or one of the xref:scoped[Scoped Roles] (see below). Otherwise, no {stackstate-product-name} data is accessible and a "No components found" message appears in the UI. This applies to all Rancher users, including users, such as Project owners.
38+
These roles need to be combined with the *Instance Observer* role or one of the xref:scoped[Scoped Roles] (see below). Otherwise, no {stackstate-product-name} data is accessible and the UI will show a "No components found" message. This applies to all Rancher users, including users, such as Project owners.
3939

40-
Instance Recommended Access:: Grants recommended permissions to use SUSE Observability. This role includes permissions that are not strictly necessary, but provide (limited) means of personalization {stackstate-product-name}.
40+
Instance Recommended Access:: Grants recommended permissions to use SUSE Observability. This role includes permissions that are not strictly necessary, but provide (limited) means of personalization {stackstate-product-name}.
4141
Instance Basic Access:: Grants minimal permissions to use {stackstate-product-name}. This role does not need to be explicitly assigned and there is no *Role Template* for it; every logged-in user has it.
4242

4343
You can find the permissions assigned to each predefined SUSE Observability role below. For details of the different permissions and how to manage them using the `sts` CLI, see xref:/setup/security/rbac/rbac_permissions.adoc[Role based access control (RBAC) permissions]
@@ -59,12 +59,30 @@ These permissions are granted to all users.
5959
|views |get
6060
|===
6161
62+
--
63+
Basic Access::
64+
+
65+
--
66+
Basic access grants minimal permissions for using SUSE Observability. To be combined with an Observer (Instance, Cluster or Project).
67+
These permissions are granted to all users.
68+
69+
|===
70+
|Resource |Verbs
71+
72+
|metric-bindings |get
73+
|settings |get
74+
|system-notifications |get
75+
|views |get
76+
|===
77+
6278
--
6379
Recommended Access::
6480
+
6581
--
6682
Recommended access grants permissions that are not strictly necessary, but that make SUSE Observability a lot more useful. It provides a limited degree of personalization.
6783
To be combined with an Observer (Instance, Cluster or Project).
84+
Recommended access grants permissions that are not strictly necessary, but that make SUSE Observability a lot more useful. It provides a limited degree of personalization.
85+
To be combined with an Observer (Instance, Cluster or Project).
6886
6987
|===
7088
|Resource |Verbs
@@ -80,7 +98,7 @@ To be combined with an Observer (Instance, Cluster or Project).
8098
Observer::
8199
+
82100
--
83-
Observer grants access to all observability data in a SUSE Observability instance. Combine with *Recommended Access* for a better experience.
101+
Observer grants access to all observability data in a SUSE Observability instance. Combine with *Recommended Access* for a better experience.
84102
85103
|===
86104
|Resource |Verbs
@@ -121,6 +139,7 @@ The Troubleshooter role has access to all data available in SUSE Observability a
121139
122140
--
123141
Admin::
142+
Admin::
124143
+
125144
--
126145
The Administrator role has all permissions assigned.
@@ -160,7 +179,7 @@ The Administrator role has all permissions assigned.
160179
[#scoped]
161180
== Scoped roles
162181

163-
You can assign the following *Role Templates* to users or groups in an observed cluster. They grant access to {stackstate-product-name} data coming from (a *Project* in) the *Cluster*, giving a user permission to read topology, metrics, logs and trace data.
182+
You can assign the following *Role Templates* to users or groups in an observed cluster. They grant access to {stackstate-product-name} data coming from (a *Project* in) the *Cluster*, giving a user permission to read topology, metrics, logs and trace data.
164183

165184
Observer:: Grants access to data coming from namespaces in a *Project*. You can use this in the *Project Membership* section of the cluster configuration.
166185
Cluster Observer:: Grants access to all data coming from a *Cluster*. You can use this template in the *Cluster Membership* section of the cluster configuration.
@@ -171,21 +190,24 @@ The resources in these roles correspond to xref:/setup/security/rbac/rbac_permis
171190
* `traces` - spans from the cluster or namespace
172191
* `metrics` - metric data originating from the cluster or namespace
173192

193+
Note that access to logs is controlled by the `topology` resource.
174194
Note that access to logs is controlled by the `topology` resource.
175195

196+
Enable personalization for users with these observer roles by granting the *Instance Recommended Access* role on the *Project* running {stackstate-product-name}.
176197
Enable personalization for users with these observer roles by granting the *Instance Recommended Access* role on the *Project* running {stackstate-product-name}.
177198

199+
== Custom roles
178200
== Custom roles
179201

180-
To grant additional permissions beyond Recommended Access, create a custom Project *RoleTemplate* in Rancher, inheriting from *SUSE Observability Instance Recommended Access*. Then, for example, to grant the rights to view monitors and metric charts, add rules with:
202+
To grant additional permissions beyond Recommended Access, create a custom Project *RoleTemplate* in Rancher, inheriting from *SUSE Observability Instance Recommended Access*. Then, for example, to grant the rights to view monitors and metric charts, add rules with:
181203

182204
* Verb: `get`
183205
* Resource: `metricbindings` and `monitors`
184206
* ApiGroup: `instance.observability.cattle.io`
185207

186208
image::rancher-custom-role.png[Custom RoleTemplate for richer access]
187209

188-
You can specify any resource and verb combination defined in the xref:/setup/security/rbac/rbac_permissions.adoc[RBAC Permissions]. Note that the dashes (`-`) are dropped from resource names, so the permission `get-metric-bindings` becomes the Kubernetes RBAC resource `metricbindings` with the verb `get`.
210+
You can specify any resource and verb combination defined in the xref:/setup/security/rbac/rbac_permissions.adoc[RBAC Permissions]. Note that the dashes (`-`) are dropped from resource names, so the permission `get-metric-bindings` becomes the Kubernetes RBAC resource `metricbindings` with the verb `get`.
189211

190212

191213
== Troubleshooting

0 commit comments

Comments
 (0)