mirror of
https://github.com/siderolabs/image-factory.git
synced 2026-01-21 00:21:15 +01:00
Some of the information in `docs/developing.md` was outdated (i.e. there
is no `integration` Makefile target anymore, there's
`integration-{direct|cdn|s3|proxy-installer|enterprise}`).
Also added a mention of the `docker-compose-` targets, for running image
factory.
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
88 lines
2.1 KiB
Markdown
88 lines
2.1 KiB
Markdown
# Developing Image Factory
|
|
|
|
## Running with Docker Compose
|
|
|
|
`docker-compose-{up|down}` make targets are available for running Image Factory.
|
|
|
|
To run:
|
|
|
|
```bash
|
|
# Generate signing key
|
|
openssl ecparam -name prime256v1 -genkey -noout -out _out/cache-signing-key.key
|
|
|
|
# Build and run
|
|
make docker-compose-up REGISTRY=127.0.0.1:5005
|
|
```
|
|
|
|
To stop:
|
|
|
|
```bash
|
|
make docker-compose-down
|
|
```
|
|
|
|
## Running Image Factory Manually
|
|
|
|
In order to run the Image Factory, generate a ECDSA key pair:
|
|
|
|
```bash
|
|
openssl ecparam -name prime256v1 -genkey -noout -out cache-signing-key.key
|
|
```
|
|
|
|
Run the Image Factory using the following config:
|
|
|
|
```yaml
|
|
artifacts:
|
|
# registry mirror for ghcr.io
|
|
core:
|
|
registry: 127.0.0.1:5004
|
|
|
|
# private registry repository for schematics
|
|
#
|
|
# resolves to 127.0.0.1:5005/image-factory/schematic
|
|
schematic:
|
|
registry: 127.0.0.1:5005
|
|
namespace: image-factory
|
|
repository: schematic
|
|
|
|
installer:
|
|
# internal registry namespace to push installer images to
|
|
internal:
|
|
registry: 127.0.0.1:5005
|
|
namespace: siderolabs
|
|
|
|
# external registry namespace to redirect users to pull installer
|
|
external:
|
|
registry: 127.0.0.1:5005
|
|
namespace: siderolabs
|
|
|
|
cache:
|
|
oci:
|
|
# private registry repository for cached assets
|
|
registry: 127.0.0.1:5005
|
|
namespace: image-factory
|
|
repository: cache
|
|
|
|
# path to the ECDSA private key (to sign cached assets)
|
|
signingKeyPath: ./cache-signing-key.key
|
|
|
|
http:
|
|
# external URL the Image Factory is available at
|
|
externalURL: https://example.com/
|
|
```
|
|
|
|
## Running Integration Tests
|
|
|
|
Integration tests can be run with specific targets:
|
|
|
|
- `integration-direct`
|
|
- `integration-s3`
|
|
- `integration-cdn`
|
|
- `integration-proxy-installer`
|
|
- `integration-enterprise`
|
|
|
|
Example running direct integration tests with registry mirrors:
|
|
|
|
```bash
|
|
make integration-direct TEST_FLAGS="-test.image-registry=127.0.0.1:5004 -test.schematic-service-repository=127.0.0.1:5005/image-factory/schematic -test.installer-external-repository=127.0.0.1:5005/test -test.installer-internal-repository=127.0.0.1:5005/test -test.cache-repository=127.0.0.1:5005/image-factory/cache" REGISTRY=127.0.0.1:5005
|
|
```
|