devel: add full-stack development environment

This integrates all the Image Builder components needed by the
cloud.redhat.com frontend and allows them to be developed and run
locally using `docker compose`.

This should make it simple to make patches across the different
components and develop them in tandem.

Thanks to Achilleas Koutsou for the initial idea and implementation
in osbuild-composer.

Signed-off-by: Tom Gundersen <teg@jklm.no>
This commit is contained in:
Tom Gundersen 2021-05-21 14:10:32 +01:00 committed by Sanne Raymaekers
parent 082894e9dd
commit 886bd768dc
10 changed files with 490 additions and 56 deletions

View file

@ -31,62 +31,8 @@ against the chrome and backend at cloud.redhat.com.
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
frontend and backend locally against the chrome at cloud.redhat.com. For instructions
see [devel/README.md](devel/README.md).