Skip to content

Commit bb4e018

Browse files
Merge pull request #955 from jpeeler/set-resource-requests
feat(deploy): add resource requests to all pods
2 parents a81dc5f + 4e41b8d commit bb4e018

12 files changed

+116
-140
lines changed

deploy/chart/templates/_packageserver.deployment-spec.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,8 @@ spec:
5757
path: /healthz
5858
port: {{ .Values.package.service.internalPort }}
5959
terminationMessagePolicy: FallbackToLogsOnError
60+
{{- if .Values.package.resources }}
61+
resources:
62+
{{ toYaml .Values.package.resources | indent 10 }}
63+
{{- end}}
6064
{{- end -}}

deploy/chart/values.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ olm:
1818
internalPort: 8080
1919
nodeSelector:
2020
beta.kubernetes.io/os: linux
21+
resources:
22+
requests:
23+
cpu: 10m
24+
memory: 160Mi
2125

2226
catalog:
2327
replicaCount: 1
@@ -29,6 +33,10 @@ catalog:
2933
internalPort: 8080
3034
nodeSelector:
3135
beta.kubernetes.io/os: linux
36+
resources:
37+
requests:
38+
cpu: 10m
39+
memory: 80Mi
3240

3341
package:
3442
replicaCount: 2
@@ -39,3 +47,7 @@ package:
3947
internalPort: 5443
4048
nodeSelector:
4149
beta.kubernetes.io/os: linux
50+
resources:
51+
requests:
52+
cpu: 10m
53+
memory: 50Mi

deploy/ocp/values.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ olm:
3131
tolerationSeconds: 120
3232
tlsCertPath: /var/run/secrets/serving-cert/tls.crt
3333
tlsKeyPath: /var/run/secrets/serving-cert/tls.key
34+
resources:
35+
requests:
36+
cpu: 10m
37+
memory: 160Mi
3438
catalog:
3539
replicaCount: 1
3640
image:
@@ -53,6 +57,10 @@ catalog:
5357
operator: Exists
5458
effect: NoExecute
5559
tolerationSeconds: 120
60+
resources:
61+
requests:
62+
cpu: 10m
63+
memory: 80Mi
5664
package:
5765
replicaCount: 2
5866
image:
@@ -75,3 +83,7 @@ package:
7583
operator: Exists
7684
effect: NoExecute
7785
tolerationSeconds: 120
86+
resources:
87+
requests:
88+
cpu: 10m
89+
memory: 50Mi

manifests/0000_50_olm_07-olm-operator.deployment.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ spec:
6161
fieldPath: metadata.namespace
6262
- name: OPERATOR_NAME
6363
value: olm-operator
64+
resources:
65+
requests:
66+
cpu: 10m
67+
memory: 160Mi
68+
6469

6570
volumeMounts:
6671
- mountPath: /var/run/secrets/serving-cert

manifests/0000_50_olm_08-catalog-operator.deployment.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ spec:
5454
- name: RELEASE_VERSION
5555
value: "0.0.1-snapshot"
5656

57+
resources:
58+
requests:
59+
cpu: 10m
60+
memory: 80Mi
61+
5762

5863
volumeMounts:
5964
- mountPath: /var/run/secrets/serving-cert

manifests/0000_50_olm_15-packageserver.clusterserviceversion.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,11 @@ spec:
121121
path: /healthz
122122
port: 5443
123123
terminationMessagePolicy: FallbackToLogsOnError
124+
resources:
125+
requests:
126+
cpu: 10m
127+
memory: 50Mi
128+
124129
maturity: alpha
125130
version: 0.10.1
126131
apiservicedefinitions:

pkg/controller/operators/catalog/operator_test.go

