Bug 1927806
Summary: | Document current total Custom Resource Definition limit of 250 before throttling starts to occur | ||
---|---|---|---|
Product: | OpenShift Container Platform | Reporter: | Mike Fiedler <mifiedle> |
Component: | Documentation | Assignee: | Samantha Gidlow <sagidlow> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Ke Wang <kewang> |
Severity: | high | Docs Contact: | Latha S <lmurthy> |
Priority: | medium | ||
Version: | 4.7 | CC: | aos-bugs, arghosh, dmoessne, juzhao, kewang, shsaxena |
Target Milestone: | --- | ||
Target Release: | 4.7.z | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2022-03-21 18:00:17 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Mike Fiedler
2021-02-11 15:18:39 UTC
I did a test against OCP 4.7, it seems we have a better performance, I increased the limit of total Custom Resource Definitions to 512+. $ oc version -o yaml clientVersion: buildDate: "2022-03-12T05:42:50Z" compiler: gc gitCommit: c4ebc7adea655be4dab6dcb421d16367ca034130 gitTreeState: clean gitVersion: 4.7.0-202203120156.p0.gc4ebc7a.assembly.stream-c4ebc7a goVersion: go1.15.14 major: "" minor: "" platform: linux/amd64 openshiftVersion: 4.7.0-0.nightly-2022-03-16-113339 releaseClientVersion: 4.7.0-0.nightly-2022-03-16-113339 serverVersion: buildDate: "2022-03-09T15:52:32Z" compiler: gc gitCommit: e0c0acdd26f125af791fc0f8315f8304d4a62980 gitTreeState: clean gitVersion: v1.20.14+0d60930 goVersion: go1.15.14 major: "1" minor: "20" platform: linux/amd64 $ cat test-crd.yaml apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: testcrs.example.com spec: group: example.com names: kind: TestCR plural: testcrs scope: Namespaced validation: openAPIV3Schema: properties: spec: properties: a: type: string version: v1 versions: - name: v1 served: true storage: true $ for j in {1..450}; do sed "s/testcrs/testcrs-$j/" test-crd.yaml | oc create -f - -n test1; done ... W0318 16:55:17.793590 52376 warnings.go:70] apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition customresourcedefinition.apiextensions.k8s.io/testcrs-450.example.com created $ oc get crds |wc -l 547 Made some sanity checks, $ oc get all -n default NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 172.30.0.1 <none> 443/TCP 66m $ oc get co NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE authentication 4.7.0-0.nightly-2022-03-16-113339 True False False 40m baremetal 4.7.0-0.nightly-2022-03-16-113339 True False False 58m cloud-credential 4.7.0-0.nightly-2022-03-16-113339 True False False 63m cluster-autoscaler 4.7.0-0.nightly-2022-03-16-113339 True False False 59m config-operator 4.7.0-0.nightly-2022-03-16-113339 True False False 61m console 4.7.0-0.nightly-2022-03-16-113339 True False False 47m csi-snapshot-controller 4.7.0-0.nightly-2022-03-16-113339 True False False 60m dns 4.7.0-0.nightly-2022-03-16-113339 True False False 59m etcd 4.7.0-0.nightly-2022-03-16-113339 True False False 59m image-registry 4.7.0-0.nightly-2022-03-16-113339 True False False 52m ingress 4.7.0-0.nightly-2022-03-16-113339 True False False 52m insights 4.7.0-0.nightly-2022-03-16-113339 True False False 54m kube-apiserver 4.7.0-0.nightly-2022-03-16-113339 True False False 58m kube-controller-manager 4.7.0-0.nightly-2022-03-16-113339 True False False 58m kube-scheduler 4.7.0-0.nightly-2022-03-16-113339 True False False 58m kube-storage-version-migrator 4.7.0-0.nightly-2022-03-16-113339 True False False 51m machine-api 4.7.0-0.nightly-2022-03-16-113339 True False False 50m machine-approver 4.7.0-0.nightly-2022-03-16-113339 True False False 60m machine-config 4.7.0-0.nightly-2022-03-16-113339 True False False 59m marketplace 4.7.0-0.nightly-2022-03-16-113339 True False False 59m monitoring 4.7.0-0.nightly-2022-03-16-113339 True False False 50m network 4.7.0-0.nightly-2022-03-16-113339 True False False 60m node-tuning 4.7.0-0.nightly-2022-03-16-113339 True False False 60m openshift-apiserver 4.7.0-0.nightly-2022-03-16-113339 True False False 53m openshift-controller-manager 4.7.0-0.nightly-2022-03-16-113339 True False False 58m openshift-samples 4.7.0-0.nightly-2022-03-16-113339 True False False 53m operator-lifecycle-manager 4.7.0-0.nightly-2022-03-16-113339 True False False 60m operator-lifecycle-manager-catalog 4.7.0-0.nightly-2022-03-16-113339 True False False 60m operator-lifecycle-manager-packageserver 4.7.0-0.nightly-2022-03-16-113339 True False False 54m service-ca 4.7.0-0.nightly-2022-03-16-113339 True False False 61m storage 4.7.0-0.nightly-2022-03-16-113339 True False False 60m everything is well, I don't know exactly what the maximum limit is, giving limit 512 is good choice. Limit 512 works fine for OCP 4.8, 4.9 and 4.10, I tested. Test CRD for 4.9 and later. $ cat test-crd.yaml apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: testcrs.example.com spec: group: example.com names: kind: TestCR plural: testcrs scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: properties: spec: properties: a: type: string type: object type: object served: true storage: true |