-
Bug
-
Resolution: Done
-
Major
-
None
-
4.13
-
Important
-
No
-
False
-
-
N/A
-
Release Note Not Required
Description of problem:
The documentation in https://docs.openshift.com/container-platform/4.13/networking/ingress-operator.html#nw-autoscaling-ingress-controller_configuring-ingress is misleading and also partially wrong. In Prerequisites, "You have the Custom Metrics Autoscaler Operator installed" should have a link pointing to https://docs.openshift.com/container-platform/4.13/nodes/cma/nodes-cma-autoscaling-custom-install.html or similar to help customers understand how Custom Metrics Autoscaler can and should be installed and configured before starting with this activity. Step 1, "Create a project in the openshift-ingress-operator namespace by running the following command:" this is wrong as it's not about creating that project (it's there by default) but rather using that project. So while the command itself is correct the description of the step is wrong. Step 2, "Enable OpenShift monitoring for user-defined projects by creating and applying a config map" is not needed as the procedure also works without the user specific project monitoring being enabled. > $ oc get clusterversion > NAME VERSION AVAILABLE PROGRESSING SINCE STATUS > version 4.13.11 True False 69m Cluster version is 4.13.11 > $ oc describe cm cluster-monitoring-config -n openshift-monitoring > Name: cluster-monitoring-config > Namespace: openshift-monitoring > Labels: <none> > Annotations: <none> > > Data > ==== > config.yaml: > ---- > prometheusK8s: > > volumeClaimTemplate: > metadata: > name: prometheus-data > annotations: > openshift.io/cluster-monitoring-drop-pvc: "yes" > spec: > resources: > requests: > storage: 20Gi > > BinaryData > ==== > > Events: <none> > $ oc get kedacontroller -n openshift-keda keda -o yaml > apiVersion: keda.sh/v1alpha1 > kind: KedaController > metadata: > creationTimestamp: "2023-09-07T13:49:38Z" > finalizers: > - finalizer.kedacontroller.keda.sh > generation: 1 > name: keda > namespace: openshift-keda > resourceVersion: "32960" > uid: 61d0709b-b8ee-417d-bba0-0944cc863064 > spec: > admissionWebhooks: > logEncoder: console > logLevel: info > metricsServer: > logLevel: "0" > operator: > logEncoder: console > logLevel: info > watchNamespace: "" > status: > phase: Installation Succeeded > reason: KEDA v2.10.1 is installed in namespace 'openshift-keda' > version: 2.10.1 > $ oc get scaledobject -o yaml > apiVersion: v1 > items: > - apiVersion: keda.sh/v1alpha1 > kind: ScaledObject > metadata: [...] > labels: > scaledobject.keda.sh/name: ingress-scaler > name: ingress-scaler > namespace: openshift-ingress-operator > resourceVersion: "61620" > uid: dcc58b7f-cba6-44e0-8046-49406a009fc0 > spec: > cooldownPeriod: 1 > maxReplicaCount: 20 > minReplicaCount: 1 > pollingInterval: 1 > scaleTargetRef: > apiVersion: operator.openshift.io/v1 > envSourceContainerName: ingress-operator > kind: IngressController > name: default > triggers: > - authenticationRef: > name: keda-trigger-auth-prometheus > metadata: > authModes: bearer > metricName: kube-node-role > namespace: openshift-ingress-operator > query: sum(kube_node_role{role="worker",service="kube-state-metrics"}) > serverAddress: https://thanos-querier.openshift-monitoring.svc.cluster.local:9091 > threshold: "1" > metricType: AverageValue > type: prometheus > status: > conditions: > - message: ScaledObject is defined correctly and is ready for scaling > reason: ScaledObjectReady > status: "True" > type: Ready > - message: Scaling is performed because triggers are active > reason: ScalerActive > status: "True" > type: Active > - message: No fallbacks are active on this scaled object > reason: NoFallbackFound > status: "False" > type: Fallback > externalMetricNames: > - s0-prometheus-kube-node-role > health: > s0-prometheus-kube-node-role: > numberOfFailures: 0 > status: Happy > hpaName: keda-hpa-ingress-scaler > lastActiveTime: "2023-09-07T14:51:42Z" > originalReplicaCount: 2 > scaleTargetGVKR: > group: operator.openshift.io > kind: IngressController > resource: ingresscontrollers > version: v1 > scaleTargetKind: operator.openshift.io/v1.IngressController > kind: List > metadata: > resourceVersion: "" > $ oc get pod -n openshift-ingress > NAME READY STATUS RESTARTS AGE > router-default-69dc7ff9f9-mltsc 1/1 Running 0 82m > router-default-69dc7ff9f9-mqdzg 1/1 Running 0 82m > router-default-69dc7ff9f9-qt7ph 1/1 Running 0 51m > $ oc get nodes > NAME STATUS ROLES AGE VERSION > ip-10-0-133-134.us-west-2.compute.internal Ready control-plane,master 88m v1.26.7+0ef5eae > ip-10-0-165-185.us-west-2.compute.internal Ready worker 76m v1.26.7+0ef5eae > ip-10-0-170-80.us-west-2.compute.internal Ready control-plane,master 88m v1.26.7+0ef5eae > ip-10-0-186-178.us-west-2.compute.internal Ready worker 81m v1.26.7+0ef5eae > ip-10-0-196-253.us-west-2.compute.internal Ready worker 75s v1.26.7+0ef5eae > ip-10-0-221-152.us-west-2.compute.internal Ready worker 85s v1.26.7+0ef5eae > ip-10-0-226-64.us-west-2.compute.internal Ready worker 81m v1.26.7+0ef5eae > ip-10-0-249-220.us-west-2.compute.internal Ready control-plane,master 88m v1.26.7+0ef5eae > $ oc get pod -n openshift-ingress > NAME READY STATUS RESTARTS AGE > router-default-69dc7ff9f9-mltsc 1/1 Running 0 85m > router-default-69dc7ff9f9-mmm7l 1/1 Running 0 88s > router-default-69dc7ff9f9-mqdzg 1/1 Running 0 85m > router-default-69dc7ff9f9-nf269 1/1 Running 0 58s > router-default-69dc7ff9f9-qt7ph 1/1 Running 0 53m Step 6, "$ oc adm policy add-role-to-user thanos-metrics-reader -z thanos --role=namespace=openshift-ingress-operator" is wrong and won't work. This should be "$ oc adm policy add-role-to-user thanos-metrics-reader -z thanos --role-namespace=openshift-ingress-operator" Step 7, "Create a new ScaledObject YAML file, ingress-autoscaler.yaml, that targets the default Ingress Controller deployment". The "serverAddress" is not the cluster address and the port but actually the "thanos-querier" service endpoint in the openshift-monitoring namespace. So basically "https://thanos-querier.openshift-monitoring.svc.cluster.local:9091" as shown above and therefore something that can be mentioned in the example as it's the same in all OpenShift Container Platform 4 - Cluster.
Version-Release number of selected component (if applicable):
- OpenShift Container Platform 4.13 (but all version applicable)
How reproducible:
- Always
Steps to Reproduce:
1. See above
Actual results:
Following the current documentation is misleading and actually renders the configuration put in place not usable as specifically "serverAddress" won't work. Also does it enable user workload monitoring, which is not necessarily required.
Expected results:
Fix documentation to make sure the implementation is working and also does not enable non required components.
Additional info:
- N/A
- links to