-
Notifications
You must be signed in to change notification settings - Fork 82
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
Reduce the operator bundle sizes #1185
Conversation
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 |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: abays, 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 |
New changes are detected. LGTM label has been removed. |
/test openstack-operator-build-deploy-kuttl |
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/51a47590630a4d1da32e10a8f7de820c ✔️ openstack-k8s-operators-content-provider SUCCESS in 3h 11m 43s |
recheck |
/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
@@ -1,81 +0,0 @@ | |||
dependencies: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as this is removed to simplify dependencies, what would be a new way of installing a wanted set of versions of services operators?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you want to use a custom image it depends on your workflow. If you build images with the github actions workflow and post them to quay.io automatically based on your custom branches it is simply a matter of 1) updating the go.mod, and 2) running 'make bindata'. If you just want to splice in your own manually built operator you can update the images in config/operator/manager_operator_images.yaml directly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was also thinking about testing minor updates by "human operators" or developers acting like users, when the source versions of operators should be picked from earlier releases
7705657
into
openstack-k8s-operators:main
[OSPRH-12761] Support new OpenStack initialization resource for RHOSO install We have a new upcoming way to install and deploy the OSP operators. OLM will only install one CRD for OSP, which is an initialization resource. A CR must be created for that CRD, which then, when created, causes all the remaining OSP CRDs to be installed and also deploys their respective operators. Depends-On: openstack-k8s-operators/openstack-operator#1185 Reviewed-by: John Fulton <[email protected]>
We're installing openstack operator using 'make openstack' and waiting for the subscription and installplan, but due to a recent change to the CRDs [1], we need to also wait for the csv before proceeding. Using 'make openstack_wait' from install_yamls should fix the issue, as done in [2]. [1] openstack-k8s-operators/openstack-operator#1185 [2] openshift/release#60702 Related-Issue: #OSPRH-11244
We're installing openstack operator using 'make openstack' and waiting for the subscription and installplan, but due to a recent change to the CRDs [1], we need to also wait for the csv before proceeding. Using 'make openstack_wait' from install_yamls should fix the issue, as done in [2]. [1] openstack-k8s-operators/openstack-operator#1185 [2] openshift/release#60702 Related-Issue: #OSPRH-11244
We're installing openstack operator using 'make openstack' and waiting for the subscription and installplan, but due to a recent change to the CRDs [1], we need to also wait for the csv before proceeding. Using 'make openstack_wait' from install_yamls should fix the issue, as done in [2]. [1] openstack-k8s-operators/openstack-operator#1185 [2] openshift/release#60702 Related-Issue: #OSPRH-11244
We're installing openstack operator using 'make openstack' and waiting for the subscription and installplan, but due to a recent change to the CRDs [1], we need to also wait for the csv before proceeding. Using 'make openstack_init' from install_yamls should fix the issue, as done in [2]. [1] openstack-k8s-operators/openstack-operator#1185 [2] openshift/release#60702 Related-Issue: #OSPRH-11244
We're installing openstack operator using 'make openstack' and waiting for the subscription and installplan, but due to a recent change to the CRDs [1], we need to also wait for the csv before proceeding. Using 'make openstack_init' from install_yamls should fix the issue, as done in [2]. [1] openstack-k8s-operators/openstack-operator#1185 [2] openshift/release#60702 Related-Issue: #OSPRH-11244
We're installing openstack operator using 'make openstack' and waiting for the subscription and installplan, but due to a recent change to the CRDs [1], we need to also wait for the csv before proceeding. Using 'make openstack_init' from install_yamls should fix the issue, as done in [2]. [1] openstack-k8s-operators/openstack-operator#1185 [2] openshift/release#60702 Related-Issue: #OSPRH-11244
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