Lines changed: 13 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -228,23 +228,23 @@ func TestExecutePlan(t *testing.T) {
228228
Resource: v1alpha1.StepResource{
229229
CatalogSource: "catalog",
230230
CatalogSourceNamespace: namespace,
231-
Group: "",
232-
Version: "v1",
233-
Kind: "Service",
234-
Name: "service",
235-
Manifest: toManifest(service("service", namespace)),
231+
Group: "",
232+
Version: "v1",
233+
Kind: "Service",
234+
Name: "service",
235+
Manifest: toManifest(service("service", namespace)),
236236
},
237237
Status: v1alpha1.StepStatusUnknown,
238238
},
239239
{
240240
Resource: v1alpha1.StepResource{
241241
CatalogSource: "catalog",
242242
CatalogSourceNamespace: namespace,
243-
Group: "operators.coreos.com",
244-
Version: "v1alpha1",
245-
Kind: "ClusterServiceVersion",
246-
Name: "csv",
247-
Manifest: toManifest(csv("csv", namespace, nil, nil)),
243+
Group: "operators.coreos.com",
244+
Version: "v1alpha1",
245+
Kind: "ClusterServiceVersion",
246+
Name: "csv",
247+
Manifest: toManifest(csv("csv", namespace, nil, nil)),
248248
},
249249
Status: v1alpha1.StepStatusUnknown,
250250
},
@@ -317,6 +317,7 @@ func TestSyncCatalogSources(t *testing.T) {
317317
Name: "cool-catalog",
318318
Namespace: "cool-namespace",
319319
UID: types.UID("catalog-uid"),
320+
Labels: map[string]string{"olm.catalogSource": "cool-catalog"},
320321
},
321322
Spec: v1alpha1.CatalogSourceSpec{
322323
Image: "catalog-image",
@@ -480,6 +481,7 @@ func TestSyncCatalogSources(t *testing.T) {
480481
Name: "cool-catalog",
481482
Namespace: "cool-namespace",
482483
UID: types.UID("catalog-uid"),
484+
Labels: map[string]string{"olm.catalogSource": "cool-catalog"},
483485
},
484486
Spec: v1alpha1.CatalogSourceSpec{
485487
Image: "old-image",
@@ -885,50 +887,7 @@ func toManifest(obj runtime.Object) string {
885887
}
886888

887889
func pod(s v1alpha1.CatalogSource) *corev1.Pod {
888-
pod := &corev1.Pod{
889-
ObjectMeta: metav1.ObjectMeta{
890-
GenerateName: s.GetName() + "-",
891-
Namespace: s.GetNamespace(),
892-
Labels: map[string]string{
893-
"olm.catalogSource": s.GetName(),
894-
},
895-
},
896-
Spec: corev1.PodSpec{
897-
Containers: []corev1.Container{
898-
{
899-
Name: "registry-server",
900-
Image: s.Spec.Image,
901-
Ports: []corev1.ContainerPort{
902-
{
903-
Name: "grpc",
904-
ContainerPort: 50051,
905-
},
906-
},
907-
ReadinessProbe: &corev1.Probe{
908-
Handler: corev1.Handler{
909-
Exec: &corev1.ExecAction{
910-
Command: []string{"grpc_health_probe", "-addr=localhost:50051"},
911-
},
912-
},
913-
InitialDelaySeconds: 5,
914-
},
915-
LivenessProbe: &corev1.Probe{
916-
Handler: corev1.Handler{
917-
Exec: &corev1.ExecAction{
918-
Command: []string{"grpc_health_probe", "-addr=localhost:50051"},
919-
},
920-
},
921-
InitialDelaySeconds: 10,
922-
},
923-
},
924-
},
925-
Tolerations: []corev1.Toleration{
926-
{
927-
Operator: corev1.TolerationOpExists,
928-
},
929-
},
930-
},
931-
}
890+
pod := reconciler.Pod(&s, "registry-server", s.Spec.Image, s.GetLabels(), 5, 10)
932891
ownerutil.AddOwner(pod, &s, false, false)
933892
return pod
934893
}

pkg/controller/registry/reconciler/configmap.go

Lines changed: 3 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -89,50 +89,9 @@ func (s *configMapCatalogSourceDecorator) Service() *v1.Service {
8989
}
9090

9191
func (s *configMapCatalogSourceDecorator) Pod(image string) *v1.Pod {
92-
pod := &v1.Pod{
93-
ObjectMeta: metav1.ObjectMeta{
94-
GenerateName: s.GetName() + "-",
95-
Namespace: s.GetNamespace(),
96-
Labels: s.Labels(),
97-
},
98-
Spec: v1.PodSpec{
99-
Containers: []v1.Container{
100-
{
101-
Name: "configmap-registry-server",
102-
Image: image,
103-
Command: []string{"configmap-server", "-c", s.Spec.ConfigMap, "-n", s.GetNamespace()},
104-
Ports: []v1.ContainerPort{
105-
{
106-
Name: "grpc",
107-
ContainerPort: 50051,
108-
},
109-
},
110-
ReadinessProbe: &v1.Probe{
111-
Handler: v1.Handler{
112-
Exec: &v1.ExecAction{
113-
Command: []string{"grpc_health_probe", "-addr=localhost:50051"},
114-
},
115-
},
116-
InitialDelaySeconds: 1,
117-
},
118-
LivenessProbe: &v1.Probe{
119-
Handler: v1.Handler{
120-
Exec: &v1.ExecAction{
121-
Command: []string{"grpc_health_probe", "-addr=localhost:50051"},
122-
},
123-
},
124-
InitialDelaySeconds: 2,
125-
},
126-
},
127-
},
128-
Tolerations: []v1.Toleration{
129-
{
130-
Operator: v1.TolerationOpExists,
131-
},
132-
},
133-
ServiceAccountName: s.GetName() + ConfigMapServerPostfix,
134-
},
135-
}
92+
pod := Pod(s.CatalogSource, "configmap-registry-server", image, s.Labels(), 1, 2)
93+
pod.Spec.ServiceAccountName = s.GetName() + ConfigMapServerPostfix
94+
pod.Spec.Containers[0].Command = []string{"configmap-server", "-c", s.Spec.ConfigMap, "-n", s.GetNamespace()}
13695
ownerutil.AddOwner(pod, s.CatalogSource, false, false)
13796
return pod
13897
}

pkg/controller/registry/reconciler/configmap_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ func validConfigMapCatalogSource(configMap *corev1.ConfigMap) *v1alpha1.CatalogS
170170
Name: "cool-catalog",
171171
Namespace: testNamespace,
172172
UID: types.UID("catalog-uid"),
173+
Labels: map[string]string{"olm.catalogSource": "cool-catalog"},
173174
},
174175
Spec: v1alpha1.CatalogSourceSpec{
175176
ConfigMap: "cool-configmap",

pkg/controller/registry/reconciler/grpc.go

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -55,48 +55,7 @@ func (s *grpcCatalogSourceDecorator) Service() *v1.Service {
5555
}
5656

5757
func (s *grpcCatalogSourceDecorator) Pod() *v1.Pod {
58-
pod := &v1.Pod{
59-
ObjectMeta: metav1.ObjectMeta{
60-
GenerateName: s.GetName() + "-",
61-
Namespace: s.GetNamespace(),
62-
Labels: s.Labels(),
63-
},
64-
Spec: v1.PodSpec{
65-
Containers: []v1.Container{
66-
{
67-
Name: "registry-server",
68-
Image: s.Spec.Image,
69-
Ports: []v1.ContainerPort{
70-
{
71-
Name: "grpc",
72-
ContainerPort: 50051,
73-
},
74-
},
75-
ReadinessProbe: &v1.Probe{
76-
Handler: v1.Handler{
77-
Exec: &v1.ExecAction{
78-
Command: []string{"grpc_health_probe", "-addr=localhost:50051"},
79-
},
80-
},
81-
InitialDelaySeconds: 5,
82-
},
83-
LivenessProbe: &v1.Probe{
84-
Handler: v1.Handler{
85-
Exec: &v1.ExecAction{
86-
Command: []string{"grpc_health_probe", "-addr=localhost:50051"},
87-
},
88-
},
89-
InitialDelaySeconds: 10,
90-
},
91-
},
92-
},
93-
Tolerations: []v1.Toleration{
94-
{
95-
Operator: v1.TolerationOpExists,
96-
},
97-
},
98-
},
99-
}
58+
pod := Pod(s.CatalogSource, "registry-server", s.Spec.Image, s.Labels(), 5, 10)
10059
ownerutil.AddOwner(pod, s.CatalogSource, false, false)
10160
return pod
10261
}

pkg/controller/registry/reconciler/grpc_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ func validGrpcCatalogSource(image, address string) *v1alpha1.CatalogSource {
2222
Name: "img-catalog",
2323
Namespace: testNamespace,
2424
UID: types.UID("catalog-uid"),
25+
Labels: map[string]string{"olm.catalogSource": "img-catalog"},
2526
},
2627
Spec: v1alpha1.CatalogSourceSpec{
2728
Image: image,

pkg/controller/registry/reconciler/reconciler.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
package reconciler
33

44
import (
5+
v1 "k8s.io/api/core/v1"
6+
"k8s.io/apimachinery/pkg/api/resource"
57
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
68

79
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators/v1alpha1"
@@ -83,3 +85,55 @@ func NewRegistryReconcilerFactory(lister operatorlister.OperatorLister, opClient
8385
ConfigMapServerImage: configMapServerImage,
8486
}
8587
}
88+
89+
func Pod(source *v1alpha1.CatalogSource, name string, image string, labels map[string]string, readinessDelay int32, livenessDelay int32) *v1.Pod {
90+
pod := &v1.Pod{
91+
ObjectMeta: metav1.ObjectMeta{
92+
GenerateName: source.GetName() + "-",
93+
Namespace: source.GetNamespace(),
94+
Labels: labels,
95+
},
96+
Spec: v1.PodSpec{
97+
Containers: []v1.Container{
98+
{
99+
Name: name,
100+
Image: image,
101+
Ports: []v1.ContainerPort{
102+
{
103+
Name: "grpc",
104+
ContainerPort: 50051,
105+
},
106+
},
107+
ReadinessProbe: &v1.Probe{
108+
Handler: v1.Handler{
109+
Exec: &v1.ExecAction{
110+
Command: []string{"grpc_health_probe", "-addr=localhost:50051"},
111+
},
112+
},
113+
InitialDelaySeconds: readinessDelay,
114+
},
115+
LivenessProbe: &v1.Probe{
116+
Handler: v1.Handler{
117+
Exec: &v1.ExecAction{
118+
Command: []string{"grpc_health_probe", "-addr=localhost:50051"},
119+
},
120+
},
121+
InitialDelaySeconds: livenessDelay,
122+
},
123+
Resources: v1.ResourceRequirements{
124+
Requests: v1.ResourceList{
125+
v1.ResourceCPU: resource.MustParse("10m"),
126+
v1.ResourceMemory: resource.MustParse("50Mi"),
127+
},
128+
},
129+
},
130+
},
131+
Tolerations: []v1.Toleration{
132+
{
133+
Operator: v1.TolerationOpExists,
134+
},
135+
},
136+
},
137+
}
138+
return pod
139+
}

0 commit comments

Comments
 (0)