Skip to content
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

Generate OLM Bundle #1743

Closed
astefanutti opened this issue Oct 5, 2020 · 2 comments
Closed

Generate OLM Bundle #1743

astefanutti opened this issue Oct 5, 2020 · 2 comments
Assignees
Labels
area/olm Related to the Operator Lifecycle Manager

Comments

@astefanutti
Copy link
Member

astefanutti commented Oct 5, 2020

OLM has introduced a new bundle format, deprecating the previous package manifests.

Following up #1741, the Operator SDK CLI exposes a new generate bundle command that generates the OLM bundle for an operator project. The convention is to use the kustomize CLI to assemble the resources, instead of relying on a configuration file, as it used to be for generating package manifests.

@phantomjinx
Copy link
Contributor

phantomjinx commented Nov 2, 2020

phantomjinx added a commit to phantomjinx/camel-k that referenced this issue Nov 10, 2020
* Makefile
 * Adds recipes for constructing both the manifests and bundle
 * Uses recursive rule-making to try and avoid duplication yet workaround
   the limits of controller-gen & operator-sdk

* PROJECT
 * Scaffolding configuration

* script/add_licence.sh
 * Script for prepending the licence header to generated files

* config/crd
 * The output of executing `make manifests`

* ...... WIP
phantomjinx added a commit to phantomjinx/camel-k that referenced this issue Nov 16, 2020
* Makefile
 * OPERATOR_VERSION removes -SNAPSHOT suffix as invalid domain for version
   field while executing `operator-sdk generate...`
 * Adds recipes for constructing both the manifests and bundle, adapted
   from the demonstration versions
 * Uses recursive rule-making to avoid duplication and work around
   the limits of controller-gen & operator-sdk

* script/add_licence.sh
 * Script for prepending the licence header to generated files

* script/gen_crd.sh
 * adds config directory for crd generation

* PROJECT
 * Scaffolding configuration for operator-sdk executable

* config
 * root configuration directory for kustomize and operator-sdk
 * samples directory locates the alm-examples used in the bundle manifest
 * rbac directory locates the permissions, cluster-permissions and
   deployments fields in the bundle manifest
 * prometheus directory used for monitoring resources although doesn't seem
   to be applicable at the moment (prometheus-jmx-exporter.yaml is invalid)
 * crd directory locates the CRDs generated in the same manner as that in
   the deploy directory
 * All resources have to be copied in - cannot use symlinks and both
   controller-gen and operator-sdk will error

* Limitations of process:
 * controller-gen cannot generate CRDs across modules (directory containing
   go.mod) so gen-crds.sh changes directory into pkg/apis in order to
   execute successfully
 * operator-sdk has to execute in root of directory and cannot generate
   across modules. Also, seems to have a duplication problem if 2 apis
   are being processed with one dependent on the other. So copy apis 1 at
   a time & process

* Result is `make bundle` will regenerate csv manifests (if required) then
  create a bundle directory containing these manifests and other artifacts
  necessary for deploying an image for the Operator Hub and OLM catalogue
astefanutti pushed a commit that referenced this issue Nov 19, 2020
* Makefile
 * OPERATOR_VERSION removes -SNAPSHOT suffix as invalid domain for version
   field while executing `operator-sdk generate...`
 * Adds recipes for constructing both the manifests and bundle, adapted
   from the demonstration versions
 * Uses recursive rule-making to avoid duplication and work around
   the limits of controller-gen & operator-sdk

* script/add_licence.sh
 * Script for prepending the licence header to generated files

* script/gen_crd.sh
 * adds config directory for crd generation

* PROJECT
 * Scaffolding configuration for operator-sdk executable

* config
 * root configuration directory for kustomize and operator-sdk
 * samples directory locates the alm-examples used in the bundle manifest
 * rbac directory locates the permissions, cluster-permissions and
   deployments fields in the bundle manifest
 * prometheus directory used for monitoring resources although doesn't seem
   to be applicable at the moment (prometheus-jmx-exporter.yaml is invalid)
 * crd directory locates the CRDs generated in the same manner as that in
   the deploy directory
 * All resources have to be copied in - cannot use symlinks and both
   controller-gen and operator-sdk will error

* Limitations of process:
 * controller-gen cannot generate CRDs across modules (directory containing
   go.mod) so gen-crds.sh changes directory into pkg/apis in order to
   execute successfully
 * operator-sdk has to execute in root of directory and cannot generate
   across modules. Also, seems to have a duplication problem if 2 apis
   are being processed with one dependent on the other. So copy apis 1 at
   a time & process

* Result is `make bundle` will regenerate csv manifests (if required) then
  create a bundle directory containing these manifests and other artifacts
  necessary for deploying an image for the Operator Hub and OLM catalogue
@astefanutti astefanutti added the area/olm Related to the Operator Lifecycle Manager label Jan 25, 2021
@astefanutti
Copy link
Member Author

Let's close this one and track further work in #1820.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/olm Related to the Operator Lifecycle Manager
Projects
None yet
Development

No branches or pull requests

2 participants