Skip to content

Commit 49baaa6

Browse files
authored
Merge pull request #87192 from subhtk/osdocs13097
OSDOCS 13097:Added a new section about override scheduling feature for cert-manager
2 parents 79906cf + 14a98f7 commit 49baaa6

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * security/cert_manager_operator/cert-manager-customizing-api-fields.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="cert-manager-override-scheduling_{context}"]
7+
= Configuring scheduling overrides for cert-manager components
8+
9+
You can configure the pod scheduling from the {cert-manager-operator} API for the {cert-manager-operator} components such as cert-manager controller, CA injector, and Webhook.
10+
11+
.Prerequisites
12+
13+
* You have access to the {product-title} cluster as a user with the `cluster-admin` role.
14+
* You have installed version 1.15.0 or later of the {cert-manager-operator}.
15+
16+
.Procedure
17+
18+
* Update the `certmanager.operator` custom resource to configure pod scheduling overrides for the desired components by running the following command. Use the `overrideScheduling` field under the `controllerConfig`, `webhookConfig`, or `cainjectorConfig` sections to define `nodeSelector` and `tolerations` settings.
19+
+
20+
[source,terminal]
21+
----
22+
$ oc patch certmanager.operator cluster --type=merge -p="
23+
spec:
24+
controllerConfig:
25+
overrideScheduling:
26+
nodeSelector:
27+
node-role.kubernetes.io/control-plane: '' <1>
28+
tolerations:
29+
- key: node-role.kubernetes.io/master
30+
operator: Exists
31+
effect: NoSchedule <2>
32+
webhookConfig:
33+
overrideScheduling:
34+
nodeSelector:
35+
node-role.kubernetes.io/control-plane: '' <3>
36+
tolerations:
37+
- key: node-role.kubernetes.io/master
38+
operator: Exists
39+
effect: NoSchedule <4>
40+
cainjectorConfig:
41+
overrideScheduling:
42+
nodeSelector:
43+
node-role.kubernetes.io/control-plane: '' <5>
44+
tolerations:
45+
- key: node-role.kubernetes.io/master
46+
operator: Exists
47+
effect: NoSchedule" <6>
48+
----
49+
<1> Defines the `nodeSelector` for the cert-manager controller deployment.
50+
<2> Defines the `tolerations` for the cert-manager controller deployment.
51+
<3> Defines the `nodeSelector` for the cert-manager webhook deployment.
52+
<4> Defines the `tolerations` for the cert-manager webhook deployment.
53+
<5> Defines the `nodeSelector` for the cert-manager cainjector deployment.
54+
<6> Defines the `tolerations` for the cert-manager cainjector deployment.
55+
56+
57+
.Verification
58+
59+
. Verify pod scheduling settings for `cert-manager` pods:
60+
61+
.. Check the deployments in the `cert-manager` namespace to confirm they have the correct `nodeSelector` and `tolerations` by running the following command:
62+
+
63+
[source,terminal]
64+
----
65+
$ oc get pods -n cert-manager -o wide
66+
----
67+
+
68+
.Example output
69+
[source,terminal]
70+
----
71+
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
72+
cert-manager-58d9c69db4-78mzp 1/1 Running 0 10m 10.129.0.36 ip-10-0-1-106.ec2.internal <none> <none>
73+
cert-manager-cainjector-85b6987c66-rhzf7 1/1 Running 0 11m 10.128.0.39 ip-10-0-1-136.ec2.internal <none> <none>
74+
cert-manager-webhook-7f54b4b858-29bsp 1/1 Running 0 11m 10.129.0.35 ip-10-0-1-106.ec2.internal <none> <none>
75+
----
76+
77+
.. Check the `nodeSelector` and `tolerations` settings applied to deployments by running the following command:
78+
+
79+
[source,terminal]
80+
----
81+
$ oc get deployments -n cert-manager -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{.spec.template.spec.nodeSelector}{"\n"}{.spec.template.spec.tolerations}{"\n\n"}{end}'
82+
----
83+
+
84+
.Example output
85+
[source,terminal]
86+
----
87+
cert-manager
88+
{"kubernetes.io/os":"linux","node-role.kubernetes.io/control-plane":""}
89+
[{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Exists"}]
90+
91+
cert-manager-cainjector
92+
{"kubernetes.io/os":"linux","node-role.kubernetes.io/control-plane":""}
93+
[{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Exists"}]
94+
95+
cert-manager-webhook
96+
{"kubernetes.io/os":"linux","node-role.kubernetes.io/control-plane":""}
97+
[{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Exists"}]
98+
----
99+
100+
. Verify pod scheduling events in the `cert-manager` namespace by running the following command:
101+
+
102+
[source,terminal]
103+
----
104+
$ oc get events -n cert-manager --field-selector reason=Scheduled
105+
----

security/cert_manager_operator/cert-manager-customizing-api-fields.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@ include::modules/cert-manager-override-arguments.adoc[leveloffset=+1]
2020
include::modules/cert-manager-override-flag-controller.adoc[leveloffset=+1]
2121

2222
include::modules/cert-manager-configure-cpu-memory.adoc[leveloffset=+1]
23+
24+
include::modules/cert-manager-override-scheduling.adoc[leveloffset=+1]

0 commit comments

Comments
 (0)