Skip to content

lkingland/serverless-operator

 
 

Repository files navigation

Red Hat Serverless Operator

Provides a collection of API's to support deploying and serving of serverless applications and functions.

Development and private cluster testing

Requirements

  • podman aliased to docker or docker (17.05 or newer)
  • podman or docker is logged into a repository you can push to
  • DOCKER_REPO_OVERRIDE points to that repository
  • envsubst
  • bash (4.0.0 or newer)
  • make

Creating the images

To test the Serverless Operator against your private Openshift cluster you first need to push the necessary images to a publicly available location. To do that, make sure the DOCKER_REPO_OVERRIDE environment variable is set to a docker repository you can push to, for example docker.io/markusthoemmes. You might need to run docker login to be able to push images. Now run make images and all images in this repository will now be built and pushed to your docker repository.

Installing the system/running tests

Use the appropriate make targets or scripts in hack:

  • make dev: Deploys the serverless-operator without deploying Knative Serving.
  • make install: Scales the cluster appropriately, deploys serverless-operator and Knative Serving.
  • make install-previous: same with make install but deploy previous serverless-operator version.
  • make test-e2e: Scales, installs and runs all tests.

Note: Don't forget you can chain make targets. make images dev is handy for example.

Operator Framework

This repository contains the metadata required by the Operator Lifecycle Manager

Create a CatalogSource

The catalog.sh script should yield a valid ConfigMap and CatalogSource (given you have a setup as described in the development section above) comprised of the ClusterServiceVersions, CustomResourceDefinitions, and package manifest in the bundle beneath olm-catalog/. You should apply its output in the namespace where the other CatalogSources live on your cluster, e.g. openshift-marketplace:

./hack/catalog.sh | oc apply -n openshift-marketplace -f -

Create a Subscription

To install the operator, create a subscription:

cat <<-EOF | oc apply -f -
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: serverless-operator
  generateName: serverless-operator-
  namespace: openshift-operators
spec:
  source: serverless-operator
  sourceNamespace: openshift-marketplace
  name: serverless-operator
  channel: techpreview
EOF

Test upgrade from previous version

To test upgrade from previous version, deploy serverless operator by make install-previous

make install-previous

Then, you can see the installplans that the latest version has APPROVED false.

$ oc get installplan -n openshift-operators
NAME            CSV                          APPROVAL    APPROVED
install-ck6jl   serverless-operator.v1.4.1   Manual      true
install-hrzzn   serverless-operator.v1.5.0   Manual      false

For example, v1.5.0 is the latest version in this case. To upgrade v1.5.0, you can edit spec.approved to true manually.

spec:
  approval: Manual
  approved: true

After a few minutes, operators will be upgraded automatically.

About

An aggregation of serverless services

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 76.9%
  • Shell 21.5%
  • Dockerfile 1.3%
  • Makefile 0.3%