Image Builder service for console.redhat.com
Find a file
Tom Gundersen 082894e9dd distribution: add Dockerfile
This is meant for development only, and attempts to mimick how
the app is deployed.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2021-05-21 19:23:14 +02:00
.github/workflows workflows: Move npm-update to Ubuntu 20.04 2021-01-26 10:09:24 +01:00
.travis travis: Fork main to prod-beta 2021-03-19 11:15:52 +01:00
config Revert "config: Skip chrome2 until the configuration is in place in csc" 2021-05-11 14:11:49 +02:00
distribution distribution: add Dockerfile 2021-05-21 19:23:14 +02:00
profiles src: Adapt to insights-chrome 2.0 2021-05-06 11:26:41 +02:00
src CreateImageWizard: fix OAuth info link style 2021-05-20 20:16:21 +02:00
tools tools: Make make-bots executable 2020-10-27 18:09:24 +01:00
.babelrc copy from RedHatInsights/insights-frontend-starter-app template 2020-04-15 12:46:02 +02:00
.eslintrc.yml package.json: Pin exact versions 2021-04-12 15:58:58 +02:00
.gitignore npm: Use npm-update to keep all packages updated 2020-11-02 19:40:48 +01:00
.stylelintrc.json copy from RedHatInsights/insights-frontend-starter-app template 2020-04-15 12:46:02 +02:00
.travis.yml travis: upgrade to npm 12 2021-05-21 19:23:14 +02:00
codecov.yml codecov: Add configuration 2021-02-09 15:48:57 +01:00
LICENSE osbuild-installer-frontend 2020-03-27 10:14:04 +01:00
package.json package/start: don't bind only to localhost 2021-05-21 19:23:14 +02:00
README.md README: split frontend and backend instructions 2021-05-08 22:27:51 +02:00

image-builder-frontend

Frontend Development

To develop the frontend you can use a proxy to run image-builder-frontend locally against the chrome and backend at cloud.redhat.com.

  1. Clone the insights proxy: https://github.com/RedHatInsights/insights-proxy

  2. Setting up the proxy

    Choose a runner (podman or docker), and point the SPANDX_CONFIG variable to profile/local-frontend.js included in image-builder-frontend.

        sudo insights-proxy/scripts/patch-etc-hosts.sh
        export RUNNER="podman"
        export SPANDX_CONFIG=$PATH_TO/image-builder-frontend/profiles/local-frontend.js
        sudo -E insights-proxy/scripts/run.sh
    
  3. Starting up image-builder-frontend

    In the image-builder-frontend checkout directory

        npm install
        npm start
    

The UI should be running on https://prod.foo.redhat.com:1337/apps/image-builder/landing.

Backend Development

To develop both the frontend and the backend you can again use the proxy to run both the frontend and backend locally against the chrome at cloud.redhat.com. In addition to the above:

  1. Clone the image-builder (backend) repository: https://github.com/osbuild/image-builder

  2. Setting up the proxy

    As before, choose a runner (podman or docker), and point the SPANDX_CONFIG variable to profile/local-frontend-and-api-with-identity.js included in image-builder-frontend.

        sudo insights-proxy/scripts/patch-etc-hosts.sh
        export RUNNER="podman"
        export SPANDX_CONFIG=$PATH_TO/image-builder-frontend/profiles/local-frontend-and-api-with-identity.js
        sudo -E insights-proxy/scripts/run.sh
    
  3. Setting up osbuild-composer(-api)

    The easiest way to do this is to call schutzbots/provision-composer.sh from the osbuild/image-builder project. This will install composer, generate the needed certs, and put the configuration in place.

  4. Starting up image-builder

    Point the URL to wherever composer is hosted, the client certificates and CA should be reused or copied over from the composer host, they're located in /etc/osbuild-composer.

    In the image-builder checkout directory

        make build
        OSBUILD_URL="https://$composer-url:$composer-port/api/composer/v1" \
        OSBUILD_CERT_PATH=/path/to/client-crt.pem \
        OSBUILD_KEY_PATH=/path/to/client-key.pem \
        OSBUILD_CA_PATH=/path/to/ca-crt.pem \
        ./image-builder
    
  5. Starting up image-builder-frontend

    In the image-builder-frontend checkout directory

        npm install
        npm start
    

The UI should be running on https://prod.foo.redhat.com:1337/apps/image-builder/landing, the api (image-builder) on https://prod.foo.redhat.com:1337/api/image-builder/v1/openapi.json