#1743: Begin generating the operator bundle using operator-sdk
* 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
45 files changed