-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reduce the operator bundle sizes #1185
base: main
Are you sure you want to change the base?
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dprince The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/b38fc0f49ef14e869d3e407b5e0dc55d ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 55m 23s |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/6e091c5f71e84cc3addb4875b8075781 ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 34m 54s |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/21a654ede32742b580a01cbe43a0e3ae ❌ openstack-k8s-operators-content-provider FAILURE in 8m 02s |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/7828a64b64024513997c9b44d8e99b66 ❌ openstack-k8s-operators-content-provider FAILURE in 4m 18s |
This comment was marked as resolved.
This comment was marked as resolved.
c30c403
to
1722fa0
Compare
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/d02a9d8fa37c440bb90bb4e77621079b ✔️ openstack-k8s-operators-content-provider SUCCESS in 1h 35m 57s |
I'm all for this. I think OLM is great, but it's really designed for simpler operators. We have a lot of complexity, so the more of that complexity that we can handle on our own, independent of OLM, the better I think the overall experience will be. For users, but also for developers. |
complexity is pain, indeed. |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/33706df2396a45c9be1c54c083349fd7 ✔️ openstack-k8s-operators-content-provider SUCCESS in 54m 43s |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/1f257e4277c9467181e84ee9e28981e7 ✔️ openstack-k8s-operators-content-provider SUCCESS in 51m 29s |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/973a51e7b0804c0c8501e2bd727f7b2f ❌ openstack-k8s-operators-content-provider FAILURE in 10m 46s |
/test openstack-operator-build-deploy-kuttl |
/test openstack-operator-build-deploy-kuttl |
/test openstack-operator-build-deploy-kuttl |
recheck |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/581a74be6d6f451c8b5232e9ad48b221 ✔️ openstack-k8s-operators-content-provider SUCCESS in 1h 32m 36s |
/retest |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/fbc9d847fb3f4b22905a48d70d98cdd9 ✔️ openstack-k8s-operators-content-provider SUCCESS in 53m 34s |
/test openstack-operator-build-deploy-kuttl |
recheck |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/f6eda7c0b0d249dba45d3fd218a73ee3 ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 16m 52s |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/c81a75a91eb04deeb8fedfb68bea4cc9 ❌ openstack-k8s-operators-content-provider FAILURE in 4m 43s |
recheck |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/170869a3ee61418ebf3dd31bc5b19be7 ❌ openstack-k8s-operators-content-provider FAILURE in 4m 51s |
/test openstack-operator-build-deploy-kuttl |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/1d8eb884aedb47b1ac265aadcb824870 ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 20m 12s |
/test openstack-operator-build-deploy-kuttl |
1 similar comment
/test openstack-operator-build-deploy-kuttl |
operator-sdk create api --group operator --version v1beta1 --kind OpenStack Jira: OSPRH-11244
Jira: OSPRH-11244
Dockerfile is updated to include new 'operator' binary and bindata directory. Bindata will contain all the CRDs, RBAC, and deployment files needed to deploy all the operators. Add Makefile targets for bindata, and run-operator. Forklift bindata impl from old CNOSP compute_node_operator. Implement new controllers/operator/openstack_controller.go which process files in /bindata. Calling 'make bindata' during a Renovate sync should keep things in sync. Jira: OSPRH-11244
This is so it doesn't catch bindata files which we want to be checked in after running 'make bindata'
Currently configured just to extra webhooks for the infra operator as it is also a multigroup operator which requires webhooks to be enabled
This PR creates a new "initialization resource" to reduce bundle size and streamline deployment
The initialization resource takes care of installing CRDs, RBAC, and also creates deployments for operators
When compared to the old mechanism (i.e. using OLM) this new approach:
-only installs webhooks on the top level openstack-operator (may need them for infra/test operators too though)
-uses Certmanager directly for webhook certs (vs. having OLM create them)
-requires no other Openstack bundle dependencies (simpler)
-no bundle size limit as we store all things in the openstack-operator container
Implementation details:
-Dockerfile is updated to include new 'operator' binary and bindata directory. Bindata will contain all the CRDs, RBAC, and deployment files needed to deploy all the operators.
-Add Makefile targets for bindata, and run-operator.
-Forklift bindata impl from old CNOSP compute_node_operator.
-Implement new controllers/operator/openstack_controller.go which process files in /bindata using bindata impl (uses k8s unstructured client).
-Calling 'make bindata' during a Renovate sync should keep it in sync.
Jira: OSPRH-11244
Depends-On: openshift/release#60338