-
Story
-
Resolution: Unresolved
-
Normal
-
None
-
None
-
None
-
BU Product Work
-
False
-
-
False
-
OCPSTRAT-1427 - Ability to run CRO on infra/worker node ( this will also enable CRO to run in HCP)
-
-
See https://issues.redhat.com/browse/PODAUTO-192 for documentation on the new feature.
Before this change:
We install the operator and apply our CR which looks like this:
apiVersion: operator.autoscaling.openshift.io/v1
kind: ClusterResourceOverride
metadata:
name: cluster
spec:
podResourceOverride:
spec:
memoryRequestToLimitPercent: 50
cpuRequestToLimitPercent: 25
limitCPUToMemoryPercent: 200
And a DaemonSet will schedule the CRO on all nodes in your cluster.
After this change:
We will install the operator and apply the same CR above.
A CRO Deployment will be created with the default 2 pods (replicas). The two pods will schedule on any master nodes in your cluster, but installation will fail if there are not enough master nodes to support it. Two or more pods will not be able to schedule on the same node (similar to the DaemonSet functionality).
Using the new CRD:
Apply this new CR will new deploymentOverride fields:
apiVersion: operator.autoscaling.openshift.io/v1 kind: ClusterResourceOverride metadata: name: cluster spec: podResourceOverride: spec: memoryRequestToLimitPercent: 50 cpuRequestToLimitPercent: 25 limitCPUToMemoryPercent: 200 deploymentOverrides: replicas: 1 nodeSelector: node-role.kubernetes.io/worker: "" tolerations: - key: "key" operator: "Equal" value: "value" effect: "NoSchedule"
This will schedule a single CRO pod onto a worker node. You can apply taints to nodes to test the tolerations field. E.g.
kubectl taint nodes node1 key=value:NoSchedule
If the toleration in the CR above does not exist, the CRO cannot schedule on that node.