Image Builder service for console.redhat.com
Find a file
Jacob Kozol f3eed9c28f store: implement compose start action/reducer
When a compose is started the api call is no longer handled by the
CreateImageWizard onSave function. Instead, the CreateImageWizard
calls the composeStart thunk. This function calls the api and handles
the response. If successful, the compose is added to the store.
Otherwise, an error is added to the store.

The store's compose object now has a list of the compose ids and an
object containing key/value pairs mapping a compose id to the compose
for all composes. This "normalized" state will allow more efficiency
when selecting individual composes or iterating through all composes.

The compose objects in the store now match the composeRequest object
instead of having a shape unique to the UI. This can be changed in the
future if image-builder's api returns compose objects of a different
format.

Tests are updated for new compose format and action/reducer types.
2021-04-19 15:04:26 +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 test: add initial jest tests 2020-10-22 10:23:08 +02:00
profiles Rename to image-builder-frontend 2020-09-14 12:16:35 +02:00
src store: implement compose start action/reducer 2021-04-19 15:04:26 +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 package.json: Pin exact versions 2021-04-12 15:58:58 +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 store: add redux-thunk 2021-04-19 15:04:26 +02:00
README.md README.md: Fix dated information 2021-01-15 17:40:57 +01:00

image-builder-frontend

Development

You can skip step 3 and 4 if you don't need the full stack locally. However while it's possible to click around the page and use mock data, it won't be able to build images.

  1. Clone the following repositories:

  2. Setting up the proxy

    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