Skip to content

Commit bed1088

Browse files
authored
Merge pull request #88 from ruhan1/main-readme
Update readme
2 parents 75ac4a3 + 1a050f7 commit bed1088

File tree

1 file changed

+41
-12
lines changed

1 file changed

+41
-12
lines changed

README.md

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,54 @@
1-
# Indy sidecar
1+
# Indy Sidecar
22

3+
A Quarkus-based sidecar service that optimizes build performance by pre-downloading and caching dependency artifacts from previous builds. Deployed within builder pods, it proxies download/upload requests to remote repositories while serving cached artifacts locally to accelerate builds.
34

4-
## build image
5+
## Architecture
56

6-
**JVM image**
7+
- **Proxy Service**: Routes HTTP requests (GET/POST/PUT/DELETE/HEAD) to configured remote services
8+
- **Archive Retrieval**: Downloads artifact zip files from the external Archive Service for each build config
9+
- **Tracking Service**: External service that records artifact information sent by the sidecar
710

8-
```shell
9-
./mvnw clean package -Dquarkus.container-image.build=true
10-
```
11+
## Workflow
12+
13+
1. **Archive Generation**: After a build completes, users trigger artifact zip file generation via REST API to the Archive Service
14+
2. **Zip Download**: The sidecar downloads the latest artifact zip file for the current build from the Archive Service
15+
3. **Local Caching**: Downloaded artifacts are cached locally and served directly to current build
16+
4. **Proxy Fallback**: For artifacts not in cache (new dependencies), requests are proxied to remote repositories
17+
5. **Records Collection**: All download/upload operations are sent to the external Tracking Service for recording and observability
1118

12-
use `src/main/resources/application.properties` to control image build plugin, by default, indy-sidecar use docker as builder.
19+
## Configuration
1320

14-
---
21+
Configure via `application.yaml`:
1522

16-
**Native executable**
23+
```yaml
24+
sidecar:
25+
archive-api: http://localhost:8081/api/archive
26+
local-repository: ${user.home}/preSeedRepo
27+
28+
proxy:
29+
read-timeout: 30m
30+
retry:
31+
count: 3
32+
interval: 3000
33+
services:
34+
- host: your-repo-host
35+
port: 80
36+
path-pattern: /api/.+
37+
```
1738
39+
## Build & Deploy
1840
19-
```shell
41+
**JVM Image:**
42+
```bash
43+
./mvnw clean package -Dquarkus.container-image.build=true
44+
```
45+
46+
**Native Executable:**
47+
```bash
2048
./mvnw package -Pnative -Dquarkus.native.container-build=true
2149
docker build -f src/main/docker/Dockerfile.native -t indy-sidecar:native .
2250
```
2351

24-
25-
Our build: `quay.io/kaine/indy-sidecar` tag:`latest` `native-latest`
52+
**Pre-built Images:**
53+
- `quay.io/kaine/indy-sidecar:latest` (JVM)
54+
- `quay.io/kaine/indy-sidecar:native-latest` (Native)

0 commit comments

Comments
 (0)