NOTE: This repository is brand new and under active prerelease development.
The Crane UI plugin provides a UI for constructing container migration pipelines within the OpenShift console.
It is provided as an OpenShift Console dynamic plugin which requires OpenShift 4.10 or greater.
You can run the plugin using a local development environment or build an image to deploy it to a cluster.
You'll need:
- Node.js 16+ and Yarn 1.x installed
- Python and jq installed (for the start-console.sh setup script)
- An OpenShift 4.10+ cluster (the Console UI will run locally, but it needs a real cluster on the backend)
-
Install dependencies on your cluster. You can install them by installing the mtk-operator, or manually:
-
Install the Red Hat OpenShift Pipelines operator from OperatorHub
-
Deploy crane-reverse-proxy including its dev-only route:
oc create -f https://raw.githubusercontent.com/konveyor/crane-reverse-proxy/main/rbac.yml oc create -f https://raw.githubusercontent.com/konveyor/crane-reverse-proxy/main/deploy.yml oc create -f https://raw.githubusercontent.com/konveyor/crane-reverse-proxy/main/dev-route.yml
-
Deploy crane-secret-service including its dev-only route:
oc create -f https://raw.githubusercontent.com/konveyor/crane-secret-service/main/config/default/deployment.yaml oc create -f https://raw.githubusercontent.com/konveyor/crane-secret-service/main/config/default/service.yaml oc create -f https://raw.githubusercontent.com/konveyor/crane-secret-service/main/config/dev/route.yaml
-
-
Clone and build the openshift/console repository in a separate directory.
git clone https://github.com/openshift/console.git cd console ./build.sh
-
From the
crane-ui-plugin
directory:yarn install # Install dependencies yarn build # Build the plugin, generating output to `dist` directory yarn start # Start an HTTP server hosting the generated assets on port 9001
The plugin module server runs on port 9001 with CORS enabled.
-
In a second terminal window, also from the
crane-ui-plugin
directory:(NOTE: replace
../console
below with the path to your clone of the openshift/console repository if it is located elsewhere)# `oc login` to your cluster, and then: yarn start-console ../console
This script will configure an OAuth client and run the console with auth enabled.
-
Open the Console in your browser at http://localhost:9000/ and log in.
-
Find our UI by using the Developer perspective and navigating to the Add page, and clicking our "Import application from cluster" card.
Before you can deploy your plugin on a cluster, you must build an image and push it to an image registry.
-
Build the image:
docker build -t quay.io/yourname/crane-ui-plugin:latest .
-
Run the image:
docker run -it --rm -d -p 9001:8080 quay.io/yourname/crane-ui-plugin:latest
-
Push the image:
docker push quay.io/yourname/crane-ui-plugin:latest
Console dynamic plugins are supposed to be deployed via OLM operators. However, the plugin can also be deployed manually as follows.
After pushing an image with your changes to a registry, you can deploy the plugin to a cluster by instantiating the provided OpenShift template. It will run a light-weight nginx HTTP server to serve your plugin's assets.
oc process -f template.yaml \
-p PLUGIN_NAME=crane-ui-plugin \
-p NAMESPACE=openshift-migration-toolkit \
-p IMAGE=quay.io/yourname/crane-ui-plugin:latest \
| oc create -f -
Once deployed, patch the Console operator config to enable the plugin.
oc patch consoles.operator.openshift.io cluster \
--patch '{ "spec": { "plugins": ["crane-ui-plugin"] } }' --type=merge
The structure of this repository is based on spadgett/console-plugin-template.