0.0.4 • Published 2 years ago

forklift-console-plugin v0.0.4

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

OpenShift Console Plugin For Forklift

Operator Repository on Quay DeepSource codecov

Forklift is a suite of migration tools that facilitate the migration of VM workloads to OpenShift Virtualization.

Prerequisites

Development

[ See the docs folder for more information ]

Start forklift operator server without authentication:

Start the forklift-operator inventory server on http://localhost:8080 withut authentication.

Using forklift-operator development code, login into the cluster and run the server without authentication:

  1. oc login (requires oc and an OpenShift cluster)
  2. AUTH_REQUIRED=false make run

Start the UI:

Using forklift console plugin code.

In one terminal window, run:

  1. yarn install
  2. yarn start

In another terminal window, run:

  1. oc login # if not loggedin (requires oc and an OpenShift cluster)
  2. yarn run start:console (requires docker or podman 3.2.0+)

See below for how to run start:console on Apple silicon ARM based machine.

This will run the OpenShift console in a container connected to the cluster you've logged into. The plugin HTTP server runs on port 9001 with CORS enabled.

Deployment on cluster

After pushing an image with your changes to a registry, you can deploy the plugin to a cluster by using helm.

# Add the forklift helm repo
helm repo add forklift https://yaacov.github.io/forklift-console-plugin

# Install the forklift console plugin using current namespace
helm install forklift-console-plugin forklift/forklift-console-plugin

Helm templates optional values:

parameterdescriptiondefault value
pluginname of "app" label used for objectsforklift-console-plugin
namethe deployment nameforklift-console-plugin
imagethe plugin container imagequay.io/yaacov/forklift-console-plugin:latest
forkliftNamespaceforklift-operator namespacekonveyor-forklift
# for example, if forklift-operator is not installed in konveyor-forklift namespace,
# set "forkliftNamespace" value to the currect namespace:
helm install forklift-console-plugin \
   forklift/forklift-console-plugin \
   --set forkliftNamespace=openshift-mtv 

Once deployed, patch the Console operator config to enable the plugin.

oc patch consoles.operator.openshift.io cluster \
  --patch '{ "spec": { "plugins": ["forklift-console-plugin"] } }' --type=merge

Build and push podman image

Before you can deploy your plugin on a cluster, you must build an image and push it to an image registry.

  1. Build the image:
    podman build -t quay.io/yaacov/forklift-console-plugin:latest .
  2. Run the image:
    podman run -it --rm -p 9001:8080 quay.io/yaacov/forklift-console-plugin:latest
  3. Push the image:
    podman push quay.io/yaacov/forklift-console-plugin:latest

Creating container images with Apple silicon and podman

If you have a Mac with Apple silicon, you will need to add the flag --platform=linux/amd64 when building the image to target the correct platform to run in-cluster.

Running start-console with Apple silicon and podman

If you are using podman on a Mac with Apple silicon, yarn run start-console might fail since it runs an amd64 image. You can workaround the problem with qemu-user-static by running these commands:

podman machine ssh
sudo -i
rpm-ostree install qemu-user-static
systemctl reboot
0.0.4

2 years ago