Skip to content

RHEcosystemAppEng/dbaas-dynamic-plugin

Repository files navigation

DBaaS Dynamic Plugin

Local development

  1. yarn build to build the plugin, generating output to dist directory
  2. yarn http-server to start an HTTP server hosting the generated assets
Starting up http-server, serving ./dist
Available on:
  http://127.0.0.1:9001
  http://192.168.1.190:9001
  http://10.40.192.80:9001
Hit CTRL-C to stop the server

The server runs on port 9001 with caching disabled and CORS enabled. Additional server options can be passed to the script, for example:

yarn http-server -a 127.0.0.1
  1. Go to OCP Console that running locally and use the flowing command to run Bridge.
source ./contrib/oc-environment.sh && go run cmd/bridge/main.go -plugins dbaas-dynamic-plugin=http://127.0.0.1:9001/

For more details, see the plugin development section in Console Dynamic Plugins README for details on how to run Bridge using local plugins.

Deployment on cluster

Console dynamic plugins are supposed to be deployed via OLM operators. In case of demo plugin, we just apply a minimal OpenShift manifest which adds the necessary resources.

oc apply -f oc-manifest.yaml

Note that the Service exposing the HTTP server is annotated to have a signed service serving certificate generated and mounted into the image. This allows us to run the server with HTTP/TLS enabled, using a trusted CA certificate.

Enabling the plugin

Once deployed on the cluster, demo plugin must be enabled before it can be loaded by Console.

To enable the plugin manually, edit Console operator config and make sure the plugin's name is listed in the spec.plugins sequence (add one if missing):

oc edit console.operator.openshift.io cluster
# ...
spec:
  plugins:
    - dbaas-dynamic-plugin
# ...

Docker image

Following commands should be executed in Console repository root.

  1. Build the image:
    QUAY_USER=<quay user/org> yarn img-build
  2. Run the image:
    QUAY_USER=<quay user/org> yarn img-run
  3. Push the image to image registry:
    QUAY_USER=<quay user/org> yarn img-push

Update and apply oc-manifest.yaml to use a custom plugin image.