-
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 |
Could we think of alternatives? One of I can think about is removing operators-specific data from oscp CRD leaving only top scope and nested top-scope, like Nova, spec data there. And hiding everything specific to services operators into data structs and go libraries. That would let us to rely on OLM, still, and avoid custom solutions around it. That is, by the price of no more separate deployments of services operators possible by their own CRs (but we don't support that anyway?) |
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 |
08dcf83
to
f17f006
Compare
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/acee34c3f26e49c79a494026270d3f6a ✔️ openstack-k8s-operators-content-provider SUCCESS in 1h 50m 30s |
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 |
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
/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 |
@dprince: The following test failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
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 |
This PR creates a new "initialization resource" called.... OpenStack (name TBD)
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 things in sync.
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
Jira: OSPRH-11244